CN111355954A - 为视频播放器装置处理视频数据 - Google Patents

为视频播放器装置处理视频数据 Download PDF

Info

Publication number
CN111355954A
CN111355954A CN201911317654.6A CN201911317654A CN111355954A CN 111355954 A CN111355954 A CN 111355954A CN 201911317654 A CN201911317654 A CN 201911317654A CN 111355954 A CN111355954 A CN 111355954A
Authority
CN
China
Prior art keywords
video
viewport
region
masked
video frame
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.)
Granted
Application number
CN201911317654.6A
Other languages
English (en)
Other versions
CN111355954B (zh
Inventor
A.S.R.布兰特
H.N.欣德里克斯
M.O.范德温特
L.达昆图
E.D.R.托马斯
S.N.B.贡克尔
M.普林斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Original Assignee
Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Koninklijke KPN NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO, Koninklijke KPN NV filed Critical Nederlandse Organisatie voor Toegepast Natuurwetenschappelijk Onderzoek TNO
Publication of CN111355954A publication Critical patent/CN111355954A/zh
Application granted granted Critical
Publication of CN111355954B publication Critical patent/CN111355954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

提供了为视频播放器装置处理视频数据。描述了向视频播放器装置提供视频数据的方法和系统,其中所述方法包括以下步骤:视频处理装置的处理器接收视频帧;处理器从视频播放器装置接收视点信息,视点信息限定视频帧中像素的有界视口区域;处理器在视点信息的基础上生成经处理的视频帧,该生成包括通过改变定位在视口区域之外的像素的像素值来减小视频帧中像素值的熵;处理器将经处理的视频帧编码成比特流,并将比特流提供给与视频处理装置相关联的视频传输装置;以及视频传输装置将比特流传输到视频播放器装置。

Description

为视频播放器装置处理视频数据
技术领域
本发明涉及为视频播放器装置处理视频数据,并且特别地但不排他地,涉及用于为视频播放器装置处理视频数据、特别是球形视频数据的方法和系统。本发明还涉及使得计算机系统能够执行这类方法的计算机程序产品。
背景技术
相机和图像处理技术两者中的进步不仅使能对常规2D高分辨率视频的视频记录和处理,而且还使能对以高于8K×4K的分辨率的全360度视频的视频记录和处理。360视频和全向视频是球形视频数据的示例,所述球形视频数据限定位于球形表面上的像素。该类型的视频数据后文可以被称为球形视频。球形视频提供了新的用户体验,诸如目前正在行业中获得发展势头的虚拟现实(VR)和增强现实(AR)。然而,归因于需要的高带宽要求,这类高质量球形视频的大规模流式传输仍造成挑战。
然而,观看视频内容的用户可能仅对视频帧内有限的像素区域感兴趣。因此,视频播放器可以被配置为仅显示用户正在观看的视频部分,所述视频部分通常被称为感兴趣区(ROI)。这类方案最少地将冗余视频数据(即,视口之外的未显示的视频数据)传输到视频播放器。该冗余问题在全景和球形视频的情况下甚至更加明显。在这些情况下,用户通常不能够一次观看整个视频内容量,这是因为视频的部分涉及观看者视场之外的视频。
实际上,可用带宽将是效率和用户体验之间的权衡。一方面,存在如下需要:以高质量并且同时在具有最小的延迟的情况下为用户提供他们感兴趣的视口。实际上,这是难以满足的目的,因为尽管收看球形视频的观看者的视口在空间上受到限制,但是用户可以在视频流式传输期间连续改变他们的视口,并且从一个视口到另一个视口的过渡应当是平滑的。类似地,观看常规视频的空间受限(例如放大的)部分的用户可以通过遥摄(pan)来改变ROI。
鉴于上述问题,做出努力以将传输的数据限制于ROI,即用户当前正在观看的视频部分。WO2018/069466 A1中描述了这类基于ROI的视频流式传输方案的示例。
在此类方案中,视频源的视频帧可以在空间上划分(分块或分段)成(通常为矩形的)部分,所述部分可以被称为“图块”或“组块”。图块序列可以被独立编码并存储为图块流。例如图块在原始视频源中的位置或用于检索图块流的URL或URI信息之类的与图块流相关联的信息可以被存储在清单文件中。视频播放器设备可以使用清单文件来请求与观看者的视口的ROI一致的特定图块流的传输。由于ROI通常与一个图块或多个图块并不完全一致,仍然将有一些量的冗余数据被传输到客户端侧。此外,使用多个分块的视频流的基于ROI的视频流式传输方案在客户端侧处要求相对复杂的功能性,这不太适用于与传统设备一起使用。
X.Xie和X.Zhang在其文章“POI360: Panoramic mobile video telephony over LTE cellular networks”CoNEXT ’17, 2017年12月12-15日,第13届新兴网络实验与技术国际会议录,第336-349页中描述了一种基于ROI的视频压缩方案,其中网络中的视频处理器(例如视频服务器)接收全360视频(包括等矩形投影的视频帧)和360视频播放设备(例如头戴式设备(HMD))的观看者的ROI。视频处理器可以将360视频的视频帧划分成图块,所述图块基于它们相对于ROI位置的相对位置被单独压缩。视频压缩被配置使得使用更高的压缩级别来压缩ROI之外的图块。因此,压缩帧包括在ROI处的高质量、低压缩的视频数据和远离ROI的低质量、高压缩的视频数据,使得可以节省带宽。压缩帧经由上行链路传输到用户的视频播放设备。在客户端侧处,视频帧被解码和重建,结果产生针对ROI区域(用户的当前观看方向)的高质量图像。只有当用户迅速改变其观看方向时,低质量图像才可见,使得视频播放设备显示ROI之外的使用高压缩级别压缩的视频数据。
所提出的基于ROI的视频压缩方案在编码域中被执行,从而要求特殊的专有视频编码功能性。当使用基于ROI的视频压缩方案时,仍然有大量冗余视频数据(即观看者将不会观看的视频数据)被传输到客户端。此外,尽管一些客户端功能性被转移到网络,但是仍然要求特殊的解码器功能性来对经编码的视频数据进行解码、重建视频帧并显示与ROI一致的视频帧的视频数据。此外,基于ROI的视频压缩方案使用等矩形投影的360视频帧,在该360视频帧中仍然可以在矩形区域的基础上选择ROI。然而,当使用其他类型的普及的360视频格式、诸如所谓的立方体投影类型360视频时,在视频帧中的在矩形区域的基础上对ROI的简单选择不再可能。
因此,根据以上内容,随之而来的是本领域存在对于高效地向视频播放器提供视频数据的系统和方法的需要。特别地,本领域存在对于视频处理方法和系统、特别是基于ROI的视频处理方法和系统的需要,所述方法和系统在客户端侧处提供低计算复杂度,提供改进的运动到高质量延迟(即,视口改变的时刻与该改变以全分辨率显示在显示器上的时刻之间所花费的时间),并且与各种360视频投影方案兼容。
发明内容
如本领域技术人员将领会的,本发明的各方面可以体现为系统、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,所述软件和硬件方面在本文可以全部总地被称为“电路”、“模块”或“系统”。本公开中描述的功能可以实现为由计算机的微处理器执行的算法。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,所述计算机可读介质例如在其上存储有所体现的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是例如但不限于:电子、磁、光学、电磁、红外或半导体系统、装置或设备、或前述的任何合适的组合。计算机可读存储介质的更具体的示例(非穷举列表)将包括以下:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式致密盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或前述的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是能够包含或存储供指令执行系统、装置或设备使用或与之结合使用的程序的任何有形介质。
计算机可读信号介质可以包括传播数据信号,所述传播数据信号具有体现在其中的计算机可读程序代码,例如在基带中或作为载波的部分。这类传播信号可以采取各种形式中的任何一种,包括但不限于电磁、光学或其任何合适的组合。计算机可读信号介质可以是并非计算机可读存储介质并且可以传送、传播或传输供指令执行系统、装置或设备使用或与之结合使用的程序的任何计算机可读介质。
体现在计算机可读介质上的程序代码可以使用任何适当的介质传输,所述介质包括但不限于无线、有线、光纤、线缆、RF等、或前述的任何合适的组合。用于施行本发明各方面的操作的计算机程序代码可以用一种或多种编程语言的任何组合来编写,所述编程语言包括诸如Java(TM)、Scala、C++、Python等功能性或面向对象的编程语言,以及诸如“C”编程语言或类似编程语言的常规过程式编程语言。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立软件包、部分在用户的计算机上且部分在远程计算机上、或者完全在远程计算机、服务器或虚拟化服务器上执行。在后一情境中,远程计算机可以通过任何类型的网络连接到用户的计算机,所述网络包括局域网(LAN)或广域网(WAN)、或者可以(例如通过使用因特网服务提供商的因特网)做出到外部计算机的连接。
下面参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图的每个块、以及流程图图示和/或框图中的块的组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器、特别是微处理器或中央处理单元(CPU)或图形处理单元(GPU),以产生机器,使得经由计算机、其他可编程数据处理装置或其他设备的处理器执行的指令创建用于实现流程图和/或框图的一个块或多个块中指定的功能/动作的构件。
这些计算机程序指令也可以存储在计算机可读介质中,所述计算机可读介质可以引导计算机、其他可编程数据处理装置或其他设备以特定方式运作,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图的一个块或多个块中指定的功能/动作的指令的制品。
计算机程序指令也可以加载到计算机、其他可编程数据处理装置或其他设备上,以引起在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图的一个块或多个块中指定的功能/动作的过程。
各图中的流程图和框图图示了根据本发明各种实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能性和操作。在这点上,流程图或框图中的每个块可以表示代码的模块、分段或部分,其包括用于实现(一个或多个)指定的逻辑功能的一个或多个可执行指令。还应当指出,在一些替换实现方式中,在各块中指出的功能可以不按各图中指出的顺序发生。例如,取决于所涉及的功能性,接续示出的两个块实际上可以大体上并发地执行,或者各块有时可以以逆顺序执行。还将指出,框图和/或流程图图示中的每个块以及框图和/或流程图图示中的块的组合可以由执行指定功能或动作的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。
将参考附图进一步说明本发明,附图将示意性地示出根据本发明的实施例。将理解,本发明不以任何方式局限于这些具体实施例。
在本申请中,术语“球形视频”或“球形视频数据”用于指代可以在多个方向上观看的任何种类的视频。这可以是例如:全向视频数据,其可以在所有方向上被观看(3个自由度);全景视频数据,其具有沿1个轴(通常是垂直轴)的旋转自由、具有上下方向上的固定视场(1个自由度);或者半球上的视频投影数据。通常,球形视频数据的像素与描述球形表面(例如球体或圆柱体)的坐标系相关联。为了使得能够通过现有技术的视频编码系统渲染球形视频数据,球形视频数据被投影到视频帧的2D矩形区域上。
此外,术语“视点”指代虚拟球体上的点,该点指示位于球体中心处的视频处理装置的用户的观看方向。视点限定用户的观看方向。视点与所谓的“视口”和“视场”相关联。视口限定视点周围的区域,该区域链接到视频帧中的包括用于向视频播放器装置的用户显示的像素的区域。视频处理装置使用视口来确定视频帧中的哪些像素需要被处理(即,掩蔽),如参考本公开中的实施例所描述的。FOV限定视频处理设备在一时间实例可以显示的视口区域的范围。视口的大小可以与视频处理装置的FOV一致,然而优选地,视口大于FOV。因为本发明在应用于球形视频数据时可能是最有利的,所以本公开中的大多数示例集中在球形视频数据上;然而,应当指出,当视口小于全视频帧时(例如,当缩放时可能是这种情况),本发明同样可以很好地应用于常规视频。
本公开中的实施例的目的是在视频编码方案的基础上对视频数据(视频帧的像素)进行编码之前处理视频数据。这样,在向客户端设备传输数据之前需要编码和压缩的视频数据量可以显著减小,并且向客户端设备传输经压缩的视频数据所需的带宽可以有效减小。本发明特别有利于处理球形视频数据,例如360或全向视频数据。此外,实施例的目的是降低需要以不要求对现有客户端设备的修改或要求最小修改的方式编码的视频数据量。
在一方面,该目的可以通过处理视频数据的方法来实现,其中所述方法可以包括:视频处理装置的处理器接收经解码的视频帧,视频帧包括表示视频图像的视频数据,所述视频数据包括像素,其中每个像素与像素值相关联;处理器从与显示器相关联的客户端装置接收视点信息,所述视点信息包括限定显示器的用户的观看方向的观看方向信息,所述观看方向信息与视频图像中的视场FOV区和视口区相关联,FOV区限定可以在显示器上渲染的区,并且视口区限定视频图像中包括FOV区的区;处理器基于所述观看方向信息和经解码的视频帧来确定掩蔽信息,所述掩蔽信息针对经解码的视频帧的像素指示像素是否定位在视口区之外;处理器通过将掩蔽操作应用于视口区之外的像素,来使用所述掩蔽信息将经解码的视频帧转换成经解码的掩蔽视频帧,掩蔽操作减小视口区之外的至少部分像素的像素值的熵;以及处理器将经解码的掩蔽视频帧提供给编码器装置的输入,并且编码器装置将经解码的掩蔽视频帧编码成经编码的掩蔽视频帧。
在实施例中,像素值可以表示亮度和/或颜色值。
在实施例中,所述方法可以包括:传输器装置将经编码的掩蔽视频帧传输到与客户端装置相关联的解码装置,优选地通过无线传输介质来传输经编码的掩蔽视频帧的至少部分,其中所述传输基于以下各项中的至少一项:3G、4G、5G、Wi-Fi或蓝牙。
在实施例中,与经编码的掩蔽视频帧相关联的元数据可以被传输到与客户端装置相关联的解码装置,其中所述元数据可以包括由视频处理装置用来生成经编码的掩蔽视频帧的视点信息的至少部分、更优选地是视点的位置。
通过减小定位在视口之外的经解码(原)视频帧的像素的像素值的熵而减小需要编码并传输到客户端设备的信息。熵减小是通过将掩蔽操作应用于视口之外的像素来实现的。掩蔽操作在编码过程之前被应用,并且因此可以被视为用于生成掩蔽视频帧的预编码步骤。基于低熵掩蔽来处理视频帧的像素可以减小视频帧中需要压缩和传输的信息量。掩蔽区域限定视频帧中将不会被客户端设备渲染的像素区域。这样,可以使用现有技术的视频编码技术高效地压缩视频帧。
这里,经解码的视频帧可以指代非压缩的(例如,原)数据格式的视频帧。客户端装置可以与例如头戴式设备等显示装置集成在一起。可替换地,客户端装置可以由移动设备执行,所述移动设备例如是可以(无线地)连接到显示设备的电子平板计算机。此外,显示器的用户可以收看由显示装置渲染的内容。
在实施例中,掩蔽操作可以包括:将视口区之外的像素的像素值的至少部分修改为经修改的像素值,经修改的像素值是单个预定值或者经修改的像素值形成规则图案和/或周期性图案。
在另一个实施例中,掩蔽操作可以包括:将视口之外的像素的像素值的至少部分修改为表示像素值的低分辨率版本的经修改的像素值。
因此,可以将所谓的低熵掩蔽(例如单色像素值或诸如周期性像素图案的规则像素图案)应用于视口之外的像素(即,将不会被客户端设备渲染的像素区域)来减小熵。在实施例中,掩蔽可以实现为图形叠加。将由掩蔽与原始经解码(原)视频帧组合(或将掩蔽应用于原始经解码(原)视频帧)而产生的视频帧可以被称为掩蔽视频帧或经处理的视频帧。而原始视频帧可以被称为未掩蔽视频帧。
因此,本发明可以包括一种方法,其中服务器可以使用由客户端设备发送到服务器的视点信息来根据视频源创建图像,所述图像仅包含或者主要包含将要由视频显示装置显示(渲染)的像素数据。为了减小服务器和客户端侧处理,该图像不是通过裁剪源视频、而是通过如下操作来创建的:将掩蔽操作应用于视口区域之外的像素,使得视口区域之外的像素值的熵显著减小,例如,其中像素值被修改使得它们表示统一的颜色(例如绿色)的掩蔽操作。可替换地和/或附加地,掩蔽操作可以包括用原始视频帧的低分辨率版本(例如下采样版本)替代视口区域之外的像素。通过使用本领域中一般应用的视频编码器之一,这将极大地减小经编码图像的大小,从而导致仅最小的数据开销,所述数据开销与其中仅传输图像的未掩蔽部分的裁剪图像相比可以低至4%。在客户端侧处不需要或至少需要最小的功能性来在显示器上渲染掩蔽图像,这是因为客户端仍将接收原始投影中原始尺寸的视频数据。此外,在视频帧被供应给编码器装置的输入之前,可以基于高效的预编码步骤来实现掩蔽过程。在实施例中,可以使用从客户端接收的视点信息以等于源视频的帧率的速率来调整掩蔽。
在实施例中,视频帧可以是投影视频帧,其中投影视频帧可以包括球形视频数据,所述球形视频数据表示与使用投影模型投影到视频帧的2D矩形区域上的球形视频图像相关联的像素。此外,在实施例中,观看方向信息可以包括视点,其中视点限定FOV区和视口区在球形视频图像中的位置。在实施例中,投影模型可以基于等矩形投影、圆柱体投影、立方体投影、鱼眼投影或棱锥体投影。视频帧可以是投影视频帧,其可以通过使用投影模型将表示虚拟球形表面(优选为球体)上的像素的球形视频数据投影到视频帧的2D矩形区域上来形成。此外,视口可以在球形表面上限定有界区域。
在实施例中,掩蔽操作可以包括:将视口区之外的像素的像素值的至少部分修改为经修改的像素值,经修改的像素值是单个预定值或者经修改的像素值形成规则图案和/或周期性图案;和/或将视口之外的像素的像素值的至少部分修改为表示像素值的低分辨率版本的经修改的像素值。
在实施例中,视频帧可以是投影视频帧,投影视频帧包括球形视频数据,所述球形视频数据表示与使用投影模型投影到视频帧的2D矩形区域上的球形视频图像相关联的像素。在实施例中,观看方向信息可以包括视点,视点限定FOV区和视口区在球形视频图像中的位置。在实施例中,投影模型可以基于等矩形投影、圆柱体投影、立方体投影、鱼眼投影或棱锥体投影。
在实施例中,确定掩蔽信息可以包括:使用投影模型来确定投影视频帧的像素位置和在球形视频图像中的位置之间的像素映射;以及使用视口在球形视频图像中的位置和像素映射来确定投影视频帧的定位在视口区之外的像素。
在实施例中,确定掩蔽信息可以进一步包括:使用投影模型将视口区投影到投影视频帧的2D矩形区域上;使用投影视口和投影视频帧的像素来确定投影视频帧的定位在视口区之外的像素。
在实施例中,视点区的位置可以基于角坐标系,优选为球形坐标系。
在实施例中,视口区可以大于FOV区。在视口区内部并且在FOV区之外的区可以限定空间视口缓冲区SVB。在实施例中,视口区的尺寸可以基于可用于向视频播放器装置传输经编码的掩蔽视频帧的带宽和/或基于与以下各项相关联的延迟时间来选择:向与客户端装置相关联的解码装置传输经编码的掩蔽视频帧以及由客户端装置接收经编码的掩蔽视频帧。
在另外的实施例中,FOV区包括第一分辨率的像素,并且SVB包括第二分辨率的像素,第一分辨率高于第二分辨率。因此,为了节省带宽并同时保持足够大的SVB的一些优点(诸如低的动显(motion-to-photon)延迟的优点),SVB中的像素在质量方面可能降级。
在一个实施例中,这可以通过执行以下步骤中的一个或多个来完成:基于时间、空间和/或有损压缩(取决于用例)来创建第一投影视频帧,其表示原始投影视频帧的低质量表示;可选地,将第一投影视频帧按比例放大(scale up)到原始投影视频帧的大小,确定表示第一投影视频帧中的视场(FOV)和原始投影视频帧的视场(FOV)的区域,并由原始(高分辨率)投影视频帧的视场中的对应像素替代第一(低分辨率)投影视频帧的视场中的像素,从而形成包括低分辨率(下采样)投影视频帧的双分辨率视频帧,该低分辨率投影视频帧包括高分辨率视场;以及通过将掩蔽操作应用于第一投影视频帧来确定经处理(掩蔽)视频帧,掩蔽操作对视口之外的像素进行掩蔽,视场定位在视口内,视口和视场之间的区域限定空间视口缓冲区(SVB),其中SVB的像素是低分辨率像素,并且视场(FOV)的像素是高分辨率像素。
在实施例中,视点信息和/或经编码的掩蔽视频帧可以通过视频处理装置和客户端装置之间的低延迟通信信道传输。在实施例中,低延迟通信信道可以是双向通信信道。在另一个实施例中,双向通信信道可以基于网络套接字(WebSocket)标准。在实施例中,经编码的掩蔽视频帧的至少部分可以作为NAL单元以解码顺序传输到客户端装置。
在实施例中,所述方法可以进一步包括:将时间实例与视点信息的接收相关联;在数据库中存储视点信息和时间实例、优选为时间戳;以及使用存储在数据库中的视点信息以用于预测一个或多个另外的视口的位置。
在实施例中,视点信息可以进一步包括以下各项中的至少一项:限定视口的尺寸和/或形状的信息;视频帧参考信息,例如与掩蔽视频帧相关联的视频帧序列号和/或呈现时间戳(PTS);延迟时间,例如运动到高质量(MTHQ)延迟时间。
在实施例中,编码器装置可以基于预定的视频编码标准对掩蔽视频帧进行编码。在实施例中,视频编码标准可以包括H.264、H.265、HEVC、VP8、VP9、AVC1或AVC2之一。
在实施例中,视频编码器或处理器可以将经编码的视频数据存储在数据容器中。在实施例中,数据容器可以是一个或多个ISOBMFF数据容器和/或一个或多个片段MP4容器(Fragmented MP4 container)。在实施例中,经编码的掩蔽视频帧可以基于以下视频流式传输协议中的至少一个而被传输到客户端装置:WebRTC、RTP、RTMP或自适应流式传输协议,优选为HTTP自适应流式传输协议,诸如MPEG DASH、HTTP实况流式传输、HTTP动态流式传输或HTTP平滑流式传输。
在一方面,本发明可以涉及一种视频处理装置,包括:计算机,其包括计算机可读存储介质,所述计算机可读存储介质具有以其体现的程序的至少部分;以及耦合到计算机可读存储介质的处理器、优选为微处理器,其中响应于执行计算机可读程序代码,其中处理器可以被配置为执行可执行操作。在实施例中,可执行操作可以包括:接收经解码的视频帧,视频帧包括表示视频图像的视频数据,所述视频数据包括像素,其中每个像素与表示亮度和/或颜色值的像素值相关联;从与显示器相关联的客户端装置接收视点信息,所述视点信息包括限定显示器的用户的观看方向的观看方向信息;所述观看方向信息与视频图像中的视场FOV区和视口区相关联,FOV区限定可以在显示器上渲染的区,并且视口区限定视频图像中包括FOV区的区;确定掩蔽信息,所述掩蔽信息针对经解码的视频帧的每个像素指示像素是否定位在视口区之外;通过将掩蔽操作应用于视口区之外的像素,使用掩蔽信息将经解码的视频帧转换成经解码的掩蔽视频帧,所述掩蔽操作减小视口区之外的至少部分像素的像素值的熵;以及将经解码的掩蔽视频帧提供给编码器装置的输入,并且编码器装置将经解码的掩蔽视频帧编码成经编码的掩蔽视频帧。
在另外的方面,本发明可以涉及一种与显示器相关联的客户端装置,包括:计算机可读存储介质,所述计算机可读存储介质具有以其体现的计算机可读程序代码;以及耦合到计算机可读存储介质的处理器、优选为微处理器,其中响应于执行计算机可读程序代码,其中处理器可以被配置为执行可执行操作,所述可执行操作包括:在第一时间实例确定或接收显示器用户的第一观看方向的第一观看方向信息,第一观看方向信息与视频图像中的第一视场FOV区和第一视口区相关联,视频图像由视频帧的像素限定,FOV区限定视频图像中可以由显示器渲染的区,并且视口区限定视频图像中包括FOV区的区;处理器从与显示器相关联的客户端装置接收视点信息,所述视点信息包括限定显示器用户的观看方向的观看方向信息,所述观看方向信息与视频图像中的FOV区和视口区相关联,FOV区限定由显示器渲染的区,并且视口区限定视频图像中包括FOV区的区;向视频处理装置传输第一视点信息,第一视点信息包括第一观看方向信息。
在实施例中,第一视点信息可以发信号通知视频处理装置:在一个或多个经解码的视频帧的基础上生成一个或多个掩蔽视频帧,其中掩蔽视频帧的定位在第一视口区之外的像素是掩蔽像素。
在实施例中,可执行操作可以进一步包括在第二时间实例确定或接收限定用户的第二观看方向的第二观看方向信息,第二时间实例晚于第一时间实例,第二观看方向信息与视频图像中的第二FOV区和第二视口区相关联;接收一个或多个经编码的掩蔽视频帧并处理所述一个或多个经编码的掩蔽视频帧,所述处理包括将一个或多个经编码的视频帧解码成一个或多个经解码的掩蔽视频帧,以及使用第二FOV区从所述一个或多个经解码的掩蔽视频帧中选择像素以供显示器显示。
在另外的实施例中,可执行操作可以包括:如果第二FOV区的部分定位在第一视口区之外或者如果第二FOV区的边界和第一视口区的边界之间的距离小于预定距离,则将第二视口信息传输到视频处理装置,第二视点信息包括第二观看方向信息。在实施例中,第二视点信息可以发信号通知视频处理装置:在一个或多个经解码的视频帧的基础上生成一个或多个掩蔽视频帧,其中掩蔽视频帧的定位在第二视口区之外的像素是掩蔽像素。
在又另外的方面,本发明可以涉及一种与显示器相关联的客户端装置,包括:计算机可读存储介质,所述计算机可读存储介质具有以其体现的计算机可读程序代码;以及耦合到计算机可读存储介质的处理器、优选为微处理器,其中响应于执行计算机可读程序代码,其中处理器可以被配置为执行可执行操作,所述可执行操作包括:在第一时间实例确定或接收显示器用户的第一观看方向的第一观看方向信息,第一观看方向信息与视频图像中的第一视场FOV区和第一视口区相关联,视频图像由视频帧的像素限定,FOV区限定视频图像中可以由显示器渲染的区,并且视口区限定视频图像中包括FOV区的区;向视频处理装置发送第一视点信息,第一视点信息包括第一观看方向信息,第一视点信息发信号通知视频处理装置或者被视频处理装置用于:在一个或多个经解码的视频帧的基础上生成一个或多个掩蔽视频帧,掩蔽视频帧的定位在第一视口区之外的一个或多个像素是掩蔽像素;优选地,掩蔽像素具有单个像素值或者具有形成规则和/或周期图案的像素值;确定或接收限定用户的第二观看方向的第二观看方向信息,第二观看方向信息与视频帧中的第二视场FOV区和第二视口区相关联;接收一个或多个经编码的掩蔽高分辨率视频帧和一个或多个经编码的低分辨率视频帧,所述一个或多个经编码的低分辨率视频帧中的每个是用于生成一个或多个掩蔽高分辨率视频帧的视频帧的低分辨率版本;以及处理一个或多个经编码的掩蔽视频帧和所述一个或多个经编码的低分辨率视频帧,以用于由显示器渲染低分辨率视频帧和/或高分辨率视频帧的至少部分。
在实施例中,所述处理可以包括接收一个或多个经编码的掩蔽高分辨率视频帧和一个或多个经编码的高分辨率视频帧,所述一个或多个经编码的高分辨率视频帧中的每个是用于生成所述一个或多个掩蔽高分辨率视频帧的视频帧的低分辨率版本;以及处理所述一个或多个经编码的掩蔽视频帧和所述一个或多个经编码的低分辨率视频帧,以供显示器渲染。
在实施例中,所述处理可以包括:将所述一个或多个经编码的掩蔽视频帧解码成一个或多个经解码的掩蔽视频帧,并将所述一个或多个经编码的低分辨率视频帧解码成一个或多个经解码的低分辨率视频帧;使用第二FOV区从所述一个或多个经解码的掩蔽视频帧中选择像素,以供显示器渲染;以及如果第二FOV区的部分定位在第一视口区之外,则使用第二FOV区从一个或多个经解码的低分辨率视频帧的至少一个或多个中选择像素以供显示器渲染。
因此,在该实施例中,所述一个或多个掩蔽视频帧的未掩蔽低分辨率版本连同掩蔽视频帧被发送到客户端装置,使得如果FOV区的部分包括掩蔽像素,则客户端装置可以使用低分辨率视频帧以用于渲染视频数据。可替换地,如果FOV区的部分包括掩蔽像素,则低分辨率视频帧的像素可以用于替代掩蔽像素。这样,避免或至少显著减小对掩蔽像素的渲染。
将参考附图进一步说明本发明,附图将示意性地示出根据本发明的实施例。将理解,本发明不以任何方式局限于这些具体实施例。
附图说明
图1描绘了处理球形视频数据的流程图。
图2描绘了球形视频数据的等矩形投影和映射的示例。
图3描绘了球形视频数据到视频帧上的立方体投影和映射的示例。
图4描绘了球形视频数据到视频帧上的不同投影和映射。
图5A-5D描绘了根据本发明实施例的对视频数据、特别是球形视频数据的基于视口的处理的方法。
图6描绘了根据本发明实施例的用于处理和流式传输视频数据的系统。
图7描绘了根据本发明实施例的处理视频数据的方法的流程图。
图8描绘了根据本发明另一实施例的处理视频数据的方法的流程图。
图9描绘了根据本发明实施例的视频流式传输过程的流程图。
图10描绘了根据本发明另一实施例的视频流式传输过程的流程图。
图11图示了根据本发明实施例的掩蔽视频帧。
图12A和12B图示了根据本发明实施例的空间视口缓冲区的使用。
图13图示了根据本发明实施例的对投影视频帧进行掩蔽的过程。
图14A和14B图示了根据本发明实施例的对投影视频帧进行掩蔽的过程。
图15是图示了可以如本公开中所描述的那样使用的示例性数据处理系统的框图。
具体实施方式
图1描绘了用于处理球形视频内容的方法的高级流程图。该过程可以包括使用全景或全向图像捕获系统对多个图像的捕获(步骤102),所述全景或全向图像捕获系统通常包括多个(即,两个或更多个)图像传感器。由不同图像传感器生成的重叠视场的图像可以被拼接在一起(步骤104)成一个全景或高分辨率图像。将图像拼接成一个图像是众所周知的图像处理技术,其通常包括对准和全景合成。在对准过程中,可以从图像中提取特征描述符,以便找到对应的图像特征。对准用于估计每个图像的图像相机位置或取向。全景合成过程后续使用该信息以用于将所有图像组合成一个全景图像。图像混合可以用于将如此组合的图像无缝地拼接在一起。图像的拼接可以在2D或3D平面中。例如,图像可以彼此拼接到球形表面上,从而形成球形视频数据,或者它们可以在2D平面中组合以创建超高分辨率图像。
此后,球形视频数据可以通过投影、映射和可选的封装(pack)操作(步骤106)被转换成2D矩形视频帧,所述2D矩形视频帧由现有技术的视频编码器编码(步骤108)。经编码的视频数据可以被封围到传输容器中,使得视频数据可以被传输(步骤109)到播放设备,所述播放设备被配置为将视频数据解码(步骤110)成2D矩形帧。为了向用户呈现内容,播放设备渲染3D(多面体)对象,并利用视频帧对其进行纹理化(步骤114)。取决于所使用的投影,然后通过逆封装、映射和投影操作,将2D矩形帧转换回成全向视频数据(步骤112)。编码过程108可以在视频编码器装置中实现,并且步骤110-114可以在连接到例如头戴式显示器(HMD)或集成在头戴式显示器中的媒体回放设备中实现,所述头戴式显示器被配置为对经编码的球形视频数据进行解码和渲染。参考图2-4更详细地描述通过投影和映射操作将球形视频数据转换成2D矩形视频帧(步骤106)。
图2描绘了球形视频数据202到矩形2D视频帧206上的等矩形投影操作204的示例,球形视频数据202被表示为球形表面(例如球体或压扁的球体)上的像素。该投影操作可以用于将与球形坐标
Figure DEST_PATH_IMAGE002A
θ相关联的像素直接转换成与平面2D坐标xy相关联的像素。包括投影球形视频数据的视频帧可以简称为投影视频帧。
类似地,图3描绘了使用立方体投影模型对球形视频数据302到矩形视频帧上的投影的示例。特别地,图3描绘了球形视频数据到立方体的面306上的投影操作304。这些面可以称为2D投影面。球体和立方体的取向可以使用3D坐标系来描述,使得可以限定球体、立方体以及球体相对于立方体的不同取向。例如,在这类坐标系中,立方体面可以被标记为正面(F)、上面(U)、下面(D)、左面(L)、右面(R)和背面(B)。在像素到投影面上的投影之后,立方体的投影面被映射308到平面2D矩形视频帧312上。这里,属于投影面的像素可以被称为像素区,或者简称为区。例如,与立方体的正投影面F 307相关联的像素可以在矩形视频帧312中形成像素区F。
因此,如图3中所示,在映射操作308期间,在其面上包括投影像素的立方体可以展开并布置在矩形2D区域中,从而形成视频帧。如此形成的视频帧可以被称为投影视频帧。投影视频帧包括像素区的布置,其中像素区的边缘可以形成区边界。投影视频帧中的像素区可以被重新布置和调整大小,以便去除黑色空间。重新布置像素区的过程可以被称为封装314。结果产生的投影视频帧包括像素区322的2D布置,像素区322包括水平和垂直布置的区边界328、329。
更一般地,将球形视频数据转换成矩形视频帧可以包括球形视频数据到通常为3D多面体(诸如立方体或棱锥体)的投影模型的一个或多个2D投影面上的投影,继之以将所述面映射到矩形帧上。3D投影模型的面可以被称为投影面,并且由到投影面上的投影操作产生的视频帧可以被称为投影视频帧。投影视频帧可以包括与所使用的投影模型的2D投影面(例如立方体的面)匹配的像素区(像素块)。像素区被布置以形成矩形视频帧,其中像素区的边缘可以形成投影视频帧的区边界。包括像素区的封装布置的投影视频也可以被称为区方面封装的视频帧。
如图4中所示,取决于所选择的投影模型——即等矩形412、立方体420、棱锥体430、鱼眼442等——可以获得投影视频帧中像素区412、422、432、442和相关联的区边界418、428、429、438、439、448的不同布置。投影到投影面上的球形视频数据402被映射并封装到投影视频帧中,其中每个投影面表示预定几何形状的像素区,并且其中相邻像素区的边界形成伪区边界。如图4中所示,取决于投影类型,区边界在视频帧中可以具有不同的取向。可以使用许多不同的投影类型,包括但不限于圆柱体、多面体(例如八面体或二十面体)、截棱锥体、分段球体等。
图5A-5C描绘了根据本发明实施例的对视频数据、特别是球形视频数据的基于视口的处理的方法。图5A和5B描绘了佩戴视频播放器装置500的用户。视频播放器装置可以指代包括处理器、存储器和用于视频数据处理和播放的各种功能模块的任何装置。视频播放器装置可以被配置成从服务器或服务器网络请求和接收球形视频数据,并且向视频处理设备的用户渲染球形视频数据。这里,球形视频数据可以被视为视频内容到如图5B中所描绘的(虚拟)球形表面502上的球形表示。可以在合适的坐标系(例如球形坐标系5041-3)的基础上来限定球形视频数据(例如像素)在球形表面上的位置和用户的观看方向。例如,可以使用基于俯仰、偏航和滚转坐标的坐标系,其中俯仰表示围绕x轴的旋转
Figure DEST_PATH_IMAGE003A
,偏航表示围绕y轴的旋转θ,并且滚转表示围绕z轴的旋转ω。
这类视频播放器装置的非限制性示例是用于虚拟现实和增强现实应用的头戴式显示器(HMD)。视频播放器装置可以包括用于跟踪用户的头部、眼睛和/或身体位置的一个或多个传感器,其中位置可以在坐标系的基础上来限定。传感器信息可以由视频播放器装置执行的客户端软件使用,以确定所谓的视点506——即限定视频播放器装置的用户的观看方向的虚拟球体上的点位置,其中用户位于虚拟球体的中心508,并且正朝向球形表面上的视点看。视点在球体上的位置可以基于坐标系来表达。视频播放器装置可以进一步通过视场(FOV)510——即限定球形视频的虚拟球体上的视点周围的区域——来表征,视频播放器装置能够在给定时间实例针对特定视点显示该区域。当用户改变其观看方向时,视点和相关联的FOV在虚拟球体上的位置相应地改变。由视点和相关联的FOV表示的观看方向确定视频播放器装置在特定时间实例渲染的虚拟球体上的像素区域。因此,虚拟球体上的FOV确定定位在FOV内的像素。虚拟球体上包括FOV像素的像素区域可以限定所谓的视口512。通常,视口限定虚拟球体上由视频播放器装置在特定时间实例处理以供渲染的像素区域。视口可以大于FOV,使得可以减小归因于传输延迟和/或用户的快速头部和/或眼睛移动所致的视频伪像生成。
图5B和图5C图示了在预定坐标系的基础上限定的FOV和相关联的视口。偏航-俯仰-滚转欧拉角约定系可以用于表示观看者头部在3D笛卡尔坐标系中的旋转。半径、仰角、方位角角坐标系(也称为球形坐标系)可以用于表示球体上的区。这里,方位角范围在0与360度之间,并且仰角范围在-90与+90之间。偏航轴的起始(0度)位置可以由内容提供商任意选择,或者与基本方向一致,其中0度和360度表示北、90度表示东、180度表示南并且270度表示西。对于俯仰轴,正值可以表示地平线以上的方向,并且负值表示地平线以下的方向。对于滚转轴,可以做出如下假设:正值指示用户的左眼高于右眼,并且相反,负值指示用户的头部以相对的方式倾斜(其中左眼低于右眼)。
在实施例中,三个角参数(球形视点坐标)可以用于指示视口在球体上的位置。在实施例中,三个仰角-方位角-取向角(θ,
Figure DEST_PATH_IMAGE003AA
,ω)可以用于指示视口的方向(视口的中心在位置r、θ、
Figure DEST_PATH_IMAGE003AAA
处定位在球体上)和视口的取向ω(滚转)。视口的边界可以在客户端设备中预先配置,或者可以由客户端设备基于FOV来确定。附加地,视口的边界可以基于关于视口需要投影到何处的信息。
在实施例中,球体上的FOV和/或相关联的视口可以具有球形多边形的形状。对于这些多边形,认为每一边被限定为大圆(great-circle)的线段。例如,图5C中描绘的视口512(和FOV 510)图示了球体上具有矩形形状的球形多边形。多个角坐标可以用于限定这类矩形球形多边形。例如,五个角坐标可以用于限定球体上的矩形视口,包括:θ、
Figure DEST_PATH_IMAGE003AAAA
、ω——三个仰角-方位角-取向角,用于指示视点(视点是球体上在位置r、θ、
Figure DEST_PATH_IMAGE003AAAAA
处的视口的中心)和视口的取向ω;以及参数αβ:其中α以弧度表示视口的“宽度”,并且β以弧度表示视口的“高度”。这里,高度β可以限定为穿过视口的中心并具有等于ω的方位的大圆上的分段。类似地,宽度α可以被限定为定位在如下的大圆上的分段:所述大圆穿过视口的中心并且基本上与相关联于高度β的大圆正交。
为了允许视频播放器装置处理(例如编码或解码)球形视频数据,可以使用投影模型将球形视频数据(像素)投影在视频帧的2D矩形区域上。这在图5C和5D中示意性地描绘,图5C和5D图示了包括球形视频数据的视频帧514,所述球形视频数据基于预定投影模型(例如等矩形或立方体)而被投影到2D矩形区域上。因此,视频处理设备通常从例如媒体服务器接收以投影视频数据(例如等矩形投影视频数据)形式的球形视频数据。投影视频帧因此包括作为球形表面上像素的投影的球形视频数据。投影模型可以用于将虚拟球体上的视口投影到2D矩形区域上,以便生成投影视口516。投影视口516可以限定由视频播放器装置渲染的2D矩形视频帧中的像素的有界区域。类似地,虚拟球体上的FOV可以被投影以形成定位在投影视口内的投影FOV 518。投影视口可以在投影视频帧中形成感兴趣区(ROI)。
如图5D中所示,只有投影FOV限定的有界区域内的像素值将被渲染给视频播放器装置的用户。因此,原则上,投影视口(ROI)之外的像素是冗余的。服务器将投影视频帧的所有视频信息(所有像素)传输到视频处理设备因此导致带宽的大量浪费,尤其是在高清晰度360视频的情况下。如在此之下将更详细描述的,本公开中描述的实施例旨在减小冗余视频数据的传输,而不需要对视频播放器装置引入显著改变。本发明包括由视频处理装置对视频帧或投影视频帧的像素应用掩蔽操作,如果所述像素定位在视口之外的话。掩蔽操作可以将像素转换成掩蔽像素520,其中掩蔽操作可以包括将像素值改变为一个预定像素值或像素的规则图案(例如,重复图案)。将像素值改变为低熵的像素图案(例如,单个像素值或规则像素值图案)允许通过现有技术的视频编码标准非常高效地进行视频压缩。这里,(部分)图像的熵可以基于众所周知的香农熵
Figure 331204DEST_PATH_IMAGE005
来计算,其中p i 值表示具有强度等级i的像素值的出现数量除以强度等级的总数量。
掩蔽操作可以由视频处理装置在对视频帧进行编码之前执行,使得需要由编码器编码的信息量可以显著减小。掩蔽操作可以动态地——即在视频流式传输期间——执行,其中在流式传输期间,用户可以改变例如其观看方向。在该情况下,FOV在虚拟球体上的位置以及因此FOV之外的像素将随着时间改变。掩蔽操作可以由视频处理装置(例如服务器)执行,所述视频处理装置被配置为在将掩蔽(投影)视频帧编码成比特流之前将掩蔽操作应用于经解码(原)视频帧。
如参考图5A-5C描述的基于视口的视频处理和渲染的概念不仅可以供球形视频数据使用,还可以供2D视频数据使用,例如,如此缩放到表示全景视频场景的高分辨率视频帧的区域。
图6描绘了根据本发明实施例的用于处理和流式传输视频数据的系统。如该图中所示,所述系统可以包括视频处理装置604(例如服务器),以及包括客户端设备602或与客户端设备602相关联的视频播放器装置600。例如,客户端设备可以是如例如参考图5A-5C描述的视频播放器装置的部分或与该视频播放器装置相关联。
客户端设备可以包括可以由至少一个处理器608控制的不同功能模块或单元。例如,客户端设备可以包括用于传输和接收数据、通常为视频数据的收发器模块612。收发器模块可以包括用于设立和管理与视频处理装置的无线数据连接的无线电接口。客户端设备可以被配置为请求视频处理装置向客户端设备传输视频数据并从视频处理装置接收所请求的视频数据。客户端设备可以包括用于(临时)存储视频数据和相关联的元数据的缓冲区614。客户端设备可以进一步包括媒体引擎模块616或与媒体引擎模块616相关联,媒体引擎模块616可以包括用于执行一个或多个解码器实例以将经编码的视频数据(视频帧)解码成视频图片的视频处理器,例如图形处理单元(GPU)。媒体引擎模块可以进一步包括被配置为向用户渲染视频图片的视频渲染引擎。经编码的视频数据可以在一个或多个视频流中传输到客户端设备,其中每个视频流可以包括经编码的视频帧序列。
客户端设备可以进一步包括视口模块610,视口模块610被配置为接收关于用户(的头部)的位置和/或观看方向的信息。由一个或多个传感器(例如3D位置传感器和/或一个或多个眼跟踪传感器)生成的传感器信息可以用于确定视点信息,所述视点信息可以包括用户的观看方向。视口模块可以向视频处理装置发送视点信息620。
在实施例中,它可以定期地(周期性地)向服务器发送视点信息。视点信息可以被传输到视频处理装置,使得它能够连续监视观看者的观看位置。在另一个实施例中,当满足一个条件或某些条件时,视口模块可以向视频处理装置发送视点信息。视点信息可以包括以视点形式限定用户的观看方向的信息。在处理球形视频数据的情况下,视点可以限定(虚拟)球体上的如下点:该点限定用户的观看方向,该点如参考图5A-5C所描述的那样定位在球体的中心(在视点的方向上来看)。观看方向可以基于角(球形)坐标来限定。附加地,在一些实施例中,视点信息可以包括大小信息,例如限定与视点相关联的球体上视口的尺寸和可选地形状的视角。
视频处理装置可以包括可以由至少一个处理器624控制的不同功能模块或单元。例如,视频处理装置可以包括用于传输和接收数据、通常为视频数据的收发器模块624。收发器模块可以包括无线电接口,所述无线电接口用于设立和管理与客户端设备以及一个或多个另外的媒体服务器606的无线数据连接。
视频处理装置604可以包括第一媒体服务器,该第一媒体服务器包括用于存储视频数据和相关联的元数据的数据存储装置630。可替换地和/或附加地,视频处理装置604可以被配置为与一个或多个第二媒体服务器606通信。每个媒体服务器可以包括数据存储装置634、处理器632和用于与视频处理装置建立数据通信的收发器模块636。因此,当视频处理装置从客户端设备接收到针对视频数据的请求时,并且如果所请求的视频数据存储在视频处理服务器的存储装置中,则它可以基于请求方客户端设备的视点信息来处理所请求的视频数据,并且后续将经处理的视频数据传输到客户端设备。可替换地,它可以将针对视频数据的客户端请求中继到媒体服务器,所述媒体服务器可以将所请求的视频数据传输到视频处理服务器。视频处理服务器可以:接收视频数据;如果媒体数据被编码,则对视频数据进行解码;在视点信息的基础上处理视频数据;以及将经处理的视频数据传输到客户端设备。
因此,在向客户端设备传输视频数据之前,视频处理服务器在请求视频数据的客户端设备的视点信息620的基础上处理所请求的视频数据。如上所述,视点信息包括视频处理设备的用户的观看方向。在常规2D视频数据的情况下,视口可以限定由其中用户想要放大的视频帧的像素表示的视频图片中的区域。类似地,在球形视频(通常表示为位于虚拟球体上的像素)的情况下,观看方向可以与球体上的视频图片中的视点相关联。
视点可以用于确定视频处理设备要渲染的视频数据。球形视频数据通常基于投影模型被投影到视频帧的2D矩形区域上,使得它可以被现有技术的视频编码系统处理(编码和解码)。因此,为了确定需要由视频播放器装置渲染的像素,投影视频帧的任一像素被转换成虚拟球体上的像素,所述虚拟球体上的像素后续与虚拟球体上的视口进行比较。可替换地,使用投影模型将视口投影到投影视频帧上,所述投影模型用于将球形视频数据投影到视频帧的2D矩形区域上。投影视口可以限定投影视频帧中像素的有界区域,所述有界区域被称为ROI。然后,视频播放器装置选择ROI中的像素以供渲染。
视频处理装置可以进一步包括掩蔽模块626,掩蔽模块626被配置为在视点信息的基础上确定投影视频帧中的哪些像素是ROI的部分。掩蔽模块可以包括将投影视频帧中的像素关联到虚拟球体上的像素的算法,其中这类像素在球体上的位置可以基于球形坐标来限定。像素在球体上的位置与视口在球体上的位置(如包含在由客户端设备发送到视频处理设备的视点信息中)的比较允许掩蔽模块决定应当将掩蔽操作应用于哪些像素。在对视口之外的像素应用掩蔽操作之后,可以生成掩蔽视频帧,其可以由视频编码器编码并使用合适的传输协议传输到客户端设备。由于掩蔽视频帧包括投影视口区域,其中视口区域之外的像素通过将像素值转换为单个值或规则图案而被掩蔽,所以掩蔽视频帧可以被高效编码。
可以针对每个视频帧重复该过程,其中如果用户改变其观看方向,那么视口的位置可以改变。在一些实施例中,边缘服务器可以处理从媒体服务器接收的视频数据。在从媒体数据接收的视频数据被编码的情况下,边缘服务器可以首先将视频数据解码成可以由掩蔽模块处理的经解码(原)视频帧。
在实施例中,服务器可以是所谓的边缘服务器,即定位在网络边缘处的服务器。边缘服务器可以例如与无线电信网络的基站共同定位。这样,边缘服务器在物理上相对靠近连接到基站的客户端设备地定位。这样,可以在边缘服务器和客户端设备之间建立快速、低延迟的数据连接。例如,边缘服务器和客户端设备之间的连接可以例如基于5G标准,5G标准具有比视频处理设备的用户实现沉浸式体验所要求的运动到高质量延迟更低的延迟。例如,可以使用移动边缘计算或多址边缘计算(MEC)单元,其中存储、联网资源和数据处理(诸如参考本公开中的实施例描述的视频处理)可以与作为无线电接入网络(RAN)的部分的基站(例如eNodeB)集成或相关联。这样,比如360视频和增强现实应用之类的计算机密集且延迟敏感的应用可以托管在网络的边缘处。边缘服务器与客户端设备之间的连接因此提供低的运动到高质量延迟的数据通信信道。
各种视频流式传输协议、例如RTP(通过UDP)或自适应流式传输协议(诸如MPEG-DASH)可以用于向客户端设备传输包括掩蔽视频帧的经处理的视频数据。
视频数据可以作为视频流存储在媒体服务器上。球形视频数据可以被格式化成视频帧,其中球形视频数据基于投影模型被投影到视频帧的2D区域上。与视频数据相关联的元数据、例如流标识符(例如URL或URI)以及——在球形视频的情况下——用于生成投影视频帧的投影和映射方法以及可选地不同流之间的关系,可以存储在所谓的清单文件中。在实施例中,元数据可以在清单文件中被提供给客户端设备,所述客户端设备可以在存储器中存储清单文件618,例如MPD。在分块视频的情况下,清单文件可以包括用于标识一个或多个图块流的一个或多个图块流标识符。参考WO2018/069466描述了分块球形媒体的示例,WO2018/069466随此通过引用并入到本申请中。当使用MPEG-DASH进行视频流式传输时,清单文件可以被称为媒体呈现描述(MPD)。媒体源可以被适配为在流式传输协议的基础上将视频数据流式传输到视频处理设备。
每个图块流包括球体表面的子部分(图块)的球形视频数据。这样,每个子部分可以限定在球体上的预定位置处的球形图块。清单文件可以进一步包括空间描述信息和投影信息,所述空间描述信息用于向客户端装置发信号通知关于球体上图块的(静态)位置的信息,所述投影信息用于向客户端装置发信号通知用于在比特流中表示球形视频数据的2D投影的类型(例如等矩形、立方体等)。
在一些实施例中,视频处理装置还可以被配置为生成由视频处理装置处理的视频帧的低分辨率版本。在该情况下,视频处理装置可以将一个或多个视频流(例如,包括经编码的掩蔽视频帧的第一视频流和包括经编码的低分辨率视频帧的相关联的第二视频流)中的掩蔽视频帧和低分辨率视频帧两者传输到客户端设备。用于同步掩蔽和低分辨率视频图片的视频播放的定时信息可以作为元数据被添加到视频流。例如,时间线描述符、诸如从MPEG标准中已知的时间线和外部媒体信息(TEMI)描述符可以用于向客户端设备发送时间线信息。在该情况下,客户端设备可以启动至少两个解码器实例,用于将经编码的掩蔽视频帧解码成掩蔽视频图片,并将经编码的低分辨率视频帧解码成低分辨率视频图片。在实施例中,在观看方向(以及因此视口)快速移动的情况下——其中虚拟球体上的FOV的当前位置部分地在客户端设备正在处理的掩蔽视频图片的虚拟球体上的视口位置之外,客户端设备可以使用低分辨率视频图片以用于对经解码的掩蔽视频帧进行后置处理。
如上所述,视频处理装置的掩蔽模块可以执行算法来确定投影视频帧中在视口之外的像素。该算法此后可以被称为投影归一化算法(PNA)。可以使用与不同投影模型相关联的不同掩蔽算法。在这些算法中,可以使用可以具有高达3个自由度的视频播放器装置、例如头戴式显示器来观看场景。视频播放器装置的传感器可以生成视点信息,所述视点信息包括可以用于输入到PNA算法的坐标,例如视口的坐标。附加地,与视频播放器装置相关联的其他参数、诸如视图约束角(限定尺寸视口)可以用作到PNA算法的输入:
– 限定视点的一组(俯仰、偏航、滚转)旋转角
Figure 248344DEST_PATH_IMAGE007
,所述视点通常是视口的中心,以及
– 限定视口边界的一组(水平、垂直)视场约束角
Figure 762502DEST_PATH_IMAGE009
在少于三个自由度的情况下,旋转变量可以预先被设置为恒定值。例如,当禁止滚转时,滚转参数可以被设置为零。还可以允许用户缩放,从而有效地改变视场约束角。作为一般输出,PNA将在归一化坐标系中提供
Figure 892132DEST_PATH_IMAGE011
——单位球体(具有半径1的球体)上与用户FOV的中心相对应的点。
对于2D(投影)视频帧的每个像素𝑠,PNA被限定为使得获得以下输出:
Figure 440925DEST_PATH_IMAGE013
,输入像素在单位球体上的映射位置(逆投影);
Figure 997808DEST_PATH_IMAGE015
Figure 264842DEST_PATH_IMAGE017
围绕从原点至
Figure 198163DEST_PATH_IMAGE019
(单位球体上视场的中心)的轴逆时针旋转ω弧度(radian);
Figure 601462DEST_PATH_IMAGE021
,单位球体上
Figure 329247DEST_PATH_IMAGE023
的角坐标(偏航、俯仰)。
在实施例中,消除滚转的逆时针旋转可以如下实现。给定
Figure 67264DEST_PATH_IMAGE024
的(偏航、俯仰),单位球体上视口的中心(即视点)可以由
Figure 538697DEST_PATH_IMAGE025
表示。然后可以由下式给出围绕从原点至
Figure 796503DEST_PATH_IMAGE026
的轴在ω弧度内的旋转矩阵:
Figure 960768DEST_PATH_IMAGE027
其中I是恒等式矩阵并且
Figure 405656DEST_PATH_IMAGE029
Figure 415200DEST_PATH_IMAGE026
的叉积矩阵。将该旋转矩阵应用于
Figure 540895DEST_PATH_IMAGE031
产出
Figure 610482DEST_PATH_IMAGE033
。然后角坐标如下:
Figure 73824DEST_PATH_IMAGE035
在实施例中,可以使用等矩形投影来投影球形视频数据。在这类实施例中,可以通过下式获得像素𝑠的逆投影
Figure 887059DEST_PATH_IMAGE037
Figure 40829DEST_PATH_IMAGE038
其中
Figure 546897DEST_PATH_IMAGE039
并且
Figure 231956DEST_PATH_IMAGE040
,其中
Figure 848882DEST_PATH_IMAGE041
并且
Figure 935787DEST_PATH_IMAGE042
,其中
Figure 878335DEST_PATH_IMAGE043
是视频球体以弧度的坐标,并且
Figure 50690DEST_PATH_IMAGE044
是视频帧的二维像素阵列中的像素坐标。
也可以使用球形视频数据的其他投影模型。在实施例中,可以使用例如等距、立体、等立体角或正交鱼眼投影之类的鱼眼投影来投影球形视频。在利用等距投影的实施例中,像素𝑠的逆投影
Figure 205728DEST_PATH_IMAGE037
可以通过以下计算获得。
在鱼眼投影的情况下,已知投影视频帧包括两个或更多个所谓的鱼眼区域
Figure 163451DEST_PATH_IMAGE046
。对于每个鱼眼区域
Figure 11321DEST_PATH_IMAGE047
,可以指定以下属性:
Figure 670973DEST_PATH_IMAGE048
,投影视频帧中鱼眼区域
Figure 895281DEST_PATH_IMAGE047
的中心,
Figure 691199DEST_PATH_IMAGE049
,投影视频帧中鱼眼区域
Figure 709970DEST_PATH_IMAGE047
的半径,
Figure 856918DEST_PATH_IMAGE050
,观看球体上鱼眼区域
Figure 619337DEST_PATH_IMAGE047
的角大小,
Figure 535341DEST_PATH_IMAGE051
,观看球体上鱼眼区域
Figure 708702DEST_PATH_IMAGE047
的中心,分别由一组偏航角和俯仰角限定;
Figure 342946DEST_PATH_IMAGE052
,对应于
Figure 643477DEST_PATH_IMAGE047
的鱼眼透镜滚转。
对于每个鱼眼区域
Figure 679566DEST_PATH_IMAGE047
,该区域内部的像素
Figure 774561DEST_PATH_IMAGE053
的集合
Figure 161680DEST_PATH_IMAGE054
如下获得:
Figure 265902DEST_PATH_IMAGE055
通过使用这些集合,不在
Figure 890919DEST_PATH_IMAGE056
中的像素必然在视口之外并且可以从进一步的视口分析中被排除。
为了针对每个鱼眼区域
Figure 422394DEST_PATH_IMAGE047
中的每个像素
Figure 513454DEST_PATH_IMAGE057
确定其是否应当被包括在输出中,考虑到对应于
Figure 421367DEST_PATH_IMAGE047
的鱼眼透镜的属性,确定
Figure 166469DEST_PATH_IMAGE057
在观看球体上的位置。首先,角旋转矢量(滚转、俯仰)如下获得:
Figure 868846DEST_PATH_IMAGE058
将角旋转矢量投影到单位球体上产出在单位球体上的点
Figure 699398DEST_PATH_IMAGE059
Figure DEST_PATH_IMAGE060
通过使用
Figure 879844DEST_PATH_IMAGE059
,可以通过使用以下旋转矩阵使
Figure 479453DEST_PATH_IMAGE061
围绕𝑦轴顺时针旋转
Figure 618310DEST_PATH_IMAGE062
弧度来补偿透镜偏航
Figure 185426DEST_PATH_IMAGE062
Figure 169563DEST_PATH_IMAGE063
然后单位球体上的点
Figure 889257DEST_PATH_IMAGE064
如下获得:
Figure 402278DEST_PATH_IMAGE065
在另外的实施例中,可以使用立方体投影将球形视频投影到视频帧的矩形区域上。在这类实施例中,像素𝑠的逆投影
Figure 207423DEST_PATH_IMAGE064
可以通过以下计算获得。考虑以原点为中心的立方体,其具有6个面
Figure 995250DEST_PATH_IMAGE066
,其中优选每个面与两个轴对准。每个面与在非重叠分段中投影视频帧中布局的图像数据相关联。在该情境中,可以为每个面
Figure 320184DEST_PATH_IMAGE067
提供以下输入信息:
Figure DEST_PATH_IMAGE068
Figure 535264DEST_PATH_IMAGE067
的左上角。
M,3×2矩阵,其指示1×1 2D平面到
Figure 562126DEST_PATH_IMAGE067
上的线性映射。
Figure 153645DEST_PATH_IMAGE069
,2D图像中2D分段的左上角。
– 2D分段的宽度
Figure 582352DEST_PATH_IMAGE070
和高度
Figure DEST_PATH_IMAGE071
例如,具有在(1,0,1)处的左上角并且在原点处的中心的沿着正𝑥轴、𝑧轴的面具有以下值(结果产生大小为2的立方体):
Figure 702755DEST_PATH_IMAGE072
对于每个立方体面
Figure 482492DEST_PATH_IMAGE067
并且对于每个像素
Figure DEST_PATH_IMAGE073
,可以使用Mp投影到
Figure 861389DEST_PATH_IMAGE067
上:
Figure 144603DEST_PATH_IMAGE074
通过使用
Figure 967066DEST_PATH_IMAGE059
,可以通过经由构造对应于
Figure 968520DEST_PATH_IMAGE059
的单位矢量而使用例如日晷投影将𝑠投影到单位球体上来获得
Figure 901841DEST_PATH_IMAGE064
Figure DEST_PATH_IMAGE075
在实施例中,可以使用来自客户端设备的视图取向信息
Figure 39561DEST_PATH_IMAGE076
基于视口来确定掩蔽。对于投影视频帧中的每个像素,其在单位球体上的位置的角坐标
Figure DEST_PATH_IMAGE077
可以通过应用PNA来确定。在该情况下,将关于视口的角差异在二个维度(偏航和俯仰)而不是三个中进行比较就足够了,这是因为在
Figure 767346DEST_PATH_IMAGE078
的计算中已经取消了滚转。给定用户的水平和垂直视场的角宽度
Figure 3898DEST_PATH_IMAGE079
,并且给定观看者的偏航角
Figure 475331DEST_PATH_IMAGE081
和俯仰角θ,与
Figure DEST_PATH_IMAGE082
相关联的像素当且仅当如下情况下在视场内部:
Figure 467558DEST_PATH_IMAGE083
其中所有角都以弧度给出。图像的未掩蔽部分应当至少包含其至少部分包含在视口内部的所有像素。
通过针对视频帧中的每个像素执行该测试,可以选择要掩蔽的像素,并且可以相应地生成掩蔽视频帧。对于投影区域上的每个像素位置,只需要进行一次
Figure 631823DEST_PATH_IMAGE085
的计算;如果ω是固定的,则也可以计算和存储
Figure DEST_PATH_IMAGE086
。这样,源内容不必首先投影在球体上,这节省处理能力。
在投影归一化算法(PNA)的上述实施例中,依赖于将与某个投影模型相关联的投影视频帧的像素转换成球体上的像素(即,球形视频数据)和包括像素在球体上的位置,其中视口的位置以球形坐标表达。这类算法可以在如图7中描绘的视频处理服务器的掩蔽模块中实现。在另一个实施例中,投影模型可以用于将视口在虚拟球体上的位置转换成投影视频帧的2D矩形平面上的投影视口。可以将2D矩形平面中的像素与投影视口(ROI)的坐标进行比较,以便确定像素是否位于ROI(即视口)之外。基于这类算法,服务器的掩蔽模块可以确定投影视频帧中的哪些像素需要被掩蔽。
图7和8描绘了根据本发明各种实施例的处理视频数据的方法的流程图。特别地,图7描绘了可以由视频处理装置(例如,边缘服务器)执行的视频数据处理方案的流程图,如参考图7所描述的。视频数据处理可以包括使用视点信息来确定像素是否在视口之外,并且如果像素定位在视口之外,则将掩蔽操作应用于第一视频帧的这些像素。
该过程可以包括服务器从视频源接收或检索视频数据(例如,一个或多个经解码(原)视频帧)的步骤702。视频源可以是单独的媒体服务器。如果视频帧不可用,则服务器可以再次请求视频帧(步骤704)。如果接收到新的第二视频帧,则服务器可以使用从客户端设备接收的视点信息来确定视口的位置是否已经改变(步骤706)。在实施例中,视点信息可以由客户端设备连续地或定期地传输到服务器。在该情况下,服务器可以确定视口的位置改变是否大于某个阈值。当满足该条件时,服务器可以确定要求新掩蔽生成的视口改变已经发生了。可替换地,如果用户的观看方向大于某个阈值,则客户端设备可以仅向服务器传输视点信息。在该情况下,服务器可以假设服务器一接收到视点信息就要求新掩蔽生成。
因此,视口的新位置(在视点信息的基础上所确定的)可以用于通过使用新的视口位置确定哪些像素定位在视口之外来生成新的掩蔽(步骤708),并基于新的掩蔽将掩蔽操作应用于定位在视口之外的像素(步骤710)。如果视口的位置尚未改变或者位置的改变小于某个阈值,则服务器不需要更新掩蔽,并且可以使用当前掩蔽用于对第二视频帧进行掩蔽操作。
掩蔽操作可以结果产生包括ROI(即视频帧中像素的有界区域)的经处理(掩蔽)视频帧710,该ROI包括要由视频处理设备渲染的像素。经处理的视频帧可以由视频编码器编码(步骤712)并被发送到请求视频数据的客户端设备(步骤714)。在视口的接收与经处理的视频帧的传输之间的时间应当尽可能短,使得客户端设备可以尽可能快地接收和处理(解码)经处理的视频帧。
图8描绘了根据本发明实施例的视频数据处理方案的流程图。该过程可以由参考图6描述的客户端设备执行。该过程可以包括客户端设备基于观看方向确定其当前视口的位置(步骤802)。在实施例中,如果客户端设备确定视口的位置已经改变804,则客户端设备可以向客户端设备发送视点信息(步骤806),并将当前视口的位置设置为新位置(步骤808)。在其他实施例中,客户端设备可以以某个(规则或周期性)时间间隔向客户端设备发送视点信息,而不管视口的位置是否已经改变。客户端设备可以从服务器接收下一个经编码的掩蔽视频帧(步骤810),并且将掩蔽视频帧解码(步骤812)成经解码的掩蔽视频图片,视频处理设备的渲染引擎可以使用所述经解码的掩蔽视频图片来在视口以球形坐标的当前位置(即,视口在虚拟球体上的当前位置)的基础上渲染ROI中的像素。一般而言,视点信息可以包括关于用户的观看方向的信息(例如,视点、视口中心或视口的拐角),以及可选地关于视口大小的信息。
上述视频数据处理方案不仅适用于处理球形视频数据,而且还可以应用于2D视频数据。例如,像素掩蔽操作可以应用于2D视频帧中ROI之外的像素,所述ROI表示用于缩放操作的像素的有界区域。
视点信息可以通过在客户端与视频处理装置之间设立的低延迟通信信道传输。在实施例中,客户端设备与视频处理装置之间的IETF RFC 6455 网络套接字双向通信信道可以用于向客户端设备传输经处理(掩蔽)视频帧,并向视频处理设备传输视点信息。在实施例中,客户端设备可以基于使用UTF-8编码的JavaScript对象符号(JSON)消息与视频处理装置通信。
当使用球形视频数据时,角坐标可以用于指示作为球形表面(例如虚拟球体或虚拟圆柱体)上的视点的观看方向。视点也可以限定视口的位置。例如笛卡尔坐标或球形坐标之类的3D坐标可以用于指示球形表面上的位置。对于常规的2D视频,可以使用2D笛卡尔坐标。在一些实施例中,可以要求另一个坐标系。
由于大多数屏幕具有大体上矩形的形状,关于视频播放器装置的FOV的宽度和高度的信息可以允许视频处理设备基于FOV的大小来限制视口。对于球形视频数据,视频处理装置可以确定或接收与视频播放器装置的视锥台相关联的信息。在该情况下,客户端设备可以将对水平和垂直FOV的(角)限制发送到视频处理装置。非矩形视口可能要求限定视口的附加或不同参数。
除了与视口的位置和大小相关的参数之外,视点信息还可以包括关于平移和/或旋转速度和/或加速度的信息,所述平移和/或旋转速度和/或加速度与归因于用户改变其观看方向所致的视口位置的改变相关联。视频处理装置可以使用这类信息来预测视口的未来位置。
在某些情况下,客户端设备不需要向视频处理装置发信号通知一些参数。例如,当视频处理装置知晓视频播放器装置、例如头戴式显示器(HMD)的型号时,视场边界和/或屏幕大小可以在视频处理装置中被预先配置,使得不需要这类信息的传输。如果不允许用户适配视口的大小,则该大小可以仅需要指示一次。此外,对于视频处理设备的某些屏幕大小,通过假设渲染期间最坏情况的情境,可以忽略视频播放器装置的“滚转”旋转。这要求渲染受视场对角线约束的区域,并且因为滚转旋转角的消除大幅简化PNA算法而简化了掩蔽区域的确定。
在实施例中,发送到视频处理装置的视点信息可以包括一个或多个参数,所述参数具有如在表1中限定的数据格式。在视点信息中被发送到服务器的参数的类型和格式可以取决于具体的实现方式。
参数 类型 描述
俯仰 浮点值 以弧度的角
偏航 浮点值 以弧度的角
滚转 浮点值 以弧度的角
水平fov约束 浮点值 以弧度的角
垂直fov约束 浮点值 以弧度的角
表1.视口参数。
在视口在虚拟球体上的位置方面非常快和/或大改变的情况下,当前视口(在虚拟球体上)的位置可能与视频处理装置之前用来掩蔽客户端设备当前将要渲染的视频帧的视口(在虚拟球体上)的位置并不一致。因此,在该情况下,视频播放器设备的当前视口的位置可能移动到掩蔽视频帧的未掩蔽像素区域之外。这样,视频播放器装置可能渲染包括掩蔽像素的像素,从而使用户体验降级。为了减轻这类影响,可以采取若干措施。
在实施例中,如果客户端设备确定或预测视口位置中的改变可能使得当前视口移动到掩蔽视频图片的未掩蔽像素区域之外,则客户端设备可以向视频处理装置发送消息,其中该消息可以向视频处理装置发信号通知当前视口的位置将移动到掩蔽视频帧的未掩蔽区域之外。该消息可以包括与视频播放器装置的当前视口或FOV的位置相关联的视点信息。作为响应,视频处理装置可以在视口的当前位置的基础上对视频帧执行掩蔽操作。优选地,当改变到新的视口位置时,可以首先向客户端设备发送掩蔽I帧。这样,可以防止伪像和/或掩蔽像素的显示,和/或可以改进后续B帧的编码效率。因此,向客户端设备发送I帧以及相关联的P帧和B帧的间隔可以取决于视点的移动。该过程可以包括以下步骤:
- 从缓冲区检索与特定呈现时间戳(PTS)相关联的视频帧的原视频数据;
- 基于当前视点信息将掩蔽操作应用于视频帧;
- 使用基于视口的先前移动确定的I帧间隔对视频帧进行编码(总是以I帧开始);以及
- 生成包括经编码的视频帧的比特流到先进先出FIFO缓冲区,所述先进先出FIFO缓冲区直接将比特流流式传输到客户端设备(如下所详述),直到指示新的视口。
在此之下的表2中描述了创建新掩蔽的过程的伪代码。
Figure 342290DEST_PATH_IMAGE087
Figure DEST_PATH_IMAGE088
表2 基于视口的先前移动的视频编码过程。
在实施例中,客户端设备可以被配置为缓冲视频数据,只要播放速率低于向客户端设备流式传输或下载视频数据的速率。这样,即使在视点位置中的(迅速)改变之后,客户端设备也总是确保高质量的图像。当掩蔽视频帧被客户端设备缓冲时,客户端设备可以在当前FOV移动(或将移动)到缓冲的掩蔽视频帧的视口区域之外时丢弃(刷新)缓冲区。同时,客户端设备可以向服务器传输包括当前视点的视点信息。视点信息可以在请求消息中被发送到视频处理装置,以便请求视频处理装置基于当前视点位置生成掩蔽视频帧,并将掩蔽视频帧传输到客户端设备。在实施例中,可以在请求消息中向视频处理装置发送参考信息,例如与由客户端设备和/或视频播放器装置处理的当前视频帧相关联的帧号、或时间戳。这样,视频处理装置可以基于新的视口确定它应当从视频帧序列中的哪个视频帧开始掩蔽过程。
视频处理装置可以基于可用带宽来控制视频处理装置对视频帧的掩蔽。例如,视频处理设备可以:当带宽允许时(其不需要任何修改),传输以最高质量的未掩蔽视频帧;以中间可用带宽传输包括未掩蔽高分辨率像素区域的掩蔽视频帧;或者使用最少量的带宽传输包括未掩蔽像素区域的掩蔽视频帧,其中未掩蔽像素区域包括高分辨率像素区域和低分辨率像素区域。可替换地,基于可用带宽,客户端设备可以请求掩蔽视频帧或未掩蔽视频帧。
在一些实施例中,视频处理装置可以使用从早先的视点信息(以及可能地来自流式传输相同视频数据的不同客户端设备的视点信息)获得的信息,来预测视口在不久的将来(即在继当前时间实例之后的时间实例)的位置。在该客户端设备或其他客户端设备先前渲染的视频数据的情况下,视频处理装置可以每帧地确定视口位置和视口改变的预测。这样,服务器可以预先生成掩蔽视频帧,从而导致较低的运动到高质量延迟。
在实施例中,度量、优选视口度量可以由视频处理装置通过将从一个或多个客户端设备先前接收的视点信息存储在数据库中来确定。在另一个实施例中,度量可以由针对一个或多个客户端设备在特定时间实例的视点信息来确定。前一实施例可以节省视频处理装置的处理能力,但是可能耗费额外的存储空间。如果视口改变或者观看行为可以被分组或分类,那么后一实施例可以是有用的。例如,在自然纪录片的情况下,取决于兴趣,一些人可能看风景,并且其他人可能看视频中正解释风景的人。
在实施例中,为了处理用于预测未来视口位置的视点信息,视点信息可以与时间戳、例如呈现时间戳(PTS)相关联,并且与时间戳信息一起存储在数据库中。表3中提供了数据格式的示例:
Figure 351834DEST_PATH_IMAGE089
表3:带有时间戳的视点信息的数据格式。
视频中某些对象的移动可以是非常可预测的,例如从场地的一侧到另一侧跟踪足球。这类对象在视频帧中的位置可以基于众所周知的对象识别和对象跟踪软件来确定。服务器可以监视视频帧中这类对象的移动,并使用对象的位置和移动来预测视口的未来位置。因此,在视频流式传输期间,可以识别和跟踪视频中的对象,并且基于该信息,服务器可以做出关于一个或多个另外的(未来的)视口(的位置)的预测。预测的视口位置可以用于预先创建一个或多个掩蔽,从而降低MTHQ延迟。在实施例中,视口位置的预测可以取决于视口的移动速度。视口位置的预测可以包括历史视口数据的分析。
图9和10描绘了根据本发明各种实施例的视频流式传输过程的流程图。特别地,图9描绘了视频处理装置(例如(边缘)服务器)与参考图6所描述的客户端设备之间的基于视点的视频流式传输方案的流程图。如流程图中所示,在流式传输期间,在预定的时间实例,服务器可以基于一个或多个经解码(原)视频帧和视口(在虚拟球体上)的第一位置的信息生成经编码的一个或多个掩蔽视频帧(步骤9021,2),并且经由通信信道、优选为低延迟通信信道将所述一个或多个经编码的掩蔽视频帧传输到客户端设备(步骤9041,2)。客户端设备可以将经编码的掩蔽视频帧解码成掩蔽视频图片(步骤9061,2),所述掩蔽视频图片可以由其中执行客户端设备的视频播放器装置的渲染引擎渲染。当客户端设备检测到视点位置中的(足够大的)改变时(步骤910),客户端设备可以向服务器传输视点信息(步骤912)。当服务器接收到视点信息(步骤914)时,它可以基于与一个或多个视频帧的新视点相关联的视口将掩蔽操作应用于视频帧(步骤9023,4),并且将所述一个或多个经编码的掩蔽视频帧传输到客户端设备(步骤9043,4),所述客户端设备将经编码的掩蔽视频帧解码成由视频播放器装置渲染给用户的掩蔽视频图片(步骤9063,4)。在该过程期间,客户端可以确定在检测到视口中的改变(步骤910)和渲染基于更新的视场生成的掩蔽图片(步骤9083)之间的时间(步骤916)。该时间可以被称为所谓的运动到高质量(MTHQ)延迟。
本公开中的实施例的目的之一是在从服务器向客户端传输视频数据时节省带宽,并且尽可能低地减小MTHQ延迟,以便避免渲染中的伪像。优选地,运动到高质量延迟小于由客户端设备测量的时间间隔,所述时间间隔限定两个后续掩蔽视频图片的渲染之间的时间(步骤918)。
下面描述了用于将视口从服务器传输到客户端的可能实现方式。有利的是,创建经编码的掩蔽视频帧的时间和传输经编码的掩蔽视频帧的时间的总和小于播放时帧之间的时间。
图10更详细地描述了从视口改变到渲染的过程。这些过程步骤可以限定所谓的运动到高质量(MTHQ)延迟1017。如该图中所示,客户端设备可以检测或确定视口位置中的改变(步骤1002)。作为响应,客户端设备可以向服务器发送至少包括视口的新位置(例如,以视点坐标的形式)的视点信息(步骤1004)。在实施例中,客户端设备可以在每个帧请求之前或者连同每个帧请求一起向服务器发送视点信息。在另一个实施例中,客户端设备可以以固定(周期性)间隔向服务器发送视点信息。在又一个实施例中,客户端设备可以仅在客户端已经检测到视口的位置已经改变时向服务器发送视点信息。可以使用阈值,以便发送与视点位置中的足够大的改变相关的视点信息。服务器可以选择视频帧(步骤1006)以供传输到客户端设备,在视点信息的基础上确定视口(步骤1008),并将掩蔽操作应用于视频帧的位于视口之外的像素(步骤1010)。然后,服务器可以对掩蔽视频帧进行编码(步骤1012),并且对掩蔽视频帧进行光学封装(步骤1014),并将经编码的掩蔽视频帧传输到客户端设备(步骤1016)。响应于接收到经编码的掩蔽视频帧,客户端设备可以(如果适用的话)对经编码的掩蔽视频帧进行解封(uppack)(步骤1018),将经编码的视频帧解码成掩蔽视频图片(步骤1020),并且渲染在视频处理设备的视口中的视频图片(步骤1022)。
MTHQ延迟可以取决于这些过程步骤。因此,为了减小MTHQ延迟,每个个体步骤应当花费尽可能少的时间。延迟的减小可以通过在服务器和客户端设备之间使用低延迟通信信道、例如双向网络套接字通信信道来实现。附加地,通过将服务器实现为物理上靠近客户端设备的网络节点,可以实现通信信道延迟的进一步减小。例如,在实施例中,服务器可以实现为边缘服务器、优选为5G标准中所限定的边缘服务器。可以通过使用视口(或视点)度量来获得MTHQ延迟的进一步减小,所述视口(或视点)度量用于使得服务器能够预测继当前时间实例的视点位置之后的时间实例的视点位置。在实施例中,客户端设备可以被配置为确定MTHQ延迟并将测量的延迟传输到服务器。
在实施例中,客户端设备可以被配置为测量或至少预测MTHQ延迟。例如,当向服务器传输视点信息时,视点信息可以包括使得客户端设备能够确定MTHQ延迟的信息,MTHQ延迟特别是视点信息向服务器的传输与客户端设备对基于视点信息被掩蔽的视频帧的接收之间的往返时间(RTT)。视点信息可以包括标识当视点信息被发送到服务器时客户端设备正在处理的一个或多个视频帧的参考信息和/或视点信息被发送到服务器的时间戳。响应于视点信息,服务器可以向客户端设备发送掩蔽视频帧,以及发送信息来发信号通知客户端设备:视频帧基于新接收的视点信息(例如视点的位置)被掩蔽,所述新接收的视点信息由服务器用来确定用于掩蔽视频帧的新视口、由客户端设备在视点信息中发送到服务器的时间戳和/或参考信息。往返时间和渲染掩蔽视频帧所需的时间可以限定可以由客户端设备在视点信息中发送到服务器的MTHQ延迟。
在实施例中,客户端设备或服务器可以使用延迟时间、诸如MTHQ延迟来确定视口的大小。例如,在相对大的延迟时间的情况下,客户端或服务器可以确定视口需要(显著)大于FOV,而在低延迟时间,客户端设备或服务器可以确定视口的尺寸近似匹配视频播放装置的FOV的尺寸。
图11图示了根据本发明实施例的掩蔽视频帧。特别地,图11图示了包括未掩蔽像素区域1102、1104和掩蔽像素区域1108的掩蔽投影视频帧。视频处理装置在从请求视频数据的客户端设备所接收的视点位置的基础上来生成掩蔽视频帧。在该特定示例中,投影视频帧包括基于等矩形投影模型投影的球形视频数据,然而也可以使用其他类型的投影模型。在该实施例中,视频处理装置可以选择(显著)大于视频播放器装置的FOV的视口。
为了确保与客户端设备相关联的显示装置在视口位置中的改变期间不渲染经处理的像素(例如,掩蔽像素)区域1108,视口可以包括至少一个高分辨率未掩蔽像素区域(例如,与视频播放器装置的FOV一致的高分辨率区域1102)和FOV之外(周围)的一个或多个低分辨率未掩蔽像素区域1104。高分辨率未掩蔽像素可以具有与被掩蔽的原始视频帧的像素相同的分辨率。FOV之外(周围)的低分辨率像素可以被称为空间视口缓冲区(SVB),或者简称为空间缓冲区。增加SVB可以减轻长MTHQ延迟(其是往返时间(RTT)、在服务器上创建经编码的掩蔽视频帧所需的时间、将经编码的掩蔽视频帧传输到客户端设备所花费的时间以及客户端设备对经编码的掩蔽视频帧进行解码并渲染经解码的掩蔽视频帧的像素所花费的时间的组合)的一些影响。在一些实施例中,客户端设备可以被配置成调整所请求的视口的参数以包括SVB。在其他实施例中,客户端设备可以被配置为确定视口参数和/或SVB参数。在又其他实施例中,服务器可以向客户端设备请求的视口添加SVB。
在实施例中,SVB 1104可以具有静态尺寸和/或静态形状。在另一个实施例中,SVB的尺寸和/或形状可以取决于服务器和客户端之间可用的带宽量、MTHQ延迟和/或视口改变的频率和速度而随着时间和/或质量变化。以下段落描述了缓冲区动态可伸缩性背后的逻辑。发送视口可以耗费可变的带宽量。取决于客户端设备和服务器之间的可用带宽,服务器可以确定增加SVB的大小和/或像素分辨率,直到使用额外的带宽。可替换地,服务器可以确定发送源视频的完整未掩蔽视频帧或低分辨率的完整未掩蔽视频帧(例如,源视频的未掩蔽视频帧的下采样版本)。在实施例中,代替服务器,客户端可以确定增加SVB的大小和/或像素分辨率。对SVB的大小和/或像素分辨率的动态调整可以在可用带宽的基础上确定。这类确定的示例可以包括以下步骤:
针对视口的每像素比特率(bpp):当前比特率/视口中的总像素
SVB在像素方面的增加:可用带宽/ bpp
为了节省带宽并同时保持足够大的SVB的一些优点(诸如低动显延迟的优点),SVB中的像素在质量方面可能降级。在一个实施例中,这可以通过执行以下步骤来完成:
- 基于时间、空间和/或有损压缩(取决于用例)来创建第一投影视频帧,其表示原始投影视频帧的低质量表示;
- 可选地,将第一投影视频帧按比例放大到原始投影视频帧的大小,确定表示第一投影视频帧中的视场(FOV)和原始投影视频帧的视场(FOV)的区域,并由原始(高分辨率)投影视频帧的视场中的对应像素替代第一(低分辨率)投影视频帧的视场中的像素,从而形成包括低分辨率(下采样)投影视频帧的双分辨率视频帧,该低分辨率投影视频帧包括高分辨率视场;
- 通过将掩蔽操作应用于第一投影视频帧来确定经处理(掩蔽)视频帧,掩蔽操作对视口之外的像素进行掩蔽,视场定位在视口内,视口和视场之间的区域限定空间视口缓冲区(SVB),其中SVB的像素是低分辨率像素,并且视场(FOV)的像素是高分辨率像素。
该过程可以结果产生掩蔽视频帧1106,其包括视口并包括视口之外的掩蔽区1108,所述视口包括FOV 1102和视口周围的空间视口缓冲区域(SVB)1104,FOV 1102包括具有原始视频帧分辨率(第一分辨率)的像素,所述空间视口缓冲区域包括比视口中像素低的分辨率(低于第一分辨率的第二分辨率)的像素,在掩蔽区1108中基于掩蔽操作来处理像素。使用包括比源视频帧分辨率低的分辨率的像素的SVB可以节省带宽并减小可见伪像。可替换地,SVB之外的区1108可以是显著低于SVB中像素分辨率的分辨率的像素。
图12A和12B图示了根据本发明实施例的空间视口缓冲区的使用。特别地,这些图图示了空间视口缓冲区(SVB)移动范围方面的增加。图12A图示了虚拟球体的3D表示和掩蔽过程期间的视口位置,视口包括空间缓冲区1204和FOV 1206。图12B表示球体在x-y平面中的横截面视图,其图示了位于虚拟球体中心的视频播放器装置的用户的视角。这里,视角与空间缓冲区12141,2及其中的FOV 1212相关。在视频流式传输过程期间,用户可以改变其观看方向,其中该过程应当注意,在观看方向改变期间,视频播放器装置的当前FOV 1208应当停留在与视频播放器装置当前正在处理(例如解码和渲染)的掩蔽视频帧相关联的视口内。
因此,在实施例中,客户端设备可以确定第一当前视点(表示视频播放器装置的当前FOV位置),并将第一视点位置与作为视点信息的部分传输到视频处理装置的早先的第二视点进行比较。如果第一和第二视点之间的距离大于预定阈值,则客户端设备可以基于第一当前视点发送针对掩蔽视频帧的请求。可替换地,如果当前FOV的边缘移动或者将要移动到掩蔽视频帧的未掩蔽像素区域之外,则客户端设备可以基于第一当前视点发送针对掩蔽视频帧的请求。该请求可以包括当前视点的位置以及可选地视频帧参考信息(例如帧序列号或呈现时间戳PTS),所述视频帧参考信息与当客户端设备基于当前视点向视频处理装置传输针对掩蔽视频帧的请求时由视频播放器装置处理的视频帧相关联。视频处理装置可以使用视频帧参考信息来选择掩蔽过程基于新视口位置应当应用于的视频帧。附加地,在实施例中,视频处理装置可以将掩蔽视频帧和(部分)视点信息(即视点位置或参考信息)发送到客户端设备,使得客户端设备知晓被视频处理装置用于掩蔽视频帧的视点的位置。
SVB的大小可以取决于视口改变的运动到高质量(MTHQ)延迟和视口移动平均速度(以度或弧度每秒计)。如果视口中的改变(例如,归因于用户改变其观看方向)快于以下所要求的时间:
– 请求包括与用户的新观看方向一致的视口的视频帧,
– 基于新观看方向更新掩蔽,以及
– 将新生成的掩蔽视频帧发送回到客户端,
则客户端设备可以渲染部分掩蔽区域(例如单色(绿色)像素)。为了解决该问题,可以使用平均运动速度来将SVB调整到在视口在给定时间内可能改变的范围内或者视口在给定时间内预期改变的范围内的大小。在一些实施例中,这可能结果产生不对称的空间视口缓冲区。例如,如果观看者正向右移动,可能使视口右侧的SVB比视口左侧的SVB大。视口改变的运动速度可以用以下方式计算,其中球体上的视口以角坐标的形式限定,并且时间以秒计:
持续时间:移动结束时间-移动开始时间
行进的度:FoV结束角-FoV开始角
运动速度:行进的度/持续时间
在使用不对称SVB的实施例中,需要确定运动速度,即速度和方向的组合。在该情况下,速度可以分解成水平分量和垂直分量。然后,SVB可以在对应方向上相应地增加。运动到高质量(MTHQ)延迟可以由三个时间间隔的总和来确定:
– 从旧的第一视口到新的第二视口的移动与视点信息由客户端设备向网络中服务器的传输之间的第一时间间隔,该服务器被配置为基于新视口的位置信息生成包括ROI的掩蔽视频帧;
– 视点信息的传输时刻与包括包含ROI的掩蔽视频帧的响应消息的接收时刻之间的第二时间间隔;以及
– 响应消息的接收与向用户渲染ROI的视频数据之间的第三时间间隔。
本发明对于球形视频数据向客户端设备的高效传输可以是有利的,因为经压缩的掩蔽视频帧的传输一般将比经压缩的未掩蔽视频帧的传输花费更少的时间。在实施例中,服务器可以在每个帧的元数据中包括视点信息,例如关于接收到的掩蔽视频帧中视口位置的信息。在该情况下,客户端设备可以使用掩蔽视频帧的元数据来确定接收到的掩蔽视频帧是否对应于请求的视口。此外,客户端设备可以使用视口的位置来确定当前FOV是否仍然位于视口内。
在实施例中,服务器可以发送确认消息,其包括包含所请求视口的视频帧的帧号。第二时间间隔可以基于以下各项来确定:客户端设备向服务器发送针对新视口的请求的第一时间实例,和客户端设备接收到包括包含新视口的视频帧的响应消息的第二时间实例。
在实施例中,视口移动的平均速度(即视口位置在虚拟球体上移动的平均速度)可以由服务器基于历史数据、例如来自早先视点信息消息的视口位置信息来确定。视口运动的平均速度可以用于确定SVB的尺寸(大小)。在实施例中,改变SVB的尺寸的决定可以包括检查将视口从第一位置移动到第二位置的时间是小于还是大于运动到高质量延迟(其中运动到高质量延迟可以由客户端设备计算)。在实施例中,客户端设备可以基于该信息确定SVB的大小,并且在某些实施例中可以将该信息发送到服务器。可替换地和/或附加地,可以基于视点信息、例如FOV角来增加SVB的大小。这是用以下方式完成的:
宽度SVB度:(动显时间×运动速度)× 2
在实施例中,客户端设备可以向服务器发送SVB的宽度(以角坐标计)和当前视点信息。在另一个实施例中,SVB的宽度可以由服务器基于视口的历史运动数据来确定。在一些实施例中,如果视频处理设备的当前FOV的边缘距SVB边界小于预定距离,则更新掩蔽的位置可以是有利的。例如,如果所请求的视口围绕某个方向移动(振荡)(例如,归因于运动传感器信号上的噪声,或者观看者的轻微头部移动),则未掩蔽区域可以保持静止,从而潜在地减小服务器上的计算开销并增加编码效率。在实施例中,如果视场的位置保持在当前空间视口缓冲区内,则仅当安排发送I帧时,才可以更新掩蔽。
掩蔽操作可以在过程的不同阶段处执行。例如,可以例如在拼接操作与投影、映射与封装操作之间执行掩蔽操作。可替换地,映射操作可以在投影、映射和封装操作与编码操作之间执行,或者在过程中在编码之前的任何其他合适的点处执行。
掩蔽功能的输出(即掩蔽投影视频帧)可以被编码和压缩以节省传输带宽。任何现有技术的视频编解码器H.264、H.265、VP8、VP9、AVC1、AVC2等可以用于对掩蔽视频帧进行编码。可替换地,可以使用比如JPEG或PNG之类的压缩方案。可以基于所使用的传输方法(例如,经由网络套接字传输)来选择压缩方案。
在实施例中,边缘服务器可以接收经编码的视频,解码视频,基于从客户端设备接收的视点信息应用掩蔽,并且然后如之前那样以对掩蔽视频帧进行重新编码和传输而继续。
在一些实施例中,为了进一步节省带宽,可以使用有损编码来压缩视口或投影视频帧。该有损编码方法的选择以及使用有损编码的决定可以随着时间而变化并且可以取决于用例。在所有情况下,将发送整个视口区域,但是当服务器和客户端之间的可用带宽非常低时,视口的质量可能降级。
服务器将首先尝试以最高可能的质量编码和传输视口区域,同时维持尽可能低的比特率。这是通过应用耗费很多处理能力的重无损编码来完成的。通过使用时间、空间和/或有损压缩而不是使用无损编码,只有在到达CPU和/或GPU的极限之后,视口区域的图像质量才将降低。视口区域的质量可以在客户端间以不同的方式分布。这取决于用例,并且在本文档的范围之外。
在实施例中,掩蔽内容的封装可以经由ISO/IEC14496-12——即ISO基础媒体文件格式(ISO BMFF)来完成。每个文件(分段)可以包括一个或多个帧。每次请求新视口时,创建新分段。该分段的长度(以时间计)取决于用户正请求特定视口的时间量。此外,分段的长度还可以取决于帧的创建时间,以及将该帧从服务器传输到客户端所花费的时间。帧之间的时间取决于帧率:例如在30fps时,帧之间的时间是0.033秒。在该时间内,可以创建一个帧并发送到客户端。如果服务器足够快,则更多的帧可以在可用的时间量内被创建并被添加到分段。这样,可以在客户端处创建帧缓冲区,这可以增强视频的播放。此外,当视口改变时,缓冲区可以被清除。
在另一个实施例中,掩蔽视频内容的封装可以使用片段MP4来完成。片段MP4基于共同文件格式&媒体格式规范2.1(CFF媒体格式),并参考ISO/IEC 14496-12。因此,与先前段落中描述的相同逻辑适用,具有添加的功能性,即当每个分段存储在单个片段.mp4文件中时,(部分)文件的传输可以在文件完成之前经由字节范围请求而每分段地发生。
在实施例中,服务器和客户端之间的通信、并且特别是视频内容的传输可以利用网络套接字。网络套接字实现方式可以是特别有利的,因为它们允许客户端和服务器之间的双向通信,这与基础HTTP实现方式相对,在基础HTTP实现方式中,通信总是采取来自客户端的请求、继之以来自服务器的响应的形式。特别地,使用网络套接字比分段封装和传输技术的优点在于,帧可以在它们借助于服务器推送一被创建就交付给客户端。相比之下,分段流式传输技术可能在掩蔽和传输之间引入延迟,因为这类流式传输技术需要缓冲视频帧,以便按组块来处理图像,应用压缩和/或创建分段。因此,经由网络套接字的传输可以有助于减小运动到高质量延迟。
在实施例中,其中视频内容是要在网络浏览器(WebVR)中显示的虚拟现实(VR)内容,可能要求附加的步骤,因为标准网络浏览器可能不总是支持传输单个未封装的帧(与多帧分段相对)。为了应对该问题,可以对每个帧采取以下步骤:
- 编码器将包含视口的帧作为图像(例如JPEG或PNG)输出;
- 图像经由网络套接字传递到客户端;
- 图像被渲染在HTML5画布上。
对于网络浏览器之外的虚拟或增强现实流式传输实现方式(例如,在Oculus上显示),可以通过将编码器的输出发送到FIFO缓冲区并依次将缓冲区内容发送到客户端来应用帧间压缩。在客户端侧,内容被直接接收、解码和显示。这可以使用标准技术来实现,其中网络套接字的接收侧将数据写入管道,并且解码器从该管道进行读取。由于帧仍然在一个接一个地并且以显示速率发送,服务器可以立即对改变视口的请求做出反应。
经由网络套接字的视频交付的初始化可以涉及初始化消息,该初始化消息包括例如表4中限定的元素。
参数 类型 强制/可选 描述
传输类型 字符串 强制 例如“网络套接字”
优选帧宽度 整型值 可选 如果帧宽度低于源视频,则服务器可以决定使帧降级以节省传输中的字节。
优选帧高度 整型值 可选 如果帧高度低于源视频,则服务器可以决定使帧降级以节省传输中的字节。
表4。
在客户端发送初始化消息之后,它可以接收包括例如表5中限定的元素的响应。
参数 类型 强制/可选 描述
响应类型 字符串 强制 “好”或“错误”
响应消息 字符串 可选 可选错误消息。
帧率 整型值 可选 当响应类型为“好”时,是强制的
帧宽度 整型值 可选 当响应类型为“好”时,是强制的
帧高度 整型值 可选 当响应类型为“好”时,是强制的
表5。
初始化完成之后,传输的开始可以由从客户端到服务器的消息来指示,该消息包括例如表6中所限定的元素:
参数 类型 强制/可选 描述
视频-cmd 字符串 强制 例如“播放”、“暂停”或“停止”
表6。
当发送播放命令时,视频的传输可以从当前呈现时间戳(PTS)(通常为0)开始。暂停可以停止图像传输,保存针对该会话的PTS。停止可以停止图像传输,并且附加地将PTS(重新)设置为0。
包括视频帧数据的服务器消息可以包括例如表7中限定的元素:
参数 类型 强制/可选 描述
帧-nr 整型值 强制
帧数据 二进制大对象(Blob) 强制 图像数据
表7。
视频帧的传输可以继续,直到客户端发送暂停或停止命令消息,直到到达视频内容的结尾,或者直到网络套接字断连。当在客户端侧处接收到视频帧数据时,必须显示接收到的视频帧数据的显示时间使用先前传送的帧率和先前渲染帧的时间来计算。例如以30fps的帧率,下一帧显示时间是:
显示-时间-先前-图像-秒 +(1/30)
当在那时没有视频帧可用时,先前渲染的图像可以保持可见,直到下一图像可用。在实施例中,视频数据可以使用如RFC3550“RTP: A Transport Protocol for Real-TimeApplications”中描述的实时传输协议(RTP)从服务器传输到客户端。客户端设备可以经由实时传输控制协议(RTCP)建立连接,并经由网络套接字将视点信息传输到服务器。服务器可以使用视点信息将视频帧处理成掩蔽视频帧,并且基于RTP协议将(封装的)视频帧发送到客户端设备。这类方案可以根据但不限于RFC6184 “RTP Payload Format for H.264Video”中的描述来实现。当将经编码的视频数据格式化为网络抽象层(NAL)单元时,必须使用非交织模式以解码顺序将NAL单元发送到客户端设备。
将RTP协议用于从服务器到客户端设备的数据流式传输,客户端设备的缓冲区被设置为零。可替换地,可以实现一种方法,以在视口的位置移动到当前掩蔽视频帧的空间视口缓冲区域之外时清除缓冲区。在将期望的帧率考虑在内的情况下,为了最小化运动到高质量延迟,期望视频帧在它们可用之后(几乎)直接显示。当使用网络抽象层(NAL)单元时,可以指示使用非交织模式以解码顺序发送数据。数据分组可以通过UDP传输。
在实施例中,视频内容可以是基于例如WebVR要在网络浏览器中显示的虚拟现实(VR)内容。在该情况下,可以使用网络实时通信(WebRTC)来实现从服务器到客户端的视频传输。视频数据可以使用VP8、VP9或H.264进行编码。当实现WebRTC时,将在服务器和客户端之间建立对等连接,并且视频传输可以通过UDP经由RTP而发生,如先前段络中所描述的。也可以采用对等连接来请求视口。
在实施例中,从服务器到客户端的视频传输可以使用2012年12月21日由H.Parmar和M.Thornburgh发表的Adobe的实时消息传输协议(RTMP)来施行。为此,客户端设备和服务器两者可以被配置为使用RTMP协议以用于视频流式传输。当经由远程过程调用(RPC)建立数据连接时,必须建立为0的客户端侧缓冲区大小从而引起客户端接收流,或者必须实现一种方法以在发送对应于新视口的视频数据时清除客户端侧缓冲区。客户端可以使用RPC请求来请求基于视口的当前位置处理的新的掩蔽视频帧。
通过使用MPEG-DASH,服务器可以供应在比特率方面不同的若干视频版本,所述视频版本在清单文件中被描述。客户端可以取决于可用带宽切换到视频的较低或较高比特率表示。如ISO/IEC 23009-5:2017“Information technology: Dynamic adaptivestreaming over HTTP (DASH), part 5: Server and network assisted DASH (SAND)”中所描述的,SAND协议可以用于使得客户端设备能够更快地选择对于可用带宽而言最好(或至少合适)的表示,使得保证视频的平滑播放。当使用常规DASH时,较低的带宽将立即导致较低质量的视口。因此,在实施例中,可以通过增加或降低SVB的大小和/或质量来增加或降低比特率。
在实施例中,服务器不基于视口位置中的改变量来确定SVB的大小,而是代之以可以确定具有不同SVB大小和质量的多个不同视频表示。这类视频表示可以包括低比特率&高MTHQ的视频表示、低比特率&低MTHQ的视频表示、高比特率&高MTHQ的视频表示以及高比特率&低MTHQ的视频表示。这些视频表示可以在清单文件(例如MPD)中限定。DASH客户端可以使用MPD来取决于可用带宽而选择这些表示之一,并将向Dash感知网元DANE发送状态和度量消息。DANE知晓与客户端设备的视点相关联的视口和流式传输到客户端设备的DASH内容,并且DANE可以使用该信息来计算针对客户端设备的最佳比特率。DANE可以使用比特率信息,以经由如表8中描述的定制增强交付参数(PED)消息“CreateRepresentationType”向DASH服务器指示新视口表示的创建。作为结果,客户端设备可以清除其缓冲区,以确保包括所请求的视口区域的视频数据被渲染给用户。
Figure DEST_PATH_IMAGE090
表8。
创建新表示的决定基于当前表示与针对客户端设备的最佳表示之间在比特率方面的差异。最佳表示可以通过使用如上所述的用于SVB的逻辑和DANE提供的带宽信息来计算。做出改变表示的决定所基于的标准可以取决于服务器上可用的处理能力的量。
在已经创建了新的表示之后,DANE可以使用包含新的表示可用的时间的“MPDValidityEndTime”消息来发信号通知客户端设备更新清单文件、例如媒体呈现描述MPD。
通过使用SAND,数据分组可以被指定为所谓的“特权分组”。这些特权分组可以用于确保需要低MTHQ延迟的分组(例如,包括表示新请求的视口的视频数据的分组)在网络中取得优先级,如IEC 23009-5中描述的。这样,客户端设备可以基于第一视口创建缓冲区,但是仍然能够在最短可能时间内替代缓冲区内容。
在实施例中,视频从服务器向客户端设备的传输可以使用如在ISO/IEC 23009-6:2017“Information technology: Dynamic adaptive streaming over HTTP (DASH),part 6: DASH with server push and WebSockets”,第7章和第8章中描述的具有服务器推送的MPEG-DASH来实现。服务器推送选项允许服务器以所要求的帧率推送包括所请求视口的视频帧。可以通过例如实现如上讨论的ISO BMFF或片段MP4而使得视频数据分段在长度方面可变。然而,视口改变为包括当前空间视口缓冲区中不包括的像素的视口可能要求新的分段立即开始。
如参考图3所描述的,将球形视频数据投影、映射以及可选地封装到投影视频帧中的步骤可以导致在(投影)视频帧中、不存在于像素球体上的球形视频数据中的伪区边界的形成——其取决于投影类型可以包括水平、垂直、对角线和/或非对角线区边界。这些边界是伪的,因为它们不表示所捕获场景中的实际物理边界。当视频处理设备的用户改变其视点时,与移动的FOV相关联的ROI可以包括可能影响像素掩蔽过程的各种不相交的子区。
图13图示了根据本发明实施例的对投影视频帧进行掩蔽的过程。在该示例中,球形视频数据基于立方体投影模型被投影到视频帧的2D矩形区域上,其中球体上的球形视频数据被投影到立方体的面,如例如参考图3所描述的。包括表示球形视频的立方体投影1302的像素的视频帧可以经受封装操作1310,以获得经封装的视频帧1312。如前所述,视频处理设备仅能够渲染定位在虚拟球体上的当前视口中的球形视频数据。当前视口转化成投影视频帧中的ROI 13041,2。归因于特定的投影模型,ROI可以被划分在例如第一ROI区13041和第二ROI区 13042之类的多个ROI区中。可选地,可以围绕限定视场1304的边界来确定扩展边界1306。扩展边界限定视口周围的像素区域,所述像素区域可以充当如参考图11和12的空间缓冲区。后续,对ROI之外的所有或至少大部分像素进行掩蔽1130,从而结果产生掩蔽视频帧,其中ROI中的像素(即,视场区域1304和周围保护带1306中的像素)未更改。ROI之外的区域的掩蔽将具有与掩蔽像素相关联的信息的熵显著减小的效果。在将视频帧压缩和/或编码成比特流之后,这类掩蔽视频帧1332的传输将要求比未掩蔽视频帧1312的传输显著更少的比特。
图14A和14B图示了根据本发明实施例的对投影视频帧进行掩蔽的过程。特别地,图14A和14B描绘了基于立方体的投影视频帧1410、1420,其可以被封装到包括ROI的投影视频帧14121、1422中,所述ROI包括两个ROI区14161,2。每个投影视频帧包括像素区的布置,其中每个像素区表示立方体投影中使用的立方体的面(如参考图3和4所解释的)。如图14A和14B中所示,投影视频帧1410、1420与ROI 1414、1424相关联,ROI 1414、1424与视频帧中移动人物的头部部分一起移动。可以将掩蔽操作应用于立方体类型投影视频帧,从而结果产生包括ROI和掩蔽像素区的掩蔽投影视频帧。然而,归因于后续的封装过程,ROI可以被分离在如分别由经封装的视频帧14121和14221描绘的多个隔离的ROI区14161,2和14261-3中。
在一些实施例中,服务器可以重新布置像素区的封装,以便确保ROI覆盖经封装视频帧中的连续区域。例如,如图14A中所示,ROI区14161和14162分别定位在像素区U和F中。第一封装视频帧14121中的这些像素区U和F可以被重新布置(重新映射),使得ROI区形成原始ROI,或者至少一个连续ROI区。重新布置(重新映射)的结果被描绘为第二封装视频帧14122,其中像素区的重新布置结果产生包括一个连续ROI 1418的封装视频帧14122。这样,可以执行更简单的掩蔽操作。对于图14B的投影视频帧1420,图示了对包括ROI区的像素区的类似重新映射,所述类似重新映射用于形成原始ROI 1428或减小隔离的ROI区14261-3的数量。将ROI区重新布置成一个ROI可以简化掩蔽过程和/或增加压缩和/或编码效率和/或渲染的ROI的视频质量。如图中所示,可以调整像素区的位置和像素区的取向两者。可以根据ISO/IEC FDIS 23090-2第5.2.3章中描述的标准完成该重新映射。可以向客户端设备通知像素区的重新映射。该信息可以包括在与投影视频帧相关联的元数据中。可替换地,服务器可以通过例如网络套接字在单独的消息中向客户端设备发送该信息。
图15是图示了示例性数据处理装置的框图,所述示例性数据处理装置诸如本公开中所描述的视频处理装置和视频播放器装置。数据处理装置1500可以包括通过系统总线1506耦合到存储器元件1504的至少一个处理器1502。这样,数据处理装置可以在存储器元件1504内存储程序代码。此外,处理器1502可以执行经由系统总线1506从存储器元件1504访问的程序代码。在一个方面,数据处理装置可以被实现为适用于存储和/或执行程序代码的计算机。然而,应当领会,数据处理装置1500可以以任何系统的形式实现,所述系统包括能够执行本说明书内描述的功能的处理器和存储器。
存储器元件1504可以包括一个或多个物理存储器设备,诸如例如本地存储器1508和一个或多个大容量存储设备1510。本地存储器可以指代一般在程序代码的实际执行期间使用的随机存取存储器或(一个或多个)其他非持久存储器设备。大容量存储设备可以被实现为硬驱动或其他持久数据存储设备。数据处理装置1500还可以包括一个或多个高速缓冲存储器(未示出),其提供至少一些程序代码的临时存储,以便减小在执行期间必须从大容量存储设备1510检索程序代码的次数。
被描绘为输入设备1512和输出设备1514的输入/输出(I/O)设备可选地可以耦合到数据处理系统。输入设备的示例可以包括但不限于,例如键盘、诸如鼠标的定点设备等。输出设备的示例可以包括但不限于,例如监视器或显示器、扬声器等。输入设备和/或输出设备可以直接地或通过居间I/O控制器耦合到数据处理系统。网络适配器1516也可以耦合到数据处理系统,以使得其能够通过居间私有或公共网络而变得耦合到其他系统、计算机系统、远程网络设备和/或远程存储设备。网络适配器可以包括用于接收由所述系统、设备和/或网络向数据接收器传输的数据的所述数据接收器和用于向所述系统、设备和/或网络传输数据的数据传输器。调制解调器、线缆调制解调器和以太网卡是可以供数据处理系统1500使用的不同类型的网络适配器的示例。
如图15中绘制的,存储器元件1504可以存储应用1518。应当领会,数据处理装置1500可以进一步执行可以促进应用执行的操作系统(未示出)。以可执行程序代码的形式实现的应用可以由数据处理系统1500、例如由处理器1502来执行。响应于执行应用,数据处理系统可以被配置为执行要在本文进一步详细描述的一个或多个操作。
例如,在一个方面,数据处理装置1500可以表示客户端数据处理装置。在该情况下,应用1518可以表示客户端应用,所述客户端应用在被执行时配置数据处理系统1500来执行本文参考“客户端设备”描述的各种功能。
本文使用的术语仅出于描述特定实施例的目的,并且没有限制本发明的意图。如本文所使用的,单数形式“一”、“一个”和“该”意图也包括复数形式,除非上下文另有明确指示。将进一步理解,术语“包括”和/或“包含”当在本说明书中使用时指定所阐述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。
所附权利要求中所有构件或步骤加功能元件的对应结构、材料、动作及等同物意图包括用于如具体要求保护的那样结合其他要求保护的元件执行功能的任何结构、材料或动作。本发明的描述已经出于说明和描述的目的被呈现,但是没有作为穷举性或限于以所公开形式的发明的意图。在不脱离本发明的范围和精神的情况下,许多修改和变型对于本领域普通技术人员而言将是清楚的。选择和描述实施例,以便最好地解释本发明的原理和实际应用,并使得本领域的其他普通技术人员能够因为各种实施例而理解本发明,所述各种实施例具有如适合于设想到的特定用途的各种修改。

Claims (15)

1.一种处理视频数据的方法,包括:
视频处理装置的处理器接收经解码的视频帧,视频帧包括表示视频图像的视频数据,所述视频数据包括像素,其中每个像素与表示亮度/颜色值的一个或多个像素值相关联;
处理器从与显示器相关联的客户端装置接收视点信息,所述视点信息包括限定显示器的用户的观看方向的观看方向信息;
所述观看方向信息与视频图像中的视场FOV区和视口区相关联,FOV区限定可以在显示器上渲染的区,并且视口区限定视频图像中包括FOV区的区;
处理器基于所述观看方向信息和经解码的视频帧来确定掩蔽信息,所述掩蔽信息针对经解码的视频帧的每个像素指示像素是否定位在视口区之外;
处理器通过将掩蔽操作应用于视口区之外的像素,来使用所述掩蔽信息将经解码的视频帧转换成经解码的掩蔽视频帧,掩蔽操作减小视口区之外的至少部分像素的像素值的熵;以及
处理器将经解码的掩蔽视频帧提供给编码器装置的输入,并且编码器装置将经解码的掩蔽视频帧编码成经编码的掩蔽视频帧。
2.根据权利要求1所述的方法,进一步包括:
传输器装置将经编码的掩蔽视频帧传输到与客户端装置相关联的解码装置,优选地通过无线传输介质来传输经编码的掩蔽视频帧的至少部分,其中所述传输基于以下各项中的至少一项:3G、4G、5G、Wi-Fi或蓝牙;和/或
将与经编码的掩蔽视频帧相关联的元数据传输到与客户端装置相关联的解码装置,所述元数据包括由视频处理装置用来生成经编码的掩蔽视频帧的视点信息的至少部分、更优选地是视点的位置。
3.根据权利要求1或2所述的方法,其中掩蔽操作包括:
将视口区之外的像素的像素值的至少部分修改为经修改的像素值,经修改的像素值是单个预定值或者经修改的像素值形成规则图案和/或周期性图案;和/或
将视口之外的像素的像素值的至少部分修改为表示像素值的低分辨率版本的经修改的像素值。
4.根据权利要求1-3中任一项所述的方法,其中视频帧是投影视频帧,投影视频帧包括球形视频数据,所述球形视频数据表示与使用投影模型投影到视频帧的2D矩形区域上的球形视频图像相关联的像素;和/或其中所述观看方向信息包括视点,视点限定FOV区和视口区在球形视频图像中的位置,优选地,投影模型基于等矩形投影、圆柱体投影、立方体投影、鱼眼投影或棱锥体投影。
5.根据权利要求4所述的方法,其中确定掩蔽信息包括:
使用投影模型来确定投影视频帧的像素位置和在球形视频图像中的位置之间的像素映射;以及
使用视口在球形视频图像中的位置和像素映射来确定投影视频帧的定位在视口区之外的像素。
6.根据权利要求4或5所述的方法,其中确定掩蔽信息进一步包括:
使用投影模型将视口区投影到投影视频帧的2D矩形区域上;
使用投影视口和投影视频帧的像素来确定投影视频帧的定位在视口区之外的像素。
7.根据权利要求4-6中任一项所述的方法,其中视点区的位置基于角坐标系,优选为球形坐标系。
8.根据权利要求1-7中任一项所述的方法,其中视口区大于FOV区,在视口区内部并且在FOV区之外的区限定空间视口缓冲区SVB,优选地,视口区的尺寸基于可用于向视频播放器装置传输经编码的掩蔽视频帧的带宽和/或基于与以下各项相关联的延迟时间来选择:向与客户端装置相关联的解码装置传输经编码的掩蔽视频帧以及由客户端装置接收经编码的掩蔽视频帧。
9.根据权利要求8所述的方法,其中FOV区包括第一分辨率的像素,并且SVB包括第二分辨率的像素,第一分辨率高于第二分辨率。
10.根据权利要求1-9中任一项所述的方法,其中所述视点信息和/或经编码的掩蔽视频帧通过视频处理装置和客户端装置之间的低延迟通信信道传输,优选地,低延迟通信信道是双向通信信道,更优选地,双向通信信道基于网络套接字标准,甚至更优选地,经编码的掩蔽视频帧作为NAL单元以解码顺序传输到客户端装置。
11.根据权利要求1-10中任一项所述的方法,其中所述视点信息进一步包括以下各项中的至少一项:限定视口的尺寸和/或形状的信息;视频帧参考信息,优选为与掩蔽视频帧相关联的视频帧序列号和/或呈现时间戳(PTS);延迟时间,优选为运动到高质量MTHQ延迟时间;和/或,其中编码器装置基于预定的视频编码标准、优选为包括以下各项之一的视频编码标准对掩蔽视频帧进行编码:H.264、H.265、HEVC、VP8、VP9、AVC1或AVC2;和/或,其中经编码的视频数据存储在数据容器、优选为一个或多个ISOBMFF数据容器和/或一个或多个片段MP4容器中;和/或,其中经编码的掩蔽视频帧基于以下视频流式传输协议中的至少一个传输到客户端装置:WebRTC、RTP、RTMP或自适应流式传输协议,优选为HTTP自适应流式传输协议,诸如MPEG DASH、HTTP实况流式传输、HTTP动态流式传输或HTTP平滑流式传输。
12.一种视频处理装置,包括:
计算机,其包括计算机可读存储介质,所述计算机可读存储介质具有以其体现的程序的至少部分;以及耦合到计算机可读存储介质的处理器、优选为微处理器,其中响应于执行计算机可读程序代码,处理器被配置为执行可执行操作,所述可执行操作包括:
接收经解码的视频帧,视频帧包括表示视频图像的视频数据,所述视频数据包括像素,其中每个像素与表示亮度和/或颜色值的一个或多个像素值相关联;
从与显示器相关联的客户端装置接收视点信息,所述视点信息包括限定显示器的用户的观看方向的观看方向信息;所述观看方向信息与视频图像中的视场FOV区和视口区相关联,FOV区限定可以在显示器上渲染的区,并且视口区限定视频图像中包括FOV区的区;
基于所述观看方向信息和经解码的视频帧来确定掩蔽信息,所述掩蔽信息针对经解码的视频帧的每个像素指示像素是否定位在视口区之外;
通过将掩蔽操作应用于视口区之外的像素,来使用所述掩蔽信息将经解码的视频帧转换成经解码的掩蔽视频帧,掩蔽操作减小视口区之外的至少部分像素的像素值的熵;以及
将经解码的掩蔽视频帧提供给编码器装置的输入,并且编码器装置将经解码的掩蔽视频帧编码成经编码的掩蔽视频帧。
13.一种与显示器相关联的客户端装置,包括:
计算机可读存储介质,其具有以其体现的计算机可读程序代码;以及耦合到计算机可读存储介质的处理器、优选为微处理器,其中响应于执行计算机可读程序代码,处理器被配置为执行可执行操作,所述可执行操作包括:
在第一时间实例确定或接收显示器用户的第一观看方向的第一观看方向信息,第一观看方向信息与视频图像中的第一视场FOV区和第一视口区相关联,视频图像由视频帧的像素限定,FOV区限定视频图像中可以由显示器渲染的区,并且视口区限定视频图像中包括FOV区的区;
处理器从与显示器相关联的客户端装置接收视点信息,所述视点信息包括限定显示器用户的观看方向的观看方向信息,所述观看方向信息与视频图像中的FOV区和视口区相关联,FOV区限定由显示器渲染的区,并且视口区限定视频图像中包括FOV区的区;
向视频处理装置传输第一视点信息,第一视点信息包括第一观看方向信息,第一视点信息发信号通知视频处理装置:在一个或多个经解码的视频帧的基础上生成一个或多个掩蔽视频帧,其中掩蔽视频帧的定位在第一视口区之外的像素是掩蔽像素;
在第二时间实例确定或接收限定用户的第二观看方向的第二观看方向信息,第二时间实例晚于第一时间实例,第二观看方向信息与视频图像中的第二FOV区和第二视口区相关联;
接收一个或多个经编码的掩蔽视频帧并处理所述一个或多个经编码的掩蔽视频帧,所述处理包括将一个或多个经编码的视频帧解码成一个或多个经解码的掩蔽视频帧,以及使用第二FOV区从所述一个或多个经解码的掩蔽视频帧中选择像素以供显示器显示;以及
如果第二FOV区的部分定位在第一视口区之外或者如果第二FOV区的边界和第一视口区的边界之间的距离小于预定距离,则将第二视口信息传输到视频处理装置。
14.一种与显示器相关联的客户端装置,包括:
计算机可读存储介质,其具有以其体现的计算机可读程序代码;以及耦合到计算机可读存储介质的处理器、优选为微处理器,其中响应于执行计算机可读程序代码,处理器被配置为执行可执行操作,所述可执行操作包括:
在第一时间实例确定或接收显示器用户的第一观看方向的第一观看方向信息,第一观看方向信息与视频图像中的第一视场FOV区和第一视口区相关联,视频图像由视频帧的像素限定,FOV区限定视频图像中可以由显示器渲染的区,并且视口区限定视频图像中包括FOV区的区;
向视频处理装置发送第一视点信息,第一视点信息包括第一观看方向信息,第一视点信息发信号通知视频处理装置:在一个或多个经解码的视频帧的基础上生成一个或多个掩蔽高分辨率视频帧,掩蔽高分辨率视频帧的定位在第一视口区之外的一个或多个像素是掩蔽像素;优选地,掩蔽像素具有单个像素值或者具有形成规则和/或周期图案的像素值;
确定或接收限定用户的第二观看方向的第二观看方向信息,第二观看方向信息与视频帧中的第二视场FOV区和第二视口区相关联;
接收一个或多个经编码的掩蔽高分辨率视频帧和一个或多个经编码的高分辨率视频帧,所述一个或多个经编码的高分辨率视频帧中的每个是用于生成所述一个或多个掩蔽高分辨率视频帧的视频帧的低分辨率版本;以及处理一个或多个经编码的掩蔽视频帧和一个或多个经编码的低分辨率视频帧,以供显示器渲染,优选地,所述处理包括:
- 将所述一个或多个经编码的掩蔽视频帧解码成一个或多个经解码的掩蔽视频帧,并将所述一个或多个经编码的低分辨率视频帧解码成一个或多个经解码的低分辨率视频帧;
- 使用第二FOV区从所述一个或多个经解码的掩蔽视频帧中选择像素,以供显示器渲染;以及
- 如果第二FOV区的部分定位在第一视口区之外,则使用第二FOV区从一个或多个经解码的低分辨率视频帧的至少一个或多个中选择像素以供显示器渲染。
15.一种包括软件代码部分的计算机程序产品,所述软件代码部分被配置用于当在计算机的存储器中运行时,执行根据权利要求1-11中任一项所述的方法步骤。
CN201911317654.6A 2018-12-20 2019-12-19 为视频播放器装置处理视频数据 Active CN111355954B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP18214571 2018-12-20
EP18214571.4 2018-12-20

Publications (2)

Publication Number Publication Date
CN111355954A true CN111355954A (zh) 2020-06-30
CN111355954B CN111355954B (zh) 2022-10-11

Family

ID=64746420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911317654.6A Active CN111355954B (zh) 2018-12-20 2019-12-19 为视频播放器装置处理视频数据

Country Status (2)

Country Link
EP (1) EP3672251A1 (zh)
CN (1) CN111355954B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111885417A (zh) * 2020-07-28 2020-11-03 北京奇艺世纪科技有限公司 Vr视频播放方法、装置、设备以及存储介质
CN113709542A (zh) * 2020-10-09 2021-11-26 天翼智慧家庭科技有限公司 一种交互式全景视频播放的方法和系统
CN115174942A (zh) * 2022-07-08 2022-10-11 叠境数字科技(上海)有限公司 一种自由视角切换方法及交互式自由视角播放系统
WO2023056574A1 (en) * 2021-10-06 2023-04-13 Intel Corporation Methods and apparatus to reduce latency during viewport switching in immersive video
CN116097652A (zh) * 2020-08-03 2023-05-09 杜比实验室特许公司 基于视口变化的双流动态gop访问
CN117173378A (zh) * 2023-11-03 2023-12-05 成都泰盟软件有限公司 基于CAVE环境的WebVR全景数据展现方法、装置、设备及介质
CN117478857A (zh) * 2023-12-26 2024-01-30 江西工业贸易职业技术学院(江西省粮食干部学校、江西省粮食职工中等专业学校) 一种vr数据传输方法及系统

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3945720A1 (en) * 2020-07-31 2022-02-02 Koninklijke Philips N.V. Packing of views for image or video coding
JPWO2022065040A1 (zh) * 2020-09-23 2022-03-31
EP3979644A1 (en) * 2020-10-02 2022-04-06 Koninklijke Philips N.V. A method and apparatus for encoding and decoding one or more views of a scene
CN112291577B (zh) * 2020-10-16 2023-05-05 北京金山云网络技术有限公司 直播视频的发送方法和装置、存储介质、电子装置
US11743442B2 (en) * 2020-11-09 2023-08-29 Tencent America LLC Bitstream structure for immersive teleconferencing and telepresence for remote terminals
CN112533075A (zh) * 2020-11-24 2021-03-19 湖南傲英创视信息科技有限公司 视频处理方法、装置及系统
CN112995636B (zh) * 2021-03-09 2022-03-25 浙江大学 基于边缘计算和主动缓存的360度虚拟现实视频传输系统及参数优化方法
CN113242384B (zh) * 2021-05-08 2023-04-18 聚好看科技股份有限公司 一种全景视频显示方法及显示设备
CN114025150A (zh) * 2021-10-29 2022-02-08 歌尔光学科技有限公司 多头戴设备的视频帧同步方法、装置、头戴设备及介质
CN114268779B (zh) * 2021-12-08 2023-09-08 北京字跳网络技术有限公司 图像数据处理方法、装置、设备及计算机可读存储介质
DE102022115806A1 (de) 2022-06-24 2024-01-04 Valeo Comfort And Driving Assistance Verfahren und System zum Bereitstellen eines durch eine Ausgabevorrichtung anzuzeigenden Bildes

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130075482A1 (en) * 2007-02-08 2013-03-28 Silverbrook Research Pty Ltd Coding pattern comprising tags with x and y coordinate data divided into respective halves of each tag
WO2015197815A1 (en) * 2014-06-27 2015-12-30 Koninklijke Kpn N.V. Determining a region of interest on the basis of a hevc-tiled video stream
WO2016064862A1 (en) * 2014-10-20 2016-04-28 Google Inc. Continuous prediction domain
CN105659590A (zh) * 2013-10-22 2016-06-08 微软技术许可有限责任公司 控制被编码的视频的分辨率

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805614B2 (en) 2016-10-12 2020-10-13 Koninklijke Kpn N.V. Processing spherical video data on the basis of a region of interest

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130075482A1 (en) * 2007-02-08 2013-03-28 Silverbrook Research Pty Ltd Coding pattern comprising tags with x and y coordinate data divided into respective halves of each tag
CN105659590A (zh) * 2013-10-22 2016-06-08 微软技术许可有限责任公司 控制被编码的视频的分辨率
WO2015197815A1 (en) * 2014-06-27 2015-12-30 Koninklijke Kpn N.V. Determining a region of interest on the basis of a hevc-tiled video stream
WO2016064862A1 (en) * 2014-10-20 2016-04-28 Google Inc. Continuous prediction domain

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JILL BOYCE ET AL: "Spherical viewport SEI for HEVC and AVC 360 video", 《JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC)OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111885417A (zh) * 2020-07-28 2020-11-03 北京奇艺世纪科技有限公司 Vr视频播放方法、装置、设备以及存储介质
CN116097652A (zh) * 2020-08-03 2023-05-09 杜比实验室特许公司 基于视口变化的双流动态gop访问
CN113709542A (zh) * 2020-10-09 2021-11-26 天翼智慧家庭科技有限公司 一种交互式全景视频播放的方法和系统
CN113709542B (zh) * 2020-10-09 2023-09-19 天翼数字生活科技有限公司 一种交互式全景视频播放的方法和系统
WO2023056574A1 (en) * 2021-10-06 2023-04-13 Intel Corporation Methods and apparatus to reduce latency during viewport switching in immersive video
CN115174942A (zh) * 2022-07-08 2022-10-11 叠境数字科技(上海)有限公司 一种自由视角切换方法及交互式自由视角播放系统
CN117173378A (zh) * 2023-11-03 2023-12-05 成都泰盟软件有限公司 基于CAVE环境的WebVR全景数据展现方法、装置、设备及介质
CN117173378B (zh) * 2023-11-03 2024-02-02 成都泰盟软件有限公司 基于CAVE环境的WebVR全景数据展现方法、装置、设备及介质
CN117478857A (zh) * 2023-12-26 2024-01-30 江西工业贸易职业技术学院(江西省粮食干部学校、江西省粮食职工中等专业学校) 一种vr数据传输方法及系统
CN117478857B (zh) * 2023-12-26 2024-03-08 江西工业贸易职业技术学院(江西省粮食干部学校、江西省粮食职工中等专业学校) 一种vr数据传输方法及系统

Also Published As

Publication number Publication date
CN111355954B (zh) 2022-10-11
EP3672251A1 (en) 2020-06-24

Similar Documents

Publication Publication Date Title
CN111355954B (zh) 为视频播放器装置处理视频数据
US10560660B2 (en) Rectilinear viewport extraction from a region of a wide field of view using messaging in video transmission
US11699211B2 (en) Spherical rotation for encoding wide view video
US10523980B2 (en) Method, apparatus and stream of formatting an immersive video for legacy and immersive rendering devices
CN112204993B (zh) 使用重叠的被分区的分段的自适应全景视频流式传输
JP7177034B2 (ja) レガシー及び没入型レンダリングデバイスのために没入型ビデオをフォーマットする方法、装置、及びストリーム
WO2023098279A1 (zh) 视频数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品
KR102183895B1 (ko) 가상 현실 비디오 스트리밍에서의 관심영역 타일 인덱싱
WO2021176133A1 (en) An apparatus, a method and a computer program for volumetric video
EP4207764A1 (en) An apparatus, a method and a computer program for volumetric video
WO2023184467A1 (en) Method and system of video processing with low latency bitstream distribution

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