首页 / 专利库 / 视听技术与设备 / 运动补偿 / 针对屏幕数据的有效帧内编码

针对屏幕数据的有效内编码

阅读:856发布:2020-05-11

专利汇可以提供针对屏幕数据的有效内编码专利检索,专利查询,专利分析的服务。并且本技术的各种 实施例 总体涉及编码技术。更具体而言,一些实施例涉及针对屏幕数据的编码技术。使用 帧 内(而不是帧间) 运动补偿 的 块 内复制(IntraBC)对于对从屏幕捕获的数据进行编码是非常有用的。遗憾的是,大多数 视频编码 标准(包括HEVC的基本版本(即H.265))并未包含该工具。本技术的各种实施例利用编码技术来以模拟兼容语法的IntraBC。例如,实施例将高 分辨率 帧划分为较小的区域,并且然后,独立地对这些区域进行编码,就好像这些较小的区域是独立的帧一样。,下面是针对屏幕数据的有效内编码专利的具体信息内容。

1.一种计算设备,包括:
处理器;
缓存器;
在所述处理器的控制下的视频编码器,其中,所述视频编码器被配置为:
从所述缓存器取回视频源的初始
从所述视频源的所述初始帧创建多个子帧,每个子帧逐渐表示所述视频源的所述初始帧中的更多部分;
将来自所述多个子帧中的第一子帧划分为宏或编码单元;以及
针对所述多个子帧中剩余的每个子帧执行帧间预测以创建所述初始帧的经编码的版本。
2.根据权利要求1所述的计算设备,还包括通信模块以用于将所述初始帧的所述经编码的版本传输到第二计算设备。
3.根据权利要求2所述的计算设备,其中,所述视频源包括来自在所述计算设备上运行的桌面共享应用的屏幕共享视频。
4.根据权利要求1所述的计算设备,其中,所述视频编码器通过将所述初始帧中的第一点之后的数据归零来创建所述第一子帧。
5.根据权利要求1所述的计算设备,其中,所述视频编码器将所述初始帧和所述多个子帧编码为至少两个切片。
6.一种在其上存储有指令的计算机可读介质,所述指令当由一个或多个处理器运行时使机器用于:
从视频源接收视频的初始帧,所述初始帧表示正在所述机器的显示器上呈现的屏幕数据;
从所述视频源的所述初始帧创建多个子帧,每个子帧逐渐表示所述视频源的所述初始帧中的更多部分;
将来自所述多个子帧的第一子帧划分为宏块;以及
使用帧间预测来对所述多个子帧中的所述第一子帧之后的每个子帧进行编码以创建所述初始帧的经编码的版本。
7.根据权利要求6所述的计算机可读介质,还包括指令,所述指令当由所述一个或多个处理器运行时还使所述机器从所述视频接收后续帧并且使用块间预测来对所述后续帧进行编码。
8.根据权利要求6所述的计算机可读介质,其中,所述指令当由所述一个或多个处理器运行时使所述机器通过创建运动向量和预测误差来对所述多个子帧中的每个子帧进行编码。
9.根据权利要求8所述的计算机可读介质,其中,所述指令当由所述一个或多个处理器运行时使所述机器将所述运动向量和所述预测误差传输到第二机器以用于解码。
10.根据权利要求9所述的计算机可读介质,其中,所述指令当由所述一个或多个处理器运行时使所述机器传输指示符,使得所述第二机器能够延迟对所述初始帧的所述经编码的版本的呈现,直到完整版本可用为止,其中所述指示符指示产生所述初始帧的所述经编码的版本所需的最终数据集。
11.根据权利要求6所述的计算机可读介质,其中,所述第一子帧是通过将所述初始帧中的第一点之后的数据归零来创建的。
12.根据权利要求6所述的计算机可读介质,其中,所述指令当由所述一个或多个处理器运行时使所述机器动态地选择所述初始帧将基于可用的计算资源而被划分为的多个子帧的数量。
13.一种方法,包括:
从视频源接收初始帧;
从所述视频源的所述初始帧创建多个子帧;
通过应用帧间预测编码技术对所述多个子帧进行编码以模拟帧内块复制。
14.根据权利要求13所述的方法,其中,创建所述多个子帧包括:
创建仅包括所述初始帧的第一部分的第一子帧;以及
创建多个后续帧,每个后续帧相继包括所述初始帧中的更多部分,直到达到表示整个所述初始帧的最终子帧为止。
15.根据权利要求14所述的方法,其中,创建所述第一子帧包括:利用零来替换不表示所述初始帧的所述第一部分的所有数据。

