首页 / 专利库 / 软件 / 交互式应用程序 / 低时延移动设备视听流传输

低时延移动设备视听流传输

阅读:878发布:2020-05-14

专利汇可以提供低时延移动设备视听流传输专利检索,专利查询,专利分析的服务。并且一种用于经由移动计算设备进行音频和视频的低时延流传输的方法,以促成高 质量 的实时交互式流传输体验。该方法包括接收通过执行应用程序生成的应用 音频流 、通过执行应用程序生成的应用 视频流 、麦克 风 音频流和相机视频流。应用音频流和麦克风音频流被混合以产生经混合的音频流。应用视频流和相机视频流被合成以产生经合成的视频流。经混合的音频流被编码以产生经编码的音频流,并且经合成的视频流被编码以产生经编码的视频流。经编码的音频和视频流被打包成一个或多个流传输分组,并且被输出到远程计算设备。,下面是低时延移动设备视听流传输专利的具体信息内容。

1.一种用于流传输音频和视频的移动计算设备,所述移动计算设备包括:
被配置成生成麦克音频流的麦克风;
被配置成生成相机视频流的相机;
被配置成将所述移动计算设备与远程计算设备通信地耦合的网络收发机;
逻辑机;以及
数据存储机,所述数据存储机保持能由逻辑机执行以进行以下操作的指令:
接收由应用程序的执行而生成的应用音频流;
接收由所述应用程序的执行而生成的应用视频流;
接收由所述麦克风生成的所述麦克风音频流;
接收由所述相机生成的所述相机视频流;
混合所述应用音频流和所述麦克风音频流以产生经混合的音频流;
合成所述应用视频流和所述相机视频流以产生经合成的视频流;
经由音频编码器对所述经混合的音频流进行编码以产生经编码的音频流;
经由视频编码器对所述经合成的视频流进行编码以产生经编码的视频流;
将所述经编码的音频和视频流打包成一个或多个流传输分组;以及
经由所述网络收发机将所述一个或多个流传输分组输出到所述远程计算设备。
2.根据权利要求1所述的移动计算设备,其特征在于,其中所述音频编码器被配置成基于所述音频编码器的第一时钟参考对所述经编码的音频流加时间戳,其中所述视频编码器被配置成基于所述视频编码器的第二时钟参考对所述经编码的视频流加时间戳,其中所述存储机保持能由所述逻辑机执行以进行以下操作的指令:执行时间戳校正操作,所述时间戳校正操作在时间上同步所述经编码的音频和视频流的时间戳以产生同步的经编码的音频和视频流,并且所述同步的经编码的音频和视频流被打包成所述一个或多个流传输分组。
3.根据权利要求2所述的移动计算设备,其特征在于,所述时间戳校正操作根据基于字长、大小以及所述音频帧或所述视频帧的编码历时中的一者或多者的估计来在时间上移位所述经编码的音频流的音频帧或所述经编码的视频流的视频帧的时间戳。
4.根据权利要求1所述的移动计算设备,其特征在于,所述数据存储机保持能由所述逻辑机执行以进行以下操作的指令:
在将所述经编码的视频流打包成所述一个或多个流传输分组之前经由基本编码器从所述经编码的音频和视频流的一者或多者中移除元数据。
5.根据权利要求1所述的移动计算设备,其特征在于,所述经混合的音频流和所述经合成的视频流被并行地编码。
6.根据权利要求1所述的移动计算设备,其特征在于,所述数据存储机保持能由所述逻辑机执行以进行以下操作的指令:
经由所述网络收发机发起到所述远程计算设备的套接字连接;以及
经由所述套接字连接将所述一个或多个流传输分组发送到所述远程计算设备。
7.根据权利要求1所述的移动计算设备,其特征在于,所述数据存储机保持能由所述逻辑机执行以进行以下操作的指令:
启动多个过程线程以经由流传输管线执行音频和视频流传输,并且其中所述过程线程被配置成使处理与所述流传输管线中的音频/视频帧相关联的操作优先于处理被接收为给所述流传输管线的输入的传入音频/视频帧。
8.根据权利要求1所述的移动计算设备,其特征在于,所述一个或多个流传输分组经由所述网络收发机来被输出到无线局域网。
9.根据权利要求1所述的移动计算设备,其特征在于,所述一个或多个流传输分组经由所述网络收发机来被输出到蜂窝广域网。
10.一种用于经由移动计算设备流传输音频和视频的方法,所述方法包括:
接收由应用程序的执行而生成的应用音频流;
接收由所述应用程序的执行而生成的应用视频流;
经由麦克风接收麦克风音频流;
经由相机接收相机视频流;
混合所述应用音频流和所述麦克风音频流以产生经混合的音频流;
合成所述应用视频流和所述相机视频流以产生经合成的视频流;
经由音频编码器对所述经混合的音频流进行编码以产生经编码的音频流;
经由视频编码器对所述经合成的视频流进行编码以产生经编码的视频流;
将所述经编码的音频和视频流打包成一个或多个流传输分组;以及
经由网络收发机将所述一个或多个流传输分组输出到远程计算设备。
11.根据权利要求10所述的方法,其特征在于,其中所述音频编码器被配置成基于所述音频编码器的第一时钟参考对所述经编码的音频流加时间戳,其中所述视频编码器被配置成基于所述视频编码器的第二时钟参考对所述经编码的视频流加时间戳,其中所述存储机保持能由逻辑机执行以进行以下操作的指令:执行时间戳校正操作,所述时间戳校正操作在时间上同步所述经编码的音频和视频流的时间戳以产生同步的经编码的音频和视频流,并且所述同步的经编码的音频和视频流被打包成所述一个或多个流传输分组。
12.根据权利要求11所述的方法,其特征在于,所述时间戳校正操作根据基于字长、帧大小以及所述音频帧或所述视频帧的编码历时中的一者或多者的估计来在时间上移位所述经编码的音频流的音频帧或所述经编码的视频流的视频帧的时间戳。
13.根据权利要求10所述的方法,其特征在于,进一步包括:
在将所述经编码的视频流打包成所述一个或多个流传输分组之前经由基本编码器从所述经编码的音频和视频流的一者或多者中移除元数据。
14.根据权利要求10所述的方法,其特征在于,进一步包括:
经由所述网络收发机发起到所述远程计算设备的套接字连接;以及
经由所述套接字连接将所述一个或多个流传输分组发送到所述远程计算设备。

