CN113839908B - 视频传输方法、装置、系统及计算机可读存储介质 - Google Patents
视频传输方法、装置、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113839908B CN113839908B CN202010581695.2A CN202010581695A CN113839908B CN 113839908 B CN113839908 B CN 113839908B CN 202010581695 A CN202010581695 A CN 202010581695A CN 113839908 B CN113839908 B CN 113839908B
- Authority
- CN
- China
- Prior art keywords
- terminal
- server
- time
- information
- period
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/44—Receiver circuitry for the reception of television signals according to analogue transmission standards
- H04N5/4448—Receiver circuitry for the reception of television signals according to analogue transmission standards for frame-grabbing
-
- 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/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- 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/80—Responding to QoS
-
- 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
- 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/756—Media network packet handling adapting media to device capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/38—Transmitter circuitry for the transmission of television signals according to analogue transmission standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供一种视频传输方法、装置及系统,可以减少VR视频传输中冗余数据的产生,降低传输突发带宽,还可以降低转头高清显示时延MTHR。该方法包括:终端通过第一链路按照第一周期向服务器发送第一视角信息,相应的,服务器通过第一链路按照第一周期接收来自中的第一视角信息;服务器按照第二周期确定该第一视角信息为最新的视角信息后,获取第一视角信息对应的第一帧图像的数据,并通过第二链路向终端发送该第一帧图像的数据。相应的,终端通过第二链路按照第二周期接收来自服务器的该第一帧图像的数据。
Description
技术领域
本申请涉及虚拟现实技术领域,尤其涉及一种视频传输方法、装置及系统。
背景技术
在虚拟现实(virtual reality,VR)视频的传输过程中,可以将一路VR全景视频拆分成一路视场角(field of view,FoV)流和一路全景流进行传输,该FoV流为用户当前视角内的视频数据。示例性的,一路8K VR全景视频可以被拆分成一路4K FoV流和一路4K全景流。
通常情况下,VR视频的FoV流的传输流程如图1所示。具体流程包括:
步骤1、终端向服务器请求FoV1的视频数据。响应于该请求,服务器开始传输FoV1的视频数据。终端收到FoV1的视频数据后,解码显示。
其中,终端向服务器请求的FoV数据通常是以秒级分片(30-60帧)为粒度的。
步骤2、终端感知到用户视角变换(例如用户转头),即探测到用户的FoV由FoV1变为FoV2。
步骤3、终端停止解码和显示FoV1的视频数据。
步骤4、终端通知服务器停止传输FoV1的视频数据。服务器响应于该通知,停止传输FoV1的视频数据。
此外,终端丢弃已经接收到的FoV1的视频数据,这些被丢弃的终端缓存的之前视角的FoV数据即为冗余数据。
步骤5、终端向服务器请求FoV2的视频数据。响应于该请求,服务器开始传输FoV2的视频数据。终端收到FoV2的视频数据后,解码显示。
该方法中,由于网络传输存在一定时延,导致用户的FoV发生变化时,服务器不能及时收到终端发出的停止发送FoV1的视频数据的命令,在该时延内,服务器可能会继续传输FoV1的视频数据,导致大量冗余数据的产生。而在服务器收到终端请求FoV2的视频数据的信令后,为了弥补由于FoV1的冗余数据的传输以及信令传输时延所耽误的时间,服务器会增加传输带宽,从而增加传输突发带宽,造成播放卡顿或显示低清视频,影响用户体验。
发明内容
本申请实施例提供一种视频传输方法、装置及系统,可以减少VR视频传输过程中冗余数据的产生,降低传输突发带宽。此外,还可以降低转头高清显示时延MTHR。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,提供了一种视频传输方法。该方法可以由服务器执行,也可以由服务器的部件,例如服务器的处理器、电路、芯片、或芯片系统等执行,本申请以服务器执行该方法为例进行说明。该方法包括:服务器通过第一链路按照第一周期接收来自终端的第一视角信息,并按照第二周期确定第一视角信息为最新的视角信息;之后获取该第一视角信息对应的第一帧图像的数据,并通过第二链路向终端发送第一帧图像的数据。
基于该方案,服务器按照第二周期获取终端上报的最新视角信息及其对应的一帧图像的数据,即服务器侧生成和发送图像数据的时间由服务器独立控制;且服务器每次生成和发送最新视角信息对应的一帧图像的数据,可以将传输的粒度降低到图像帧级别,更精细地控制每一帧图像的处理和发送时间,减少冗余数据的生成与传输,进而降低传输突发带宽。此外,由于终端通过第一链路上报视角信息,服务器通过第二链路发送图像数据,因此上报视角信息使用的是独立链路,不会影响图像数据的发送和接收,在传输新视角信息对应的图像数据时,不涉及传输链路的重新建立,进而可以降低MTHR。
在一些可能的设计中,第二周期是根据视频的帧率确定的,上述第一帧图像属于该视频。基于该可能的设计,第二周期可以为相邻两帧图像之间的显示间隔,从而在服务器以第二周期发送最新视角信息对应的一帧图像时,通常情况下不会出现跳帧的问题,从而不会对用户体验造成影响。
在一些可能的设计中,服务器按照第二周期确定第一视角信息为最新的视角信息,包括:服务器根据服务器的时钟,按照第二周期确定第一视角信息为最新的视角信息。基于该可能的设计,可以使得服务器侧生成和发送图像数据的时间由服务器独立控制,不受视角信息传输的影响。
在一些可能的设计中,该视频传输方法还包括:服务器接收来自终端的第一信息,该第一信息用于指示向终端发送图像数据的第一基准时刻,该第一基准时刻为服务器首次向终端发送图像数据的时刻。基于该可能的设计,可以使得服务器确定首次向终端发送图像数据的时刻,从而在后续可以第一基准时刻为基准时刻,按照第二周期发送图像数据。
在一些可能的设计中,该视频传输方法还包括:服务器接收来自终端的第二信息,该第二信息用于指示在第二基准时刻发送第二帧图像的数据,该第二帧图像为终端待接收的下一帧图像,第二基准时刻晚于第一时刻,或者,第二基准时刻早于第一时刻,该第一时刻为按照以第一基准时刻为开始时刻的第二周期发送第二帧图像的时刻。
在一些可能的设计中,第二信息包括第二基准时刻和/或第二帧图像的帧号。
基于上述两种可能的设计,服务器可以根据终端的指示,实时动态调整服务器发送图像数据的时间,可以有效缓解由于网络情况变化,特别是传输时延的抖动导致的传输不稳定的问题,提高传输稳定性,从而提高用户体验。
第二方面,提供了一种视频传输方法。该方法可以由终端执行,也可以由终端的部件,例如终端的处理器、电路、芯片、或芯片系统等执行,本申请以终端执行该方法为例进行说明。该方法包括:终端通过第一链路按照第一周期向服务器发送第一视角信息,通过第二链路按照第二周期接收来自服务器的第一视角信息对应的第一帧图像的数据。
基于该方案,服务器按照第二周期向终端发送终端上报的最新视角信息对应的一帧图像的数据,即服务器侧生成和发送图像数据的时间由服务器独立控制;且服务器每次生成和发送最新视角信息对应的一帧图像的数据,可以将传输的粒度降低到图像帧级别,更精细地控制每一帧图像的处理和发送时间,减少冗余数据的生成与传输,进而降低传输突发带宽。此外,由于终端通过第一链路上报视角信息,服务器通过第二链路发送图像数据,因此上报视角信息使用的是独立链路,不会影响图像数据的发送和接收,在传输新视角信息对应的图像数据时,不涉及传输链路的重新建立,进而可以降低MTHR。
在一些可能的设计中,终端通过第一链路按照第一周期向服务发送第一视角信息,包括:终端根据终端的时钟,按照第一周期向服务器发送该第一视角信息。基于该可能的设计,可以使得上报视角信息的时间由终端独立控制,不受图像数据传输的影响,提高终端的灵敏度。
在一些可能的设计中,该视频传输方法还包括:终端向该服务器发送第一信息,该第一信息用于指示向终端发送图像数据的第一基准时刻,该第一基准时刻为服务器首次向终端发送图像数据的时刻。基于该可能的设计,可以使得服务器确定首次向终端发送图像数据的时刻,从而在后续可以第一基准时刻为基准时刻,按照第二周期发送图像数据。
在一些可能的设计中,该视频传输方法还包括:在终端缓存的图像的帧数大于或等于第一阈值的情况下,终端向服务器发送第二信息,该第二信息用于指示在第二基准时刻发送第二帧图像的数据,该第二基准时刻晚于第一时刻,该第一时刻为按照以第一基准时刻为开始时刻的第二周期发送第二帧图像的时刻,该第二帧图像为终端待接收的下一帧图像。
在一些可能的设计中,该视频传输方法还包括:在终端缓存的图像的帧数小于或等于第二阙值的情况下,终端向该服务器发送第二信息,该第二信息用于指示在第二基准时刻发送第二帧图像的数据,该第二基准时刻早于第一时刻,该第一时刻为按照以第一基准时刻为开始时刻的第二周期发送第二帧图像的时刻,该第二帧图像为该终端待接收的下一帧图像。
在一些可能的设计中,第二信息包括第二基准时刻和/或第二帧图像的帧号。
基于上述三种可能的设计,服务器可以根据终端的指示,实时动态调整服务器发送图像数据的时间,一方面,可以避免终端缓存过多的图像数据,降低传输过程中的冗余数据量,从而降低用户视角变化(例如用户转头)时的传输突发带宽;另一方面,可以有效缓解由于网络情况变化,特别是传输时延的抖动导致的传输不稳定的问题,提高传输稳定性,从而提高用户体验。
第三方面,提供了一种通信装置用于实现上述各方面方法的任意一种。一些实现方式中,该通信装置可以为上述第一方面中的服务器,或者包含上述服务器的装置,或者上述服务器中包含的装置,比如芯片;或者,又一些实现方式中,该通信装置可以为上述第二方面中的终端,或者包含上述终端的装置,或者上述终端中包含的装置。所述通信装置包括实现上述方法相应的模块、单元、或手段(means),该模块、单元、或means可以通过硬件实现,软件实现,或者通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块或单元。
第四方面,提供了一种通信装置,包括:存储器和至少一个处理器;该存储器用于存储计算机指令,当该处理器执行该指令时,以使该通信装置执行上述任一方面所述的方法。该通信装置可以为上述第一方面中的服务器,或者包含上述服务器的装置,或者上述服务器中包含的装置,比如芯片;或者,又一些实现方式中,该通信装置可以为上述第二方面中的终端,或者包含上述终端的装置,或者上述终端中包含的装置。
第五方面,提供了一种通信装置,包括:接口电路和至少一个处理器,该接口电路可以为代码/数据读写接口电路,该接口电路用于接收计算机执行指令(计算机执行指令存储在存储器中,可能直接从存储器读取,或可能经过其他器件)并传输至该处理器;该处理器用于运行所述计算机执行指令以执行上述任一方面所述的方法。该通信装置可以为上述第一方面中的服务器,或者包含上述服务器的装置,或者上述服务器中包含的装置,比如芯片;或者,又一些实现方式中,该通信装置可以为上述第二方面中的终端,或者包含上述终端的装置,或者上述终端中包含的装置。
第六方面,提供了一种通信装置,包括:至少一个处理器;所述处理器用于与存储器耦合,并读取存储器中的指令之后,根据所述指令执行如上述任一方面所述的方法。该通信装置可以为上述第一方面中的服务器,或者包含上述服务器的装置,或者上述服务器中包含的装置,比如芯片;或者,又一些实现方式中,该通信装置可以为上述第二方面中的终端,或者包含上述终端的装置,或者上述终端中包含的装置。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在通信装置上运行时,使得通信装置可以执行上述任一方面所述的方法。该通信装置可以为上述第一方面中的服务器,或者包含上述服务器的装置,或者上述服务器中包含的装置,比如芯片;或者,又一些实现方式中,该通信装置可以为上述第二方面中的终端,或者包含上述终端的装置,或者上述终端中包含的装置。
第八方面,提供了一种包含指令的计算机程序产品,当其在通信装置上运行时,使得通信装置可以执行上述任一方面所述的方法。该通信装置可以为上述第一方面中的服务器,或者包含上述服务器的装置,或者上述服务器中包含的装置,比如芯片;或者,又一些实现方式中,该通信装置可以为上述第二方面中的终端,或者包含上述终端的装置,或者上述终端中包含的装置。
第九方面,提供了一种通信装置(例如,该通信装置可以是芯片或芯片系统),该通信装置包括至少一个处理器,用于实现上述任一方面中所涉及的功能。在一些可能的设计中,该通信装置还包括存储器,该存储器,用于保存必要的程序指令和/或数据。该通信装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第三方面至第九方面中任一种设计方式所带来的技术效果可参见上述第一方面或第二方面中不同设计方式所带来的技术效果,此处不再赘述。
第十方面,提供一种通信系统,该通信系统包括上述方面所述的服务器以及上述方面所述的终端。
附图说明
图1为现有的一种VR视频的传输流程示意图;
图2为本申请实施例提供的一种通信系统的结构示意图;
图3为本申请实施例提供的一种通信设备的结构示意图;
图4为本申请实施例提供的一种终端和服务器的结构示意图;
图5为本申请实施例提供的一种视频传输方法的流程示意图;
图6为本申请实施例提供的一种终端和服务器的处理时序示意图;
图7为本申请实施例提供的另一种终端和服务器的处理时序示意图;
图8为本申请实施例提供的另一种视频传输方法的流程示意图;
图9为本申请实施例提供的另一种服务器的结构示意图;
图10为本申请实施例提供的另一种终端的结构示意图。
具体实施方式
为了方便理解本申请实施例的技术方案,首先给出本申请相关技术的简要介绍如下。
第一、VR FoV技术:
4K VR视频在用户视野内仅相当于240P电视的效果,无法满足用户的基本体验要求。为了达成良好的VR体验,8K分辨率是入门级VR的基础条件。然而,目前主流的VR终端,尤其是一体机头盔,都只有4K分辨率的解码能力,无法支持8K VR视频的解码和显示;此外,8KVR视频的传输带宽一般在100兆比特每秒(million bits per second,Mbps)以上,超过了目前主流家用宽带及无线保真(wireless-fidelity,WIFI)的传输能力。
为了使得VR终端能够解码显示8K VR视频,目前业界主流的处理方式是使用VRFoV技术。
与传统的平面视频不同,VR视频的用户在观看的过程中,只能看到1/4甚至更小面积的视频,故而,在用户观看VR视频的过程中,不需要解码和显示整张8K图像,只需要实时解码和显示用户当前FoV内的图像即可。而为了保证转头的过程中,用户始终能看到图像,保证观影不眩晕,还需要提供一路4K的全景流作为背景图像。按照这一方案,一路8K VR全景视频就被拆分成一路4K FoV流和一路4K全景流,该方案即可以理解为VR FoV技术。
应用VR FoV技术不但解决了VR终端只能解码4K视频的问题,还可以将传输带宽降低到80Mbps以内,满足家用宽带及WIFI的传输能力限制。
第二、转头高清显示时延(motion to hireslatency,MTHR):
MTHR:指从终端向服务器请求最新FoV对应的4K FoV数据的时刻,至终端设备收到该最新FoV对应的4K FoV数据并加以解码显示的时刻之间的时长。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“至少一个”是指一个或者多个,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
如图2所示,为本申请实施例提供的一种通信系统20。该通信系统20包括服务器30和终端40。
其中,服务器30和终端40之间存在第一链路和第二链路两条链路,第一链路用于视角信息的传输,第二链路用于视角信息对应的图像数据的传输。
本申请实施例中,终端40通过第一链路按照第一周期向服务器30发送第一视角信息,相应的,服务器30通过第一链路按照第一周期接收来自中的第一视角信息,服务器30按照第二周期确定该第一视角信息为最新的视角信息后,获取第一视角信息对应的第一帧图像的数据,并通过第二链路向终端40发送该第一帧图像的数据。相应的,终端40通过第二链路按照第二周期接收来自服务器30的该第一帧图像的数据。该方案的详细介绍将在后续实施例中说明,在此不予赘述。
需要说明的是,本申请实施例中,“图像”也可以称为“FoV帧”或“FoV帧图像”,可以相互替换,本申请实施例对此不做具体限定。
本申请实施例的方案,服务器按照第二周期获取终端上报的最新视角信息及其对应的FoV图像数据,即服务器侧生成和发送FoV图像数据的时间由服务器独立控制;且服务器每次生成和发送最新视角信息对应的一帧图像的数据,即本实施例可以将传输的粒度降低到图像帧级别,更精细地控制每一帧图像的处理和发送时间,减少冗余数据的生成与传输,进而降低传输突发带宽。此外,由于终端通过第一链路上报视角信息,服务器通过第二链路发送图像数据,因此上报视角信息使用的是独立链路,不会影响图像数据的发送和接收,在传输新视角信息对应的图像数据时,不涉及传输链路的重新建立,进而可以降低MTHR。
可选的,本申请实施例中的服务器30,可以为VR媒体服务器。服务器30可以部署于移动边缘计算(mobile edge computing,MEC)环境中。MEC是基于第五代(5th generation,5G)演进架构,将移动网络与互联网业务深度融合的一种技术。第三代合作伙伴计划(3rdGeneration Partnership Project,3GPP)在无线接入网络(radio access network,RAN)3和业务与架构(service and architecture,SA)2子组中都有MEC相关立项。
可选的,本申请实施例中的终端40,可以是用于显示VR视频的设备,例如可穿戴设备、VR终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。终端可以是移动的,也可以是固定的。
可选的,本申请实施例中的服务器30或终端40也可以称之为通信装置,其可以是一个通用设备或者是一个专用设备,本申请实施例对此不作具体限定。
可选的,本申请实施例中,服务器30或终端40可以通过图3中的通信设备(或通信装置)50来实现。
图3所示为本申请实施例提供的通信设备50的结构示意图。该通信设备50包括一个或多个处理器501,以及至少一个通信接口(图3中仅是示例性的以包括通信接口504,以及一个处理器501为例进行说明),可选的还可以包括存储器503;可选的还可以包括通信总线502。
可选的,处理器501、通信接口504、或者存储器503可以是耦合在一起的(图3中未示出),或者,如图3所示,也可以是通过通信总线502连接在一起的。
处理器501可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线502可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗虚线表示,但并不表示仅有一根总线或一种类型的总线。该通信总线502可以用于连接通信设备50中的不同组件,使得不同组件可以通信。
通信接口504,可以是收发模块,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。例如,所述收发模块可以是收发器、收发机一类的装置。可选的,所述通信接口504也可以是位于处理器501内的收发电路,用以实现处理器的信号输入和信号输出。
存储器503可以是具有存储功能的装置。例如可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路502与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器503用于存储执行本申请方案的计算机指令,并由处理器501来控制执行。处理器501用于执行存储器503中存储的计算机指令,从而实现本申请实施例中提供的方法。
或者,可选的,本申请实施例中,也可以是处理器501执行本申请下述实施例提供的方法中的处理相关的功能,通信接口504负责与其他设备或通信网络通信,本申请实施例对此不作具体限定。
可选的,本申请实施例中的计算机指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,例如图3中的CPU0和CPU1。
在具体实现中,作为一种实施例,通信设备50可以包括多个处理器,例如图3中的处理器501和处理器508。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
可以理解的是,图3所示的结构并不构成对通信装置的具体限定。比如,在本申请另一些实施例中,通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
可选的,如图4所示,为本申请实施例提供的一种服务器30和终端40的结构框图。该结构框图可以理解为是对服务器30和终端40从逻辑功能的角度进行的划分。
其中,该终端40包括以下一个或多个模块:视角感知模块、视角信息上报模块、终端时钟模块、媒体数据收流模块、视频解码模块、视频渲染模块。
可以理解的是,终端40的各个模块之间可以相互通信,图4仅是示例性的示出了一种终端40的模块间的通信示意图,并不构成任何限定。
需要说明的是,本申请实施例不限定服务器30的模块与终端40的模块之间的通信方式,图4仅是示例性的示出了一种服务器30的模块与终端40的模块之间的通信示意图,还可以存在其他的通信方式。
可选的,视角感知模块:主要用于监测用户的视角。其可以监测到用户因为转头或者其他位移而产生的视角的变化情况,并将这一变化传递给终端的视角信息上报模块等其他模块。
视角信息上报模块:主要用于与服务器之间建立并维护一条独立的、长期存在的传输通道(即第一链路),通过该传输通道按照第一周期周期性的将用户的最新视角信息上报给服务器。
终端时钟模块:主要用于向终端的各个模块提供统一的系统时钟和定时器服务,用于协调各模块之间的处理时序。此外,该终端时钟模块还用于与服务器之间的时钟同步。
媒体数据收流模块:主要用于与服务器之间建立并维护一条独立的媒体数据传输通道(即第二链路),并通过这一通道按照第二周期接收来自服务器的图像数据。
视频解码模块:主要用于解码接收到的图像数据。
视频渲染模块:主要用于渲染接收到的图像数据,将其与背景图像结合并显示。
对于服务器30:
其中,该服务器30包括以下一个或多个模块:视角信息接收模块、视角信息处理模块、服务器时钟模块、FoV帧缓存模块、FoV帧流化模块、媒体数据发流模块。
可以理解的是,服务器30的各个模块之间可以相互通信,图4仅是示例性的示出了一种服务器30的模块间的通信示意图,并不构成任何限定。
可选的,视角信息接收模块:主要用于与终端之间建立并维护一条独立的、长期存在的传输通道(即第一链路),通过该传输通道按照第一周期周期性的接收终端上报的视角信息,并提供给视角信息处理模块。
视角信息处理模块:主要用于处理终端上报的视角信息,将视角信息转换成服务器侧统一的坐标描述。
可选的,该视角信息处理模块可以进一步包括视角信息处理逻辑引擎模块和视角信息缓存模块。视角信息处理逻辑引擎模块用于处理终端上报的视角信息,视角信息缓存模块用于缓存处理后的视角信息。
服务器时钟模块:主要用于向服务器的各个模块提供统一的系统时钟和定时器服务,用于协调各模块之间的处理时序。此外,该服务器时钟模块还用于接收来自终端的同步消息。
FoV帧缓存模块:主要用于缓存处理好的FoV帧的数据。
FoV帧流化模块:主要按照帧时序和服务器时钟根据视角信息,选取该视角信息对应的FoV帧,并封装该FoV帧。
媒体数据发流模块:主要用于与终端之间建立并维护一条独立的媒体数据传输通道(即第二链路),并通过这一通道按照第二周期向终端发送图像数据。
可以理解的,图4所示的结构并不构成对终端或服务器的具体限定。比如,在本申请另一些实施例中,终端或服务器可以包括比图示更多或更少的模块,或者组合某些模块,或者拆分某些模块,或者不同的模块布置。图示的模块可以以硬件,软件或软件和硬件的组合实现。
可以理解的,图4所示的终端或服务器的各个模块的名称只是一个示例,具体实现中也可以采用其他的名称,不予限制。
下面结合图1至图4,对本申请实施例提供的视频传输方法进行描述。
可以理解的,本申请的各实施例之间涉及的动作、术语等均可以相互参考,不予限制。本申请的实施例中各个设备之间交互的消息名称或消息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称,不予限制。
此外,本申请实施例中,终端或服务器可以执行本申请实施例中的部分或全部步骤,这些步骤或操作仅是示例,本申请实施例还可以执行其它操作或者各种操作的变形。此外,各个步骤可以按照本申请实施例呈现的不同的顺序来执行,并且有可能并非要执行本申请实施例中的全部操作。
基于图4所示的终端或服务器的结构框图,如图5所示,为本申请实施例提供的视频传输方法,该传输方法包括如下步骤:
S500、终端与服务器建立第一链路和第二链路。
其中,第一链路用于传输视角信息,第二链路用于传输FoV帧。第一链路和第二链路为不同的链路,且相互独立,即第一链路和第二链路上的数据传输互不影响。
可选的,该步骤S500完成后,可以认为在终端的视角信息上报模块与服务器的视角信息接收模块之间建立了第一链路,在终端的媒体数据收流模块和服务器的媒体数据发流模块之间建立第二链路。
可选的,该步骤S500可以在终端设备启动播放视频的时刻开始时执行。
S501、终端向服务器发送第一信息。相应的,服务器接收来自终端的第一信息。
其中,该第一信息用于指示向终端发送图像数据的第一基准时刻,该第一基准时刻为服务器首次向该终端发送图像数据的时刻。
可选的,终端可以在完成第一链路和第二链路的建立等准备工作,能够开始与服务器之间传输数据后,向终端发送该第一信息。
可选的,该第一信息可以包括第一基准时刻。
可选的,本申请实施例中的“首次”,可以理解为针对于某个视频的首次,而非终端开机后的首次。例如,终端开机后,首先播放视频1,再播放视频2,则对于视频1,第一基准时刻为服务器首次向终端发送视频1的图像数据的时刻,对于视频2,第一基准时刻为服务器首次向终端发送视频2的图像数据的时刻。
可选的,终端向服务器发送第一信息可以理解为终端向服务器发起一次时钟同步。服务器在收到第一信息后,可以针对该终端建立时钟实例,后续基于该时钟实例进行时序控制和处理,即下述实施例中服务器的服务器时钟模块可以基于该时钟实例按照第二周期进行时序控制。
S502、终端的视角感知模块按照第一周期感知终端的当前视角。
可选的,“终端的当前视角”也可以理解为“使用该终端的用户的当前视角”,本申请实施例对此不做具体限定。
可选的,终端时钟模块可以按照第一周期定时激活视角感知模块,使得视角感知模块按照第一周期感知终端的当前视角。也就是说,终端可以根据终端的时钟,按照第一周期感知终端的当前视角。
可选的,第一个第一周期的开始时刻可以为上述第一基准时刻,也就是说,终端首次感知终端的当前视角的时刻可以为第一基准时刻,此后,基于第一基准时刻按照第一周期周期性的感知终端的当前视角。
可选的,终端的视角感知模块感知到终端的当前视角后,生成该当前视角的视角信息,即该视角信息用于描述视角感知模块感知到的当前视角。
S503、终端的视角感知模块向视角信息上报模块发送视角信息。相应的,终端的视角信息上报模块接收来自视角感知模块的视角信息。
可以理解的是,终端的视角感知模块可以在生成当前视角的视角信息后,即向视角信息上报模块发送该视角信息。
S504、终端的视角信息上报模块通过第一链路向服务器的视角信息接收模块发送视角信息。相应的,服务器的视角信息接收模块通过第一链路接收来自终端的视角信息上报模块的视角信息。
可以理解的是,终端的视角信息上报模块在接收到来自视角感知模块的视角信息后,即可通过第一链路向服务器的视角信息接收模块上报该视角信息,因此,可以认为终端向服务器上报视角信息的周期为第一周期。也就是说,终端可以根据终端的时钟,按照第一周期向服务器发送第一视角信息。
本申请实施例中,以距离当前时刻最近的第一周期内,终端向服务器上报的视角信息为第一视角信息为例进行说明。
S505、服务器的视角信息接收模块向视角信息处理模块发送视角信息。相应的,服务器的视角信息处理模块接收来自视角信息接收模块的视角信息。
可选的,服务器的视角信息接收模块收到来自终端的视角信息后,即可以向服务器的视角信息处理模块发送该视角信息。
S506、服务器的视角信息处理模块处理该视角信息,并缓存处理后的视角信息。
可选的,该步骤S506可以包括:服务器的视角信息处理模块包括的视角信息处理逻辑引擎模块处理该视角信息,例如将该视角信息转换为服务器侧统一的视角坐标,该视角坐标即为处理后的视角信息;服务器的视角信息处理模块包括的视角信息缓存模块缓存该处理后的视角信息。
本申请实施例中,可以认为处理前的视角信息和处理后的视角信息为相同的信息,后续涉及到的视角信息具体为处理前的视角信息或是处理后的视角信息,可以根据视角信息出现的场景确定,本申请实施例不再做具体说明。
S507、服务器的FoV帧流化模块按照第二周期从视角信息处理模块获取最新的视角信息。
可选的,该第二周期是根据视频的帧率确定的,即第二周期为该帧率下,相邻两帧图像之间的显示间隔。该视频为终端启动播放的视频。示例性的,以每秒传输帧数(framesper second,FPS)为30帧(即30FPS)的帧率为例,该第二周期即为33毫秒(ms)。
可选的,第二周期和第一周期可以相同,也可以不同,在二者不同的情况下,本申请实施例对第二周期和第一周期的大小关系也不做具体限定。
可选的,服务器的服务器时钟模块可以按照第二周期定时激活FoV帧流化模块,使得该FoV帧流化模块按照第二周期获取最新的视角信息。
可选的,FoV帧流化模块可以将视角信息处理模块在距离当前时刻最近的一次缓存的视角信息确定为最新的视角信息。
本申请实施例中,由于终端在距离当前时刻最近的一次上报的视角信息为第一视角信息,因此服务器的FoV帧流化模块按照第二周期确定视角信息处理模块缓存的最新的视角信息为第一视角信息,即服务器可以按照第二周期确定第一视角信息为最新的视角信息。
可选的,第一个第二周期的开始时刻可以为上述第一基准时刻,也就是说,服务器首次获取最新的视角信息的时刻可以为第一基准时刻,此后,基于第一基准时刻按照第二周期获取最新的视角信息。也就是说,服务器按照第二周期确定第一视角信息为最新的视角信息,可以包括:服务器根据服务器的时钟,按照第二周期确定第一视角信息为最新的视角信息。
S508、服务器的FoV帧流化模块从FoV帧缓存中获取第一视角信息对应的第一帧图像的数据。
也就是说,服务器的FoV帧流化模块从FoV帧缓存中获取最新的视角信息对应的一帧图像的数据。
可选的,服务器的FoV帧流化模块获取到最新的视角信息对应的一帧图像的数据后,可以重新封装该一帧图像的数据,将其打包成FoV帧串流。
可以理解的是,服务器的FoV帧流化模块在获取到最新的视角信息后,即可获取该最新的视角信息对应的一帧图像的数据,因此,可以认为服务器获取最新的视角信息对应的一帧图像数据的周期也为第二周期。
S509、服务器的FoV帧流化模块向媒体数据发流模块发送第一帧图像的数据。相应的,服务器的媒体数据发流模块接收来自FoV帧流化模块的第一帧图像的数据。
也就是说,服务器的FoV帧流化模块向媒体数据发流模块发送最新的视角信息对应的一帧图像的数据。
可以理解的是,服务器的FoV帧流化模块在获取到最新的视角信息对应的一帧图像的数据后,即可向媒体数据发流模块发送该图像的数据,因此,可以认为服务器的媒体数据发流模块接收最新的视角信息对应的一帧图像数据的周期也为第二周期。S510、服务器的媒体数据发流模块通过第二链路向终端的媒体数据收流模块发送第一帧图像的数据。相应的,终端的媒体数据收流模块通过第二链路接收来自服务器的媒体数据发流模块的第一帧图像的数据。
也就是说,服务器的媒体数据发流模块向终端的媒体数据收流模块发送最新的视角信息对应的一帧图像的数据。
可选的,终端的媒体数据收流模块接收到第一帧图像的数据后,可以缓存该第一帧图像,后续按照终端的处理时序将其交给视频解码模块解码,解码后由视频解码模块传输至视频渲染模块渲染,最终加以显示。
可选的,服务器的媒体数据发流模块收到第一帧图像的数据后,即可向终端发送该第一帧图像的数据,因此,可以认为服务器发送最新的视角信息对应的一帧图像数据的周期也为第二周期;或者,服务器的服务器时钟模块可以按照第二周期定时激活媒体数据发流模块,使得该媒体数据发流模块按照第二周期向终端发送最新的视角信息对应的一帧图像的数据。
相应的,由于服务器按照第二周期发送一帧图像的数据,因此可以认为终端按照第二周期接收一帧图像的数据。
综上,本申请实施例中,终端按照第一周期向服务器上报视角信息,服务器收到视角信息后,不会立即获取该视角信息对应的图像,而是按照第二周期获取服务器认为的最新的视角信息,并获取该最新的视角信息对应的一帧图像的数据之后,向终端发送该最新的视角信息对应的一帧图像的数据,从而,整体来看,本申请实施例中,服务器是逐帧向终端发送视频数据的。
基于本申请实施例的方案,服务器按照第二周期获取终端上报的最新视角信息及其对应的一帧图像的数据,即服务器侧生成和发送图像数据的时间由服务器独立控制;且服务器每次生成和发送最新视角信息对应的一帧图像的数据,可以将传输的粒度降低到图像帧级别,更精细地控制每一帧图像的处理和发送时间,减少冗余数据的生成与传输,进而降低传输突发带宽。此外,由于终端通过第一链路上报视角信息,服务器通过第二链路发送图像数据,因此上报视角信息使用的是独立链路,不会影响图像数据的发送和接收,在传输新视角信息对应的图像数据时,不涉及传输链路的重新建立,进而可以降低MTHR。
可以理解的,终端或服务器的结构不为图4所示的结构时,本申请实施例提供的视频传输方法仍然适用,即终端仍然可以实现图5所示的终端的各个模块所实现的功能/实现过程,服务器仍然可以实现图5所示的服务器的各个模块所实现的功能/实现过程。
下面通过具体示例对图5所示的视频传输方法的应用进行说明。
以终端播放视频1,第一基准时刻为15点为例,假设第一周期为10ms,视频1的帧率为30FPS,也就是第二周期为33ms为例,则终端和服务器的处理时序可以如图6所示。即终端从15点开始,每隔10ms向服务器上报一次视角信息,服务器从15点开始,每隔33ms获取一次最新的视角信息及其对应的一帧图像的数据,并发送给终端。
如图6所示,服务器首次获取的最新的视角信息为视角信息1,第二次获取的最新的视角信息为视角信息4,第三次获取的最新的视角信息为视角信息7。也就是说,服务器会按照第二周期向终端发送视角信息1、视角信息4、视角信息7各自分别对应的一帧图像的数据。
可以理解的,该场景下,在服务器向终端发送了视角信息1对应的一帧图像的情况下,即使在发送视角信息1对应的一帧图像后的10ms再向终端发送视角信息2对应的一帧图像,由于两帧图像之间的显示间隔为33ms,终端也无法显示视角信息2对应的一帧图像,因此服务器以第二周期发送最新视角信息对应的一帧图像,通常情况下不会出现跳帧的问题,从而不会对用户体验造成影响。
或者,以终端播放视频1,第一基准时刻为15点为例,假设第一周期为40ms,视频1的帧率为30FPS,即第二周期为33ms为例,则终端和服务器的处理时序可以如图7所示。即终端从15点开始,每隔40ms向服务器上报一次视角信息,服务器从15点开始,每隔33ms获取一次最新的视角信息及其对应的一帧图像的数据,并发送给终端。
如图7所示,服务器首次获取的最新的视角信息为视角信息1,第二次获取的最新的视角信息为视角信息1,第三次获取的最新的视角信息为视角信息2,第四次获取的最新的视角信息为视角信息3,第五次获取的最新的视角信息为视角信息4,第六次获取的最新的视角信息为视角信息5。也就是说,服务器会按照第二周期向终端在不同时刻分别发送两次视角信息1对应的一帧图像的数据、以及视角信息2、视角信息3、视角信息4、视角信息5各自分别对应的一帧图像的数据。
可以理解的,在该场景下,即使服务器未在收到视角信息后立即获取并发送该视角信息对应的帧图像,然而,由于服务器以帧为粒度进行处理,会大量减少冗余数据的产生,旧的视角信息对应的图像数据在网络中传输的时间较短,从而传输新的视角信息对应的图像数据时需要等待的时间较短,整体来看,本申请实施例的方案仍然可以降低MTHR。
可以理解的,图7所示的场景仅是为了更清楚的说明本申请实施例的方案。在实际应用中,为了保证终端的灵敏度和用户体验,第一周期不会太大,一般在10ms至20ms之间。
可选的,在本申请实施例的一种实施场景下,如图8所示,该视频传输方法还可以包括:
S511、终端向服务器发送第二信息。相应的,服务器接收来自终端的第二信息。
可选的,终端可以周期性的确定终端缓存图像的帧数,根据该图像的帧数向服务器发送第二信息。
一种可能的实现方式中,在终端缓存的图像的帧数大于或等于第一阈值的情况下,终端向服务器发送第二信息,该第二信息用于指示在第二基准时刻发送第二帧图像的数据,该第二基准时刻晚于第一时刻,第一时刻为以第一基准时刻为开始时刻,按照第二周期发送第二帧图像的时刻,该第二帧图像为终端待接收的下一帧图像,或者说,第一时刻为按照以第一基准时刻为开始时刻的第二周期发送第二帧图像的时刻。也就是说,服务器会延迟发送第二帧图像的时刻。
可选的,出现终端缓存的图像的帧数大于或等于第一阈值的情况的原因,可能是网络质量较好,传输时延较低。在该情况下,服务器若以第一基准时刻为开始时刻,按照第二周期发送图像数据,可能会导致终端缓存过多图像数据。此时,终端可以向服务器发送第二信息,指示服务器在第二基准时刻发送第二帧图像,且该第二基准时刻晚于第一时刻。
示例性的,以第一阈值为2,终端缓存的图像帧为第38帧和第39帧,第一基准时刻为15点为例,则第二帧图像的帧号即为40。假设以第一基准时刻为开始时刻,按照第二周期发送第二帧图像的时刻(即第一时刻)为16点,则该第二基准时刻晚于16点,例如,第二基准时刻可以为16点01分。
另一种可能的实现方式中,在终端缓存的图像的帧数小于或等于第二阈值的情况下,终端向服务器发送第二信息,该第二信息用于指示在第二基准时刻发送第二帧图像的数据,该第二基准时刻早于第一时刻,第一时刻为以第一基准时刻为开始时刻,按照第二周期发送第二帧图像的时刻,该第二帧图像为终端待接收的下一帧图像,或者说,第一时刻为按照以第一基准时刻为开始时刻的第二周期发送第二帧图像的时刻。也就是说,服务器会提前发送第二帧图像的时刻。
可选的,出现终端缓存的图像的帧数小于或等于第二阈值的情况的原因,可能是网络质量较差,传输时延较高。在该情况下,服务器若以第一基准时刻为开始时刻,按照第二周期发送图像数据,可能会导致终端播放视频时出现卡顿或者花屏,影响用户体验。此时,终端可以向服务器发送第二信息,指示服务器在第二基准时刻发送第二帧图像,且该第二基准时刻早于第一时刻。
示例性的,以第二阈值为1,终端缓存的图像帧为第38帧,第一基准时刻为15点为例,则第二帧图像的帧号即为39。假设以第一基准时刻为开始时刻,按照第二周期发送第二帧图像的时刻(即第一时刻)为16点,则该第二基准时刻早于16点,例如,第二基准时刻可以为15点59分。
可选的,在上述两种实现方式下,第二信息可以包括第二帧图像的帧号,该情况下,服务器可以将收到第二信息的时刻确定为第二基准时刻,并在该第二基准时刻获取并发送第二帧图像的数据;或者,第二信息可以包括第二基准时刻,该情况下,服务器可以将终端待接收的下一帧图像确定为服务器待发送的下一帧图像,并在该第二基准时刻获取并发送第二帧图像的数据;或者,第二信息可以包括第二基准时刻和第二帧图像的帧号,该情况下,服务器可以在第二信息指示的第二基准时刻发送第二帧图像的数据。
可选的,在上述两种实现方式下,服务器在第二基准时刻发送第二帧图像的数据后,可以继续以第二基准时刻为开始时刻,按照第二周期获取并发送图像数据。
可选的,终端向服务器发送第二信息可以理解为终端向服务器发起的又一次时钟同步。
基于该方案,终端可以通过感知其缓存的图像帧数的变化,实时动态调整服务器发送图像数据的时间,一方面,可以避免终端缓存过多的图像数据,降低传输过程中的冗余数据量,从而降低用户视角变化(例如用户转头)时的传输突发带宽;另一方面,可以有效缓解由于网络情况变化,特别是传输时延的抖动导致的传输不稳定的问题,提高传输稳定性,从而提高用户体验。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
可以理解的是,以上各个实施例中,由服务器实现的方法和/或步骤,也可以由可用于服务器的部件(例如芯片或者电路)实现;由终端实现的方法和/或步骤,也可以由可用于终端的部件(例如芯片或者电路)实现。
上述主要从各个设备之间交互的角度对本申请实施例提供的方案进行了介绍。相应的,本申请实施例还提供了通信装置,该通信装置用于实现上述各种方法。该通信装置可以为上述方法实施例中的终端,或者包含上述终端的装置,或者为可用于终端的部件;或者,该通信装置可以为上述方法实施例中的服务器,或者包含上述服务器的装置,或者为可用于服务器的部件。可以理解的是,该通信装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法实施例中对通信装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以通信装置为上述方法实施例中的服务器为例。图9示出了一种服务器90的结构示意图。该服务器90包括处理模块901和收发模块902。所述收发模块902,也可以称为收发单元用以实现发送和/或接收功能,例如可以是收发电路,收发机,收发器或者通信接口。
其中,收发模块902,用于通过第一链路按照第一周期接收来自终端的第一视角信息;处理模块901,用于按照第二周期确定第一视角信息为最新的视角信息;处理模块901,还用于获取该第一视角信息对应的第一帧图像的数据;收发模块902,还用于通过第二链路向终端发送该第一帧图像的数据。
可选的,处理模块901,用于按照第二周期确定第一视角信息为最新的视角信息,可以包括:处理模块901,用于根据服务器的时钟,按照第二周期确定第一视角信息为最新的视角信息。
可选的,收发模块902,还用于接收来自终端的第一信息,该第一信息用于指示向终端发送图像数据的第一基准时刻,该第一基准时刻为服务器首次向终端发送图像数据的时刻。
可选的,收发模块902,还用于收来自终端的第二信息,该第二信息用于指示在第二基准时刻发送第二帧图像的数据,该第二帧图像为终端待接收的下一帧图像,该第二基准时刻晚于第一时刻,或者,该第二基准时刻早于第一时刻,该第一时刻为按照以第一基准时刻为开始时刻的第二周期发送第二帧图像的时刻。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
可选的,服务器90还可以包括存储模块(图9中未示出),用于存储数据和/或指令,处理模块901可以读取存储模块中的数据或者指令,实现上述各个实施例对应的方法。
可以理解的是,上述各个模块可以独立设置,也可以集成,本申请实施例对此不做限定。
一种可能的方式中,该服务器90以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该服务器90可以采用图3所示的通信设备50的形式。
比如,图3所示的通信设备50中的处理器501可以通过调用存储器503中存储的计算机执行指令,使通信设备50执行上述方法实施例中的视频传输方法。
具体的,图9中的处理模块901和收发模块902的功能/实现过程可以通过图3所示的通信设备50中的处理器501调用存储器503中存储的计算机执行指令来实现。或者,图9中的处理模块901的功能/实现过程可以通过图5所示的通信设备50中的处理器501调用存储器503中存储的计算机执行指令来实现,图9中的收发模块902的功能/实现过程可以通过图3所示的通信设备50中的通信接口504来实现。
由于本实施例提供的服务器90可执行上述的视频传输方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
或者,比如,以通信装置为上述方法实施例中的终端为例。图10示出了一种终端100的结构示意图。该终端100包括发送模块1001和接收模块1002。所述发送模块1001,也可以称为发送单元用以实现发送功能,所述接收模块1002,也可以称为接收单元用以实现接收功能。发送模块1001和接收模块1002例如可以是收发电路,收发机,收发器或者通信接口。
其中,发送模块1001,用于通过第一链路按照第一周期向服务器发送第一视角信息;接收模块1002,用于通过第二链路按照第二周期接收来自服务器的第一视角信息对应的第一帧图像的数据。
可选的,发送模块1001,用于通过第一链路按照第一周期向服务器发送第一视角信息,可以包括:发送模块1001,用于根据终端的时钟,通过第一链路按照第一周期向服务器发送第一视角信息。
可选的,发送模块1001,还用于向服务器发送第一信息,该第一信息用于指示向终端发送图像数据的第一基准时刻,该第一基准时刻为服务器首次向终端发送图像数据的时刻。
可选的,在终端缓存的图像的帧数大于或等于第一阈值的情况下,发送模块1001,还用于向服务器发送第二信息,该第二信息用于指示在第二基准时刻发送第二帧图像的数据,该第二基准时刻晚于第一时刻,该第一时刻为按照以第一基准时刻为开始时刻的第二周期发送第二帧图像的时刻,该第二帧图像为终端待接收的下一帧图像。
可选的,在终端缓存的图像的帧数小于或等于第二阙值的情况下,发送模块1001,还用于向服务器发送第二信息,该第二信息用于指示在第二基准时刻发送第二帧图像的数据,该第二基准时刻早于第一时刻,该第一时刻为按照以第一基准时刻为开始时刻的第二周期发送第二帧图像的时刻,该第二帧图像为终端待接收的下一帧图像。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
可选的,终端还可以包括处理模块和存储模块(图10中未示出),存储模块用于存储数据和/或指令,处理模块可以读取存储模块中的数据或者指令,实现上述各个实施例对应的方法。
可以理解的是,上述各个模块可以独立设置,也可以集成,本申请实施例对此不做限定。
一种可能的方式中,该终端100以采用集成的方式划分各个功能模块的形式来呈现。这里的“模块”可以指特定ASIC,电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到该终端100可以采用图3所示的通信设备50的形式。
比如,图3所示的通信设备50中的处理器501可以通过调用存储器503中存储的计算机执行指令,使通信设备50执行上述方法实施例中的视频传输方法。
具体的,图10中的发送模块1001和接收模块1002的功能/实现过程可以通过图3所示的通信设备50中的处理器501调用存储器503中存储的计算机执行指令来实现。或者,图10中的发送模块1001和接收模块1002的功能/实现过程可以通过图3所示的通信设备50中的通信接口504来实现。
由于本实施例提供的终端100可执行上述的视频传输方法,因此其所能获得的技术效果可参考上述方法实施例,在此不再赘述。
可选的,本申请实施例还提供了一种通信装置(例如,该通信装置可以是芯片或芯片系统),该通信装置包括处理器,用于实现上述任一方法实施例中的方法。在一种可能的设计中,该通信装置还包括存储器。该存储器,用于保存必要的程序指令和数据,处理器可以调用存储器中存储的程序代码以指令该通信装置执行上述任一方法实施例中的方法。当然,存储器也可以不在该通信装置中。在另一种可能的设计中,该通信装置还包括接口电路,该接口电路为代码/数据读写接口电路,该接口电路用于接收计算机执行指令(计算机执行指令存储在存储器中,可能直接从存储器读取,或可能经过其他器件)并传输至该处理器。该通信装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state drive,SSD))等。本申请实施例中,计算机可以包括前面所述的装置。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (25)
1.一种视频传输方法,其特征在于,所述方法包括:
服务器通过第一链路按照第一周期接收来自终端的第一视角信息;
所述服务器按照第二周期确定所述第一视角信息为最新的视角信息,所述第二周期是视频的帧率下相邻两帧图像之间的显示间隔;
所述服务器获取所述第一视角信息对应的第一帧图像的数据,所述第一帧图像属于所述视频;
所述服务器通过第二链路向所述终端发送所述第一帧图像的数据;
所述服务器接收来自所述终端的第二信息,所述第二信息用于指示在第二基准时刻发送第二帧图像的数据,所述第二帧图像为所述终端待接收的下一帧图像,在所述终端缓存的图像的帧数大于或等于第一阈值的情况下,所述第二基准时刻晚于第一时刻,或者,在所述终端缓存的图像的帧数小于或等于第二阈值的情况下,所述第二基准时刻早于第一时刻,所述第一时刻为按照以第一基准时刻为开始时刻的所述第二周期发送所述第二帧图像的时刻,所述第一基准时刻为所述服务器首次向所述终端发送图像数据的时刻。
2.根据权利要求1所述的方法,其特征在于,所述服务器按照第二周期确定所述第一视角信息为最新的视角信息,包括:
所述服务器根据所述服务器的时钟,按照第二周期确定所述第一视角信息为最新的视角信息。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述服务器接收来自所述终端的第一信息,所述第一信息用于指示向所述终端发送图像数据的所述第一基准时刻。
4.根据权利要求1或2所述的方法,其特征在于,所述第二信息包括所述第二基准时刻和/或所述第二帧图像的帧号。
5.根据权利要求3所述的方法,其特征在于,所述第二信息包括所述第二基准时刻和/或所述第二帧图像的帧号。
6.一种视频传输方法,其特征在于,所述方法包括:
终端通过第一链路按照第一周期向服务器发送第一视角信息;
所述终端通过第二链路按照第二周期接收来自所述服务器的所述第一视角信息对应的第一帧图像的数据,所述第二周期是视频的帧率下相邻两帧图像之间的显示间隔,所述第一帧图像属于所述视频;
所述终端向所述服务器发送第二信息,所述第二信息用于指示在第二基准时刻发送第二帧图像的数据,所述第二帧图像为所述终端待接收的下一帧图像,在所述终端缓存的图像的帧数大于或等于第一阈值的情况下,所述第二基准时刻晚于第一时刻,或者,在所述终端缓存的图像的帧数小于或等于第二阈值的情况下,所述第二基准时刻早于第一时刻,所述第一时刻为按照以第一基准时刻为开始时刻的所述第二周期发送所述第二帧图像的时刻,所述第一基准时刻为所述服务器首次向所述终端发送图像数据的时刻。
7.根据权利要求6所述的方法,其特征在于,所述终端通过第一链路按照第一周期向服务发送第一视角信息,包括:
所述终端根据所述终端的时钟,通过第一链路按照第一周期向所述服务器发送所述第一视角信息。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
所述终端向所述服务器发送第一信息,所述第一信息用于指示向所述终端发送图像数据的所述第一基准时刻。
9.根据权利要求6或7所述的方法,其特征在于,所述第二信息包括所述第二基准时刻和/或所述第二帧图像的帧号。
10.根据权利要求8所述的方法,其特征在于,所述第二信息包括所述第二基准时刻和/或所述第二帧图像的帧号。
11.一种服务器,其特征在于,所述服务器包括收发模块和处理模块;
所述收发模块,用于通过第一链路按照第一周期接收来自终端的第一视角信息;
所述处理模块,用于按照第二周期确定第一视角信息为最新的视角信息,所述第二周期是视频的帧率下相邻两帧图像之间的显示间隔;
所述处理模块,还用于获取所述第一视角信息对应的第一帧图像的数据,所述第一帧图像属于所述视频;
所述收发模块,还用于通过第二链路向所述终端发送所述第一帧图像的数据;
所述收发模块,还用于收来自所述终端的第二信息,所述第二信息用于指示在第二基准时刻发送第二帧图像的数据,所述第二帧图像为所述终端待接收的下一帧图像,在所述终端缓存的图像的帧数大于或等于第一阈值的情况下,所述第二基准时刻晚于第一时刻,或者,在所述终端缓存的图像的帧数小于或等于第二阈值的情况下,所述第二基准时刻早于第一时刻,所述第一时刻为按照以第一基准时刻为开始时刻的所述第二周期发送所述第二帧图像的时刻,所述第一基准时刻为所述服务器首次向所述终端发送图像数据的时刻。
12.根据权利要求11所述的服务器,其特征在于,所述处理模块,用于按照第二周期确定第一视角信息为最新的视角信息,包括:
所述处理模块,用于根据所述服务器的时钟,按照第二周期确定所述第一视角信息为最新的视角信息。
13.根据权利要求11或12所述的服务器,其特征在于,
所述收发模块,还用于接收来自所述终端的第一信息,所述第一信息用于指示向所述终端发送图像数据的所述第一基准时刻。
14.根据权利要求11或12所述的服务器,其特征在于,所述第二信息包括所述第二基准时刻和/或所述第二帧图像的帧号。
15.根据权利要求13所述的服务器,其特征在于,所述第二信息包括所述第二基准时刻和/或所述第二帧图像的帧号。
16.一种终端,其特征在于,所述终端包括接收模块和发送模块;
所述发送模块,用于通过第一链路按照第一周期向服务器发送第一视角信息;
所述接收模块,用于通过第二链路按照第二周期接收来自所述服务器的所述第一视角信息对应的第一帧图像的数据,所述第二周期是视频的帧率下相邻两帧图像之间的显示间隔,所述第一帧图像属于所述视频;
所述发送模块,还用于向所述服务器发送第二信息,所述第二信息用于指示在第二基准时刻发送第二帧图像的数据,所述第二帧图像为所述终端待接收的下一帧图像,在所述终端缓存的图像的帧数大于或等于第一阈值的情况下,所述第二基准时刻晚于第一时刻,或者,在所述终端缓存的图像的帧数小于或等于第二阈值的情况下,所述第二基准时刻早于第一时刻,所述第一时刻为按照以第一基准时刻为开始时刻的所述第二周期发送所述第二帧图像的时刻,所述第一基准时刻为所述服务器首次向所述终端发送图像数据的时刻。
17.根据权利要求16所述的终端,其特征在于,所述发送模块,用于通过第一链路按照第一周期向服务器发送第一视角信息,包括:
所述发送模块,用于根据所述终端的时钟,通过第一链路按照第一周期向所述服务器发送所述第一视角信息。
18.根据权利要求16或17所述的终端,其特征在于,
所述发送模块,还用于向所述服务器发送第一信息,所述第一信息用于指示向所述终端发送图像数据的所述第一基准时刻。
19.根据权利要求16或17所述的终端,其特征在于,所述第二信息包括所述第二基准时刻和/或所述第二帧图像的帧号。
20.根据权利要求18所述的终端,其特征在于,所述第二信息包括所述第二基准时刻和/或所述第二帧图像的帧号。
21.一种通信装置,其特征在于,所述通信装置包括:处理器;
所述处理器用于读取存储器中的计算机执行指令,并执行所述计算机执行指令,以使所述通信装置执行如权利要求1-5中任一项所述的方法,或者以使所述通信装置执行如权利要求6-10中任一项所述的方法。
22.一种通信装置,其特征在于,所述通信装置包括:处理器和存储器;
所述存储器用于存储计算机执行指令,当所述处理器执行所述计算机执行指令时,以使所述通信装置执行如权利要求1-5中任一项所述的方法,或者以使所述通信装置执行如权利要求6-10中任一项所述的方法。
23.一种通信装置,其特征在于,所述通信装置包括:处理器和接口电路;
所述接口电路,用于接收计算机执行指令并传输至所述处理器;
所述处理器用于执行所述计算机执行指令,以使所述通信装置执行如权利要求1-5中任一项所述的方法,或者以使所述通信装置执行如权利要求6-10中任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在通信装置上运行时,以使所述通信装置执行如权利要求1-5中任一项所述的方法,或者以使所述通信装置执行如权利要求6-10中任一项所述的方法。
25.一种通信系统,其特征在于,所述通信系统包括如权利要求11-15任一项所述的服务器,以及如权利要求16-20任一项所述的终端。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010581695.2A CN113839908B (zh) | 2020-06-23 | 2020-06-23 | 视频传输方法、装置、系统及计算机可读存储介质 |
PCT/CN2021/101066 WO2021259175A1 (zh) | 2020-06-23 | 2021-06-18 | 视频传输方法、装置及系统 |
EP21829602.8A EP4156623B1 (en) | 2020-06-23 | 2021-06-18 | Video transmission method and apparatus |
US18/145,111 US20230124383A1 (en) | 2020-06-23 | 2022-12-22 | Video Transmission Method, Apparatus, and System |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010581695.2A CN113839908B (zh) | 2020-06-23 | 2020-06-23 | 视频传输方法、装置、系统及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113839908A CN113839908A (zh) | 2021-12-24 |
CN113839908B true CN113839908B (zh) | 2023-07-11 |
Family
ID=78964111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010581695.2A Active CN113839908B (zh) | 2020-06-23 | 2020-06-23 | 视频传输方法、装置、系统及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230124383A1 (zh) |
EP (1) | EP4156623B1 (zh) |
CN (1) | CN113839908B (zh) |
WO (1) | WO2021259175A1 (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108702522A (zh) * | 2016-02-19 | 2018-10-23 | 阿尔卡鲁兹公司 | 用于基于gpu的虚拟现实视频流式传输服务器的方法及系统 |
CN110868581A (zh) * | 2018-08-28 | 2020-03-06 | 华为技术有限公司 | 一种图像的显示方法、装置及系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11468111B2 (en) * | 2016-06-01 | 2022-10-11 | Microsoft Technology Licensing, Llc | Online perspective search for 3D components |
KR20180025797A (ko) * | 2016-09-01 | 2018-03-09 | 삼성전자주식회사 | 영상 스트리밍 방법 및 이를 지원하는 전자 장치 |
US10565916B2 (en) * | 2016-09-09 | 2020-02-18 | Kt Corporation | Providing streaming of virtual reality contents |
EP3513562A1 (en) * | 2016-09-14 | 2019-07-24 | Koninklijke KPN N.V. | Streaming virtual reality video |
US10231014B2 (en) * | 2017-03-14 | 2019-03-12 | Futurewei Technologies, Inc. | Virtual reality (VR) video distribution using edge resources |
GB2567136A (en) * | 2017-08-30 | 2019-04-10 | Nokia Technologies Oy | Moving between spatially limited video content and omnidirectional video content |
CN108521436B (zh) * | 2018-02-01 | 2020-11-17 | 上海交通大学 | 基于终端计算存储的移动虚拟现实传输方法及系统 |
CN108322727A (zh) * | 2018-02-28 | 2018-07-24 | 北京搜狐新媒体信息技术有限公司 | 一种全景视频传输方法及装置 |
CN209805837U (zh) * | 2019-04-03 | 2019-12-17 | 北京轻威科技有限责任公司 | 一种vr时间同步器 |
-
2020
- 2020-06-23 CN CN202010581695.2A patent/CN113839908B/zh active Active
-
2021
- 2021-06-18 EP EP21829602.8A patent/EP4156623B1/en active Active
- 2021-06-18 WO PCT/CN2021/101066 patent/WO2021259175A1/zh unknown
-
2022
- 2022-12-22 US US18/145,111 patent/US20230124383A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108702522A (zh) * | 2016-02-19 | 2018-10-23 | 阿尔卡鲁兹公司 | 用于基于gpu的虚拟现实视频流式传输服务器的方法及系统 |
CN110868581A (zh) * | 2018-08-28 | 2020-03-06 | 华为技术有限公司 | 一种图像的显示方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113839908A (zh) | 2021-12-24 |
WO2021259175A1 (zh) | 2021-12-30 |
EP4156623A4 (en) | 2023-09-06 |
EP4156623A1 (en) | 2023-03-29 |
EP4156623B1 (en) | 2024-10-23 |
US20230124383A1 (en) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110784740A (zh) | 视频处理方法、装置、服务器及可读存储介质 | |
CN113992967B (zh) | 一种投屏数据传输方法、装置、电子设备及存储介质 | |
CN104125429B (zh) | 视频数据传输的调节方法及装置 | |
JP2016537914A (ja) | オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 | |
WO2020019139A1 (zh) | 视频均匀显示方法、终端设备、机器可读存储介质 | |
US20230262273A1 (en) | Video stream processing method, apparatus, device, storage medium, and program product | |
CN110740380A (zh) | 视频处理方法和装置、存储介质及电子装置 | |
CN111510789B (zh) | 视频播放方法、系统、计算机设备及计算机可读存储介质 | |
US20190253470A1 (en) | Data buffering method, network device, and storage medium | |
JP2022036307A (ja) | クライアント、サーバ、受信方法及び送信方法 | |
US20150207715A1 (en) | Receiving apparatus, transmitting apparatus, communication system, control method for receiving apparatus, control method for transmitting apparatus, and recording medium | |
WO2023040825A1 (zh) | 媒体信息的传输方法、计算设备及存储介质 | |
CN104079869A (zh) | 对多通道码流进行预览的方法及客户端 | |
CN113286146B (zh) | 媒体数据处理方法、装置、设备以及存储介质 | |
CN113839908B (zh) | 视频传输方法、装置、系统及计算机可读存储介质 | |
EP3843415A1 (en) | Video image-based media stream bandwidth reduction | |
CN111491207A (zh) | 直播中视频数据处理方法、装置和电子设备 | |
US11410700B2 (en) | Video playback buffer adjustment | |
CN112887742B (zh) | 直播流处理方法、装置、设备及存储介质 | |
US11184502B2 (en) | Communication system, reception terminal, communication method, and recording medium | |
CN115361578B (zh) | 一种播放方法、装置和电子设备 | |
WO2023031989A1 (ja) | 映像配信装置、システム、方法、及びコンピュータ可読媒体 | |
JP2009060553A (ja) | Mpegデータの送受信方法 | |
CN115550708A (zh) | 数据处理方法及电子设备 | |
CN116708928A (zh) | 一种视频拼接方法、设备、系统和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |