CN107667534B - 在有限的带宽连接中播放球形视频 - Google Patents
在有限的带宽连接中播放球形视频 Download PDFInfo
- Publication number
- CN107667534B CN107667534B CN201680028763.4A CN201680028763A CN107667534B CN 107667534 B CN107667534 B CN 107667534B CN 201680028763 A CN201680028763 A CN 201680028763A CN 107667534 B CN107667534 B CN 107667534B
- Authority
- CN
- China
- Prior art keywords
- video
- streaming
- frame rate
- determining
- rate
- 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
- 230000008859 change Effects 0.000 claims abstract description 82
- 230000015654 memory Effects 0.000 claims abstract description 76
- 238000000034 method Methods 0.000 claims description 62
- 230000002829 reductive effect Effects 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 17
- 230000033001 locomotion Effects 0.000 description 14
- 238000013139 quantization Methods 0.000 description 13
- 230000003287 optical effect Effects 0.000 description 11
- 210000003128 head Anatomy 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 241000607305 Arctica Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000026058 directional locomotion Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- 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/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- 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/10—Architectures or entities
- H04L65/1063—Application servers providing network services
-
- 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/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/613—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
-
- 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
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- 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/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
- H04N21/6587—Control parameters, e.g. trick play commands, viewpoint selection
-
- 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/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0435—Change or adaptation of the frame rate of the video stream
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
头戴式显示器(HMD)包括处理器和存储器。存储器包括作为指令的代码,指令使得处理器发送在流送视频中,视域视角从第一位置改变到第二位置的指示,确定与从第一位置到第二位置的改变相关联的改变速率,并且基于视域视角的改变速率来降低视频的回放帧速率。
Description
相关申请
本申请要求于2015年9月10日提交的,名为“PLAYING SPHERICAL VIDEO ON ALIMITED BANDWIDTH CONNECTION”的美国临时专利申请No.62/216,585的优先权,其全部内容在此引入以供参考。
技术领域
实施例涉及流送球形视频。
背景技术
流送球形视频(或其他三维视频)会消耗大量***资源。例如,编码的球形视频能包括用于传输的大量比特,这会消耗大量带宽以及与编码器和解码器相关联的处理和存储器。
发明内容
示例性实施例描述基于移动(例如,由视频的回放设备和/或观众作出的),优化流送球形视频(和/或其他三维视频)的***和方法。根据示例性实施例,头戴式显示器(HMD)包括处理器和存储器。存储器包括作为指令的代码,所述作为指令的代码使得所述处理器发送在流送视频中视域视角(view perspective)已经从第一位置改变到第二位置的指示,确定与从第一位置到第二位置的改变相关联的改变速率,并且基于视域视角的改变速率来降低视频的回放帧速率。
附图说明
从本文给出的具体实施方式和附图将更全面地理解示例性实施例,其中,由相同的附图标记表示相同的元件,仅以示例方式给出且不限制示例性实施例,其中:
图1示出根据至少一个示例性实施例的流送球形视频的方法。
图2A示出根据至少一个示例性实施例的球体的二维(2D)表示。
图2B示出根据至少一个示例性实施例的球体的等距长方表示。
图3和图4示出根据至少一个示例性实施例的流送球形视频的方法。
图5示出根据至少一个示例性实施例的帧速率选择的图。
图6A示出根据至少一个示例性实施例的视频编码器***。
图6B示出根据至少一个示例性实施例的视频解码器***。
图7A示出用于根据至少一个示例性实施例的视频编码器***的流程图。
图7B示出用于根据至少一个示例性实施例的视频解码器***的流程图。
图8示出根据至少一个示例性实施例的***。
图9是能用来实现本文所述的技术的计算机设备和移动计算机设备的示意框图。
图10A和10B是根据本文所述的实施方式的头戴式显示装置的透视图。
应注意到,这些附图旨在示出在某些示例性实施例中所利用的方法、结构和/或材料的一般特性以及补充下文提供的书面描述。然而,这些附图并非按比例绘制,不能精确地反映任何给定实施例的精确结构或性能特性,并且不应当解释为限定或限制由示例性实施例涵盖的值的范围或性质。例如,为了清楚,可以减小或扩大结构元件的定位。在各个图中使用类似或相同的附图标记旨在指示存在类似或相同的元件或特征。
具体实施方式
尽管示例性实施例可以包括各种修改和替选形式,但其实施例是在图中以示例的方式示出,并且在本文中将进行详细描述。然而,应理解到不旨在将示例性实施例限定到公开的具体形式,而相反地,示例性实施例将涵盖落在权利要求范围内的所有修改、等价形式以及替选方案。在附图的整个描述中,相同的附图标记表示相同的元件。
图1,3和4是根据示例性实施例的方法的流程图。由于执行在与该装置(例如,如图6A所示)相关联的存储器(例如,至少一个存储器610)中存储并且由与该装置相关联的至少一个处理器(例如,至少一个处理器605)执行的软件代码,执行参考图1,3和4所述的步骤。然而,能设想替选实施例,诸如具体化为专用处理器的***。尽管下文所述的步骤描述为由处理器执行,但这些步骤不一定由相同处理器执行。换句话说,至少一个处理器可以执行下文参考图1,3和4所述的步骤。
图1示出根据至少一个示例性实施例的流送球形视频的方法。如图1所示,在步骤S105,接收视域视角改变的指示。例如,流送服务器可以接收球形视频的观众已经将视域视角从流视频中的第一位置改变到第二位置的指示。在示例性使用场景中,流送视频能是音乐会。因此,第一位置能是用户看到乐队(或其成员)的视域视角,而第二位置能是用户看到人群的视域视角。根据示例性实施方式,用户使用头戴式显示器(HMD)来观看流送球形视频。HMD(和/或相关联的计算设备)能将视域视角改变的指示传送到流送服务器。
在步骤S110,确定视域视角的改变速率。例如,视域视角的改变速率能是视域视角从在流送视频中的第一位置改变到第二位置的改变速率或速度。在一个示例性实施方式中,视域视角的改变的指示能包括视域视角改变的改变速率或速度,或者观看设备(例如HMD)移动的速度。在另一示例性实施方式中,确定视域视角的改变速率能够基于接收视域视角的改变的指示的频率。换句话说,越频繁地接收视域视角改变的指示,改变速率越高。相反,越不常接收到视域视角改变的指示,改变速率越低。
在另一示例性实施方式中,视域视角的改变速率能够基于距离(例如,视频帧中的像素之间)。在这种情况下,距离越大,移动越快,改变速率越高。在示例性实施方式中,HMD能够包括加速度计。加速度计能够被配置为确定与HMD相关联的运动方向和运动的速度(或多快)。运动方向能够被用来生成视域视角改变的指示,以及速度能够被用来指示视域视角的改变速率。它们的每一个能够从HMD(或与其相关联的计算设备)传送到流送服务器。
在步骤S115,基于视域视角的改变速率,减小视频的回放帧速率。例如,随着视域视角改变越快(例如,以相对高的速度),观众会看到越模糊的图像。因此,当视域视角改变越快时,能够减慢或停止视频的回放帧速率。在示例性实施方式中,在确定视域视角改变高于或大于阈值(或具有高于或大于阈值的速度)时,停止回放帧速率(例如暂停)或者静态图像能够替换视频的一部分。在另一示例性实施方式中,在确定视域视角改变低于或小于阈值(或具有低于或小于阈值的速度)时,能够减小(但不停止)回放帧速率。换句话说,如果视域视角改变小于阈值,则会放慢回放帧速率。阈值可以是例如默认情况下或在***初始化期间的***配置参数集。在另一示例性实施方式中,能够基于多个阈值范围或基于预定公式或算法来可变地设置帧速率。
在步骤S120,针对该视频,向流送服务器指示回放帧速率和当前视域视角。例如,在一个示例性实施方式中,HMD(或与其相关联的计算设备)能够执行与改变帧速率相关联的方法。在该实施方式中,能够使用有线或无线协议,通过有线或无线连接将回放帧速率和当前视域视角传送到流送服务器。在另一实施方式中,单独的计算设备能够控制(在例如HMD上显示的)回放帧速率。该计算设备能够是更大(例如,联网或局域网)计算***的元件。在该实施方式中,能够使用有线和/或无线协议,通过有线和/或无线连接将回放帧速率和当前视域视角从计算设备同时传送到流送服务器和HMD。
在步骤S125,确定改变速率是否低于阈值。阈值可以是例如默认情况下或在***初始化期间的***配置参数集。在另一示例性实施方式中,能够基于多个阈值范围或基于预定公式或算法来可变地设置帧速率。当确定改变速率低于阈值时,处理继续到步骤S130。否则,处理返回到步骤S110。
在步骤S130,恢复视频的正常回放帧速率。例如,视频能够具有最佳观看视频的帧速率。该帧速率能够被认为是正常或目标帧速率。正常帧速率能够基于捕获视频的速率。正常帧速率能够基于视频的创建者旨在(例如,配置)观看该视频的速率。
在步骤S135,向流送服务器指示正常回放帧速率。例如,在一个示例性实施方式中,HMD(或与其相关联的计算设备)能够执行与改变帧速率相关联的方法。在该实施方式中,能够使用有线或无线协议,通过有线或无线连接将正常回放帧速率传送到流送服务器。在另一实施方式中,单独的计算设备能够控制(如在例如HMD上显示的)回放帧速率。该计算设备能够是更大(例如,联网或局域网)计算***的元件。在该实施方式中,能够使用有线和/或无线协议,通过有线和/或无线连接将正常回放帧速率从计算设备同时传送到流送服务器和HMD。
球形图像能够具有视角。例如,球形图像能够是地球的图像。内部视角能是从地球的中心向外看的视图。或内部视角能是在地球上看向太空。换句话说,内部视角是由内向外的视角。外部视角能是从太空向下看向地球的视图。换句话说,外部视角是由外向内的视角。内部视角和外部视角将球形图像和/或球形视频帧看作一个整体。
然而,在示例性实施方式中,很可能(例如,HMD的)用户仅能够看到或观看球形图像和/或球形视频帧的一部分。因此,视角能够基于什么是可观看到的。在下文中,这将被称为可观看视角。换句话说,可观看视角能够是在回放球形视频期间,观众能够看到的。可观看视角能够是在球形视频的回放期间,观众前方的球形图像的一部分。换句话说,可观看视角是在球形图像的观众的可观看范围内的球形图像的一部分。
例如,当从内部视角观看时,观众能躺在地上(例如地球)上并且看向太空(例如,由内向外视角)。观众能在该图像中,看到月亮、太阳或特定的星星。然而,尽管观众所躺的地面包括在球形图像中,但地面在当前可观看视角外。在该示例中,观众能转动她的头并且地面将被包括在周围可观看视角中。观众能翻身,并且地面在可观看视角中,而月亮、太阳或星星则不在。
继续地球示例,观众能够处于看向地球的太空中。来自外部视角的可观看视角可以是未被遮挡(例如由该图像的另一部分)的球形图像的一部分和/或未弯曲出视域的球形图像的一部分。例如,从北极看,视域视角包括北极洲,但不包括南极洲。此外,北美的一部分(例如加拿大)可以在可观看视角内,但由于球体的曲率,北美的其他部分(例如美国)可能不在可观看视角内。
通过移动(例如旋转)球形图像和/或球形图像的运动,可以将球形图像的另一部分从外部视角引入可观看视角。
球形图像是不会随时间改变的图像。例如,与地球有关、来自内部视角的球形图像可以显示一个位置中的月亮和星星。而球形视频(或图像序列)可以随时间改变。例如,与地球有关、来自内部视角的球形视频可以显示月亮和星星运动(例如因为地球旋转)和/或划过图像(例如天空)的飞机。
图2A示出球体的二维(2D)表示。如图2A所示,球体200(例如作为球形图像或球形视频帧)示出内部视角205、210、外部视角215和可观看视角220、225、230。可观看视角220可以是如从内部视角210观看的球形图像235的一部分。可观看视角220可以是如从内部视角205观看的球体200的一部分。可观看视角225可以是如从外部视角215观看的球体200的一部分。
图2B将球体200的2D表示的展开的等距长方表示250示为2D矩形表示。示为展开的圆柱表示250的图像的等距长方投影当图像垂直或水平地进行时,可以呈现为拉伸的图像。2-D矩形表示能够被分解为N×N块的C×R矩阵。例如,如图2B所示,所示的展开的圆柱表示250是N×N块的30×16矩阵。然而,其他C×R维度也在本公开的范围内。块可以是2x2,2x4,4x4,4x8,8x8,8x16,16x16和类似块(或像素块)。
球形图像是所有方向均连续的图像。因此,如果球形图像将被分解成多个块,则所述多个块在球形图像上将是连续的。换句话说,在2D图像中不存在边缘或边界。在示例性实施方式中,相邻端块可以与2D表示的边界相邻。此外,相邻端块可以是2D表示的边界上的块的邻接块。例如,相邻端块与二维表示的两个或以上边界相关联。换句话说,因为球形图像是在所有方向均连续的图像,因此,相邻端块能与图像或帧中的(例如块的列的)上边界和下边界相关联和/或与图像或帧中的(例如块的行的)左边界和右边界相关联。
例如,如果使用等距长方投影,则相邻端块可以是列或行的另一端上的块。例如,如图2B所示,块260和270可以是彼此的相应相邻端块(按列)。此外,块280和块285sk以是彼此的相应相邻端块(按列)。进一步,块265和275可以是彼此的相应相邻端块(按行)。视域视角255能够包括(和/或重叠)至少一个块。块可以被编码为图像的区域、帧的区域、图像或帧的一部分或子集、一组块等。在下文中,该组块可以被称为贴片(tile)或贴片组。贴片可以是在球形观众的回放期间,基于观众的视域视角选择的多个像素。多个像素可以是能够包括能由用户看到的球形图像的一部分的块、多个块或宏块。例如,在图2B中,贴片290和295被示出为四个块的组。贴片290被示出为在视域视角255内。
在示例性实施例中,观众可以将视域视角255从包括贴片290的当前视域视角改变到包括贴片295的目标视域视角。在这期间,可向观众示出一个或多个其他贴片292,294,296和298。为了说明清楚,未示出视域视角包括贴片292,294,295,296和298。然而,视域视角(例如,视域视角255)能够被认为跟随贴片292,294,295,296和298。根据示例性实施例,球形视频可以包括从包括贴片290的当前视域视角到包括贴片295的目标视域视角的视域视角255的改变。因此,球形视频可以包括一个或多个帧,其包括贴片290,292,294,295,296和298。当确定从包括贴片290的当前视域视角到包括贴片295的目标视域视角的视域视角255的改变高于阈值速度时,可以减小或停止用于回放球形视频的帧速率。换句话说,贴片290,292,294,295,296和/或298中的一个或多个可以被显示为静态图像。
在头戴式显示器(HMD)中,观众通过使用投影感知的三维(3D)视频或图像的左(例如左眼)显示器和右(例如右眼)显示器来体验视觉虚拟现实。根据示例性实施例,在服务器上存储球形(例如,3D)视频或图像。视频或图像能够被编码并且从服务器被流送到HMD。球形视频或图像能够被编码为与有关左图像和右图像的元数据一起打包(例如,在数据包中)的左图像和右图像。然后,左图像和右图像被解码并且由左(例如左眼)显示器和右(例如右眼)显示器显示。
本文所述的***和方法可应用于左图像和右图像两者,并且在本公开中取决于适用情形而被称为图像、帧、图像的一部分、帧的一部分、贴片等。换句话说,被从服务器(例如,流送服务器)传送到用户设备(例如,HMD),然后被解码以用于显示的编码的数据能够是与3D视频或图像相关联的左图像和/或右图像。
图3示出根据至少一个示例性实施例的流送球形视频的另一种方法。如图3所示,在步骤S305,接收流送视频的降低的回放帧速率和视域视角的指示。例如,流送服务器能够从HMD(或与其相关联的计算设备)接收通信。通信能够是使用有线或无线协议传输的有线或无线通信。该通信能够包括降低的回放帧速率和视域视角的指示。降低的回放帧速率的指示能够是相对值(例如,使当前帧速率减少一定数量、百分比等)、固定值(例如,x fps,其中x是数值)和/或请求或应当传送静态图像(例如,0fps)的指示。视域视角的指示能够是相对值(例如,与当前位置的位置增量)和/或固定位置。指示能够是球形表示(例如,球体200上的点或位置)、等距长方表示和/或矩形表示(例如,展开的圆柱表示250上的点或位置)。
在步骤S310,基于该视域视角并且以减小的带宽来流送视频。例如,流送服务器能够基于该视域视角来选择用于流送的球形视频的一部分(例如,贴片或多个贴片)。换句话说,流送服务器能够选择在与该视域视角相关联的位置(或以该位置为中心)的球形视频的一部分。在示例性实施方式中,球形视频的所选部分能够是静态图像(例如,0fps)。然后,能够将球形视频的所选部分传送(或流送)到HMD(或与其相关联的计算设备)。此外,能够基于减少的带宽来修改与视频相关联的音频的流送。例如,能够去除、减慢、淡出音频,能够循环或重复音频片段等。循环或重复的音频片段能够具有对每个后续视频帧修改的持续时间。例如,能够使循环逐渐变长。然后能够经由使用有线或无线协议传输的有线或无线通信来传送球形视频和/或音频的所选部分。
在步骤S315,接收流送视频的正常回放帧速率和视域视角的指示。例如,流送服务器能够从HMD(或与其相关联的计算设备)接收通信。通信能够是使用有线或无线协议传输的有线或无线通信。通信能够包括正常(例如,目标)回放帧速率和视域视角的指示。正常回放帧速率的指示能够是相对值(例如,使当前帧速率增大一定数量、百分比等)、固定值(例如,x fps,其中x是数值)和/或请求或应当传送正常或目标帧速率(或其恢复)的指示。视域视角的指示能够是相对值(例如,与当前位置的位置增量)和/或固定位置。该指示能够是球形表示(例如,球体200上的点或位置)、等距长方表示和/或矩形表示(例如,展开的圆柱表示250上的点或位置)。
在步骤S320,基于该视域视角并且以期望的带宽来流送视频。例如,流送服务器能够基于该视域视角来选择用于流送的球形视频的一部分(例如,贴片或多个贴片)。换句话说,流送服务器能够选择在与该视域视角相关联的位置(或以该位置为中心)的球形视频的一部分。然后,能够将球形视频的所选部分传送(或流送)到HMD(或与其相关联的计算设备)。
此外,能够基于恢复的正常回放帧速率和基于减小的带宽的修改来修改与视频相关联的音频的流送。例如,能够重新***音频、速度达到正常速度、渐增音量,能够恢复音频片段等。在循环或重复音频时,能够确定视频中的匹配点,并且能够在匹配点恢复相关的音频流。此外,无论音频回放中的循环的当前位置如何,都能渐增音频。然后,能够经由使用有线或无线协议传输的有线或无线通信来传送球形视频的所选部分。
在一些球形视频流送技术中,球形视频的一部分(或小于全部)被流送到HMD(或与其相关联的计算设备)。替选地,以比不在HMD的可观看区域内的球形视频的一部分更高的质量流送球形视频的观看部分(例如,基于视域视角)。在这些技术中,确定观众正观看(或将在不久的将来观看)的位置并且将球形视频的这些部分有效地传送(或流送)到HMD能够影响在回放球形视频期间的观看体验。因此,能够基于通过其传送包括该球形视频的分组的网络的带宽和待观看的预测的下一部分的可靠性来流送球形视频的部分。
图4示出根据至少一个示例性实施例的流送球形视频的另一方法。如图4所示,在步骤S405,以目标帧速率流送全球形视频帧。例如,流送服务器能够向HMD(或与其相关联的计算设备)传送一系列的球形视频帧(或其部分)。能够经由使用有线或无线协议传输的有线或无线通信来传送球形视频帧。能够以目标帧速率或每秒的帧数(fps)来传送帧。目标帧速率能够基于所请求的帧速率、捕获视频的速率、视频的创建者旨在(例如,配置)待观看的视频的速率、观看时的视频的期望质量、回放设备(例如,HMD)的特性(例如,存储器、处理能力等)和/或网络设备(例如,流送服务器)的特性(例如,存储器、处理能力等)。
在步骤S410,确定带宽是否足以以目标帧速率流送全球形视频帧。例如,为了以目标帧速率和例如期望或最低质量来流送球形视频,可能需要与将通过其流送球形视频的网络相关联的最小带宽。带宽能够是如以例如以每秒比特(bps)测量的、随时间经过网络连接的数据量。能够与球形视频的流送无关地测量带宽。例如,工具能够通过例如发送大量数据并且测量数据到达某个位置的时间量来定期测量带宽。能够基于球形视频的流送来测量带宽。例如,能够对视频分组加时间戳,并且能够使用报告/监视工具来确定(已知大小的)视频分组到达HMD(或与其相关联的计算设备)花费的时间。如果网络不能以足够的带宽流送球形视频,则会损害用户体验(例如,不能达到期望的质量)。如果带宽足以以目标帧速率流送全球形视频帧,则处理返回到步骤S405。否则,处理继续到步骤S415。
在步骤S415,确定方位速度是否足够可靠以预测帧内的下一位置。例如,当HMD的使用者以一定速度(例如,可变速度)移动头部时,方向传感器(例如,加速度计)能够测量运动的速度和方向。越高的测量速度会越不可靠,因为视频***可能具有与预测用于流送视频的帧内的下一位置(例如,视域视角)相关联的更多错误。方向的改变也更不可靠,因为视频***可能具有与预测用于流送视频的帧内的下一位置相关联的更多错误。其他方向速度场景(例如,到或来自视频中的动作点的位置改变、头部晃动、头部和眼睛的同时运动等)会引入关于预测帧内的下一位置的错误。如果方位速度足够可靠以预测下一位置,则处理继续到步骤S430。否则处理继续到步骤S420。
如果方位速度不足够可靠以预测下一位置,则能够确定并流送预测的下一位置周围的较大部分(例如,多个贴片)。因此,在回放球形视频期间,更可能将HMD的用户正在观看的球形视频的部分流送到HMD(并且以期望的质量)。另外,以上确定带宽不足以以目标帧速率流送全球形视频帧。因此,在该示例性实施方式中,由于传送球形视频的较大部分(或增加的比特数),应当减小帧速率以便在可用带宽中流送视频数据包。
因此,在步骤S420,利用与该视域视角相关联(例如,其周围或围绕一侧或多侧或一侧或多侧上)的扩展的缓冲区来派发帧。例如,视域视角能够是观众正在看的球形视频的位置。该位置能够是球形视频内的像素。缓冲区能够是围绕像素的球形视频的一部分。缓冲区能够是多个像素、多个块和/或多个贴片等。缓冲区能够基于HMD的显示。例如,缓冲区能够等同于能够在HMD的显示器上显示的像素数量、块数、贴片数量等。使用HMD的球形视频的观众能够仅能够观看在HMD的显示器上显示的图像的一部分。因此,缓冲区能够等同于当显示在HMD的显示器上时,用户能够看到的像素数量、块数量、贴片数量等。用于确定缓冲区的其他和替代实施方式在本公开的范围内。
在示例性实施方式中,缓冲区能够被扩展以补偿预测将被流送到HMD的球形视频的帧内的下一位置的可靠性(或其不足)。扩展缓冲区能够基于分配给可靠性的值(或得分)。例如,可以对不太可靠的预测分配较高的值(或得分)。值(或得分)越高,越能扩展缓冲区。因此,应该选择越大的像素的数量、块的数量和/或贴片的数量等以流送到HMD。
在步骤S425,降低帧派发速率(例如,到0fps)。例如,能够基于带宽和选择以流送到HMD的像素数量、块数量、贴片数量等来减少帧速率。换句话说,可用带宽越小以及缓冲区越大,则帧速率应当越低。在一些示例性实施方式中,流送由扩展缓冲器限定的球形图像的部分的静态图像(例如,0fps)。
如果方位速度足够可靠以预测下一位置,则能够确定并且流送预测的下一位置周围的较小部分(例如,多个贴片)。因此,由于带宽不足以以目标帧速率流送全球形视频帧,在该示例性实施方式中,由于传送球形视频的较小部分(或减少的比特数),在可用带宽中流送视频分组期间,帧速率应该接近目标帧速率。此外,能够基于减少的带宽来修改与视频相关联的音频的流送。例如,能够去除、减慢、渐弱音频,能够循环或重复音频片段等。循环或重复的音频片段能够具有对每个后续视频帧修改的持续时间。例如,能够使循环逐渐变长。
在步骤S430,利用与视域视角相关联(例如,周围或围绕或在一个或多个侧面上的)的减小的缓冲区来派发该帧。如上所述,缓冲区能够等同于在HMD的显示器上显示的像素数量、块数量、贴片数量等。因此,减少缓冲区能够在回放期间导致在可观看区域的周边的填充像素(例如,黑色、白色、灰色等)的图像。在典型缓冲区超过HMD的显示器的可显示区域的情况下,使用HMD的观众不会感知减小的缓冲区。然而,减小缓冲区能够在流送期间,减少表示球形视频的比特数。
在步骤S435,增加派发帧速率(例如,到目标帧速率)。例如,在帧速率低于目标帧速率的示例性实施方式中,能够增加派发帧速率以接近或满足目标帧速率。给定基于减小的缓冲区的比特数,能够将帧速率限制到不超过可用带宽的约束。因此,如果未达到目标帧速率,则步骤S430和S435能够重复,直到达到目标帧速率和/或达到一些最小缓冲区为止。
此外,能够基于恢复的正常回放帧速率(例如,在步骤S405和/或S435)和基于减小的带宽的修改来修改与视频相关联的音频的流送。例如,能够重新***音频、速度达到正常速度、渐强,能够恢复音频片段等。在循环或重复音频时,能够确定视频中的匹配点,并且能够在匹配点恢复相关的音频流。此外,无论音频回放中的循环的当前位置如何,都能渐强音频。
图5示出根据至少一个示例性实施例的帧速率选择的图。图5中所示的图示出实现图4的方法的三种可能的结果。如图5所示,如果带宽不受限制,则能够以目标帧速率流送全球形视频帧(505)。如果带宽受限并且能够可靠地预测帧中的下一位置,则能够减小视域视角周围的缓冲区,并且能够将帧速率增加或设置到目标帧速率(515)。如果带宽受限并且不能可靠地预测帧中的下一位置,则能够增加视域视角周围的缓冲区,并且能够将帧速率降低或设置为0 fps(例如,静态图像)(510)。
在图6A的示例中,视频编码器***600可以是或包括至少一个计算设备并且能直观地代表配置成执行本文所述的方法的任何计算设备。同样地,视频编码器***600能包括可以被利用来实现本文所述的技术的各种组件,或其不同或未来的变形。举例来说,视频编码器***600被图示为包括至少一个处理器605,以及至少一个存储器610(例如非瞬时计算机可读存储介质)。
图6A示出根据至少一个示例性实施例的视频编码器***。如图6A所示,视频编码器***600包括至少一个处理器605、至少一个存储器610、控制器620、和视频编码器625。至少一个处理器605、至少一个存储器610、控制器620、和视频编码器625经由总线615通信耦合。
至少一个处理器605可以被利用来执行在至少一个存储器610上存储的指令,使得实现本文所述的各种特征和功能,或附加或可替选的特征和功能。至少一个处理器605和至少一个存储器610可以被用于各种其他目的。特别地,至少一个存储器610能代表各种存储器和可以被用来实现本文所述的模块的任何一个的相关硬件和软件的示例。
至少一个存储器610可以被配置成存储与视频编码器***600相关联的数据和/或信息。例如,至少一个存储器610可以被配置为存储与编码球形视频相关联的编解码器。例如,至少一个存储器可以被配置为存储与将球形视频的帧的一部分选择为将与编码该球形视频分开编码的贴片相关联的编码。至少一个存储器610可以是共享资源。例如,视频编码器***600可以是更大型***(例如服务器、个人计算机、移动设备等)的元件。因此,至少一个存储器610可以被配置为存储与更大型***内的其他元件(例如图像/视频派发、web浏览或有线/无线通信)相关联的数据和/或信息。
控制器620可以被配置为生成各种控制信号并且将控制信号通信到视频编码器***600中的各个块。控制器620可以被配置为生成实现上文所述的技术的控制信号。控制器620可以被配置为根据示例性实施例,控制视频编码器625来编码图像、图像序列、视频帧、视频序列等。例如,控制器620可以生成对应于用于编码球形视频的参数的控制信号。
视频编码器625可以被配置为接收视频流输入5并且输出压缩的(例如编码的)视频比特10。视频编码器625可以将视频流输入5转换成离散视频帧。视频流输入5还可以是图像,相应地,压缩的(例如编码的)视频比特10也可以是压缩的图像比特。视频编码器625还可以将每一离散视频帧(或图像)转换成矩阵块(在下文中,称为块)。例如,可以将视频帧(或图像)转换成16×16、8×8、4×4或2×2块的矩阵,每一块具有多个像素。尽管列出了5种示例性矩阵,但示例性实施例不限于此。
压缩的视频比特10可以表示视频编码器***600的输出。例如,压缩视频比特10可以表示编码的视频帧(或编码的图像)。例如,压缩视频比特10可以已准备好传送到接收设备(未示出)。例如,视频比特可以被传送到***收发器(未示出)以用于传送到接收设备。
至少一个处理器605可以被配置为执行与控制器620和/或视频编码器625相关联的计算机指令。至少一个处理器605可以是共享资源。例如,视频编码器***600可以是更大型***(例如移动设备)的元件。因此,至少一个处理器605可以被配置为执行与更大型***内的其他元件(例如图像/视频派发、web浏览或有线/无线通信)相关联的计算机指令。
在图6B的示例中,视频解码器***650可以是至少一个计算设备并且能直观地代表被配置为执行本文所述的方法的任何计算设备。同样地,视频解码器***650能包括可以被用来实现本文所述的技术的各种组件,或不同或未来变形。举例来说,视频解码器***650被示为包括至少一个处理器655以及至少一个存储器660(例如计算机可读存储介质)。
由此,至少一个处理器655可以被用来执行在至少一个存储器660上存储的指令,使得实现本文所述的各种特征和功能,或附加或可替选的特征和功能。至少一个处理器655和至少一个存储器660可以被用于各种其他目的。特别地,至少一个存储器660可以代表各种类型的存储器以及可以被用来实现本文所述的任何一个模块的相关硬件和软件的示例。根据示例性实施例,视频编码器***600和视频解码器***650可以被包括在相同更大型***(例如个人计算机、移动设备等)中。根据示例性实施例,视频解码器***650可以被配置为实现参考视频编码器***600所述的技术的相反或逆操作。
至少一个存储器660可以被配置为存储与视频解码器***650相关联的数据和/或信息。例如,至少一个存储器610可以被配置为存储与解码编码的球形视频数据相关联的编解码器。例如,至少一个存储器可以被配置为存储与解码编码的贴片和单独编码的球形视频帧相关联的代码以及用于通过解码的贴片替代解码的球形视频帧中的像素的代码。至少一个存储器660可以是共享资源。例如,视频解码器***650可以是更大型***(例如个人计算机、移动设备等)的元件。因此,至少一个存储器660可以被配置为存储与更大型***内的其他元件(例如web浏览或无线通信)相关联的数据和/或信息。
控制器670可以被配置为生成各种控制信号并且将控制信号通信到视频解码器***650中的各个块。控制器670可以被配置为生成控制信号以便实现下文所述的视频解码技术。控制器670可以被配置为根据示例性实施例,控制视频解码器675来解码视频帧。控制器670可以被配置为生成对应于解码视频的控制信号。
视频解码器675可以被配置为接收压缩的(例如编码的)视频比特10输入并且输出视频流5。视频解码器675可以将压缩视频比特10的离散视频帧转换成视频流5。压缩的(例如编码的)视频比特10还可以是压缩的图像比特,相应地,视频流5也可以是图像。
至少一个处理器655可以被配置为执行与控制器670和/或视频解码器675相关联的指令。至少一个处理器655可以是共享资源。例如,视频解码器***650可以是更大型***(例如个人计算机、移动设备等)的元件。因此,至少一个处理器655可以被配置为执行与更大型***内的其他元件(例如web浏览或无线通信)相关联的计算机指令。
图7A和7B示出根据至少一个示例性实施例的分别用于图6A所示的视频编码器625和图6B中所示的视频解码器675的流程图。视频编码器625(上文所述)包括球形到2D表示块705、预测块710、变换块715、量化块720、熵编码块725、逆量化块730、逆变换块735、重构块740、和环路滤波器块745。能使用视频编码器625的其他结构变形来编码输入视频流5。如图7A所示,虚线表示若干块之间的重构路径以及实线表示若干块之间的前向路径。
上述块的每一个可以作为在与视频编码器***(例如,如图6A所示)相关联的存储器(例如至少一个存储器610)中存储的软件代码执行并且由与视频编码器***相关联的至少一个处理器(例如至少一个处理器605)执行。然而,能设想替选实施例,诸如具体化为专用处理器的视频编码器。例如,上述块的每一个(单独和/或结合)可以是专用集成电路或ASIC。例如,ASIC可以被配置为变换块715和/或量化块720。
球形到2D表示块705可以被配置为将球形帧或图像映射到该球形帧或图像的2D表示。例如,图2A示出球体200(例如帧或图像)。球体200能被投影在另一形状(例如方形、矩形、圆柱和/或立方体)的表面上。参考图2B,描述将球形帧或图像映射到该球形帧或图像的2D表示。
预测块710可以被配置为利用视频帧相干性(例如与先前编码的像素相比不会改变的像素)。预测可以包括两种类型。例如,预测可以包括帧内预测和帧间预测。帧内预测是指相对于图片的相邻、先前译码的块中的参考样本来预测相同图片块中的像素值。在帧内预测中,为减少由预测变换编解码器的变换(例如熵编码块725)和熵编码(例如熵编码块725)代码化的残差,由相同帧内的重构像素预测样本。帧间预测是指相对于先前代码化的图片的数据来预测图片块中的像素值。
变换块715可以被配置为将来自空间域的像素值转换成变换域中的变换系数。变换系数可以对应于通常与原始块相同大小的二维矩阵系数。换句话说,存在与原始块中的像素一样多的变换系数。然而,由于变换,一部分变换系数会具有等于0的值。
变换块715可以被配置为将(来自预测块710的)残差变换成例如频域中的变换系数。通常,变换包括Karhunen-Loève变换(KLT)、离散余弦变换(DCT)、奇异值分解变换(SVD)和不对称离散正弦变换(ADST)。
量化块720可以被配置为减小每一变换系数中的数据。量化可以包含将相对大范围内的值映射到相对小范围中的值,由此减少表示量化的变换系数所需的数据量。量化块720可以将变换系数转换成离散量子值,其被称为量化的变换系数或量化级。例如,量化块720可以被配置为将0添加到与变换系数相关联的数据。例如,编码标准可以在标量量化过程中定义128个量化级。
然后,由熵编码块725熵编码量化的变换系数。然后,熵编码的系数,连同解码该块所需的信息,诸如使用的预测的类型、运动矢量、和量化器值,一起被输出为压缩视频比特10。使用诸如行程长度编码(RLE)和零行程编码的各种技术来格式化压缩视频比特10。
提出图7A中的重构路径以确保视频编码器625和视频解码器675(下文参考图7B描述)使用相同参考帧来解码压缩视频比特10(或压缩图像比特)。重构路径执行与在下文更详细所述的解码过程期间发生的功能类似的功能,包括在逆量化块730处逆量化该量化的变换系数,以及在逆变换块735处逆变换该逆量化的变换系数,以便生成导数残差块(导数残差)。在重构块740处,能够将在预测块710处预测的预测块添加到导数残差来创建重构块。然后,将环路滤波器745应用于重构块来减少诸如块伪影的失真。
上文参考图7A所述的视频编码器625包括所示的块。然而,示例性实施例不限于此。基于所使用的不同的视频编码配置和/或技术,可以添加另外的块。此外,基于所使用的不同视频编码配置和/或技术,上文参考图7A所述的视频编码器625中所示的每一块可以是可选块。
图7B是被配置为解码压缩的视频比特10(或压缩的图像比特)的解码器675的示意块图。解码器675,与先前所述的编码器625的重构路径类似,包括熵解码块750、逆量化块755、逆变换块760、重构块765、环路滤波器块770、预测块775、解块滤波器块780、和2D表示到球形块785。
能够(例如使用场境(context)自适应二进制算法解码)由熵解码块750解码压缩的视频比特10内的数据元素来生成量化的变换系数集合。逆量化块755去量化该量化的变换系数,以及逆变换块760(使用ADST)逆变换该去量化的变换系数以生成能与在编码器625中的重构阶段创建的导数残差一致的导数残差。
使用从压缩视频比特10解码的报头信息,解码器675能使用预测块775来创建与在编码器675中创建的预测块相同的预测块。能将该预测块添加到导数残差来由重构块765创建重构块。能将环路滤波器块770应用于该重构块来减少块效应。能将解块滤波器块780应用于该重构块来减少块失真,并且将结果输出为视频流5。
2D表示到球形块785可以被配置为将球形帧或图像的2D表示映射到球形帧或图像。例如,图2A示出球体200(例如作为帧或图像)。球体200能被投影2D表面(例如方形或矩形)上。将球形帧或图像的2D表示映射到球形帧或图像能是先前映射的逆映射。
上文参考图7B所述的视频解码器675包括所示的块。然而,示例性实施例不限于此。基于所使用的不同视频编码配置和/或技术,可以添加另外的块。此外,基于所使用的不同的视频编码配置和/或技术,上文参考图7B所述的视频解码器675内所示的块的每一个可以是可选块。
编码器625和解码器可以被配置为分别编码球形视频和/或图像并且解码球形视频和/或图像。球形图像是包括球形组织的多个像素的图像。换句话说,球形图像是所有方向均连续的图像。因此,球形图像的观众能在任一方向(例如上、下、左、右或其任意组合)重新定位或重定向(例如移动她的头或眼睛)并且连续地查看图像的一部分。
图8示出根据至少一个示例性实施例的***800。如图8所示,***800包括控制器620、控制器670、视频编码器625,视域帧存储器795和方位传感器835。控制器620进一步包括视域位置控制模块805、贴片控制模块810和视域视角数据库815。控制器670进一步包括视域位置确定模块820、贴片请求模块825和缓冲器830。
根据示例性实施方式,方位传感器835检测观众的头部(和/或眼睛)的方位(或方位的改变),视域位置确定模块820基于检测的方位,确定视域(view)、视角(perspective)或视域视角(view perspective),并且贴片请求模块825将视域、视角或视域视角传送为对贴片或多个贴片(除了球形视频)的请求的一部分。根据另一示例性实施方式,方位传感器835基于如在HMD或显示器上渲染的图像平移方位来检测方位(或方位改变)。例如,HMD的用户可以改变焦深。换句话说,通过或不通过方位的改变,HMD的用户可以将焦点从距离远的对象改变到距离近的对象(或反之亦然)。例如,用户可以使用鼠标、跟踪杆或手势(例如在触敏显示器上)来选择、移动、拖拉和/或扩展等如在显示器上渲染的球形视频或图像的一部分。
对贴片的请求可以与对球形视频的帧的请求一起传送。对贴片的请求可以与对球形视频的帧的请求分开传送。例如,对贴片的请求可以响应于改变的视域、视角或视域视角,导致需要替换先前请求的和/或排队的贴片。
视域位置控制模块805接收和处理对贴片的请求。例如,视域位置控制模块805能基于视域,确定帧和帧中的贴片或多个贴片的位置。然后,视域位置控制模块805能指示贴片选择模块810来选择贴片和多个贴片。选择贴片或多个贴片能够包括将参数传递到视频编码器625。在编码球形视频和/或贴片期间,能由视频编码器625使用参数。替选地,选择贴片或多个贴片能够包括从视域帧存储器795选择贴片或多个贴片。
因此,贴片控制模块810可以被配置为基于正观看球形视频的用户的视域、视角或视域视角来选择贴片(或多个贴片)。贴片可以是基于视域选择的多个像素。多个像素可以是能包括能由用户看到的球形图像的一部分的块、多个块或宏块。球形图像的部分可以具有长度和宽度。球形图像的部分可以是二维或基本上二维的。贴片能具有可变大小(例如,贴片覆盖球体多少)。例如,能基于例如观众的视场多宽和/或用户多快地旋转他的头,来编码和流送贴片的大小。例如,如果观众连续地查看四周,则可以选择更大更低质量贴片。然而,如果观众聚焦在一个视角上,则可以选择更小更详细的贴片。
因此,方位传感器835能被配置为检测观众眼睛(或头)的方位(或方位的改变)。例如,方位传感器835能包括加速计以便检测运动,以及包括陀螺仪以便检测方位。替选地,或除此之外,方位传感器835能包括聚焦在观众的眼睛或头上的相机或红外传感器以便确定观众的眼睛或头的方位。替选地,或除此之外,方位传感器835能确定如在显示器上渲染的球形视频或图像的一部分以便检测球形视频或图像的方位。方位传感器835能被配置为将方位和方位信息的改变传送到视域位置确定模块820。
视域位置确定模块820能被配置为确定与球形视频有关的视域或视角视域(例如观众目前所看到的球形视频的一部分)。能将视域、视角或视域视角确定为球形视频上的位置、点或焦点。例如,视域能是球形视频上的纬度和经度位置。基于球形视频,能将视域、视角或视域视角确定为立方体的面。能够使用例如超文本传输协议(HTTP)将视域(例如纬度和经度位置或面)传送到视域位置控制模块805。
视域位置控制模块805可以被配置为确定球形视频内的贴片或多个贴片的视域位置(例如帧和帧内的位置)。例如,视域位置控制模块805能选择以视域位置、点或焦点为中心的矩形(例如纬度和经度位置或面)。贴片控制模块810能被配置为选择矩形作为贴片或多个贴片。贴片控制模块810能被配置为(例如经由参数或配置设置)指示视频编码器625来编码所选贴片或多个贴片,和/或贴片控制模块810能被配置为从视域帧储存器795选择贴片或多个贴片。
如将认识到,图6A和6B所示的***600和650和/或图8所示的***800可以实现为如下参考图9所述的通用计算机设备900和/或通用移动计算机设备950的元件和/或扩展。替选地,或除此之外,可以在与通用计算机设备900和/或通用移动计算机设备950分立的、具有如下参考通用计算机设备900和/或通用移动计算机设备950所述的一些或全部特征的***中,实现图6A和6B所示的***600和650和/或图8所示的***800。
图9是能用来实现本文所述的技术的计算机设备和移动计算机设备的示意框图。图9是可与本文所述的技术一起使用的通用计算机设备900和通用移动计算机设备950的示例。计算设备900旨在表示各种形式的数字式计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、主机及其他适当计算机。计算设备950旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝式电话、智能电话、及其他类似计算设备。本文所示的组件、其连接和关系、以及其功能旨在仅仅是示例性的,并不旨在限制在本文中描述和/或要求保护的本发明的实施方式。
计算设备900包括处理器902、存储器904、存储设备906、连接到存储器904和高速扩展端口910的高速接口以及连接到低速总线914和存储设备906的低速接口912。组件902、904、906、908、910和912中的每一个被使用各种总线互连,并且可在公共主板上或视情况以其他方式安装。处理器902可以处理用于在计算设备900内执行,包括存储在存储器904中或存储设备906上的指令,以在外部输入/输出设备,诸如被耦合到高速接口908的显示器916上显示用于GUI的图形信息。在其他实施方式中,可视情况使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。并且,可连接多个计算设备900,每个设备提供所需操作的部分(例如,作为服务器群、一组刀片服务器、或多处理器***)。
存储器904存储计算设备900内的信息。在一个实施方式中,存储器904是易失性存储器单元。在另一实施方式中,存储器904是非易失性存储器单元。存储器904也可以是其他形式的非暂时计算机可读介质,诸如磁盘或光盘。
存储设备906能够为计算设备900提供大容量存储。在一个实施方式中,存储设备906可以是或包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其他类似的固态存储器设备或设备阵列,包括在存储区域网络或其他配置中的设备。可以在信息载体中有形地体现计算机程序产品。计算机程序产品还可包含在被执行时执行一个或多个方法,诸如上文所述的那些方法的指令。信息载体是计算机或机器可读介质,诸如存储器904、存储设备906或处理器902上的存储器。
高速控制器908管理用于计算设备900的带宽密集操作,而低速控制器912管理较低带宽密集操作。功能的这样的分配可以仅仅是示例性的。在一个实施方式中,高速控制器908被耦合到存储器904、显示器916(例如,通过图形处理器或加速器)以及高速扩展端口910,其可接受各种扩展卡(未示出)。在本实施方式中,低速控制器912被耦合到存储设备906和低速扩展端口914。例如,可包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网等)的低速扩展端口可通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指针设备、扫描仪或联网设备,诸如交换机或路由器。
可用许多不同的形式来实现计算设备900,如图中所示。例如,可将其实现为标准服务器920或者在一组这样的服务器中实现多次。还可将其实现为机架服务器***924的一部分。另外,可将其在诸如膝上型计算机922的个人计算机中实现。替选地,可将来自计算设备900的组件与移动设备(未示出),诸如设备950中的其他组件组合。这样的设备中的每一个可包含计算设备900、950中的一个或多个,并且整个***可由相互通信的多个计算设备900、950构成。
计算设备950包括处理器952、存储器964、诸如显示器954的输入/输出设备、通信接口966以及收发器968以及其他组件。设备950还可提供有存储设备,诸如微型驱动或其他设备,以提供附加存储。组件950、952、964、954、966和968中的每一个被使用各种总线互连,并且组件中的多个可在公共主板上或视情况以其他方式安装。
处理器952可以执行计算设备950内的指令,包括存储在存储器964中的指令。可将处理器实现为包括单独和多个模拟和数字处理器的芯片的芯片集。例如,处理器可提供设备950的其他组件的协作,其他组件诸如用户接口的控件、由设备950运行的应用以及设备950的无线通信。
处理器952可通过控制接口958和被耦合到显示器954的显示接口956与用户通信。例如,显示器954可以是TFTLCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器或其他适当的显示技术。显示接口956可包括用于驱动显示器954以向用户呈现图形及其他信息的适当电路。控制接口958可从用户接收命令并对其进行转换以便提交到处理器952。另外,可提供与处理器952通信的外部接口962,从而使得能够实现设备950与其他设备的近区域通信。例如,外部接口962可在某些实施方式中提供有线通信或者在其他实施方式中提供无线通信,并且还可使用多个接口。
存储器964存储计算设备950内的信息。可以将存储器964实现为计算机可读介质或媒介、易失性存储器单元或非易失性存储器单元中的一个或多个。例如,还可提供扩展存储器974并通过扩展接口972将其连接到设备950,该扩展接口972可包括SIMM(单列直插式存储器模块)卡接口。这样的扩展存储器974可为设备950提供额外存储空间,或者还可以存储用于设备950的应用或其他信息。具体地,扩展存储器974可包括用以执行或补充上述过程的指令,并且也可包括安全信息。因此,例如,可将扩展存储器974提供为用于设备950的安全模块,并且可用许可设备950的安全使用的指令进行编程。另外,可经由SIMM卡来提供这样的应用,连同附加信息一起,诸如以不可入侵方式在SIMM卡上放置识别信息。
例如,存储器可包括闪速存储器和/或NVRAM存储器,如下面所讨论的。在一个实施方式中,在信息载体中有形地体现计算机程序产品。该计算机程序产品包含指令,该指令在被执行时执行一个或多个方法,诸如上文所述的那些。例如,该信息载体是计算机或机器可读介质,诸如存储器964、扩展存储器974或者可通过收发器968或外部接口962接收的处理器952上的存储器。
设备950可通过通信接口966来无线地进行通信,该通信接口966在必要时可包括数字信号处理电路。通信接口966可提供各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS通讯、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS及其他。例如,这样的通信可通过射频收发器968发生。另外,近程通信可诸如使用蓝牙、WiFi或其他这样的收发器(未示出)发生。另外,GPS(全球定位***)接收器模块970可向设备950提供附加导航和/或位置相关无线数据,其可视情况被在设备950上运行的应用使用。
设备950还可使用音频编解码器960以可听方式通信,其可从用户接收说出的信息并将其转换成可用数字信息。例如,音频编解码器960可同样地在设备950的耳机中诸如通过扬声器来为用户生成可听声音。这样的声音可包括来自语音电话呼叫的声音,可包括所记录的声音(例如,语音消息、音乐文件等),并且还可包括由在设备950上操作的应用生成的声音。
可以许多不同的形式来实现计算设备950,如图中所示。例如,可将其实现为蜂窝式电话980。还可将其实现为智能电话982、个人数字助理或其他类似移动设备的一部分。
图10A和10B是示例性HMD,诸如例如由用户佩戴的HMD 1000以生成沉浸式虚拟现实环境的透视图。HMD 1000可以包括耦合——例如可旋转耦合和/或可拆卸地附接到框架1020的壳体1010。包括例如安装在耳机中的扬声器的音频输出设备1030也可以耦合到框架1020。在图10B中,壳体1010的正面1010a旋转远离壳体1010的基部1010b,使得容纳在壳体1010中的一些组件可见。显示器1040可以安装在壳体1010的正面1010a上。当正面1010a相对于壳体1010的基部1010b,处于闭合位置时,镜头1050可以在用户的眼睛和显示器1040之间安装在壳体1010中。镜头1050的位置可以与用户眼睛的相应光轴对准,以提供相对宽的视场和相对短的焦距。在一些实施例中,HMD 1000可以包括包含各种传感器的感测***1060和包含处理器1090和各种控制***设备的控制***1070以便于HMD 1000的操作。
在一些实施方式中,HMD 1000可以包括相机1080以捕获HMD1000之外的现实世界环境的静态图像和运动图像。在一些实施方式中,在通过模式中,由相机1080拍摄的图像可以在显示器1040上被显示给用户,允许用户观看来自现实世界环境的图像,而不需要移除HMD1000,或以其他方式改变HMD 1000的配置来将壳体1010移出用户的视线。
在一些实施方式中,HMD 1000可以包括光学跟踪设备1065,其包括例如一个或多个图像传感器1065A,以检测和跟踪用户眼睛运动和活动,诸如例如光学位置(例如,注视)、光学活动(例如,滑动)、光学举动(诸如眨眼)等。在一些实施方式中,HMD 1000可以被配置为使得由光学跟踪设备1065检测到的光学活动被处理为用户输入,以被转换成由HMD 1000生成的虚拟环境中的相应交互。
在示例性实施方式中,穿戴HMD 1000的用户能够在由HMD 1000生成的沉浸式虚拟环境中交互。在一些实施方式中,可以基于包括在HMD 1000中的各种传感器,例如包括例如如在陀螺仪中的加速度计、陀螺仪、磁力计等的惯性测量单元或者以这种方式适配的智能电话,跟踪HMD 1000的六自由度(6DOF)位置和方位。在一些实施方式中,可以基于由***中的其他传感器,诸如包括在HMD 1000中的图像传感器连同方位传感器一起检测的HMD 1000的位置,跟踪6DOF位置。也就是说,诸如例如物理运动的HMD 1000的操作可以被转换成虚拟环境中的相应的交互或运动。
例如,HMD 1000可以包括陀螺仪,该陀螺仪生成指示HMD 1000的角运动的信号,其能够被转换成虚拟环境中的定向运动。在一些实施方式中,HMD 1000还可以包括加速度计,其生成指示HMD 1000的加速度,例如在与由陀螺仪生成的方向信号相对应的方向上的加速度的信号。在一些实施方式中,HMD 1000还可以包括磁力计,其基于所检测的磁场的强度和/或方向,生成指示HMD 1000在现实世界环境中的相对位置的信号。HMD 1000在现实环境中检测到的三维位置以及与由陀螺仪和/或加速度计和/或磁力计提供的HMD1000相关的方位信息可以提供HMD 1000的6DOF跟踪,使得HMD 1000的用户操纵可以被转换为虚拟环境中的目标或预期交互和/或被定向到虚拟环境中的所选虚拟对象。
根据示例性实施例,头戴式显示器(HMD)包括处理器和存储器。存储器包括作为指令的代码,其使处理器发送视域视角从流送视频中的第一位置改变到第二位置的指示,确定与从第一位置到第二位置的改变相关联的改变速率,并且基于视域视角的改变速率来降低视频的回放帧速率。
实施方式可以包括其一个或多个组合中的一个或多个以下特征。例如,能够基于发送视域视角的改变的指示的频率来确定所述改变速率。能够基于所述第一位置和所述第二位置之间的距离来确定所述改变速率。降低所述视频的回放帧速率能够包括:确定所述改变速率是否低于阈值,以及在确定所述改变速率低于阈值时,停止所述回放帧速率。降低所述视频的回放帧速率能够包括确定所述改变速率是否低于阈值,以及在确定改变速率低于阈值时,用静态图像替换所述视频的一部分。作为指令的代码能够进一步使所述处理器确定所述改变速率是否高于阈值,在确定所述改变速率高于阈值时,恢复以目标回放帧速率回放所述,以及发送已经恢复以所述目标回放帧速率回放所述视频的指示。
根据示例性实施例,一种流送服务器包括处理器和存储器。该存储器包括作为致使处理器执行以下操作的指令的代码:接收视域视角在流送视频中从第一位置改变到第二位置的指示;接收与从所述第一位置到所述第二位置的改变相关联的改变速率的指示;基于针对视域视角的改变速率,使用具有所述视频的降低的回放帧速率的较低带宽来流送所述视频。
实施方式可以包括其一个或多个组合中的一个或多个以下特征。例如,能够基于发送视域视角的改变的指示的频率来确定所述改变速率。能够基于所述第一位置和所述第二位置之间的距离来确定所述改变速率。使用较低带宽流送所述视频能够包括确定所述改变速率是否低于阈值,以及在确定所述改变速率低于阈值时,停止流送所述视频。能够使用较低带宽来流送所述视频包括确定所述改变速率是否低于阈值,以及在确定改变速率低于阈值时,用静态图像替换所述视频的一部分。作为指令的代码能够进一步致使处理器接收已经恢复以目标回放帧速率回放所述视频的指示;以及使用与所述目标回放帧速率相关联的带宽来流送所述视频。
根据示例性实施例,一种流送服务器包括处理器和存储器。存储器包括作为致使处理器执行以下操作的指令的代码:确定带宽是否可用于以目标派发帧速率流送视频。在确定所述带宽可用时,以所述目标派发帧速率流送所述视频。在确定所述带宽不可用时:确定方位速度预测是否能够预测下一帧位置。在确定所述方位速度预测能够预测下一帧位置时:利用与视域视角相关联的第一缓冲区来派发视频帧;以及以第一帧速率流送所述视频帧。在确定所述方位速度预测不能预测下一帧位置时:利用第二缓冲区派发所述视频帧,所述第二缓冲区大于第一缓冲区,以及以第二帧速率流送所述视频帧。
实施方式可以包括其一个或多个组合中的一个或多个以下特征。例如,所述视频是球形视频。确定带宽是否可用包括对与所述视频相关联的分组加时间戳,以及确定所述视频分组到达目的地所需的时间。利用所述第一缓冲区来派发所述视频帧包括:基于视域视角来确定待流送的像素数量,以及基于所述视域视角和所述第一缓冲区的大小,确定待流送的附加像素的数量。利用所述第二缓冲区来派发所述视频帧包括:基于所述视域视角来确定待流送的像素数量,以及基于所述视域视角和所述第二缓冲区的大小来确定待流送的附加像素的数量。以所述第一帧速率流送所述视频帧包括使所述第一帧速率增大到目标帧速率。以所述第二帧速率流送所述视频帧包括:使所述第二帧速率减小到大于或等于0帧/秒(fps)的帧速率。基于对应的帧速率,修改与所述视频相关联的音频的流送。
将上述示例实施例中的某些描述为被描述为流程图的过程或方法。虽然流程图可将操作描述为连续过程,但许多操作可并行地、并发地或同时地执行。另外,可重新排列操作的顺序。过程在其操作完成时可终止,但是也可具有图中未包括的附加步骤。该过程可对应于方法、功能、规程、子例程、子程序等。
可通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现上文所讨论的方法,通过流程图举图示了其中的某些。当用软件、固件、中间件或微代码来实现时,可将执行必要任务的程序或代码段存储在诸如存储介质。处理器可执行所需任务。
出于描述示例实施例的目的,在本文中公开的特定结构和功能细节仅仅是代表性的。然而,可用许多替选形式来体现示例实施例,并且不应将其理解为仅限于本文所阐述的实施例。
将理解的是,虽然在本文中可使用术语第一、第二等来描述各种元件,但这些元件不应受到这些术语的限制。这些术语仅用来将一个元件与另一个区别开。例如,在不脱离示例实施例的范围的情况下,可以将第一元件称为第二元件,同样地,可以将第二元件称为第一元件。如本文所使用的术语“和/或”包括关联开列项目中的一个或多个的任何和所有组合。
将理解的是当将元件称为“连接”或“耦合”到另一元件时,其可以被直接地连接或耦合到该另一元件或者可存在中间元件。相反地,当将元件被称为“直接地被连接”或“直接地被耦合”到另一元件时,不存在中间元件。应以类似方式解释用来描述元件之间的关系的其他词语(例如,“在...之间”对比“直接地在...之间”、“邻近于”或“直接地邻近于”等)。
在本文中使用的术语仅仅是出于描述特定实施例的目的且并不旨在限制示例实施例。如本文所使用的单数形式“一”、“一个”和“所述”旨在也包括复数形式,除非上下文另外清楚地指明。将进一步理解的是术语“包括”和/或“包含”当在本文中使用时指定所述特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组的存在或添加。
还应注意到的是在某些替选实施方式中,功能/动作可不按照图中所述的顺序发生。例如,取决于涉及到的功能/动作,连续地示出的两个图实际上可基本上同时地执行或者有时被按照相反顺序执行。
除非另外定义,本文所使用的所有术语(包括技术和科学术语)具有如示例实施例所属技术领域的技术人员一般地理解的相同意义。将进一步理解的是应将术语,例如,在一般使用的词典中所定义的那些术语理解为具有与其在相关技术的背景中的意义一致的意义,并且不应在理想化或过度形式化的意义上解释,除非在本文中明确地这样定义。
在对计算机存储器内的数据位的操作的软件或算法和符号表示方面提出了上述示例实施例和对应详细描述的部分。这些描述和表示是本领域的技术人员用来向本领域的其他技术人员有效地传达其工作的主旨的描述和表示。将算法,如本文所使用术语并且如其一般地使用的那样,设想为是导致期望结果的步骤的自相一致序列。该步骤是要求物理量的物理操纵的那些。通常但不一定地,这些量采取能够被存储、传送、组合、比较以及另外操纵的光、电或磁信号的形式。将这些信号称为位、值、元素、符号、字符、项、数等有时已被证明是方便的,主要是由于常见使用的原因。
在上述说明性实施例中,对可实现为程序模块或功能过程的操作的动作和符号表示(例如,以流程图的形式)的提及包括例程、程序、对象、组件、数据结构等,其执行特定任务或实现特定抽象数据类型,并且可使用现有结构元件处的现有硬件来描述和/或实现。这样的现有硬件可包括一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路、现场可编程门阵列(FPGA)计算机等。
然而,应记住的是所有这些和类似术语将与适当地物理量相关联,并且仅仅是应用于这些量的方便标记。除非另外具体地叙述,或者从本讨论显而易见,诸如“处理”或“运算”或“计算”、“确定”或“显示”等术语指代计算机***或类似电子计算设备的动作和过程,其操纵被表示为计算机***的寄存器和存储器内的物理量、电子量的数据并将其变换成同样地表示为计算机***存储器或寄存器或其他这样的信息存储、传输或显示设备内的物理量的其他数据。
还请注意,示例实施例的软件实现方面通常是在某种形式的非暂时程序存储介质上编码或者在某种类型的传输介质上实现。程序存储介质可以是磁性(例如,软盘或硬盘驱动)或光学的(例如,光盘只读存储器或“CDROM”),并且可以是只读的或随机存取的。类似地,传输介质可以是扭绞线对、同轴电缆、光纤或本领域已知的某种其他适当传输介质。示例实施例不受任何给定实施方式的这些方面的限制。
最后,应注意到尽管附图指出本文所述的特征的特定组合,本公开的范围不限于下文所述的特定组合,而是延伸到涵盖本文所公开的特征或实施例的任何组合,与此时附图中是否具体列举那一特定组合无关。
Claims (20)
1.一种流送服务器,包括:
处理器;以及
存储器,所述存储器包括作为指令的代码,所述作为指令的代码使得所述处理器:
确定带宽是否能用于以目标派发帧速率流送视频;
在确定所述带宽能用时,以所述目标派发帧速率流送所述视频;
在确定所述带宽不能用时:
确定方位速度预测是否能够预测下一帧位置;
在确定所述方位速度预测能够预测下一帧位置时:
利用与视域视角相关联的第一缓冲区来派发所述视频的帧;以及
以第一帧速率流送所述视频的所述帧;
在确定所述方位速度预测不能预测下一帧位置时:
利用第二缓冲区来派发所述视频的所述帧,所述第二缓冲区大于所述第一缓冲区,以及
以第二帧速率流送所述视频的所述帧。
2.根据权利要求1所述的流送服务器,其中,所述视频是球形视频。
3.根据权利要求1所述的流送服务器,其中,确定带宽是否能用包括:
对与所述视频相关联的数据分组加时间戳,以及
确定视频分组到达目的地所需的时间。
4.根据权利要求1所述的流送服务器,其中,利用所述第一缓冲区来派发所述视频帧包括:
基于所述视域视角来确定待流送的像素的数量,以及
基于所述视域视角和所述第一缓冲区的大小,确定待流送的附加像素的数量。
5.根据权利要求1所述的流送服务器,其中,利用所述第二缓冲区来派发所述视频的所述帧包括:
基于所述视域视角来确定待流送的像素的数量,以及
基于所述视域视角和所述第二缓冲区的大小,确定待流送的附加像素的数量。
6.根据权利要求1所述的流送服务器,其中,以所述第一帧速率流送所述视频的所述帧包括:使所述第一帧速率增大到目标帧速率。
7.根据权利要求1所述的流送服务器,其中,以所述第二帧速率流送所述视频帧包括:使所述第二帧速率减小到大于或等于零帧/秒(fps)的帧速率。
8.根据权利要求1所述的流送服务器,其中,基于对应的帧速率,修改与所述视频相关联的音频的流送。
9.根据权利要求1所述的流送服务器,其中,所述作为指令的代码进一步使得所述处理器:
接收在流送视频中视域视角已经从第一位置改变到第二位置的指示;
接收与从所述第一位置到所述第二位置的改变相关联的改变速率的指示;
基于所述改变速率,使用具有所述视频的降低的回放帧速率的较低带宽来流送所述视频。
10.根据权利要求1所述的流送服务器,其中,所述作为指令的代码进一步使得所述处理器:
接收与视域视角的改变相关联的改变速率的指示;
确定所述改变速率是否低于阈值,以及
响应于确定所述改变速率低于所述阈值时,停止流送所述视频。
11.一种用于流送视频的方法,包括:
确定带宽是否能用于以目标派发帧速率流送视频;
响应于确定所述带宽能用时,以所述目标派发帧速率流送所述视频;
响应于确定所述带宽不能用:
确定方位速度预测是否能够预测下一帧位置;
响应于确定所述方位速度预测能够预测下一帧位置:
利用与视域视角相关联的第一缓冲区来派发所述视频的帧;以及
以第一帧速率流送所述视频的所述帧;
响应于确定所述方位速度预测不能预测下一帧位置:
利用第二缓冲区来派发所述视频的所述帧,所述第二缓冲区大于所述第一缓冲区,以及
以第二帧速率流送所述视频的所述帧。
12.根据权利要求11所述的方法,其中,所述视频是球形视频。
13.根据权利要求11所述的方法,其中,确定带宽是否能用包括:
对与所述视频相关联的数据分组加时间戳,以及
确定视频分组到达目的地所需的时间。
14.根据权利要求11所述的方法,其中,利用所述第一缓冲区来派发所述视频帧包括:
基于所述视域视角来确定待流送的像素的数量,以及
基于所述视域视角和所述第一缓冲区的大小,确定待流送的附加像素的数量。
15.根据权利要求11所述的方法,其中,利用所述第二缓冲区来派发所述视频的所述帧包括:
基于所述视域视角来确定待流送的像素的数量,以及
基于所述视域视角和所述第二缓冲区的大小,确定待流送的附加像素的数量。
16.根据权利要求11所述的方法,其中,以所述第一帧速率流送所述视频的所述帧包括:使所述第一帧速率增大到目标帧速率。
17.根据权利要求11所述的方法,其中,以所述第二帧速率流送所述视频帧包括:使所述第二帧速率减小到大于或等于零帧/秒(fps)的帧速率。
18.根据权利要求11所述的方法,其中,基于对应的帧速率,修改与所述视频相关联的音频的流送。
19.根据权利要求11所述的方法,进一步包括:
接收在流送视频中视域视角已经从第一位置改变到第二位置的指示;
接收与从所述第一位置到所述第二位置的改变相关联的改变速率的指示;
基于所述改变速率,使用具有所述视频的降低的回放帧速率的较低带宽来流送所述视频。
20.根据权利要求11所述的方法,进一步包括:
接收与视域视角的改变相关联的改变速率的指示;
确定所述改变速率是否低于阈值,以及
响应于确定所述改变速率低于所述阈值时,停止流送所述视频。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562216585P | 2015-09-10 | 2015-09-10 | |
US62/216,585 | 2015-09-10 | ||
PCT/US2016/051024 WO2017044795A1 (en) | 2015-09-10 | 2016-09-09 | Playing spherical video on a limited bandwidth connection |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107667534A CN107667534A (zh) | 2018-02-06 |
CN107667534B true CN107667534B (zh) | 2020-06-30 |
Family
ID=57471971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680028763.4A Active CN107667534B (zh) | 2015-09-10 | 2016-09-09 | 在有限的带宽连接中播放球形视频 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10379601B2 (zh) |
EP (1) | EP3347810A1 (zh) |
CN (1) | CN107667534B (zh) |
WO (1) | WO2017044795A1 (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6741784B2 (ja) | 2016-04-08 | 2020-08-19 | ヴィズビット インコーポレイテッド | ビューを意識した360度ビデオストリーミング |
US10657674B2 (en) | 2016-06-17 | 2020-05-19 | Immersive Robotics Pty Ltd. | Image compression method and apparatus |
US10743003B1 (en) * | 2016-09-01 | 2020-08-11 | Amazon Technologies, Inc. | Scalable video coding techniques |
US10743004B1 (en) * | 2016-09-01 | 2020-08-11 | Amazon Technologies, Inc. | Scalable video coding techniques |
KR102598082B1 (ko) * | 2016-10-28 | 2023-11-03 | 삼성전자주식회사 | 영상 표시 장치, 모바일 장치 및 그 동작방법 |
DE102017200325A1 (de) * | 2017-01-11 | 2018-07-12 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zum Betreiben eines Anzeigesystems mit einer Datenbrille in einem Kraftfahrzeug |
AU2018218182B2 (en) | 2017-02-08 | 2022-12-15 | Immersive Robotics Pty Ltd | Antenna control for mobile device communication |
JP6873268B2 (ja) * | 2017-03-22 | 2021-05-19 | 華為技術有限公司Huawei Technologies Co.,Ltd. | 仮想現実画像を送信するための方法および装置 |
CN110520903B (zh) | 2017-03-28 | 2023-11-28 | 三星电子株式会社 | 基于用户移动信息显示图像的方法和装置 |
US10547704B2 (en) * | 2017-04-06 | 2020-01-28 | Sony Interactive Entertainment Inc. | Predictive bitrate selection for 360 video streaming |
CN108693970B (zh) * | 2017-04-11 | 2022-02-18 | 杜比实验室特许公司 | 用于调适可穿戴装置的视频图像的方法和设备 |
US10939038B2 (en) * | 2017-04-24 | 2021-03-02 | Intel Corporation | Object pre-encoding for 360-degree view for optimal quality and latency |
AU2018280337B2 (en) * | 2017-06-05 | 2023-01-19 | Immersive Robotics Pty Ltd | Digital content stream compression |
WO2018236715A1 (en) * | 2017-06-19 | 2018-12-27 | Bitmovin, Inc. | STORING PREDICTIVE CONTINUOUS DIFFUSION CONTENT OF IMMERSIVE VIDEO |
US10818087B2 (en) | 2017-10-02 | 2020-10-27 | At&T Intellectual Property I, L.P. | Selective streaming of immersive video based on field-of-view prediction |
EP3714602A4 (en) | 2017-11-21 | 2021-07-28 | Immersive Robotics Pty Ltd | IMAGE COMPRESSION FOR DIGITAL REALITY |
TW201935927A (zh) | 2017-11-21 | 2019-09-01 | 澳大利亞商伊門斯機器人控股有限公司 | 用於影像壓縮之頻率分量選擇 |
US10390063B2 (en) | 2017-12-22 | 2019-08-20 | Comcast Cable Communications, Llc | Predictive content delivery for video streaming services |
US10798455B2 (en) | 2017-12-22 | 2020-10-06 | Comcast Cable Communications, Llc | Video delivery |
JP6349455B1 (ja) | 2017-12-27 | 2018-06-27 | 株式会社ドワンゴ | サーバおよびプログラム |
US10659815B2 (en) | 2018-03-08 | 2020-05-19 | At&T Intellectual Property I, L.P. | Method of dynamic adaptive streaming for 360-degree videos |
US11182962B2 (en) * | 2018-03-20 | 2021-11-23 | Logitech Europe S.A. | Method and system for object segmentation in a mixed reality environment |
US10812828B2 (en) | 2018-04-10 | 2020-10-20 | At&T Intellectual Property I, L.P. | System and method for segmenting immersive video |
JP2020005038A (ja) * | 2018-06-25 | 2020-01-09 | キヤノン株式会社 | 送信装置、送信方法、受信装置、受信方法、及び、プログラム |
JP7171322B2 (ja) * | 2018-09-04 | 2022-11-15 | キヤノン株式会社 | 画像処理装置、画像処理方法およびプログラム |
US11127214B2 (en) * | 2018-09-17 | 2021-09-21 | Qualcomm Incorporated | Cross layer traffic optimization for split XR |
CN110351595B (zh) * | 2019-07-17 | 2023-08-18 | 北京百度网讯科技有限公司 | 一种缓冲处理方法、装置、设备和计算机存储介质 |
JP7496677B2 (ja) * | 2019-09-30 | 2024-06-07 | 株式会社ソニー・インタラクティブエンタテインメント | 画像データ転送装置、画像表示システム、および画像圧縮方法 |
US11635802B2 (en) * | 2020-01-13 | 2023-04-25 | Sony Interactive Entertainment Inc. | Combined light intensity based CMOS and event detection sensor for high speed predictive tracking and latency compensation in virtual and augmented reality HMD systems |
KR20220006680A (ko) * | 2020-07-08 | 2022-01-18 | 삼성디스플레이 주식회사 | 표시 장치 및 이를 이용한 표시 패널의 구동 방법 |
US20230206884A1 (en) * | 2021-12-27 | 2023-06-29 | Synaptics Incorporated | Activity-focused display synchronization |
CN117978940A (zh) * | 2022-01-28 | 2024-05-03 | 杭州海康威视数字技术股份有限公司 | 一种录像机、视频数据处理方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628282B1 (en) * | 1999-10-22 | 2003-09-30 | New York University | Stateless remote environment navigation |
CN101682738A (zh) * | 2007-05-23 | 2010-03-24 | 日本电气株式会社 | 视频流送***、代码转换装置和视频流送方法 |
CN102598657A (zh) * | 2009-10-27 | 2012-07-18 | 佳能株式会社 | 视频回放设备和用于控制视频回放设备的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9965681B2 (en) * | 2008-12-16 | 2018-05-08 | Osterhout Group, Inc. | Eye imaging in head worn computing |
US20120092348A1 (en) | 2010-10-14 | 2012-04-19 | Immersive Media Company | Semi-automatic navigation with an immersive image |
ES2927175T3 (es) * | 2013-02-12 | 2022-11-03 | Reneuron Ltd | Método de producción de micropartículas |
KR20150081761A (ko) * | 2014-01-06 | 2015-07-15 | 삼성전자주식회사 | 화면 출력 조절 방법 및 장치 |
US20160147063A1 (en) * | 2014-11-26 | 2016-05-26 | Osterhout Group, Inc. | See-through computer display systems |
US9699437B2 (en) * | 2014-03-03 | 2017-07-04 | Nextvr Inc. | Methods and apparatus for streaming content |
US10609663B2 (en) * | 2014-07-11 | 2020-03-31 | Qualcomm Incorporated | Techniques for reporting timing differences in multiple connectivity wireless communications |
US10178291B2 (en) * | 2014-07-23 | 2019-01-08 | Orcam Technologies Ltd. | Obtaining information from an environment of a user of a wearable camera system |
GB2536025B (en) * | 2015-03-05 | 2021-03-03 | Nokia Technologies Oy | Video streaming method |
US20160378176A1 (en) * | 2015-06-24 | 2016-12-29 | Mediatek Inc. | Hand And Body Tracking With Mobile Device-Based Virtual Reality Head-Mounted Display |
US9851792B2 (en) * | 2016-04-27 | 2017-12-26 | Rovi Guides, Inc. | Methods and systems for displaying additional content on a heads up display displaying a virtual reality environment |
US9858637B1 (en) * | 2016-07-29 | 2018-01-02 | Qualcomm Incorporated | Systems and methods for reducing motion-to-photon latency and memory bandwidth in a virtual reality system |
-
2016
- 2016-09-09 CN CN201680028763.4A patent/CN107667534B/zh active Active
- 2016-09-09 US US15/261,225 patent/US10379601B2/en active Active
- 2016-09-09 EP EP16805550.7A patent/EP3347810A1/en not_active Withdrawn
- 2016-09-09 WO PCT/US2016/051024 patent/WO2017044795A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628282B1 (en) * | 1999-10-22 | 2003-09-30 | New York University | Stateless remote environment navigation |
CN101682738A (zh) * | 2007-05-23 | 2010-03-24 | 日本电气株式会社 | 视频流送***、代码转换装置和视频流送方法 |
CN102598657A (zh) * | 2009-10-27 | 2012-07-18 | 佳能株式会社 | 视频回放设备和用于控制视频回放设备的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017044795A1 (en) | 2017-03-16 |
CN107667534A (zh) | 2018-02-06 |
EP3347810A1 (en) | 2018-07-18 |
US20170075416A1 (en) | 2017-03-16 |
US10379601B2 (en) | 2019-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107667534B (zh) | 在有限的带宽连接中播放球形视频 | |
US20160353146A1 (en) | Method and apparatus to reduce spherical video bandwidth to user headset | |
JP6501904B2 (ja) | 球面ビデオのストリーミング | |
US10891784B2 (en) | Method, apparatus and stream for immersive video format | |
US9917877B2 (en) | Streaming the visible parts of a spherical video | |
KR102492565B1 (ko) | 가상 현실 미디어 컨텐츠의 패키징 및 스트리밍을 위한 방법 및 장치 | |
KR101969943B1 (ko) | 사용자 헤드셋으로의 구면 영상 대역폭을 감소시키는 방법 및 장치 | |
US20200380765A1 (en) | Method, apparatus and stream for encoding/decoding volumetric video | |
US9918094B2 (en) | Compressing and representing multi-view video | |
KR102371099B1 (ko) | 광시야 비디오를 인코딩하기 위한 구면 회전 기법 | |
Shi et al. | Freedom: Fast recovery enhanced vr delivery over mobile networks | |
KR20190046850A (ko) | 몰입형 비디오 포맷을 위한 방법, 장치 및 스트림 | |
CN110710207B9 (zh) | 一种用于流送视频的方法、内容服务器和可读存储介质 | |
US11570417B2 (en) | Immersive video streaming using view-adaptive prefetching and buffer control | |
US20210074025A1 (en) | A method and apparatus for encoding and decoding three-dimensional scenes in and from a data stream | |
EP3179336A1 (en) | Method and device for rendering haptic effects in an immersive content |
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 |