说明书全文

针对屏幕数据的有效内编码

背景技术

[0001] 现代电子设备(诸如计算机、平板计算机、移动电话、可穿戴设备、游戏机、电视等)已经成为现代生活的常见部分。这些设备中的许多设备提供了各种数字视频功能。然而,在这些应用内处理数字视频会是一项资源密集型任务,因为视频数据会迅速变大。例如,在实时视频通信中,用户常常偏好较高的分辨率帧速率,这会快速增加计算资源(例如,处理器、网络通信组件等)的负担。为了减轻该问题,能够采用各种视频编码格式来压缩视频数据以进行存储和/或传输。常见的视频编码格式的示例包括但不限于:H.265(也被称为高效视频编码(HEVC))、H.264(也被称为高级视频编码(AVC))、各种运动图像专家组(MPEG)编码格式等。
[0002] 这些各种视频编码格式的折中之一是在压缩率与质量之间。为了帮助进一步压缩数据,同时仍然能够提供较高质量的视频,许多视频编码技术可能采用各种基于分区和预测的方法,这些方法利用了在数字视频内的统计冗余。然而,来自现代电子设备的用户的需求持续增加。这样,需要对当前的编码技术进行额外改进。
[0003] 总之,本文中一些现有或相关系统的示例以及其相关联的限制旨在进行说明,而并非排他性的。在阅读以下内容之后,现有或先前系统的其他限制对于本领域技术人员将变得显而易见。发明内容
[0004] 本技术的各种实施例通常涉及编码技术。更具体而言,一些实施例涉及针对屏幕数据的编码技术。一些实施例通过多个子帧对帧进行编码。结果,在每个帧中仅对图像的一小部分进行编码,并且帧间预测能够被用于模拟内复制。一些实施例还使用基于散列的运动搜索。
[0005] 一些实施例能够通过从视频源(例如,从支持在两个或更多个计算设备之间的桌面共享的应用)接收初始帧来对视频源进行编码。然后,能够从初始帧创建多个子帧。例如,能够创建仅包括初始帧的第一部分的第一子帧(例如,通过将识别的点之后的数据归零)。然后,能够创建多个后续帧的有序序列,每个后续帧都比先前子帧相继地包括初始帧中的更多部分,直到达到表示整个初始帧的最终子帧为止。根据各种实施例,子帧的数量能够被静态地设置(例如,五个、十个、十二个等)或动态地选择。例如,可以基于初始帧的尺寸来选择子帧的数量(例如,尺寸越大,子帧的数量越大)。类似地,可以基于可用的计算资源(例如,存储器资源、处理资源、网络带宽等)或者用户偏好来动态地设置初始帧将被划分成的多个子帧的数量。
[0006] 然后,能够将帧间预测编码技术应用于模拟初始帧内的帧内块复制。所述预测编码技术能够包括将第一子帧划分为宏块,并且然后通过将块匹配算法应用于多个后续子帧来创建运动向量。另外,能够在由块匹配算法识别的任何匹配块之间计算预测误差。由于所述第一子帧仅包括初始帧的数据的一部分,并且使用帧间预测来对后续子帧进行编码以有效地模拟初始帧内的块内复制,被编码的初始帧的整体尺寸被显著地减小。此外,不需要改变解码器,而仅需将子帧视为其最初是视频源的一部分就可以对其进行处理。
[0007] 一些实施例能够从视频源接收视频的初始帧,该初始帧表示在机器的显示器上呈现的屏幕数据。根据视频源的初始帧,能够创建多个子帧,每个子帧逐渐表示视频源的初始帧中的更多部分(例如,第一子帧包括初始帧的1/N,第二子帧包括初始帧的2/N,…,以及最后一帧包括整个初始帧)。所述第一子帧能够被划分为宏块。然后,使用帧间预测,在多个子帧的第一子帧之后的每个子帧创建有效地模拟块内复制的初始帧的经编码的版本。来自视频源的后续帧能够在块间预测中被编码。
[0008] 本技术的实施例还包括计算机可读存储介质,该计算机可读存储介质包含指令集,以使一个或多个处理器执行在本文中所描述的方法、方法的变型以及其他操作。
[0009] 一些实施例提供了一种具有一个或多个处理器、缓存器、视频编码器和/或通信模块的计算。根据一些实施例,视频编码器能够在一个或多个处理器的控制下并且被配置为从缓存器中取回视频源的初始帧。所述视频源可以源自在计算设备上运行的桌面共享应用的屏幕共享视频。然后,所述视频编码器能够从视频源的初始帧中创建多个子帧,每个子帧逐渐表示视频源的初始帧中的更多部分。来自所述多个子帧中的第一子帧能够被划分为宏块(例如,具有固定或可变尺寸)。然后,所述视频编码器能够针对剩余的多个子帧中每个子帧执行帧间预测,以创建初始帧的经编码的版本。所述通信模块能够将初始帧的经编码的版本传输到第二计算设备。
[0010] 尽管公开了多个实施例,但是根据以下详细描述,本发明的其他实施例对于本领域技术人员将变得显而易见,该详细描述示出并且描述了本发明的说明性实施例。将认识到,本发明能够在各个方面进行修改,而所有这些都不背离本发明的范围。因此,附图和详细描述本质上应当被认为是说明性的而非限制性的。
[0011] 提供本概述以简化形式介绍一些概念,这些概念将在下文的技术公开中进一步描述。可以理解的是,本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也并不旨在用于限制所要求保护的主题的范围。