说明书全文

低时延移动设备视听流传输

[0001] 背景
[0002] 视听流传输允许用户经由诸如互联网等信息网络向观众受众广播视听内容。用户可以向观众受众广播任何类型的视听内容。例如,用户可以流传输视频游戏玩法、用户生成的节目(例如,实况表演、播客)、电子竞技(E竞技)和其他事件(例如,展板(panel)、新闻发布会和展厅活动)。
[0003] 概述
[0004] 提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的概念的选集。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,亦非旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中提及的任何或所有缺点的实现。
[0005] 一种用于经由移动计算设备进行音频和视频的低时延流传输的方法,以促成高质量的实时交互式流传输体验。该方法包括接收通过执行应用程序生成的应用音频流、通过执行应用程序生成的应用视频流、麦克音频流和相机视频流。应用音频流和麦克风音频流被混合以产生经混合的音频流。应用视频流和相机视频流被合成以产生经合成的视频流。经混合的音频流被编码以产生经编码的音频流,并且经合成的视频流被编码以产生经编码的视频流。经编码的音频和视频流被打包成一个或多个流传输分组,并且被输出到远程计算设备。
[0006] 附图简述
[0007] 图1描绘了示例使用场景,其中移动计算设备将带有游戏玩家音频和视频的视频游戏音频和视频流传输到远程设备。
[0008] 图2示意性地示出了示例计算环境,其中移动计算系统提供低时延视听流传输。
[0009] 图3示意性地示出了示例流传输管线。
[0010] 图4示出了用于在时间上同步经编码的音频和视频流的示例办法。
[0011] 图5和6示出了用于使用计算系统来流传输音频和视频的示例方法。
[0012] 图7示出了示例计算系统。
[0013] 详细描述
[0014] 在一些情形中,视听内容可以被“实况地”流传输,以允许在用户正在流传输时与用户进行观众交互。在该讨论的上下文中,实况意指被感知为实时或近似实时。例如,不同的观众可以在“聊天”界面中向广播用户发送问题和评论。广播用户可接着提供回答这些问题和/或提供与聊天相关的评论的实况评论。广播用户和观众之间的互动可能是时间敏感的。例如,当广播用户正在实况流传输时,广播用户可以接收来自观众的关于如何玩视频游戏的指令。然而,如果指令由于高时延而被延迟,则指令可能不再适用于视频游戏的当前状态。而且,由于高时延视听流而导致的广播用户和观众之间的延迟了的交互可能导致被观众负面地感知到的脱节体验。
[0015] 相应地,本公开涉及一种用于执行低时延视听流传输以实现高质量、实时交互式流传输体验的办法。具体而言,输入音频流经由音频编码器被编码以产生经编码的音频流。输入视频流经由视频编码器被编码以产生经编码的视频流。如果音频编码器和视频编码器具有不同的时钟参考,则音频编码器和视频编码器可能提供分开的非同步的时间戳。这种时间偏差可能导致在经编码的音频流和经编码的视频流之间的漂移。因此,时间戳校正操作被执行以同步经编码的音频和视频流以便防止这种漂移。经编码的音频和视频流任选地可以进一步被剥离对低时延视听流传输而言不需要的由视频和/或音频编码器生成的元数据。所得到的经同步的、经编码的音频和视频流被一起打包成流传输分组,并经由计算机网络输出到流传输服务器计算系统,以供分发给不同的观众计算设备。
[0016] 通过在将经编码的音频和视频流一起打包成流传输分组并分发给观众计算设备之前执行时间戳校正操作,流传输分组可以到达观众计算设备以准备好立即呈现。换言之,观众计算设备不必在呈现之前广泛地缓冲和/或同步音频和视频流。
[0017] 在具有有限资源的移动计算设备平台上,上面描述的办法可被用来与原始音频和视频输入数据相竞争。具体而言,原始音频和视频数据可以被直接编码、同步和打包在一起,而不是利用将会增加流传输音频和视频数据的时延的多媒体容器(例如,MP4)。以这种方式,来自移动计算设备的基本上实时的流传输可以被实现。
[0018] 图1描绘了示例使用场景,其中移动计算设备110将带有游戏玩家音频和视频的视频游戏音频和视频流传输到远程设备。在该示例中,由用户120操作的移动计算设备110包括呈现图形用户界面(GUI)132的图形显示设备130。GUI 132可以包括形成GUI的各组件的一个或多个界面。
[0019] 例如,GUI 132可以包括用于由用户120在移动计算设备110处玩的游戏程序(即,视频游戏)的游戏界面134。游戏界面134可以对应于在玩游戏期间呈现给作为游戏程序的游戏玩家的用户120的游戏视图。游戏界面134的视觉表示被从移动计算设备流传输到远程设备160,以供经由图形显示设备180作为图形内容182呈现给一个或多个远程观众170。图形内容182可以采用游戏界面134的视频的形式。
[0020] 移动计算设备110可以将其他可视内容流传输到远程设备160。例如,由移动计算设备110的相机140捕捉的相机视图的视觉表示可以被流传输到远程设备160,以供经由图形显示设备180作为图形内容184呈现给远程观众170。图形内容184可以采用由相机140捕捉的相机视图的视频的形式。在该示例中,相机视图包括用户120,由此使远程观众170能够看到在游戏界面134的视觉表示旁边的用户120的视觉表示。用户120的这种视觉表示可以在用户120是游戏程序的游戏玩家的上下文中被称为游戏玩家视频。
[0021] 移动计算设备110处的GUI 132的另一界面组件可以包括相机视图界面136,其在该示例中包括由相机140捕捉的相机视图。相机视图界面136使用户120能够看到由相机140捕捉的相机视图,由此帮助用户120将相机视图与期望的对象对准。在至少一些实现中,可以从GUI 132中省略相机视图界面136。
[0022] 移动计算设备110可以进一步包括音频扬声器142和音频麦克风144。正由用户120玩的游戏程序的音频可以由音频扬声器142本地地输出。由用户120和/或用户的周围环境生成的音频(诸如用户的口头评论)可以由麦克风144捕捉。
[0023] 游戏程序的游戏音频和由麦克风144捕捉的麦克风音频的音频表示可以由移动计算设备110流传输到远程设备160以供呈现给远程观众170。远程设备160可以经由音频扬声器190输出游戏程序的音频和/或由麦克风144远程地捕捉的音频。因此,远程观众170可以收听从移动计算设备110流传输的游戏音频和麦克风音频。麦克风音频捕捉用户120的口头评论可以在用户120是游戏程序的游戏玩家的上下文中被称为游戏玩家音频。
[0024] 图2是描绘示例低时延视听流传输环境200的示意图。环境200的源客户端系统210包括计算平台212、相机214、麦克风216、图形显示设备218、音频扬声器220,以及一个或多个用户输入设备222。图1的移动计算设备110是源客户端系统210的非限制性示例。然而,源客户端系统210可以采用其他合适的形式,包括也将组件212、214、216、218、220、222等合并到单个集成外壳中的计算设备,以及将这些组件合并到具有分开的外壳的多个设备中的计算系统。
[0025] 计算平台212可以执行或以其他方式实现流传输程序230,流传输程序230从多个源接收音频和/或视频、通过流传输管线232处理该音频和/或视频,并且输出流传输分组234以递送给接收者。例如,流传输程序230可以接收由麦克风216生成的麦克风音频流240、由相机214生成的相机视频流242、游戏程序248的游戏音频流244以及游戏程序248的游戏视频流246。例如,麦克风音频流240和游戏音频流244可各自包括多个未经压缩的音频,并且相机视频流242和游戏视频流246可各自包括多个未经压缩的视频帧。在至少一些实现中,游戏程序248可以在计算平台212处被执行。然而,游戏程序248可以在远程计算平台(诸如在其他实现中的服务器系统262)处被至少部分地远程地执行。
[0026] 流传输程序230可以跨共同形成计算平台212的两个或更多个计算设备分布。作为示例,计算平台212可包括一个或多个通用处理器和/或一个或多个专用逻辑机(例如,视频编码器)。在该示例中,游戏流传输程序230可以包括能由一个或多个通用处理器执行的软件,并且可以包括能由一个或多个专用逻辑机执行的固件硬件指令。流传输程序230可以采用任何合适的形式。例如,流传输程序230可以被实现为专用流传输应用。在另一示例中,流传输程序230可以是应用(诸如视频游戏程序248)的组件。在另一示例中,流传输程序230可以被实现为服务。在又一示例中,流传输程序230可以由源客户端系统210的操作系统实现。
[0027] 图形显示设备218可以进一步将游戏程序248的游戏界面252呈现为GUI250的组件。图1的游戏界面134是游戏界面252的非限制性示例。游戏界面252可以对应于被呈现给游戏程序248的玩家的游戏视图。
[0028] 如将参考图3和4进一步详细描述的,流传输管线232被配置成对来自多个源的音频和视频流进行流传输。流传输管线232可以基于流传输程序230的状态和/或由流传输程序230接收的数据流来编码不同的数据流。例如,如果用户正在玩视频游戏程序,则流传输程序230可以接收四个分开的数据流:麦克风音频流240、相机视频流242、游戏音频流244和游戏视频流246。在另一示例中,如果用户正在对内容进行实况流传输而没有与视频游戏程序248交互,则流传输程序230可以接收两个分开的数据流:麦克风音频流240和相机视频流242。流传输程序230可以促成不同输入数据流的任何合适组合的编码、同步和传输。
[0029] 在一些实现中,流传输管线232可以被配置成将经编码的音频和视频流一起打包在相同的流传输分组中。在其他实现中,流传输管线232可以被配置成将经编码的音频流打包成流传输音频分组,并且将经编码的视频流打包成分开的流传输视频分组。换言之,流传输管线232可以被配置成一起或分开地处理音频流和视频流。
[0030] 流传输管线232被配置成经由网络收发机259将流传输分组234输出到远程客户端系统270。网络收发机259可以被配置成经由通信网络260将流传输分组234发送到远程客户端系统270。通信网络260可以包括任何合适类型的通信网络。例如,通信网络260可以包括局域网、广域网和/或其他类型的网络。网络收发机259可以包括与一个或多个不同通信协议兼容的有线和/或无线通信硬件组件。网络收发机259可以被配置成根据任何合适的无线通信协议将流传输分组234发送到远程客户端系统270。
[0031] 在至少一些实现中,服务器系统262可以接收对来自源客户端系统210的音频和视频流进行编码的流传输分组234,并且可以促成将音频和视频流广播到许多远程客户端系统(诸如远程客户端系统270)的群体。在其他实现中,源客户端系统210可以在不使用中间服务器系统的情况下将音频和视频直接流传输到接收方客户端系统270。在一些示例中,流传输程序230可以被配置成经由网络收发机259打开与服务器系统262和/或远程客户端系统270的套接字连接,并且基本上实时地发送流传输分组234。
[0032] 远程客户端系统270可以包括图形显示设备272、计算平台274和音频扬声器276。计算平台274可以执行媒体查看器程序290,媒体查看器程序290接收来自源(诸如源客户端系统210或服务器系统262)的流传输分组形式的流式音频和/或视频数据。媒体查看器程序
290可以被配置成解码所接收的流传输分组来提取音频和视频流以促成流式音频和/或视频的呈现。例如,游戏视频280和相机视频282可以经由图形显示器272来呈现,并且混合音频286可以通过音频扬声器276输出。因为音频和视频流在被源客户端系统210的流传输管线232打包成流传输分组之前被同步,所以媒体查看器程序290不必缓冲和同步传入的音频和视频流。然而,在一些实现中,远程客户端系统270可以对所接收的流传输分组执行缓冲和/或同步操作。例如,远程客户端系统270可以使用抖动缓冲器来正确地排序传入的流传输分组。
[0033] 在所描绘的示例中,混合音频286对应于由源客户端系统210流传输的音频,其包括麦克风音频流240和游戏音频流244。同样在该示例中,游戏视频280对应于游戏视频流246的视觉表示,并且相机视频282对应于相机视频流242的视觉表示。在至少一些实现中,可以在流传输之前合成游戏视频280和相机视频282。尽管图2中以并排配置在公共GUI 284内示出了游戏视频和相机视频,但是应当理解,其他合适的配置可以被支持。例如,相机视频282可以覆盖在游戏视频280上,或反之亦然。作为另一示例,用户可以选择性地在游戏视频280的视图和相机视频的视图282之间切换。由此,在至少一些实现中,可以不并发地呈现游戏视频280和相机视频282。
[0034] 远程客户端系统270可以采用任何合适的形式。例如,远程客户端系统270可以包括移动计算机(例如,智能电话)、膝上型计算机、台式计算机、虚拟现实计算机、增强现实计算机和游戏计算机中的一者或多者。此外,媒体查看器程序290可以是被配置成呈现数字媒体内容的任何合适类型的程序。在一个示例中,媒体查看器程序290是web浏览器。在另一示例中,媒体查看器程序290被合并到视频游戏程序中。
[0035] 在所描绘的示例中,就从移动计算设备被发送的方面讨论了低时延流传输,但是应当领会,可以从具有不同处理和存储能的其他类型的计算设备发送低时延流传输。
[0036] 图3示出了示例流传输管线300。图2的流传输管线232是流传输管线300的非限制性示例。流传输管线300被配置成接收输入音频302和输入视频304。输入音频302和输入视频304可以包括基于其中流传输管线300被实现的计算系统(例如,图2的源客户端系统210)的状态的不同数据流。例如,如果用户正在与生成音频流的应用交互(例如,玩视频游戏),则输入音频302可以包括未经压缩的麦克风音频流306和未经压缩的应用音频流308。在一些示例中,麦克风音频流306和游戏音频流308可以由流传输管线300同时且并行地接收。如果用户没有在与应用交互,则流传输管线300可以仅接收未经压缩的麦克风流306作为输入音频302。
[0037] 此外,如果用户正在与应用交互且该应用生成视频流,则输入视频304可以包括未经压缩的相机视频流310和未经压缩的应用视频流312。如果用户没有在与应用交互,则流传输管线300可以仅接收未经压缩的相机视频流310作为输入视频304。
[0038] 流传输管线300可以被配置成派生多个处理线程以执行低时延流传输操作。不同的处理线程可以由实现流传输管线300的计算系统的一个或多个处理器并行地执行。不同的处理线程可以被并行地(例如,通过不同的处理核)执行,以允许流传输管线300的不同操作被并行地执行。
[0039] 流传输管线300被配置成派生第一线程314,该第一线程314被配置成监视输入音频(例如,音频帧)。当输入音频302包括麦克风音频流306和应用音频流308时,流传输管线300被配置成经由音频混合器316将这两个音频流混合成单个经混合的音频流318。音频混合器316可以被配置成将麦克风音频流306和应用音频流308从一个或多个不同的采样率重新采样到公共采样率,以便促成将这两个音频流混合成经混合的音频流318。
[0040] 在一些实现中,麦克风音频流306和应用音频流308可以不被混合成单个音频流,而是改为可以由流传输管线300分开地处置(例如,编码)。
[0041] 流传输管线300被配置成派生第二线程320,该第二线程320被配置成监视输入视频(例如,视频帧)。当输入视频304包括相机视频流310和应用视频流312时,流传输管线300被配置成经由视频合成器322将这两个视频流310和312合成为单个经合成的视频流324。在一些实现中,视频合成器322可以用硬件实现。在其他实现中,视频合成器322可以用软件实现。在此类实现中,附加的线程可以被派生以将这两个视频流310和312合成为经合成的视频流324。
[0042] 在一些实现中,相机视频流310和应用视频流312可以不被合成为单个视频流,而是改为可以由流传输管线300分开地处置(例如,编码)。
[0043] 流传输管线300被配置成经由视频编码器326对经合成的视频流324进行编码以产生经编码的视频流328。在一些实现中,视频编码器326是软件视频编码器。在一些实现中,视频编码器326是硬件视频编码器。在一个示例中,硬件视频编码器326被配置成根据H.264编码格式对经合成的视频流324进行编码。可以使用任何合适的视频编码器和/或编码格式来对经合成的视频流324进行编码。在一些实现中,相机视频流310可以被编码为应用视频流312的画中画(picture-in-picture)特征。在一些实现中,可以去掉来自相机视频流310的背景,以使得广播用户看起来漂浮在应用视频流312之上。在一些实现中,可以仅对相机视频流310和游戏视频流312中的一者或另一者进行编码。在一些实现中,视频合成器322可以被集成到视频编码器326中,使得合成和编码在相同的处理阶段期间被执行。
[0044] 流传输管线300被配置成派生第三线程330,该第三线程330被配置成使用音频编码器332执行对经混合的音频流318的音频编码以产生经编码的音频流334。流传输管线300可以采用任何合适的音频编码器来编码经混合的音频流318。在一些实现中,音频编码器332是软件音频编码器。在一个示例中,软件音频编码器332被配置成根据Opus编码格式对经混合的音频流318进行编码,以便遵守WebRTC协议。在一些实现中,音频编码器332是硬件音频编码器。
[0045] 需要注意,在其中使用硬件视频编码器对视频流310和312进行编码的实现中,处理线程不必被派生来执行视频编码操作。
[0046] 在一些实现中,经混合的音频流318可以经由音频编码器332来被编码,并且经合成的视频流324可以经由视频编码器326被并行地编码,但是没有公共时钟参考。
[0047] 流传输管线300被配置成基于经编码的音频流334变得可获得自音频编码器332来派生第四线程336。第四线程336可被用来针对经编码的音频流334执行时间戳校正操作。同样地,流传输管线300被配置成基于经编码的视频流328变得可获得自视频编码器326来派生第五线程338。第五线程338可被用来针对经编码的视频流328执行时间戳校正操作。
[0048] 流传输管线300包括时间戳校正340(或用于解码时间戳(DTS)校正块的呈现时间戳(PTS))。时间戳校正块340被配置成使经编码的音频流334和经编码的视频流328对准以基本上实时地在时间上同步音频和视频流。经编码的音频流334包括由音频编码器332根据第一时钟参考生成的时间戳。经编码的视频流328包括由视频编码器326根据第二时钟参考生成的时间戳。用于音频编码器332和视频编码器326的时钟参考可以是非同步的,从而致使在经编码的音频流334和经编码的视频流328之间的漂移。此外,由于视频流相对于音频流具有更大数目的要被编码的数据位,因此视频流的编码历时可能大于音频流的编码历时。编码历时中的这种差异可致使在经编码的音频流334和经编码的视频流328之间的漂移。由此,时间戳校正块340被配置成解析经编码的音频流334和经编码的视频流328的时间戳,以在时间上同步经编码的音频和视频流。具体而言,时间戳校正块340被配置成使用从以下导出的计算来估计时移:每个帧被接收的时间、每个帧的大小(例如,字节数),以及用于编码每个帧的历时。该估计可被用来移位经编码的音频流334的音频帧和/或经编码的视频流328的视频帧,以使得经编码的音频流334的音频帧在最低限度上落在经编码的视频流328的两个视频帧之间。
[0049] 图4示出了用于在时间上同步经编码的音频和视频流的示例办法400。例如,同步办法400可以由图3的流传输管线300的时间戳校正块340使用,以同步经编码的音频流334和经编码的视频流328。在所解说的示例中,为音频流的音频帧计算时移估计,然而,相同类型的计算可以被执行以估计视频流的视频帧的时移。
[0050] 当未经压缩的输入音频帧402被流传输管线300接收时,为输入音频帧402记录传入的呈现时间戳(PTS)404。输入音频帧402被临时地储存在流传输管线300的循环缓冲器406中,直到音频编码器332可用于编码音频帧402。当音频编码器332变得可用时,音频帧
402’从循环缓冲器406中出列并被传递到音频编码器332以进行编码。音频帧402’可以包括与输入音频帧402相同的音频信息,但是作为被储存在循环缓冲器406中的结果,音频帧
402’可以具有不同的大小(以字节为单位)。由此,针对音频帧402’确定字长412和帧大小
414。当音频编码器332开始编码音频帧402’时,系统时间(ST)410被记录。音频编码器332可以对音频帧402’进行编码以产生经编码的音频帧416。当经编码的音频帧416被从音频编码器332输出时,后系统时间(PST)418被记录。时间戳校正块340被配置成根据以下等式计算经编码的音频帧416的时移420:
[0051]
[0052] 其中DTS(x)是被施加到音频帧416的传入PTS 404的时移420。通过计及等式中出队了的音频帧402’的字长和帧大小,DTS(x)可以基于出队了的音频帧402’的大小(例如,字节数)来被调整。
[0053] 时间戳校正块340被配置成计算经编码的音频流334中的音频帧和经编码的视频流328的视频帧的时移,以同步经编码的音频和视频流。换言之,时间戳校正块340输出经同步、经编码的音频流342和经同步、经编码的视频流344。
[0054] 所解说的时移估计被提供作为意图是非限制性的示例。时间戳校正块340可以使用任何合适的时移估计来同步经编码的音频流334和经编码的视频流328。
[0055] 继续图3,流传输管线300被配置成基于经同步的、经编码的视频流344变得可获得自时间戳校正块340来派生第六线程346。第六线程346被用来经由基本编码器348从经同步的、经编码的视频流344中移除不必要的元数据。具体而言,当使用视频编码器326对经合成的视频流324进行编码时,可以基于被用来编码经合成的视频流324的编码格式来将元数据添加到经编码的视频帧。例如,经编码的视频流328的经编码的视频帧可具有包括帧宽度、帧高度、视频流中的帧位置、时间戳、编码器制造商、本地化语言的元数据以及其他元数据。为了使远程客户端系统呈现视频流,并非所有这些元数据都可能被需要。由此,基本编码器
348被配置成从经同步、经编码的视频流344中移除至少一些元数据,以便减小流大小并由此减少传输时延。基本编码器348被配置成输出剥离了的、经同步的、经编码的视频流350。
在一个示例中,剥离了的、经同步的、经编码的视频流350的视频帧具有仅包括帧宽度和帧高度的元数据,并且由视频编码器326添加的其他元数据被剥离掉。
[0056] 流传输管线300被配置成基于经同步的、经编码的音频流342变得可获得自时间戳校正块340来派生第七线程352。第七线程352被用来经由基本编码器348从经同步的、经编码的音频流342中移除元数据。基本编码器348被配置成输出剥离了的、经同步的、经编码的音频流352。
[0057] 在一些实现中,可以从流传输管线300中省略第六和第七线程以及基本编码器,并且经同步的、经编码的音频和视频流可以与附加元数据打包在一起。在其他实现中,音频和视频流可以被编码而不产生附加元数据。换言之,可以以仅生成必要元数据的方式来对音频和视频流进行编码。在此类实现中,将不需要从经编码的音频和视频流中剥离附加元数据。由此,在一些此类实现中,可以从流传输管线300中省略基本编码器348。
[0058] 流传输管线300被配置成基于剥离了的、经同步的、经编码的音频和视频流352、350变得可获得自基本编码器来派生第八线程354。第八线程354被用来经由打包块358将剥离了的、经同步的、经编码的音频和视频流352、350打包成流传输分组356。打包块358可以被配置成根据任何合适的通信协议将音频和视频流352、350打包成流传输分组356。在一个示例中,使用超越光速(FTL)流传输通信协议将音频和视频流352、350打包成流传输分组
356。
[0059] 在一些实现中,流传输管线300可以被配置成分开地处理音频数据和视频数据,以输出分开的音频流传输分组和视频流传输分组,而没有将音频数据和视频数据一起混合在相同的流传输分组中。
[0060] 此外,在一些实现中,第八线程354可被用来打开与计算机网络的套接字级连接,以将流传输分组356上传到服务器系统(例如,图2的服务器系统262),以供分发到不同的远程客户端系统。在其他实现中,第八线程354可被用来打开直接与远程客户端系统(例如,图2的远程客户端系统270)的套接字级连接,以将流传输分组356发送到远程客户端系统。由于音频流和视频流被本地且直接地同步,因此FTL或其他合适的协议可以使用一个套接字来发送音频流和视频流两者。相比之下,其他WebRTC流传输办法使用两个套接字-每个流一个。通过仅使用一个套接字来发送两个流,少一个线程需要被分配来管理套接字连接。
[0061] 流传输管线300被配置成派生第九线程360以处置将流传输分组356发送到服务器系统262或远程客户端设备270。
[0062] 在一些实现中,处理管线300可以使用包括双核处理器的计算系统来实现,该双核处理器限于并行处理两个线程(例如,用于移动计算设备的公共处理器)。在此类实现中,流传输管线300可以被配置成管理处理器堆栈以将优先级给予与在处理附加的传入音频/视频帧之前已经由流传输管线300处理的音频/视频帧相关联的操作。这种优先级划分可以减少线程移位以帮助降低时延。而且,这样的办法可广泛适用于具有不同核心数的处理器。换言之,管线内音频和视频帧的优先级划分可以基于处理核的可用数目和正被执行的操作的优先级。
[0063] 流传输管线300使得未经压缩的音频和视频流能够以实现基本上实时的流传输的低时延方式来被编码、同步并打包成(诸)流传输分组。
[0064] 图5和6示出了用于使用计算系统来流传输音频和视频的示例方法500。方法500或其部分可以由包括流传输管线和执行流传输程序的计算系统执行,诸如先前在图2中描述的源客户端系统210。在执行流传输程序之际,流传输管线可以启动被用来执行方法500的各种操作或过程的任何数目的过程线程,诸如先前在图3中描述的处理线程。
[0065] 在图5的502处,方法500包括执行应用程序。例如,应用程序可以包括视频游戏、媒体播放器、演示程序或用户可以与之交互的另一应用程序。在504处,方法500包括接收音频输入流。在一些示例中,在506处,方法500任选地可以包括接收通过执行应用程序而生成的应用音频流。例如,当用户正在玩视频游戏时,应用音频流可以包括来自视频游戏的声音。在一些示例中,在508处,方法500任选地可以包括接收经由麦克风生成的麦克风音频流。例如,麦克风音频流可以包括用户在玩视频游戏时由用户说出的评论。
[0066] 在510处,方法500包括接收输入视频流。在一些示例中,在512处,方法500任选地可以包括接收通过执行应用程序而生成的应用视频流。例如,当用户正在玩视频游戏时,应用视频流可以包括来自视频游戏的视频帧/游戏玩法。在一些示例中,在514处,方法500任选地可以包括接收经由相机生成的相机视频流。例如,相机视频流可以包括用户正在玩视频游戏时的用户的视频。
[0067] 在其中多个音频流被接收作为输入的一些实现中-例如应用音频流和麦克风音频流,在516处,方法500任选地可包括混合应用音频流和麦克风音频流以产生经混合的音频流。
[0068] 在其中多个视频流被接收作为输入的一些实现中-例如应用视频流和相机视频流,在518处,方法500任选地可包括合成应用视频流和相机视频流以产生经合成的视频流。
[0069] 在520处,方法500包括经由音频编码器对基于音频编码器的第一时钟参考而被标记时间戳的音频流进行编码。在522处,方法500包括经由视频编码器对基于视频编码器的第二时钟参考而被标记时间戳的视频流进行编码。
[0070] 在图6的524处,方法500包括执行时间戳校正操作,该时间戳校正操作在时间上同步经编码的音频和视频流的时间戳,以产生同步的经编码的音频和视频流。音频编码器和视频编码器可以基于音频编码器和视频编码器具有不同时钟参考来提供分开的非同步的时间戳。在一个示例中,时间戳校正根据基于字长、帧大小以及音频帧或视频帧的编码历时中的一者或多者的估计来在时间上移位经编码的音频流的每个音频帧或经编码的视频流的每个视频帧的时间戳。时间戳校正操作可以被执行以同步经编码的音频和视频流,以便防止经编码的音频和视频流之间的漂移。
[0071] 在一些实现中,在526处,方法500任选地可以包括经由基本编码器从经编码的音频和视频流的一者或多者中移除元数据。
[0072] 在528处,方法500包括将同步的经编码的音频和视频流打包成一个或多个流传输分组。在一些示例中,音频流和视频流可以被分开地打包成音频流传输分组和视频流传输分组。在一些示例中,音频和视频流可以被一起打包在相同的流传输分组中。
[0073] 在530处,方法500包括将一个或多个流传输分组输出到远程计算设备。在一些示例中,网络收发机可以经由无线局域网(例如,WIFI)或蜂窝广域网将一个或多个流传输分组发送到远程计算设备。
[0074] 在一些实现中,在532处,方法500任选地可以包括经由网络收发机发起与远程计算设备的套接字连接。在534处,方法500任选地可以包括基本上实时地经由套接字连接将一个或多个流传输分组发送到远程计算设备。
[0075] 在至少一些实现中,本文中所描述的方法和过程可以与一个或多个计算设备的计算系统绑定。具体而言,这样的方法和过程可被实现为计算机应用程序或服务、应用编程接口(API)、库、和/或其他计算机程序产品。
[0076] 图7示意性地示出了可以实施以上所描述的方法和过程中的一者或多者的计算系统700的非限制性示例。例如,计算系统700可以代表图2的各种计算设备和/或计算平台,包括源客户端系统210、远程客户端系统270和服务器系统262。以简化形式示出了计算系统700。计算系统700可采取一个或多个下列各项的形式:个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)、和/或其他计算设备。
[0077] 计算系统700包括逻辑机710和数据存储机712。计算系统700可以任选地包括显示子系统714(例如,集成或外围图形显示设备)、输入子系统716、输出子系统718和通信子系统720、和/或图7中未示出的其他组件。
[0078] 逻辑机710包括被配置成执行指令的一个或多个物理设备。例如,逻辑机710可被配置成执行作为一个或多个下列各项的一部分的指令:应用、服务、程序、例程、库、对象、组件、数据结构、或其他逻辑构造。此类指令可被实现以执行任务、实现数据类型、变换一个或多个组件的状态、实现技术效果、或以其他方式得到期望的结果。
[0079] 逻辑机710可包括被配置成执行软件指令的一个或多个处理器。附加地或替代地,逻辑机710可以包括被配置成执行硬件或固件指令的一个或多个硬件或固件逻辑机。逻辑机的处理器可以是单核或多核的,并且在其上执行的指令可被配置成用于串行、并行、和/或分布式处理。逻辑机710的各个个体组件任选地可以分布在两个或更多个分开的设备之间,这些设备可以位于远程以及/或者被配置成用于协同处理。逻辑机710的各方面可以由按计算配置来配置的可远程访问的联网计算设备来虚拟化和执行。
[0080] 数据存储机712包括被配置成保持能由逻辑机710执行以实现本文中所描述的方法和过程的指令的一个或多个物理设备。当此类方法和过程被实现时,可以变换数据存储机712的状态-例如,以保持不同的数据。
[0081] 数据存储机712可以包括可移动和/或内置设备。数据存储机712可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光碟等)、半导体存储器(例如,RAM、EPROM、EEPROM等)、和/或磁存储器(例如,硬盘驱动器软盘驱动器、带驱动器、MRAM等)等等。数据存储机712可以包括易失性的、非易失性的、动态的、静态的、读/写的、只读的、随机存取的、顺序存取的、位置可寻址的、文件可寻址的、和/或内容可寻址的设备。
[0082] 应当领会,数据存储机712包括一个或多个物理设备。然而,本文中所描述的指令的各方面可替代地通过不被物理设备保持达有限历时的通信介质(例如,电磁信号光信号等)来传播。此外,本文中所描述的指令的各方面可以驻留在可移动媒体设备上。
[0083] 在一些示例中,逻辑机710和数据存储机712可以被统称为计算平台。逻辑机710和数据存储机712的各方面可以被一起集成到一个或多个硬件逻辑组件中。此类硬件逻辑组件可包括例如现场可编程阵列(FPGA)、程序和应用专用集成电路(PASIC/ASIC)、程序和应用专用标准产品(PSSP/ASSP)、片上系统(SOC),以及复杂可编程逻辑器件(CPLD)。
[0084] 术语“模块”、“程序”和“引擎”可被用来描述计算系统700的被实现为执行特定功能的方面。在一些情形中,可以经由执行被数据存储机710保持的指令的逻辑机712来实例化模块、程序或引擎。应当理解,可以从同一应用、服务、代码块、对象、库、例程、API、函数等实例化不同的模块、程序、和/或引擎。同样,相同的模块、程序、和/或引擎可通过不同的应用、服务、代码块、对象、例程、API、函数等来实例化。术语“模块”、“程序”和“引擎”可涵盖单个或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
[0085] 应当领会,如本文中所使用的“服务”是能跨多个用户会话执行的应用程序。服务可用于一个或多个系统组件、程序、和/或其他服务。在一些实现中,服务可以在一个或多个服务器计算设备上运行。作为示例,托管在图2的服务器系统272处的服务可以促成从源客户端系统210流向许多接收方客户端系统(其中接收方客户端系统270是一示例)的群体进行流传输。
[0086] 在包括显示子系统714时,显示子系统714可被用来呈现由数据存储机712保持的数据的视觉表示。该视觉表示可采取图形用户界面(GUI)的形式。由于本文中所描述的方法和过程改变了由存储机保持的数据,并因而变换了存储机的状态,因此同样可以变换显示子系统714的状态以视觉地表示底层数据中的改变。显示子系统714可包括利用实质上任何类型的技术的一个或多个图形显示设备。此类显示设备可以与逻辑机710和/或数据存储机712一起被组合在公共外壳中(例如,如参考图1的移动计算设备110所描绘的)。在其他示例中,此类显示设备可以是外围显示设备。
[0087] 在包括输入子系统716时,输入子系统716可以包括诸如键盘鼠标触摸屏、游戏控制器、麦克风、惯性传感器等一个或多个用户输入设备或者与上述设备对接。例如,输入子系统716的麦克风可以经由公共外壳与包含逻辑机710和数据存储机712的计算平台集成,或者麦克风可以是经由一个或多个有线或无线通信链路与计算平台分离以及与计算平台对接的外围设备。无线麦克风可以使用无线协议(作为非限制性示例,诸如蓝牙)通过无线通信链路向计算设备提供麦克风音频流。
[0088] 在一些实现中,输入子系统可以包括所选择的自然用户输入(NUI)部件或与其对接。此类部件可以是集成的或外围的,并且输入动作的换能和/或处理可以在板上或板外被处置。示例NUI部件可包括用于语音和/或话音识别的话筒;用于机器视觉和/或姿势识别的红外、色彩、立体、和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、眼睛跟踪器、加速度计、和/或陀螺仪;以及用于评估脑部活动的电场感测部件。
[0089] 当包括输出子系统718时,输出子系统718可以包括一个或多个输出设备或与其对接,所述输出设备诸如音频扬声器、触觉反馈设备(例如,振动电机)等。例如,输出子系统718的音频扬声器可以经由公共外壳与包含逻辑机710和数据存储机712的计算平台集成,或者音频扬声器可以是经由一个或多个有线或无线通信链路与计算平台分离以及与计算平台对接的外围设备。
[0090] 当包括通信子系统720时,通信子系统720可被配置成将计算系统700与一个或多个其他计算设备通信地耦合。图2的网络收发机259是通信子系统720的示例。通信子系统可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子系统可被配置成用于经由无线电话网络、或者有线或无线局域网或广域网进行通信。在一些实现中,通信子系统可允许计算系统700经由诸如互联网等网络将消息发送至其他设备以及/或者从其他设备接收消息。
[0091] 在一示例中,一种用于流传输音频和视频的移动计算设备包括:被配置成生成麦克风音频流的麦克风;被配置成生成相机视频流的相机;被配置成将移动计算设备与远程计算设备通信地耦合的网络收发机;逻辑机;以及数据存储机,该数据存储机保持能由逻辑机执行以进行以下操作的指令:接收由应用程序的执行而生成的应用音频流,接收由应用程序的执行而生成的应用视频流,接收由麦克风生成的麦克风音频流,接收由相机生成的相机视频流,混合应用音频流和麦克风音频流以产生经混合的音频流,合成应用视频流和相机视频流以产生经合成的视频流,经由音频编码器对经混合的音频流进行编码以产生经编码的音频流,经由视频编码器对经合成的视频流进行编码以产生经编码的视频流,将经编码的音频和视频流打包成一个或多个流传输分组,以及经由网络收发机将该一个或多个流传输分组输出到远程计算设备。在该示例和/或其他示例中,音频编码器可以被配置成基于音频编码器的第一时钟参考对经编码的音频流加时间戳,视频编码器可以被配置成基于视频编码器的第二时钟参考对经编码的视频流加时间戳,存储机可以保持能由逻辑机执行以进行以下操作的指令:执行时间戳校正操作,该时间戳校正操作在时间上同步经编码的音频和视频流的时间戳以产生同步的经编码的音频和视频流,并且该同步的经编码的音频和视频流可以被打包成一个或多个流传输分组。在该示例和/或其他示例中,时间戳校正操作可以根据基于字长、帧大小以及音频帧或视频帧的编码历时中的一者或多者的估计来在时间上移位经编码的音频流的音频帧或经编码的视频流的视频帧的时间戳。在该示例和/或其他示例中,数据存储机可以保持能由逻辑机执行以进行以下操作的指令:在将经编码的视频流打包成一个或多个流传输分组之前经由基本编码器从经编码的音频和视频流的一者或多者中移除元数据。在该示例和/或其他示例中,经混合的音频流和经合成的视频流可以被并行地编码。在该示例和/或其他示例中,数据存储机可以保持能由逻辑机执行以进行以下操作的指令:经由网络收发机发起到远程计算设备的套接字连接,以及经由该套接字连接将一个或多个流传输分组发送到远程计算设备。在该示例和/或其他示例中,数据存储机保持能由逻辑机执行以进行以下操作的指令:启动多个过程线程以经由流传输管线执行音频和视频流传输,并且这些过程线程可被配置成使处理与流传输管线中的音频/视频帧相关联的操作优先于处理被接收为给流传输管线的输入的传入音频/视频帧。在该示例和/或其他示例中,该一个或多个流传输分组可以经由网络收发机来被输出到无线局域网。在该示例和/或其他示例中,该一个或多个流传输分组可以经由网络收发机来被输出到蜂窝广域网。
[0092] 在一示例中,一种用于经由移动计算设备流传输音频和视频的方法包括:接收通过应用程序的执行而生成的应用音频流,接收通过应用程序的执行而生成的应用视频流,经由麦克风接收麦克风音频流,经由相机接收相机视频流,混合应用音频流和麦克风音频流以产生经混合的音频流,合成应用视频流和相机视频流以产生经合成的视频流,经由音频编码器对经混合的音频流进行编码以产生经编码的音频流,经由视频编码器对经合成的视频流进行编码以产生经编码的视频流,将经编码的音频和视频流打包成一个或多个流传输分组,以及经由网络收发机将该一个或多个流传输分组输出到远程计算设备。在该示例和/或其他示例中,音频编码器可以被配置成基于音频编码器的第一时钟参考对经编码的音频流加时间戳,视频编码器可以被配置成基于视频编码器的第二时钟参考对经编码的视频流加时间戳,存储机可以保持能由逻辑机执行以进行以下操作的指令:执行时间戳校正操作,该时间戳校正操作在时间上同步经编码的音频和视频流的时间戳以产生同步的经编码的音频和视频流,并且该同步的经编码的音频和视频流可以被打包成一个或多个流传输分组。在该示例和/或其他示例中,时间戳校正操作可以根据基于字长、帧大小以及音频帧或视频帧的编码历时中的一者或多者的估计来在时间上移位经编码的音频流的音频帧或经编码的视频流的视频帧的时间戳。在该示例和/或其他示例中,该方法可以进一步包括:在将经编码的视频流打包成一个或多个流传输分组之前经由基本编码器从经编码的音频和视频流的一者或多者中移除元数据。在该示例和/或其他示例中,该方法可以进一步包括:经由网络收发机发起到远程计算设备的套接字连接,以及经由该套接字连接将一个或多个流传输分组发送到远程计算设备。
[0093] 在一示例中,一种用于流传输音频和视频的移动计算设备包括:被配置成将移动计算设备与远程计算设备通信地耦合的网络收发机,逻辑机,以及数据存储机,该数据存储机保持能由逻辑机执行以进行以下操作的指令:接收输入音频流,接收输入视频流,经由音频编码器对输入音频流进行编码以产生基于音频编码器的第一时钟参考而被标记时间戳的经编码的音频流,经由视频编码器对输入视频流进行编码以产生基于视频编码器的第二时钟参考而被标记时间戳的经编码的视频流,执行时间戳校正操作,该时间戳校正操作在时间上同步经编码的音频和视频流的时间戳以产生同步的经编码的音频和视频流,将同步的经编码的音频和视频流打包成一个或多个流传输分组,以及经由网络收发机将该一个或多个流传输分组输出到远程计算设备。在该示例和/或其他示例中,输入音频流可以是包括应用音频流和麦克风音频流的经混合的音频流;而输入视频流可以是包括应用视频流和相机视频流的经合成的视频流。在该示例和/或其他示例中,存储机可以保持能由逻辑机执行以进行以下操作的指令:在将经编码的视频流打包成一个或多个流传输分组之前经由基本编码器从经编码的音频和视频流的一者或多者中移除元数据。在该示例和/或其他示例中,时间戳校正操作可以根据基于字长、帧大小以及音频帧或视频帧的编码历时中的一者或多者的估计来在时间上移位经编码的音频流的音频帧或经编码的视频流的视频帧的时间戳。在该示例和/或其他示例中,存储机可以保持能由逻辑机执行以进行以下操作的指令:经由网络收发机发起到远程计算设备的套接字连接,以及经由该套接字连接将一个或多个流传输分组发送到远程计算设备。在该示例和/或其他示例中,数据存储机可以保持能由逻辑机执行以进行以下操作的指令:启动多个过程线程以经由流传输管线执行音频和视频流传输,并且这些过程线程可被配置成使处理与流传输管线中的音频/视频帧相关联的操作优先于处理被接收为给流传输管线的输入的传入音频/视频帧。
[0094] 应当理解,本文中所描述的配置和/或办法本质上是示例性的,并且这些具体实施例或示例不应被视为具有限制意义,因为许多变体是可能的。本文中所描述的具体例程或方法可表示任何数目的处理策略中的一个或多个。由此,所解说和/或所描述的各种动作可以以所解说和/或所描述的顺序执行、以其他顺序执行、并行地执行,或者被省略。同样,以上所描述的过程的次序可被改变。
[0095] 本公开的主题包括各种过程、系统和配置以及此处公开的其他特征、功能、动作和/或属性、以及它们的任一和全部等价物的所有新颖且非显而易见的组合和子组合。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