附图说明

[0012] 将通过使用附图来描述和解释本技术的实施例,在附图中:
[0013] 图1图示了根据本技术的一些实施例的环境的示例;
[0014] 图2图示了根据本技术的一个或多个实施例的可以使用编码技术的基于的协作系统的示例;
[0015] 图3图示了在本技术的一个或多个实施例中视频编码器能够如何处理初始帧;
[0016] 图4图示了根据本技术的一个或多个实施例的将初始帧划分为多个子帧的示例;
[0017] 图5是图示了根据本技术的一些实施例的用于处理与屏幕数据相关联的视频的一组操作的示例的流程图
[0018] 图6是图示了根据本技术的各个实施例的用于处理视频的一组操作的示例的流程图;以及
[0019] 图7图示了计算系统的示例,其表示其中可以实施在本文中所公开的各种应用、服务、场景和过程的任何系统或系统集合。
[0020] 附图不一定是按比例绘制的。类似地,出于讨论本技术的一些实施例的目的,一些组件和/或操作可以被分离成不同的块或者被组合成单个块。此外,尽管该技术可以进行各种修改和替代形式,但是在附图中通过示例的方式示出了具体的实施例,并且在下文对其进行了详细描述。然而,本发明并不将技术限于所描述的特定实施例。相反,所述技术旨在覆盖落入由所附权利要求限定的技术范围内的所有修改、等价物和替代例。

具体实施方式

[0021] 本技术的各种实施例总体涉及编码技术。更具体而言,一些实施例涉及用于对屏幕数据进行编码的编码技术。在基于视频的屏幕共享中所使用的视频编码器最初被设计用于自然图像而并非用于屏幕数据。在大多数流行的视频编码器(例如,H.264、H.265vp9等)上,对屏幕数据进行编码效率不高。例如,当对从屏幕捕获的视频进行编码时,第一帧通常非常大,并且因此会需要很长时间才能传输到接收设备。
[0022] 相反,各种实施例将高分辨率帧划分为较小的区域,并且然后独立地对这些区域进行编码,就好像这些较小的区域是独立的帧一样。能够对比特流进行复用以反映这种布置。例如,一些实施例可以在H.264语法内模拟块内复制(例如,使用帧内运动补偿)以对屏幕内容进行编码。一些实施例通过使用许多帧(例如,5个、10个、20个或更多个帧)来对帧进行编码。在帧中可以仅数个宏块行进行编码。结果,一些实施例有效地使用帧间预测来模拟帧内预测。一些实施例可以使用基于散列的运动搜索,其被设计用于屏幕内容运动搜索,以模拟针对所有分区块(16×16---->4×4)的全范围搜索(例如,在整个帧中搜索)。根据各种实施例,解码器能够逐渐地显示模拟的帧或者仅显示高分辨率帧的最终版本。
[0023] 本技术的各种实施例为计算系统和组件提供了广泛的技术效果、优点和/或改进。例如,各种实施例包括以下技术效果、优点和/或改进中的一项或多项:1)减少针对第一帧内帧的视频存储和传输所需的数据总量;2)自动地将帧划分为多个子帧,然后能够将这些子帧视为用于视频编码/解码的独立帧;3)在不改变解码的情况下创建视频压缩的新格式;
4)创建对计算设备处理数字视频的方式的改进;5)使用非传统和非常规操作作为视频编码过程的一部分,同时使解码器保持不变并且符合当前标准(例如,没有屏幕内容编码扩展的H.264或H.265);6)改变计算系统反应、处理和管理包括屏幕和视频数据的实时通信的方式;和/或7)通过将整个帧划分为较小的子帧,所述子帧中的每个子帧都以很小的尺寸进行编码,来改善实时通信用户体验。一些实施例还提供了较早显示帧的一部分的选项,而不是强迫用户等待整个帧的传输。一些实施例包括对计算系统和组件的额外技术效果、优点和/或改进。
[0024] 在下文的描述中,出于解释的目的,阐述了许多具体细节以便提供对本技术的实施例的透彻理解。然而,对于本领域的技术人员将显而易见的是,可以在没有这些具体细节中的一些细节的情况下实践本技术的实施例。尽管为了方便起见,参考使用视频压缩技术对屏幕数据进行编码来描述本技术的实施例,但是本技术的实施例同样适用于利用其他压缩标准或技术的各种其他实例。
[0025] 在本文中所介绍的技术能够被体现为专用硬件(例如,电路)、以软件和/或固件进行适当编程的可编程电路、或者专用和可编程电路的组合。因此,实施例可以包括在其上存储有指令的机器可读介质,所述指令可以被用于对计算机(或其他电子设备)进行编程以执行过程。机器可读介质可以包括但不限于:软盘、光盘、光盘只读存储器(CD-ROM)、磁光盘、ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存或适合用于存储电子指令的其他类型的介质/机器可读介质。
[0026] 短语“在一些实施例中”、“根据一些实施例”、“在所示的实施例中”、“在其他实施例中”等通常意指在该短语之后的特定特征、结构或特性被包含在本技术的至少一种实现方式中,并且可以被包含在多于一种实现方式中。另外,这样的短语不一定指代相同的实施例或不同的实施例。
[0027] 图1图示了根据本技术的一些实施例的环境的示例。如在图1中所图示的,源设备100能够包括多个组件,诸如存储器105(例如,易失性存储器和/或非易失性存储器)、(一个或多个)处理器110、显示器115、网络接口120、麦克125、视频捕获设备130、编码器135和解码器140。源设备100能够经由网络145被连接到目的地设备150。目的地设备150还能够包括类似于在源设备100中的那些组件的多个组件,诸如存储器155、(一个或多个)处理器
160、显示器165、网络接口170、麦克风175、视频捕获设备180、编码器185和解码器190。可能存在图1中未示出的额外组件,诸如数据存储组件(例如,硬盘驱动器、闪存、存储卡等)、电池、小键盘或键盘或者其他输入和/或输出设备。
[0028] 源设备100和目的地设备150能够是任何计算系统,其能够在本地或在网络浏览器的上下文中运行应用、流送应用、或者以任何其他方式运行应用。源设备100和目的地设备150的示例包括但不限于:个人计算机、移动电话、平板计算机、台式计算机、膝上型计算机、可穿戴计算设备、瘦客户端计算设备、虚拟和/或增强现实计算设备、托管计算环境的虚拟机、分布式应用、服务器计算机、计算集群、作为软件即服务(SaaS)托管的应用、在平台即服务(PaaS)上运行的应用、在基础设施即服务(IaaS)或任何其他形状因子上运行的应用、包括计算机或其变型的任何组合。在图7中相对于计算系统710图示了一种这样的表示性架构。
[0029] 本领域技术人员将意识到,这些设备中可以包括各种组件(未示出)以实现与通信网络145的网络通信。在一些情况下,通信网络145可以包括多个网络,甚至多个异构网络,诸如一个或多个边界网络、语音网络、宽带网络、服务提供商网络、互联网服务提供商(ISP)网络、和/或公共交换电话网络(PSTN),其经由网关互连,这些网关能用于促进在各种网络之间和当中的通信。
[0030] (一个或多个)处理器110和160是源设备100和目的地设备150的主处理器,并且可以包括应用处理器、基带处理器、各种协处理器以及针对该设备的其他专用处理器。例如,应用处理器能够提供处理能以支持软件应用、存储器管理、图形处理和多媒体。应用处理器可以与存储器通信地耦合并且被配置为运行操作系统用户界面以及存储在存储器上的应用。基带处理器可以被配置为执行信号处理并且实现/管理设备的实时无线电传输操作。在各种实施例中发现的易失性和非易失性存储器可以包括用于存储信息(诸如处理器可读指令、数据结构、程序模块或其他数据)的存储介质。可以存储的信息的一些示例包括基本输入/输出系统(BIOS)、操作系统和应用。
[0031] 根据各种实施例,编码器135和185能够被配置为以一种或多种编码模式(例如,用于实时通信的低延迟编码模式)进行操作。编码器135或185能够从视频源130或180接收帧,并且产生经编码的数据作为到信道的输出。编码器135或185可以将来自视频源的帧存储在缓存器中。在一些实施例中,第一帧能够被划分为多个子帧,并且被编码器135或185视为独立帧,编码器135或185可以在编码之前应用各种滤波器或其他预处理技术。
[0032] 然后,能够将帧间预测编码技术应用于模拟初始帧内的帧内块复制。所述预测编码技术能够包括将第一子帧划分为宏块,并且然后,通过将块匹配算法应用于多个后续子帧来创建运动向量。另外,能够在由块匹配算法识别的任何匹配块之间计算预测误差。由于第一子帧仅包括初始帧的数据的一部分,并且随后的子帧能够使用帧间预测来编码以有效地模拟初始帧内的块内复制,因此经编码的初始帧的总体大小被显著减小。此外,不需要改变解码器,而仅需将子帧视为视频源的原始部分就可以简单地对其进行处理。
[0033] 根据一些实施例,所述编码可以包括各种过程,包括将拼片划分或分区为宏块、帧内预测估计和预测、运动估计和补偿、频率变换、量化和熵编码。由编码器执行的确切操作会取决于压缩格式而变化。可以在本技术的一些实施例中使用的压缩格式的示例包括但不限于:HEVC格式、Windows Media Video格式、VC-1格式、MPEG-x格式、H.26x格式(例如,H.261、H.262、H.263、H.264)等。
[0034] 解码器140和190能够是能够以多种解码模式(例如,用于实时通信的低延迟解码模式等)中的任意一种解码模式进行操作的任何解码工具。例如,在源设备100中的编码器135对视频源进行编码时,能够将经编码的数据发送(例如,实时地)到目的地设备150,在该目的地设备150中解码器190产生重建的帧。
[0035] 图2图示了根据本技术的一个或多个实施例的可以使用编码技术的基于云的协作系统的示例。如在图2中所图示的,第一客户端设备210A运行能够使用服务230来将客户端设备210A连接到客户端设备210B的应用220A。协作服务230能够促进诸如视频会议、桌面共享等的实时通信。应用220A和220B可以生成图形用户界面240A和240B,以示出来自客户端设备210A-210B的实时相机馈送250A-250D。图形用户界面240A-240B可以允许客户端设备中的一个客户端设备在图形用户界面的部分260中共享桌面,例如用于呈现文件。
[0036] 客户端设备210A-20B可以包括能够被用于压缩流式视频的视频编码器/解码器。然而,基于视频的屏幕共享中所使用的传统视频编码器最初被设计用于自然图像而不是用于屏幕数据。在大多数流行的视频编码器(例如,H.264、H.265vp9等)上,屏幕数据编码的效率不高。例如,当对从屏幕捕获的视频进行编码时,第一帧通常很大,并且因此,会需要很长的时间才能从一个客户端设备传输到另一客户端设备。
[0037] 图3图示了在本技术的一个或多个实施例中视频编码器能够如何处理初始帧310。在图3中所图示的实施例中,能够从初始帧310创建多个子帧320。这些子帧可以仅包括初始帧内的数据的一部分或子集。例如,能够通过将帧内的识别的点之后的数据归零来创建仅包括初始帧的第一部分的第一子帧。后续帧能够包括额外数据。这创建了多个后续帧的有序序列,能够将多个后续帧创建为每个后续帧都比前一子帧相继地包括初始帧310中的更多部分,直到到达表示整个初始帧的最终子帧为止。图4图示了根据本技术的一个或多个实施例的将初始帧410划分为多个子帧420A-420E的示例的示例。例如,如在图4中所图示的,初始帧410的前五分之一可以保持在第一子帧420A中。然后,每个后续子帧可以包括初始帧
310的额外五分之一,直到包括所有数据为止。
[0038] 一旦已经将初始帧划分成较小的区域,视频编码模块330就能够独立地对这些子帧或较小的区域进行编码,就好像这些多个子帧是独立的帧一样。作为从初始帧310创建多个子帧320的结果,随后能够将帧间预测编码技术应用于模拟初始帧内的帧内块复制。根据各种实施例,视频编码模块330能够包括运动估计模块340、块间复制模块350、预测缓存器360和/或其他组件。这些组件能够将第一子帧划分为宏块,并且然后,通过将块匹配算法应用于多个后续子帧来创建运动向量。另外,能够在由块匹配算法识别的任何匹配块之间计算预测误差。
[0039] 由于源帧的初始部分已经被编码在初始帧中,并且其重建的图片已经被存储在预测缓存器360中,因此能够使用帧间预测来编码子帧中源帧的新部分。这模拟在HEVC SCC中的块内复制。结果,一些实施例显著减小了整个帧的整体尺寸。由编码器所执行的操作能够根据压缩格式(例如,HEVC格式、Windows Media Video格式、VC-1格式、MPEG-x格式等)而变化。
[0040] 当对初始帧进行编码时,视频编码模块330能够知道从原始源帧输入帧的哪一部分。例如,在图4中所描述的情况下,仅有前五分之一的帧来自原始源帧。当在该区域上工作时,视频编码模块330能够充当普通视频编码器。对于图片的其余部分,一些实施例可以在其上花费零位,因为图片的该部分能够不被显示或者仅被显示为灰色区域。注意,为了符合一些编码标准,诸如H.264或H.265,视频编码模块330能够对图片的其余部分进行编码,即使其可能最终不会显示。为了利用最少的比特做到这一点,视频编码模块330的一些实施例能够在没有残留数据的情况下对该区域进行编码,仅将用于预测的比特编码为符合标准。
[0041] 在仅利用针对预测模式的比特对该区域进行编码之后,伪影可能出现在经解码的图片中。一些实施例可以使该区域变灰。为此,视频编码模块330的一些实施例能够将帧编码为两个切片。第一切片可以仅包括最终要显示的部分,而第二切片可以包括将要变灰的其余部分。
[0042] 类似地,当对子帧进行编码时,视频编码模块330能够跟踪多个不同的区域或片段。例如,一些实施例可以跟踪三个区域:1)在先前子帧中已经编码的区域(区域A);2)新涉及的区域(区域B);以及3)表示图片其余部分的区域C。当对区域A进行编码时,由于该区域与已经编码的帧的一部分相同,所以视频编码模块330能够以跳跃模式对宏块进行编码。对于区域B,视频编码模块能够将该区域编码为普通P帧(利用帧间预测和帧内预测)。对于区域C,一些实施例可以仅将预测模式用于编码以符合期望的标准。类似地,在各种实施例中,能够将帧编码为两个切片。第一切片能够包括区域A和区域B,而区域C能够形成第二切片。一些实施例可以应用全局运动搜索或基于散列的运动搜索来对这些子帧进行编码。
[0043] 所述编码设备的输出能够被传输到解码器(例如,在不同的客户端上)。由于输出符合所使用的编码标准,因此解码器操作无需改变,并且能够处理来自视频编码模块的信道输出以生成重建屏幕380。由于初始帧310在多个子帧320中被划分为较小的区域,因此在所述数据被处理时,视频解码器的解码可以逐渐呈现重建屏幕380。然而,一些实施例允许使用指示符或信令,使得解码器370可以仅在完成所有多个子帧320的处理时才呈现重建屏幕380。
[0044] 图5是图示了根据本技术的一些实施例的用于处理与屏幕数据相关联的视频的一组操作500的示例的流程图。如在图5中所图示的,接收操作510能够接收表示屏幕数据的视频源的初始帧。能够使用帧内预测技术(例如,创建I帧)来对初始帧进行编码。划分操作520能够将初始帧细分为多个独立帧,所述独立帧包括初始帧内的数据的子集。使用部分源帧是可选的,并且可以由各个实施例使用或不使用。编码操作530能够将各种编码技术(例如,帧间预测)应用于多个独立帧,由此有效地模拟初始帧的块内复制,而不改变任何基础压缩算法和/或编解码器。在一些实施例中,编码操作530能够将子帧编码为P帧。
[0045] 传输操作540将经编码的视频传输到目的地(例如,客户端设备、存储设备等)。传输到目的地设备的第一帧将小于初始帧,因为所传输的第一帧仅能够包括一部分数据。另外,由于已经应用了压缩技术,因此初始帧的经编码的多个子帧也将更小。解码操作550然后能够对经编码的视频进行解码,显示操作560能够使所述经编码的视频呈现在显示器上。
[0046] 图6是图示了根据本技术的各个实施例的用于处理视频的一组操作600的示例的流程图。如在图6中所图示的,接收操作605接收视频。所述视频可以源自实时通信应用,所述实时通信应用允许用户在共享桌面或部分屏幕的同时进行交互、经由聊天窗口进行交互、经由用户设备上的相机观看实时视频捕获等。确定操作610能够确定视频馈送是否是屏幕数据的视频馈送。这会是有用的,因为在基于视频的屏幕共享应用中所使用的许多视频编码器最初都被设计用于自然图像而并非用于屏幕数据。结果,在大多数流行的视频编码器(例如,H.264、H.265vp9等)上,对屏幕数据的编码效率不高。当确定操作610确定视频馈送不表示屏幕数据时,确定操作610分支到编码操作615,在编码操作615中能够应用传统编码技术。
[0047] 当确定操作610确定视频馈送表示屏幕数据时,确定操作610分支到初始帧识别操作620。初始帧识别操作620可以使用各种技术来识别初始帧。这些技术的示例能够包括计数器、尺寸测量、分组报头等。当初始帧识别操作620确定当前帧不是来自视频馈送的第一帧时,初始帧识别操作620分支到编码操作615。当初始帧识别操作620确定当前帧是来自视频馈送的第一帧时,初始帧识别操作620分支到创建操作625,在创建操作625中,能够创建多个子帧。所述多个子帧可以仅包括初始帧的一部分。
[0048] 编码操作630能够使用帧间预测来对多个子帧进行编码以模拟帧内块复制。随着编码完成,传输操作635能够将经编码的视频数据传输到目的地设备。
[0049] 图7图示了计算系统710,其表示其中可以实施在本文中所公开的各种应用、服务、场景和过程的任何系统或系统集合。例如,计算系统710可以包括服务器计算机、刀片服务器、机架服务器、以及适合于执行在本文中所描述的增强协作操作的任何其他类型的计算系统(或者其集合)。在支持增强的组协作的情况下,这样的系统可以采用一个或多个虚拟机、容器或者任何其他类型的虚拟计算资源。
[0050] 计算系统710可以被实施为单个装置、系统或设备,或者可以以分布式方式被实施为多个装置、系统或设备。计算系统710包括但不限于:处理系统720、存储系统730、软件740、针对过程的应用750、通信接口系统760以及用户界面系统770。处理系统720与存储系统730、通信接口系统760以及可选的用户界面系统770可操作地耦合。
[0051] 处理系统720从存储系统730加载并运行软件740。当由处理系统720运行以在多租户基于云的内容和协作环境中部署基于范围的证书时,针对至少在前述实现方式中讨论的各种过程、操作场景和序列,软件740指导处理系统720如在本文中所描述地操作。计算系统710可选地包括出于简洁目的未讨论的额外设备、特征或功能。
[0052] 仍然参考图7,处理系统720可以包括微处理器和其他电路,其从存储系统730取回并运行软件740。处理系统720可以在单个处理设备内实施,但是也可以跨协作运行程序指令的多个处理设备或子系统分布。处理系统720的示例包括通用中央处理单元、专用处理器和逻辑设备,以及任何其他类型的处理设备、组合或者其变型。
[0053] 存储系统730可以包括能由处理系统720读取并且能够存储软件740的任何计算机可读存储介质。存储系统730可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、闪存、虚拟存储器和非虚拟存储器、盒式磁带、磁带、磁盘存储装置或其他磁性存储装置、或者任何其他合适的存储介质。在任何情况下,计算机可读存储介质都不是传播的信号。
[0054] 除了计算机可读存储介质之外,在一些实现方式中,存储系统730还可以包括计算机可读通信介质,在其上可以在内部或外部通信至少一些软件740。存储系统730可以被实施为单个存储设备,但是也可以跨多个存储设备或相对于彼此位于同一位置或分布的子系统来实施。存储系统730可以包括能够与处理系统720或可能的其他系统通信的额外元件,诸如控制器
[0055] 软件740可以以程序指令以及其他功能来实施,当由处理系统720运行时,可以指导处理系统720如关于本文所图示的各种操作场景、序列和过程所描述的那样进行操作。例如,软件740可以包括用于指导所述系统执行上文所描述的过程的程序指令。
[0056] 具体地,所述程序指令可以包括协作或者以其他方式交互以执行在本文中所描述的各种过程和操作场景的各种组件或模块。各种组件或模块可以被体现在经编译或解释的指令中,或者被体现在指令的一些其他变型或组合中。各种组件或模块可以以同步或异步的方式在单线程环境或多线程中串行地或并行地执行,或者根据任何其他合适的执行范例、变型或其组合来执行。软件740可以包括额外过程、程序或组件,诸如操作系统软件、虚拟机软件或应用软件。软件740还可以包括固件或者能由处理系统720执行的一些其他形式的机器可读处理指令。
[0057] 通常,软件740当被加载到处理系统720中并且被运行时,可以将总体上合适的装置、系统或设备(表示计算系统710)从通用计算系统转换成专用计算系统。实际上,存储系统730上的编码软件可以变换存储系统730的物理结构。所述物理结构的具体变换可以取决于该说明书的不同实现方式中的各种因素。这样的因素的示例可以包括但不限于用于实施存储系统730的存储介质的技术以及计算机存储介质是否被表征为主要或辅助存储设备,以及其他因素。
[0058] 例如,如果计算机可读存储介质被实施为基于半导体的存储器,则当在软件740中编码程序指令时,软件740可以变换半导体存储器的物理状态,例如通过变换晶体管、电容器或者构成半导体存储器的其他分立电路元件的状态。关于磁性介质或光学介质,可能发生类似的变化。在不背离本说明书的范围的情况下,物理介质的其他变换是可能的,其中提供前述示例仅仅是为了促进本讨论。
[0059] 通常,过程750能够作为服务托管在云中,并且跨在各个端点之间的计算设备而分布,托管为云支持的信息创建和编辑解决方案的特征。通信接口系统760可以包括允许通过通信网络(未示出)与其他计算系统(未示出)进行通信的通信连接和设备。一起允许系统间通信的连接和设备的示例可以包括网络接口卡、天线、功率放大器、RF电路、收发器和其他通信电路。连接和设备可以在通信介质上通信以与其他计算系统或系统网络交换通信,诸如金属、玻璃、空气或者任何其他合适的通信介质。前述介质、连接和设备是公知的,并且在此无需详细讨论。
[0060] 用户界面系统770可以包括键盘、鼠标、语音输入设备、用于从用户接收触摸手势的触摸输入设备、用于检测用户的非触摸手势和其他运动的运动输入设备、以及能够接收来自用户的用户输入的其他可比较的输入设备和相关联的处理元件。诸如显示器、扬声器、触觉设备以及其他类型的输出设备的输出设备也可以被包括在用户界面系统770中。在一些情况下,输入和输出设备可以被组合在单个设备中,诸如能够显示图像和接收触摸手势的显示器。前述用户输入和输出设备在本领域中是公知的,并且在这里不需要详细讨论。在一些情况下,当计算系统710被实施为一个或多个服务器计算机(诸如,例如刀片服务器、机架服务器或者任何其他类型的计算服务器系统(或者其集合))时,可以省略用户界面系统770。
[0061] 用户界面系统770还可以包括能由处理系统720执行以支持上文所讨论的各种用户输入和输出设备的相关联的用户界面软件。单独地或者结合彼此以及其他硬件和软件元素,用户界面软件和用户界面设备可以支持图形用户界面、自然用户界面、能够协助各种自动化操作(例如,增强版的Microsoft的Cortana助手、Amazon的Alexa、或者Apple的Siri、Google的Assistant等)辅助的人工智能代理,或者任何其他类型的用户界面,其中,可以呈现针对生产力应用的用户界面。
[0062] 在计算系统710与其他计算系统(未示出)之间的通信可以在一个或多个通信网络上并且根据各种通信协议、协议的组合或者其变型发生。示例包括内联网、因特网、互联网、局域网、广域网、无线网、有线网、虚拟网、软件定义的网络、数据中心总线、计算底板或者任何其他类型的网络、网络的组合或其变型。前文提到的通信网络和协议是公知的,在这里不需要详细讨论。在交换数据、内容或任何其他类型的信息的任何上述示例中,信息的交换可以根据各种公知的数据传输协议中的任何一种进行。
[0063] 附图中提供的功能框图、操作场景和序列以及流程图表示用于执行本公开的新颖方面的示例性系统、环境和方法。同时,为简化说明起见,在本文中所包括的方法可以采用功能图、操作场景或序列或者流程图的形式,并且可以被描述为动作的序列,应当理解和意识到,该方法不受动作次序的限制,因为一些动作可能据此以与在本文中所示和所述的动作不同的次序和/或与其他动作同时地发生。例如,本领域技术人员将理解和意识到,方法可以可替代地被表示为一系列相互关联的状态或事件,诸如在状态图中。同样地,对于新颖的实现方式,可能不需要在方法中图示的所有动作。
[0064] 在本文中所包括的描述和附图描绘了特定的实现方式,以教导本领域技术人员如何制作和使用最佳选择。为了教导发明原理,已经简化或省略了一些常规方面。本领域技术人员将意识到落入本发明的范围内的来自这些实现方式的变型。本领域技术人员还将意识到,上文所描述的特征可以以各种方式组合以形成多个实现方式。结果,本发明不限于上述特定的实现方式,而是仅由权利要求书以及其等同物来限定。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