一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用长期参考、深度学习和负载均衡的视频吞吐量改进的制作方法

2023-02-16 09:59:09 来源:中国专利 TAG:

使用长期参考、深度学习和负载均衡的视频吞吐量改进
1.交叉引用
2.本专利申请要求享有masule等人于2020年6月8日提交的题为“video throughput improvement using long term referecing,deep learning,and load balancing”的美国专利申请第16/895,232号的优先权;其中每一项都转让给其受让人,并通过引用明确并入本文。
技术领域
3.以下内容总体上涉及视频处理,并且更具体地涉及使用深度学习视频译码(video coding)来改进视频吞吐量。


背景技术:

4.多媒体系统被广泛部署以提供各种类型的多媒体通信内容,例如,语音、视频、分组数据、消息传送、广播等。这些多媒体系统可能能够处理、存储、生成、操纵和复制多媒体信息。多媒体系统的示例包括娱乐系统、信息系统、虚拟现实系统、模型和仿真系统等。这些系统可以采用硬件技术和软件技术的组合来支持多媒体信息的处理、存储、生成、操纵和再现,例如,捕获设备、存储设备、通信网络、计算机系统和显示设备。
5.一些设备可以提供诸如音频(例如,语音)、视频等之类的各种类型的通信内容。例如,一些设备可以支持通过网络(例如,诸如长期演进(lte)网络之类的第四代(4g)网络、可以称为新无线电(nr)网络的第五代(5g)网络等)进行音频和视频流式传输。在一些情况下,现有的方法可能无法高效地使用设备硬件用于这样的通信内容。可能期望改进的技术以减少硬件空闲时间、增加通信内容的吞吐量和减少通信内容处理开销等。


技术实现要素:

6.所描述的技术涉及使用深度学习视频译码支持改进的视频吞吐量的改进的方法、系统、设备和装置。例如,所描述的技术可以用于配置设备以支持高效的视频处理(例如,经由用于视频处理的设备高效地利用一个或多个神经处理单元)。例如,所描述的技术可以用于配置设备以将比特流的传入帧划分为单独的批(batch),以由该设备的视频硬件和神经处理单元硬件进行处理(例如,进行并行处理)。设备可以基于与帧相关联的场景改变(例如,基于与帧相关联的运动向量信息的改变)来确定批大小,其中批大小可以提供用于处理帧的负载均衡(例如,由视频硬件和神经处理单元硬件进行的处理之间的负载均衡)。
7.在一些方面,神经处理单元硬件可以在训练模式或生成模式下操作。设备可以基于与一个或多个帧相关联的运动向量信息(例如,基于场景改变或参考场景的改变)将神经处理单元硬件设置为训练模式或生成模式。例如,神经处理单元硬件可以在每个场景改变开始时针对多个帧在训练模式下操作。在训练模式期间,视频硬件可以根据比特流解码并生成帧,同时神经处理单元接收经解码的帧作为用于训练的输入。在生成模式下,神经处理单元可以基于先前生成的帧(例如,由视频硬件和/或神经处理单元先前生成的帧内预测帧
(i帧)、预测帧(p帧)、双向帧(b帧)或长期参考帧)来生成帧(例如,p帧、b帧)。设备的解码器可以基于例如与帧相关联的头部信息来确定何时切换神经处理单元的模式。
8.描述了一种用于在设备处进行视频处理的方法。该方法可以包括:接收包括视频帧的集合的比特流;基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集;基于批处理来选择针对设备的神经处理单元的操作模式;以及基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。
9.描述了一种用于在设备处进行视频处理的装置。该装置可以包括:处理器;与处理器耦合的存储器;以及存储在存储器中的指令。该指令可以由处理器执行以使装置进行以下操作:接收包括视频帧的集合的比特流;基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集;基于批处理来选择针对设备的神经处理单元的操作模式;以及基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。
10.描述了另一种用于在设备处进行视频处理的装置。该装置可以包括用于以下操作的单元:接收包括视频帧的集合的比特流;基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集;基于批处理来选择针对设备的神经处理单元的操作模式;以及基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。
11.描述了一种存储用于在设备处进行视频处理的代码的非暂时性计算机可读介质。该代码可以包括可由处理器执行以进行以下操作的指令:接收包括视频帧的集合的比特流;基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集;基于批处理来选择针对设备的神经处理单元的操作模式;以及基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。
12.本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:识别视频帧的集合的长期参考帧,其中,可以基于识别长期参考帧来将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:使用设备的视频处理单元生成视频帧的第一子集;以及使用设备的神经处理单元生成视频帧的第二子集,其中,所生成的视频分组的集合包括所生成的视频帧的第一子集和所生成的视频帧的第二子集。
13.在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,使用神经处理单元生成视频帧的第二子集可以包括用于以下的操作、特征、单元或指令:基于视频帧的集合的长期参考帧来生成视频帧的第二子集的第一帧。在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,生成视频分组的集合可以包括用于以下的操作、特征、单元或指令:基于与视频帧的第一子集和视频帧的第二子集相关联的时间信息,来同步视频
帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。
14.本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:基于同步来输出视频分组的集合。在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,生成视频分组的集合可以包括用于以下的操作、特征、单元或指令:在第一持续时间内生成视频帧的第一子集;以及在第二持续时间内生成视频帧的第二子集,该第一持续时间在时间上至少部分地与第二持续时间重叠。
15.在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,选择针对神经处理单元的操作模式可以包括用于以下的操作、特征、单元或指令:识别参考场景的改变;以及基于识别出的参考场景的改变来选择针对神经处理单元的训练模式。本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:由设备的视频处理单元对视频帧的第一子集进行解码;以及在训练模式期间,基于经解码的视频帧的第一子集的至少一个经解码的视频帧来训练与神经处理单元相关联的学习模型。
16.本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:基于帧计数满足阈值来选择针对神经处理单元的生成模式,该帧计数包括在识别出的参考场景的改变之后的帧的数量。本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:使用设备的视频处理单元对视频帧的第一子集进行解码;以及使用设备的神经处理单元,在生成模式期间基于经解码的视频帧的第一子集的至少一个经解码的视频帧来生成视频帧的第二子集的至少一个视频帧。
17.本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:基于与视频分组的集合的一个或多个帧相关联的头部信息,来确定将针对神经处理单元的操作模式从训练模式切换到生成模式。本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:基于由设备的视频处理单元处理的视频帧的第一子集来训练与神经处理单元相关联的学习模型。
18.本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:估计与视频帧的集合相关联的运动向量信息;以及基于运动向量信息和与神经处理单元相关联的学习模型来识别参考场景的改变。在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,估计视频帧的集合的运动向量信息可以包括用于以下的操作、特征、单元或指令:确定在与视频帧的集合的第一视频帧相关联的第一运动向量信息和与视频帧的集合的第二视频帧相关联的第二运动向量信息之间的差,其中,可以基于确定出的差来识别参考场景的改变。
19.本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:可以由设备的解码器执行对视频帧的集合的批处理。本文描述的方法、装置和非暂时性计算机可读介质的一些示例还可以包括用于以下的操作、特征、单元或指令:基于准确度阈值来识别视频帧的集合的长期参考帧,该长期参考帧包括视频帧的集合的帧内帧。在本文描述的方法、装置和非暂时性计算机可读介质的一些示例中,长期参考帧可以由设备的编码器识别。
附图说明
20.图1示出了根据本公开的方面的用于视频处理的系统的示例,该系统使用深度学习视频译码支持改进的视频吞吐量。
21.图2示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的系统的示例。
22.图3示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的视频数据流的示例。
23.图4示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的处理流程的示例。
24.图5示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的处理流程的示例。
25.图6示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的时间层图的示例。
26.图7示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的神经处理单元集群图的示例。
27.图8和图9示出了根据本公开方面的使用深度学习视频译码支持改进的视频吞吐量的设备的框图。
28.图10示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的多媒体管理器的框图。
29.图11示出了根据本公开的方面的包括使用深度学习视频译码支持改进的视频吞吐量的设备的系统的图。
30.图12和图13示出了说明根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的方法的流程图。
具体实施方式
31.一些设备可以支持各种类型的通信内容,例如,通过网络(例如,诸如长期演进(lte)网络之类的第四代(4g)网络,以及可以被称为新无线电(nr)网络的第五代(5g)网络)流式传输的音频或视频。在一些示例中,视频流式传输可以包括对视频数据进行编码和解码,视频数据可以包括帧内预测帧(i帧)、预测帧(p帧)或双向帧(b帧)中的一个或多个。当对视频数据进行编码和解码时,一些方法可能无法高效地使用设备硬件。例如,当处理高分辨率和高帧每秒(fps)数据时,一些方法可能会经历高延时和增加的开销。可能期望减少硬件空闲时间、增加视频吞吐量(例如,fps)和减少视频处理开销的改进的技术。
32.根据本文描述的技术,一种设备可以被配置为通过使用视频子系统(例如,视频硬件)和神经处理(例如,一个或多个神经处理单元)引入用于帧生成的并行处理来支持高效的视频处理。例如,所描述的技术可用于配置该设备以将比特流的传入帧划分(例如,批处理、分类、拆分等)为单独的批,以由设备的视频硬件和神经处理单元硬件进行处理(例如,并行处理)。设备可以基于与帧相关联的场景改变(例如,基于与帧相关联的运动向量信息的改变)来确定批大小,这可以提供用于由视频硬件和神经处理单元硬件处理帧的负载均衡。因此,高效地利用神经处理单元硬件(例如,如本文所描述的)来处理一些通信内容(例
如,视频)可以提供减少的处理延时(例如,经由并行处理批带来的来自硬件中断和中断处理的较少延时)、增加的吞吐量(例如,经由处理负载的高效均衡带来的较高的fps数据)等。
33.在一些方面,神经处理单元硬件可以在训练模式或生成模式下操作。设备可以基于与一个或多个帧相关联的运动向量信息(例如,场景改变)将神经处理单元硬件设置为训练模式或生成模式。例如,神经处理单元硬件可以在每个场景改变开始时针对多个帧在训练模式下操作。在训练模式期间,视频硬件可以根据比特流解码并生成帧,同时神经处理单元接收经解码的帧作为用于训练的输入。在生成模式下,神经处理单元可以基于先前生成的帧(例如,由视频硬件和/或神经处理单元先前生成的i帧、p帧、b帧或长期参考帧)来生成帧(例如,p帧、b帧)。设备的解码器可以基于例如与帧相关联的头部信息来确定何时切换神经处理单元的模式。
34.在示例中,设备可以接收包括视频帧的集合的比特流。该设备可以包括视频处理单元和神经处理单元。该设备可以基于与视频帧的集合相关联的参考场景的改变(例如,基于运动向量信息)将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。在示例中,设备可以基于批处理来选择针对神经处理单元的操作模式。该设备可以使用视频处理单元生成视频帧的第一子集,并且使用神经处理单元生成视频帧的第二子集。该设备可以生成并输出包括视频帧的子集的视频分组的集合。
35.本公开的方面最初在多媒体系统的上下文中描述。然后参考示例处理流程、时间层图和神经处理单元集群图来描述本公开的方面。本公开的方面通过参考涉及使用深度学习视频译码的改进的视频吞吐量的装置图、系统图和流程图进一步说明和描述。
36.图1示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的系统100的示例。系统100可以包括基站105、接入点110、设备115、服务器125和数据库130。基站105、接入点110、设备115、服务器125和数据库130可以使用通信链路135经由网络120彼此通信。在一些示例中,系统100可以使用学习模型和神经处理单元支持视频帧编码和解码,由此提供对视频处理、视频通信和视频流式传输应用的增强。
37.基站105可以经由一个或多个基站天线与设备115进行无线通信。本文描述的基站105可以包括或可以由本领域技术人员称为收发机基站、无线电基站、无线电收发机、节点b、e节点b(enb)、下一代节点b或千兆节点b(其中任一个可以称为gnb)、家庭节点b、家庭e节点b或某种其他合适的术语。本文描述的设备115能够与各种类型的基站和网络设备(包括宏enb、小型小区enb、gnb、中继基站等)通信。接入点110可以被配置为与基站105相比在较小的区域上为设备115提供无线通信。
38.设备115可以另外或可替代地包括或由本领域技术人员称为用户装置(ue)、用户设备、蜂窝电话、智能电话、蓝牙设备、wi-fi设备、移动站、订户站、移动单元、订户单元、无线单元、远程单元、移动设备、无线设备、无线通信设备、远程设备、接入终端、移动终端、无线终端、远程终端、手持机、用户代理、移动客户端、客户端和/或某种其他合适的术语。在一些情况下,设备115还能够与另一设备(例如,使用对等(p2p)或设备对设备(d2d)协议)进行直接通信。本文描述的设备115能够例如经由通信链路135与另一设备115通信。
39.设备115可以并入用于使用深度学习视频译码改进视频吞吐量的方面。本文描述的技术可以支持将学习模型(例如,机器学习网络、神经网络、长短期记忆(lstm)网络或卷积神经网络)与例如与视频处理和通过网络的视频流式传输相关联的视频编码和解码集
成。设备115可以包括编码组件145、解码组件150和机器学习组件155。编码组件145、解码组件150和机器学习组件155可以通过处理器(例如,图9中描述的处理器940)的方面来实现。
40.机器学习组件155可以支持学习模型,例如,机器学习网络、神经网络、深度神经网络、lstm网络或卷积神经网络。机器学习组件155也可以称为神经处理单元或神经处理单元硬件。编码组件145、解码组件150和机器学习组件155可以在通用处理器、数字信号处理器(dsp)、图像信号处理器(isp)、中央处理单元(cpu)、图形处理单元(gpu)、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)等中实现。
41.在一些示例中,设备115可以接收包括视频帧的集合的比特流。设备115可以包括视频处理单元(例如,视频硬件)和神经处理单元(例如,机器学习组件155)。设备115可以基于与视频帧的集合相关联的参考场景的改变(例如,基于运动向量信息),(例如,使用解码组件150)将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。在一些情况下,运动向量信息可以指代从帧t到帧t 1改变的一个或多个图像或帧的数据部分(例如,像素)。在一些情况下,这样的批处理可以提供从硬件生成的较少的中断,这可以减少中断处理中引入的延时。
42.在示例中,设备115可以基于批处理来选择针对神经处理单元(例如,机器学习组件155)的操作模式。设备115可以使用视频处理单元生成视频帧的第一子集,并且使用神经处理单元生成视频帧的第二子集。设备115可以生成并输出包括视频帧的子集的视频分组的集合。通常,神经处理单元硬件(例如,其可以包括一个或多个神经处理单元)可以在训练模式或生成模式下(例如,基于批处理)操作。在训练模式下,神经处理单元硬件可以学习运动向量的改变(例如,其中输入可以取自视频硬件)。在生成模式下,神经处理单元硬件可以生成yuv帧(例如,其中在时间t处到神经处理单元硬件的输入是由神经处理单元硬件在t-1处生成的yuv帧)。
43.网络120可以提供加密、访问授权、跟踪、互联网协议(ip)连通性以及其他访问、计算、修改和/或功能。网络120的示例可以包括云网络、局域网(lan)、广域网(wan)、虚拟专用网络(vpn)、无线网络(例如使用802.11)、蜂窝网络(使用第三代(3g)、第四代(4g)、长期演进(lte)或新无线电(nr)系统(例如,第五代(5g))等的任何组合。网络120可以包括互联网。
44.服务器125可以包括数据服务器、云服务器、代理服务器、邮件服务器、web服务器、应用服务器、地图服务器、道路辅助服务器、数据库服务器、通信服务器、家庭服务器、移动服务器或其任何组合的任何组合。服务器125还可以向设备115发送各种信息,例如,与在视频通信期间的带宽使用相关的指令或命令。数据库130可以存储可以包括与视频通信相关的指令或命令的数据。设备115可以经由基站105和/或接入点110从数据库130取回存储的数据。
45.系统100中示出的通信链路135可以包括从设备115到基站105、接入点110或服务器125的上行链路传输,和/或从基站105、接入点110、服务器125和/或数据库130到设备115的下行链路传输,或多个设备115之间的上行链路传输或下行链路传输。下行链路传输也可以称为前向链路传输,而上行链路传输也可以称为反向链路传输。通信链路135可以发送双向通信和/或单向通信。通信链路135可以包括一个或多个连接,包括但不限于345mhz、wi-fi、蓝牙、蓝牙低能量(ble)、蜂窝、z-wave、802.11、对等、lan、无线局域网(wlan)、以太网、火线、光纤和/或与无线通信系统相关的其他连接类型。
46.图2示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的系统200的示例。在一些示例中,根据本公开的方面,系统200可以使用学习模型支持视频帧编码和解码。系统200可以实现系统100的方面,例如使用深度学习视频译码提供对视频帧渲染和视频吞吐量的改进。例如,系统200可以包括设备115-a和设备115-b,其可以包括如参考图1所描述的设备115的方面的示例。
47.设备115-a可以建立与设备115-b的连接,以通过网络(例如,4g系统、5g系统、wi-fi系统等)进行视频通信或视频流式传输。该连接可以是设备115-a与设备115-b之间的双向连接。设备115-a和设备115-b中的每一个可以包括编码组件、解码组件和学习网络。编码组件和解码组件可以与学习网络集成。
48.例如,设备115-a可以包括编码组件210-a、解码组件211-a和机器学习组件215-a(例如,一个或多个神经处理单元)。在一些示例中,设备115-b可以包括编码组件210-b、解码组件211-b和机器学习组件215-b(例如,一个或多个神经处理单元)。机器学习组件215-a和机器学习组件215-b可以包括本文描述的机器学习组件155的方面的示例。在一些方面,编码组件210-a和解码组件211-a可以各自与机器学习组件215-a集成。在一些示例中,编码组件210-b和解码组件211-b可以各自与机器学习组件集成。
49.在一些示例中,在视频处理和/或视频通信期间,设备115-a可以捕获视频、对捕获的视频的视频帧进行压缩(量化)、生成携带视频帧的视频分组的集合、以及例如通过视频连接向设备115-b发送视频数据流205。设备115-a可以使用编码组件210-a对视频帧进行编码(例如,压缩)并对经编码的视频帧进行分组化。视频数据流205可以包括i帧225、b帧230和p帧235。i帧225、b帧230和p帧235可以被包括在视频帧序列220中。在一些方面,设备115-a可以基于存储在设备115-a上(或存储在耦合到设备115-a的存储器上)的视频向设备115-b发送视频数据流205。例如,设备115-a可以对存储的视频的视频帧进行压缩(量化)、生成携带视频帧的视频分组的集合、以及例如通过视频连接向设备115-b发送视频数据流205。在一些情况下,设备115-a可以包括向设备115-b通信或流式传输通信内容的基站或接入点。
50.i帧225可以包括与捕获的视频相关联的完整图像信息。i帧225可以是基于图像文件格式(例如,位图图像格式)被格式化的帧。例如,i帧可以是基于联合摄影专家组(jpeg)格式、windows位图格式(bmp)、图形交换格式(gif)等被格式化的帧。在一些情况下,i帧225可以包括帧内宏块。
51.b帧230可以是根据两个参考帧预测的双向帧。例如,b帧230-a和b帧230-b可以基于前面的参考帧(例如,i帧225-a)和后面的参考帧(例如,p帧235-a)来预测,分别如231和232处的箭头所示。在一些方面,基于b帧230所取决的参考帧(例如,i帧225、b帧230或p帧235)对b帧230的预测可以在对参考帧的解码(例如,乱序解码)之后进行。b帧230可以包括帧内宏块、预测宏块或双预测宏块。
52.p帧235可以是基于前面的参考帧(例如,前面的i帧225或前面的p帧235)预测的帧。例如,可以基于i帧225-a来预测p帧235-a,如233处的箭头所示。在一些方面,p帧235可以包括运动向量信息(例如,运动位移向量信息,例如,相对于先前帧的运动位移向量信息),并且可以包括图像数据。在示例中,p帧235-a可以包括基于前面的帧(例如,i帧225-a)的图像的改变。在其中视频帧序列220与移动的对象和静止背景相关联的示例中,p帧235
(例如,p帧235-a)可以包括与对象的移动相关联的图像数据,而不包括与静止背景相关联的图像数据(例如,不包括与不变或静止的背景像素相关联的图像数据)。在一些方面,p帧235可以被称为delta帧。p帧235可以包括帧内宏块或预测宏块。
53.在一些方面,设备115-b可以接收视频数据流205,并根据视频数据流205生成视频帧的集合。例如,设备115-b可以使用解码组件211-b对视频流205进行解码(例如,对视频数据流205的分组进行解码),并且在一些示例中,根据对视频数据流205的解码来生成视频帧序列220的i帧225、b帧230和p帧235中的一个或多个。在一些方面,设备115-b可以例如经由设备115-b的显示器输出视频帧(例如,i帧225、b帧230、p帧235),以在设备115-b处显示。设备115-a和设备115-b两者可以如本文所描述的那样进行编码和发送。在一些方面,设备115-a和设备115-b两者可以如本文所描述的那样进行接收和解码。
54.在一些方面,包括高分辨率视频(例如,1080p、4k分辨率、8k分辨率等)的视频流可能导致在视频流中发送相对大量的数据。例如,当视频数据流205包括高分辨率视频时,发送视频数据流205(例如,视频帧序列220的i帧225、b帧230和p帧235)可以包括通过网络(例如,网络120)发送相对大量的数据。本文描述的用于使用深度学习视频译码来改进视频吞吐量和减少延时的改进的方法、系统、设备和装置可以引入帧批处理、并行处理和负载均衡,以使用设备115的视频硬件和设备115的神经处理(例如,机器学习组件215)来生成帧。本文例如参考图3至图5进一步描述帧批处理、并行处理和负载均衡的方面的示例。
55.图3示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的示例视频数据流300。在一些示例中,视频数据流300可以通过无线通信系统100和无线通信系统200的方面来实现,其可以使用深度学习视频译码提供对视频帧渲染和视频吞吐量的改进。在一些示例中,视频数据流300可以通过参考图115描述的设备115的方面来实现。在一些示例中,视频数据流300可以通过参考图2描述的设备115-a和设备115-b的方面来实现。视频数据流300可以包括视频数据流205的示例方面。
56.视频数据流300可以包括视频帧序列305。在一些方面,视频数据流300(例如,视频帧序列305)可以包括例如由设备115-a的捕获组件(例如,相机)捕获的视频帧。视频数据流300可以是例如通过在设备115-a处对视频帧序列305进行编码而生成的经译码的比特流。例如,设备115-a可以使用本文描述的编码组件210-a和机器学习组件215-a对视频帧序列305进行编码。视频帧序列305可以包括i帧310和p帧315。设备115-a可以生成视频数据流300(包括视频帧序列305)并将其发送到设备115-b。参考图4描述编码视频帧序列305的视频帧和生成视频数据流300的示例性方面。
57.设备115-b可以接收视频数据流300并根据视频数据流300生成视频帧的集合。例如,设备115-b可以使用解码组件211-b和机器学习组件215-b对视频数据流300进行解码(例如,对视频数据流300的分组进行解码),并且在一些示例中,根据对视频数据流300进行解码来生成视频帧序列305的i帧310和p帧315中的一个或多个。在一些方面,设备115-b可以例如经由设备115-b的显示器输出视频帧(例如,i帧310、p帧315),以在设备115-b处显示。参考图5描述解码视频数据流300和生成视频帧序列305的视频帧的示例方面。
58.本文描述的方面的示例可以并入长期参考技术、跳过帧逻辑、使用神经处理单元的帧生成技术和负载均衡技术。在视频帧序列305的一些方面,p帧315-a(例如,在时间t-1处)可以是用于生成p帧315-b(例如,在时间t处)的参考帧,如箭头325-a所示。在一些其他
方面,i帧310-a可以是用于生成p帧315-a的参考帧,如箭头320-b所示。在长期参考的一些方面,i帧310-a可被标记为长期参考帧,例如,用于生成p帧315-f,如箭头320-a所示。箭头320和325可以指示帧与参考帧之间的依赖关系。
59.在长期参考中,当帧在时间t处被标记为长期参考帧时,可以生成在时间t t处的i帧,其中t是在预先定义的阈值内的时间增量。例如,在时间t处的长期参考帧可以是用于距离长期参考帧在时间阈值t内的p帧的参考帧。与常规参考帧(例如,非长期参考帧)相比,长期参考帧可以包括更大量的经编码的图像数据。更大量的经编码的图像数据可以用于对帧(例如,参考长期参考帧的p帧)进行解码而不损坏图像质量。
60.如本文所描述的,i帧310-a可以被称为长期参考帧。可以使用长期参考帧生成批(例如,由神经处理单元硬件处理的子集330)的第一帧。为了更准确地重新生成帧,可以将长期参考帧与更多的图像数据进行关联以进行正确解码。在一些示例中,用于神经处理单元硬件的(例如,子集335的)第一帧可以使用来自用于视频硬件的先前批(例如,子集330)的长期参考帧来生成。
61.关于跳过帧,在用于编码视频帧序列305的编码过程期间,每个视频帧(例如,i帧310-a和p帧315-a至315-k)可以被重构以生成视频帧序列305的视频帧之间的运动向量。在其中参考帧与取决于参考帧的帧之间的图像场景(例如,参考场景)的改变在给定阈值内(例如,视频帧之间的运动位移向量信息小于阈值)的情况下,取决于参考帧的帧可以被标记为跳过帧。在其中i帧310-a与p帧315-a(其取决于i帧310-a)之间的运动位移向量信息小于阈值的示例中,p帧315-a可以被标记为跳过帧。在其中i帧310-a与p帧315-b(其取决于i帧310-a)之间的运动位移向量信息小于阈值的示例中,p帧315-b可以被标记为跳过帧。在其中p帧315-a与p帧315-b(其取决于p帧315-a)之间的运动位移向量信息小于阈值的示例中,p帧315-b可以被标记为跳过帧。
62.根据本文描述的方面的示例,设备115-b可以接收包括视频帧的集合(例如,视频帧序列305)的比特流(例如,视频数据流300)。设备115-b可以包括视频处理单元(例如,视频硬件)和神经处理单元(例如,机器学习组件215-b,其可以与编码组件210-b和解码组件211-b集成)。神经处理单元通常可以指代能够处理/实现神经网络的任何gpu或硬件。设备115-b可以基于与视频帧的集合相关联的参考场景的改变(例如,基于运动向量信息),(例如,使用解码组件211-b)将视频帧的集合批处理为视频帧的第一子集(例如,子集330)和视频帧的第二子集(例如,子集335)。在一些示例中,分组/批处理可以基于图片组、场景改变、长期参考帧、启发法等。在示例中,设备115-b可以基于批处理选择针对神经处理单元(例如,机器学习组件215-b)的操作模式。设备115-b可以使用视频处理单元生成视频帧的第一子集,并且使用神经处理单元生成视频帧的第二子集。设备115-b可以生成并输出包括视频帧的子集的视频分组的集合。
63.在一些方面,设备115-b可以识别视频帧的集合的长期参考帧(例如,i帧310-a)。设备115-b可以基于长期参考帧将视频帧的集合批处理为视频帧的第一子集(例如,子集330)和视频帧的第二子集(例如,子集335)。例如,设备115-b可以基于被包括在视频数据流300中的头部信息来执行批处理。在示例中,头部信息可以指示长期参考帧。在一些情况下,头部信息可以指示取决于长期参考帧的帧。在示例中,使用神经处理单元(例如,机器学习组件215-b),设备115-b可以基于长期参考帧生成视频帧的第二子集的第一帧(例如,设备
115-b可以基于i帧310-a生成子集335的p帧315-f)。
64.如本文所描述的,可以实现负载均衡技术以高效地利用设备的视频硬件和神经处理单元硬件两者(例如,其中可以对批进行负载均衡以增加fps、硬件能力等)。例如,在其中批(例如,或帧的子集)包括5个帧的示例中,可以由视频硬件处理每次场景改变之后的第一批(例如,可以使用视频硬件生成前五个帧)。设备通常可以基于(例如,一个或多个帧的)头部解析来决定硬件(例如,视频硬件或神经处理单元硬件)。如果选择了视频硬件和在场景改变之后的第一批,则神经处理单元硬件可以在学习模式下操作。如果选择了神经处理单元硬件,则神经处理单元硬件可以切换到生成模式。如果将第n批给定到神经处理单元硬件,则第n 1批的第一帧可以由长期参考帧生成。输出帧可以基于帧时间戳进行同步。在其中检测到场景改变的情况下,可以针对与场景改变相关联的新帧重复负载均衡技术。例如,参考图5在本文进一步详细描述使用视频处理单元和神经处理单元生成视频帧的负载均衡技术的示例方面。
65.图4示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的处理流程400的示例。在一些示例中,处理流程400可以实现无线通信系统100和无线通信系统200的方面。
66.处理流程400可以例如由设备115(例如,与设备115-b进行无线通信的设备115-a)来实现。处理流程400可以由设备115的处理器实现。在一些方面,处理流程400可以包括编码器模型和集成学习模型。处理流程400可以通过编码组件155(例如,编码组件210-a)的方面来实现。在一些方面,可以参考图3的视频帧序列305来描述处理流程400。
67.根据处理流程400的方面,设备115(例如,设备115-a)可以处理视频帧的集合。该帧的集合可以包括例如由设备115的捕获组件(例如,相机)捕获的视频帧。例如,该帧的集合可以包括与由设备115的捕获组件(例如,相机)捕获的视频相关联的视频帧。
68.在示例中,在410处,设备115可以从视频源405接收视频帧的集合。视频源405可以是例如与yuv颜色编码相关联的视频图像源(例如,其中yuv颜色编码可以将亮度(明度)存储为y值,并且将颜色(色度)存储为u和v值)。视频源405可以是例如视频图像源,例如,设备115的捕获组件(例如,相机)或设备115的存储设备。在示例中,视频帧的集合可以是yuv帧。设备115可以例如使用编码器(例如,编码组件155)基于视频帧来生成并输出经译码的比特流411。经译码的比特流411可以包括i帧(例如,i帧310)和p帧(例如,p帧315)的集合。例如,经译码的比特流411可以包括图3的视频数据流300的方面。在示例中,设备115可以例如从视频帧的集合中识别用于编码的输入帧(输入视频帧406)。视频帧406可以是例如当前视频帧。视频帧406可以是例如p帧(例如,p帧315)。
69.在415处,设备115可以处理(例如,解码)与从视频源405输出的视频帧(例如,视频帧406)相关联的图像数据。在一些方面,设备115可以在被包括在编码组件155内的本地解码器处处理(例如,解码)图像数据。在一些方面,处理与视频帧相关联的图像数据可以包括处理视频帧的宏块。
70.在420处,设备115可以基于经处理的图像数据(例如,基于视频帧的宏块)来估计视频帧(例如,视频帧406)的运动向量信息。设备115可以例如相对于视频帧的集合的另一帧(例如,参考帧)来估计视频帧406的运动向量信息。参考帧可以是相对于当前视频帧在前面的参考帧。例如,参考帧可以是前面的i帧310或前面的p帧315。
71.设备115可以执行运动估计以将参考帧中的宏块与视频帧406中的宏块进行比较。在一些方面,设备115可以执行一个或多个块匹配算法,以例如基于图像数据(例如,基于参考帧和视频帧406中的宏块的像素)来识别与视频帧406中的宏块匹配的参考帧中的宏块。在一些方面,在420处,设备115可以基于比较宏块来确定或估计视频帧的运动向量信息。在示例中,设备115可以确定视频帧406和参考帧的运动向量信息。
72.在425处,设备115可以使用例如片上神经处理来处理运动向量信息。在一些方面,由设备115进行的片上神经处理可以包括使用学习模型。例如,学习模型可以被实现为被包括在设备115中的学习网络的一部分(例如,机器学习组件155、机器学习组件215-a)。学习网络例如可以包括机器学习网络、神经网络、深度神经网络、lstm网络或卷积神经网络。学习网络可以包括例如机器学习层(例如,卷积层、lstm层)的组合。
73.在一些方面,使用片上神经处理,设备115可以基于运动向量信息来识别(例如,在视频帧406和参考帧之间的)参考场景的改变。例如,设备115可以确定与视频帧406相关联的运动向量信息和与参考帧相关联的运动向量信息之间的差。在一些方面,设备115可以基于确定出的差满足阈值(例如,准确度阈值)来识别参考场景的改变。
74.在其中设备115(例如,使用片上神经处理)确定差值超过阈值的示例中,设备115可以生成关于视频帧406和参考帧的复位信号426。设备115可以将复位信号426输出到帧生成计数器。在示例中,在430处,设备115(例如,使用帧生成计数器)可以将参考帧标记为长期参考帧。帧生成计数器可以将长期参考(ltr)标记431输出到编码器,从而指示参考帧作为长期参考帧。
75.在一些示例中,在410处,设备115(例如,使用编码器)可以基于ltr标记431来修改参考帧的头部信息。例如,设备115可以修改头部信息以指示参考帧是长期参考帧。在一些方面,设备115可以修改视频帧406的头部信息以指示视频帧406与长期参考帧相关联。
76.如本文所描述的,设备115(例如,设备115-a)可以基于准确度阈值来识别来自视频源405的视频帧的集合的长期参考帧。长期参考帧可以包括视频帧的集合的i帧(例如,i帧310)。
77.图5示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的处理流程500的示例。在一些示例中,处理流程500可以支持集成到视频译码中的深度学习。在一些示例中,处理流程500可以实现无线通信系统100和无线通信系统200的方面。
78.处理流程500可以例如由设备115(例如,与设备115-a进行无线通信的设备115-b)来实现。处理流程500可以由设备115的处理器实现。在一些方面,处理流程500可以包括解码器模型和集成学习模型。处理流程400可以通过解码组件155(例如,解码组件210-b)的方面来实现。参考图3的视频帧序列305描述处理流程400。
79.设备115(例如,设备115-b)可以处理由设备115接收到的视频数据流(例如,经译码的比特流501)。经译码的比特流501可以包括例如由另一设备115(例如,设备115-a)的捕获组件(例如,相机)捕获的视频帧。经译码的比特流501可以是通过在另一设备115处的编码而生成的比特流,并且例如可以包括携带视频帧的集合的视频分组的集合。在一些方面,设备115可以经由无线通信或有线通信从另一设备115接收经译码的比特流501。经译码的比特流501的方面可以包括本文描述的视频数据流300和经译码的比特流411的示例方面。
80.在505处,设备115可以对经译码的比特流501进行解码。在一些示例中,设备115可
以解析经译码的比特流501。在一些方面,在505处,设备115可以从经译码的比特流501提取控制信息。控制信息可以与被包括在经译码的比特流501中的视频帧相关联。在一些方面,控制信息可以包括头部信息506。在一些示例中,头部信息506可以包括长期参考帧(例如,i帧310-a)和取决于长期参考帧的p帧315(例如,p帧315-f)的指示。在一些示例中,控制信息可以包括批信息。
81.在510处,设备115(例如,使用解码组件150)可以将被包括在经译码的比特流501中的视频帧批处理为用于视频硬件的批(例如,子集330)和用于神经处理单元硬件的批(例如,子集335)。在一些方面,设备115可以基于头部信息506或批信息来确定批(以及每批的视频帧的数量)。例如,设备115可以基于头部信息506(例如,基于长期参考帧的指示)来识别与视频帧相关联的参考场景的改变。设备115可以将与批相关联的决策信息511输出到视频硬件和与神经处理单元硬件相关联的模式选择器。在一些方面,决策信息511可以包括针对神经处理单元硬件的操作模式。
82.在示例中,在515处,设备115可以通过视频硬件来解码视频帧的第一子集(例如,子集330)。设备115可以输出视频帧的第一子集的经解码的视频帧516(例如,经重构的视频帧)。在使用视频硬件进行解码期间,设备115可以基于经解码的视频帧516中的至少一个来训练与神经处理单元相关联的学习模型。
83.例如,在520处,设备115可以基于识别出的参考场景的改变来选择针对神经处理单元的训练模式。例如,可以在决策信息511中指示识别出的参考场景的改变。在示例中,设备115可以将模式信息521(指示训练模式)输出到神经处理单元,并且神经处理单元可以基于模式信息切换到训练模式(例如,如果处于生成模式)或保持在训练模式(例如,如果已经处于训练模式)。
84.例如,在训练模式期间,设备115(例如,神经处理单元)可以基于经解码的视频帧516来训练。例如,使用530处的卷积技术、535处的lstm技术和540处的卷积技术,设备115可以包括用于学习每个经解码的视频帧516的特征。在一些方面,设备115(例如,神经处理单元)可以基于与经解码的视频帧516相关联的运动向量来训练。
85.在另一示例中,在520处,设备115可以基于帧计数满足阈值来选择针对神经处理单元的生成模式,该帧计数包括在识别出的参考场景的改变之后的帧的数量。例如,帧计数可以等于由视频硬件解码的视频帧的数量(例如,被包括在子集330中的帧的数量)。在一些方面,在520处,设备115可以基于头部信息506来确定将针对神经处理单元的操作模式从训练模式切换到生成模式。
86.例如,在生成模式期间,在525处,设备115(例如,神经处理单元)可以基于经解码的视频帧516生成子集335的至少一个视频帧。例如,使用530处的卷积技术、535处的lstm技术和540处的卷积技术,设备115可以包括用于生成或预测视频帧541的特征。在一些方面,设备115(例如,神经处理单元)还可以基于与经解码的视频帧541相关联的运动向量来训练。在一些方面,由神经处理单元硬件根据视频帧的子集335生成的第一帧可以基于长期参考帧(例如,由神经处理单元硬件根据子集335生成的第一帧为p帧315-f,其可以基于i帧310-a(长期参考帧))。
87.在一些方面,视频硬件(例如,在515处)和神经处理单元硬件(例如,在525处)可以相对于视频帧序列305以非顺序次序生成视频帧。例如,用于视频硬件的批(例如,子集330)
可以包括跨越第一持续时间的视频帧,并且用于神经处理单元硬件的批(例如,子集335)可以包括跨越第二持续时间的视频帧,该第二持续时间至少部分地与第一持续时间重叠。在示例中,经解码的视频帧516可以相对于彼此不同步。在一些示例中,经解码的视频帧541可以相对于彼此不同步。在一些其他示例中,经解码的视频帧516和经解码的视频帧541可以相对于彼此不同步。
88.在一些方面,经译码的比特流501、头部信息506或决策信息511可以包括与被包括在批中的视频帧相关联的时间信息(例如,时序或同步信息,例如,帧时间戳)。设备115可以基于时间信息来同步视频帧的第一子集(例如,子集330)、视频帧的第二子集(例如,子集335)或两者。设备115可以基于同步来输出视频帧。在检测到新的场景改变的情况下,可以针对新的帧重复处理流程500的一个或多个方面。
89.图6示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的时间层图600的示例。在一些示例中,时间层图600可以实现无线通信系统100和无线通信系统200的方面。时间层图600可以示出用于包括多个(例如,多于一个)神经处理单元的设备的处理以使用深度学习视频译码来改进视频吞吐量(例如,其中每一层可以基于层间依赖性由单个神经处理单元来处理)的方面。
90.如本文所描述的,一些设备可以包括片上神经处理(例如,通用神经处理硬件,其可以包括一个或多个神经处理单元)的能力。根据本文描述的技术,通过使用神经处理单元硬件(例如,其可以提供更高的吞吐量,可以适应具有最小能力的视频硬件等),可以利用这些能力来增强本地视频硬件能力。在一些示例中,可以使用时间层和神经处理单元硬件来实现附加的吞吐量,其中每个层基于层间依赖性由单个神经处理单元模型来处理。
91.对于高分辨率和高fps视频回放,视频硬件可以处理大量数据。一些设备(例如,能够进行片上神经处理的设备,其不具有用于处理高fps视频的能力)可以将视频帧(例如,对视频帧的处理)分成多个层,以支持在低fps下的回放,而不损害用户体验。为了实现增加的fps,可以实现硬件(例如,神经处理单元)来处理所有层。时间层图600可以示出不同层(例如,层1(l1)、层2(l2)、层3(l3)、层4(l4)和层5(l5))以及可以经由丢弃不同层来实现的各种fps吞吐量。在一些示例中,对层中的帧的解码取决于先前层中的帧。如示例时间层图600所示,丢弃各种层(例如,丢弃l5、l4、l3或其某些组合)可以减少解码fps。
92.图7示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的神经处理单元集群图700的示例。在一些示例中,神经处理单元集群图700可以实现无线通信系统100和无线通信系统200的方面(例如,以及时间层图600的方面)。神经处理单元集群图700可以示出用于包括多个(例如,多于一个)神经处理单元的设备的处理,以使用深度学习视频译码来改进视频吞吐量(例如,其中,在一些情况下,每个层可以基于层间依赖性由单个神经处理单元(npu)处理)的方面。
93.一些设备可以经由视频硬件处理所有层。然而,根据本文描述的技术,一些设备(例如,能够进行片上神经处理的设备)可以包括神经处理单元硬件(例如,包括神经处理单元集群),其中单个集群可以具有多个处理单元(例如,一些设备可以包括具有多个神经处理单元的神经处理单元硬件)。根据本文描述的技术,设备可以实现将允许设备经由神经处理单元集群处理不同层(例如,视频处理层)的模型。
94.例如,如神经处理单元集群图700所示,神经处理单元集群(例如,包括npu1、npu2
和npu3)可以使用利用视频硬件解码的帧。在本示例中,神经处理单元700可以示出用于经由三层进行解码的模型。对于在给定级别ln处的帧,该帧可以仅参考来自更高层(例如,l0
……
ln-1)的帧。每一层(例如,从最低层ln开始)的帧可以在不进行解码的情况下被丢弃以实现不同的回放速率(例如,如本文参考图6更详细描述的)。在一些示例中,神经处理单元集群中的神经处理单元的数量可以确定所支持的时间层的数量。
95.在神经处理单元集群图700中,视频帧的基本层可以由视频解码器处理。例如,视频帧的基本层(例如,比特流的传入帧)可以被拆分为层(例如,输入帧的组),以由设备的神经处理单元集群进行处理。然后可以经由三个时间层处理视频帧,其中每一层可以由相应的神经处理单元处理。例如,视频解码器可以将输入帧输出到被包括在设备中的神经处理单元中的每一个(例如,设备的神经处理单元硬件集群的每个神经处理单元)。然后,设备可以同步处理层的输出(例如,经由与帧相关联的时间戳,该帧由相应神经处理单元经由层处理)。因此,硬件(hw)编写器可以处理经同步的帧以输出到液晶显示控制器(lcdc)(例如,其中lcdc可以最终控制到显示面板的输出)。
96.通常,hw编写器可以提供两个基元(层和显示),以表示编写工作及其与显示硬件的交互。hw编写器和/或lcdc可以基于设备的显示硬件(例如,分辨率配置、颜色模式等)来处理经同步的帧。在一些示例中,lcdc可以将各种类型的视频信号转换为由设备的显示硬件支持的格式。
97.本文描述的技术可以提供数据的并行处理,这可以增加吞吐量、降低视频硬件复杂度、降低视频硬件处理开销等。此外,所描述的技术的一个或多个方面可以提供对时间层模型的充分利用(例如,这可以经由如本文描述的层的丢弃来减少或消除对以固定fps处理帧的限制)。本文描述的技术可以考虑视频硬件和npu生成的帧两者,这可以改进质量(例如,与可能损害质量的其中使用神经处理单元帧仅作为参考来生成帧的技术相比)。所描述的技术可以提供增加的吞吐量,因为可以实现多个硬件(例如,视频硬件和神经处理单元硬件)来同时处理数据。本文描述的负载均衡技术可以提供对视频硬件和神经处理单元硬件两者的改进的利用。此外,所描述的技术的一个或多个方面可以在编码器(例如,用于发送设备)和解码器(例如,用于接收设备)两者处实现。
98.图8示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的设备805的框图800。设备805可以是如本文所描述的设备的方面的示例。设备805可以包括接收机810、多媒体管理器815和发射机820。设备805还可以包括处理器。这些组件中的每一个组件可以彼此通信(例如,经由一条或多条总线)。
99.接收机810可以接收诸如分组、用户数据或与各种信息信道(例如,控制信道、数据信道和与使用深度学习视频译码改进视频吞吐量相关的信息等)相关联的控制信息之类的信息。信息可以被传递到设备805的其他组件。接收机810可以是参考图11所描述的收发机1120的方面的示例。接收机810可以利用单个天线或天线的集合。
100.多媒体管理器815可以进行以下操作:接收包括视频帧的集合的比特流;基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集;基于批处理来选择针对设备的神经处理单元的操作模式;以及基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。多媒体管理器
815可以是本文描述的多媒体管理器1110的方面的示例。
101.多媒体管理器815或其子组件可以以硬件、由处理器执行的代码(例如,软件或固件)或其任何组合来实现。如果以由处理器执行的代码实现,则可以由被设计为执行本公开所描述的功能的通用处理器、dsp、专用集成电路(asic)、fpga或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或其任何组合来执行多媒体管理器815或其子组件的功能。
102.多媒体管理器815或其子组件可以物理地位于各种位置,包括是分布式的以使得功能的一部分由一个或多个物理组件在不同的物理位置处实现。在一些示例中,根据本公开的各种方面,多媒体管理器815或其子组件可以是单独且不同的组件。在一些示例中,多媒体管理器815或其子组件可以与一个或多个其他硬件组件组合,这些硬件组件包括但不限于根据本公开的各种方面的输入/输出(i/o)组件、收发机、网络服务器、另一计算设备、在本公开中描述的一个或多个其他组件或其组合。
103.发射机820可以发送由设备805的其他组件生成的信号。在一些示例中,发射机820可以与接收机810并置于收发机模块中。例如,发射机820可以是参考图11描述的收发机1120的方面的示例。发射机820可以利用单个天线或天线的集合。
104.图9示出了根据本公开的方面的使用深度学习视频译码支持的改进视频吞吐量的设备905的框图900。设备905可以是如本文所描述的设备805或设备115的方面的示例。设备905可以包括接收机910、多媒体管理器915和发射机940。设备905还可以包括处理器。这些组件中的每一个组件可以彼此通信(例如,经由一条或多条总线)。
105.接收机910可以接收诸如分组、用户数据或与各种信息信道(例如,控制信道、数据信道和与使用深度学习视频译码改进视频吞吐量相关的信息等)相关联的控制信息之类的信息。信息可以被传递到设备905的其他组件。接收机910可以是参考图11所描述的收发机1120的方面的示例。接收机910可以利用单个天线或天线的集合。
106.多媒体管理器915可以是本文描述的多媒体管理器815的方面的示例。多媒体管理器915可以包括比特流组件920、帧组件925、模式组件930和分组组件935。多媒体管理器915可以是本文描述的多媒体管理器1110的方面的示例。
107.比特流组件920可以接收包括视频帧的集合的比特流。帧组件925可以基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。模式组件930可以基于批处理来选择针对设备的神经处理单元的操作模式。分组组件935可以基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。
108.发射机940可以发送由设备905的其他组件生成的信号。在一些示例中,发射机940可以与接收机910并置于收发机模块中。例如,发射机940可以是参考图11描述的收发机1120的方面的示例。发射机940可以利用单个天线或天线的集合。
109.图10示出了根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的多媒体管理器1005的框图1000。多媒体管理器1005可以是本文描述的多媒体管理器815、多媒体管理器915或多媒体管理器1110的方面的示例。多媒体管理器1005可以包括比特流组件1010、帧组件1015、模式组件1020、分组组件1025、同步组件1030、训练组件1035和运动组件1040。这些模块中的每一个模块可以直接或间接地彼此通信(例如,经由一条或多条总
线)。
110.比特流组件1010可以接收包括视频帧的集合的比特流。
111.帧组件1015可以基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。在一些示例中,帧组件1015可以识别视频帧的集合的长期参考帧,其中,基于识别长期参考帧来将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。在一些示例中,帧组件1015可以使用设备的视频处理单元生成视频帧的第一子集。在一些示例中,使用设备的神经处理单元生成视频帧的第二子集,其中,所生成的视频分组的集合包括所生成的视频帧的第一子集和所生成的视频帧的第二子集。
112.在一些示例中,帧组件1015可以基于视频帧的集合的长期参考帧来生成视频帧的第二子集的第一帧。在一些示例中,帧组件1015可以在第一持续时间内生成视频帧的第一子集。在一些示例中,帧组件1015可以在第二持续时间内生成视频帧的第二子集,该第一持续时间在时间上至少部分地与第二持续时间重叠。在一些示例中,帧组件1015可以由设备的视频处理单元对视频帧的第一子集进行解码。在一些示例中,帧组件1015可以使用设备的视频处理单元对视频帧的第一子集进行解码。在一些示例中,帧组件1015可以使用设备的神经处理单元,在生成模式期间基于经解码的视频帧的第一子集的至少一个经解码的视频帧来生成视频帧的第二子集的至少一个视频帧。
113.在一些示例中,帧组件1015可以由设备的解码器执行对视频帧的集合的批处理。在一些示例中,帧组件1015可以基于准确度阈值来识别视频帧的集合的长期参考帧,该长期参考帧包括视频帧的集合的帧内帧。在一些情况下,长期参考帧由设备的编码器识别。
114.模式组件1020可以基于批处理来选择针对设备的神经处理单元的操作模式。在一些示例中,模式组件1020可以识别参考场景的改变。在一些示例中,模式组件1020可以基于识别出的参考场景的改变来选择针对神经处理单元的训练模式。在一些示例中,模式组件1020可以基于帧计数满足阈值来选择针对神经处理单元的生成模式,该帧计数包括在识别出的参考场景的改变之后的帧的数量。在一些示例中,模式组件1020可以基于与视频分组的集合的一个或多个帧相关联的头部信息,来确定将针对神经处理单元的操作模式从训练模式切换到生成模式。
115.分组组件1025可以基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。在一些示例中,分组组件1025可以基于同步来输出视频分组的集合。
116.同步组件1030可以基于与视频帧的第一子集和视频帧的第二子集相关联的时间信息,来同步视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。
117.训练组件1035可以在训练模式期间,基于经解码的视频帧的第一子集的至少一个经解码的视频帧来训练与神经处理单元相关联的学习模型。在一些示例中,训练组件1035可以基于由设备的视频处理单元处理的视频帧的第一子集来训练与神经处理单元相关联的学习模型。
118.运动组件1040可以估计与视频帧的集合相关联的运动向量信息。在一些示例中,
运动组件1040可以基于运动向量信息和与神经处理单元相关联的学习模型来识别参考场景的改变。在一些示例中,运动组件1040可以确定在与视频帧的集合的第一视频帧相关联的第一运动向量信息和与视频帧的集合的第二视频帧相关联的第二运动向量信息之间的差,其中,基于确定出的差来识别参考场景的改变。
119.图11示出了根据本公开的方面的包括使用深度学习视频译码支持改进的视频吞吐量的设备1105的系统1100的图。设备1105可以是设备805、设备905或如本文所描述的设备的组件的示例或包括设备805、设备905或如本文所描述的设备的组件。设备1105可以包括用于双向语音和数据通信的组件,包括用于发送和接收通信的组件,包括多媒体管理器1110、i/o控制器1115、收发机1120、天线1125、存储器1130、处理器1140和译码管理器1150。这些组件可以经由一条或多条总线(例如,总线1145)进行电子通信。
120.多媒体管理器1110可以进行以下操作:接收包括视频帧的集合的比特流;基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集;基于批处理来选择针对设备的神经处理单元的操作模式;以及基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。
121.i/o控制器1115可以管理用于设备1105的输入和输出信号。i/o控制器1115还可以管理未集成到设备1105中的外围设备。在一些情况下,i/o控制器1115可以表示到外部外围设备的物理连接或端口。在一些情况下,i/o控制器1115可以利用诸如设备的物理连接或端口。在一些情况下,i/o控制器1115可以利用诸如之类的操作系统或其他已知的操作系统。在其他情况下,i/o控制器1115可以表示调制解调器、键盘、鼠标、触摸屏或类似设备或与其交互。在一些情况下,i/o控制器1115可以被实现作为处理器的一部分。在一些情况下,用户可以经由i/o控制器1115或经由被i/o控制器1115控制的硬件组件与设备1105交互。
122.收发机1120可以经由本文所描述的一个或多个天线、有线或无线链路进行双向通信。例如,收发机1120可以表示无线收发机,并且可以与另一无线收发机双向通信。收发机1120还可以包括调制解调器,该调制解调器用于调制分组并将经调制的分组提供给天线以进行传输,并且对从天线接收到的分组进行解调。
123.在一些情况下,无线设备可以包括单个天线1125。然而,在一些情况下,设备可以具有多于一个天线1125,其能够并发地发送或接收多个无线传输。
124.存储器1130可以包括随机存取存储器(ram)和只读存储器(rom)。存储器1130可以存储包括指令的计算机可读、计算机可执行代码1135,这些指令在被执行时使处理器执行本文所描述的各种功能。在一些情况下,存储器1130可以包含bios等,该bios可以控制基本硬件或软件操作,例如,与外围组件或设备的交互。
125.处理器1140可以包括智能硬件设备(例如,通用处理器、dsp、cpu、微控制器、asic、fpga、可编程逻辑器件、分立门或晶体管逻辑组件、分立硬件组件或其任何组合)。在一些情况下,处理器1140可以被配置为使用存储器控制器来操作存储器阵列。在一些情况下,可以将存储器控制器集成到处理器1140中。处理器1140可以被配置为执行存储在存储器(例如,存储器1130)中的计算机可读指令,以使设备1105执行各种功能(例如,使用深度学习视频译码支持改进的视频吞吐量的功能或任务)。
126.代码1135可以包括用于实现本公开的方面的指令,包括用于支持视频处理的指令。代码1135可以存储在非暂时性计算机可读介质(例如,系统存储器或其他类型的存储器)中。在一些情况下,代码1135可能不能由处理器1140直接执行,而是可以使计算机(例如,在被编译和执行时)执行本文所描述的功能。
127.图12示出了说明根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的方法1200的流程图。方法1200的操作可以由本文描述的设备或其组件来实现。例如,方法1200的操作可以由参考图8至图11所描述的多媒体管理器执行。在一些示例中,设备可以执行一组指令以控制设备的功能元件来执行下面描述的功能。另外地或可替代地,设备可以使用专用硬件来执行下面描述的功能的方面。
128.在1205处,设备可以接收包括视频帧的集合的比特流。1205的操作可以根据本文描述的方法来执行。在一些示例中,1205的操作的方面可以由参考图8至图11所描述的比特流组件执行。
129.在1210处,设备可以基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。1210的操作可以根据本文描述的方法来执行。在一些示例中,1210的操作的方面可以由参考图8至图11所描述的帧组件执行。
130.在1215处,设备可以基于批处理来选择针对设备的神经处理单元的操作模式。1215的操作可以根据本文描述的方法来执行。在一些示例中,1215的操作的方面可以由参考图8至图11所描述的模式组件执行。
131.在1220处,设备可以基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。1220的操作可以根据本文描述的方法来执行。在一些示例中,1220的操作的方面可以由参考图8至图11所描述的分组组件执行。
132.图13示出了说明根据本公开的方面的使用深度学习视频译码支持改进的视频吞吐量的方法1300的流程图。方法1300的操作可以由本文描述的设备或其组件来实现。例如,方法1300的操作可以由参考图8至图11所描述的多媒体管理器执行。在一些示例中,设备可以执行一组指令以控制设备的功能元件来执行下面描述的功能。另外地或可替代地,设备可以使用专用硬件来执行下面描述的功能的方面。
133.在1305处,设备可以接收包括视频帧的集合的比特流。1305的操作可以根据本文描述的方法来执行。在一些示例中,1305的操作的方面可以由参考图8至图11所描述的比特流组件执行。
134.在1310处,设备可以识别视频帧的集合的长期参考帧,其中,基于识别长期参考帧来将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。1310的操作可以根据本文描述的方法来执行。在一些示例中,1310的操作的方面可以由参考图8至图11所描述的帧组件执行。
135.在1315处,设备可以基于与视频帧的集合相关联的参考场景的改变,将视频帧的集合批处理为视频帧的第一子集和视频帧的第二子集。1315的操作可以根据本文描述的方法来执行。在一些示例中,1315的操作的方面可以由参考图8至图11所描述的帧组件执行。
136.在1320处,设备可以基于批处理来选择针对设备的神经处理单元的操作模式。1320的操作可以根据本文描述的方法来执行。在一些示例中,1320的操作的方面可以由参
考图8至图11所描述的模式组件执行。
137.在1325处,设备可以使用设备的视频处理单元生成视频帧的第一子集。1325的操作可以根据本文描述的方法来执行。在一些示例中,1325的操作的方面可以由参考图8至图11所描述的帧组件执行。
138.在1330处,设备可以使用设备的神经处理单元生成视频帧的第二子集,其中,所生成的视频分组的集合包括所生成的视频帧的第一子集和所生成的视频帧的第二子集。1330的操作可以根据本文描述的方法来执行。在一些示例中,1330的操作的方面可以由参考图8至图11所描述的帧组件执行。
139.在1335处,设备可以基于神经处理单元和所选择的操作模式来生成视频分组的集合,该视频分组的集合包括视频帧的第一子集、视频帧的第二子集、或视频帧的第一子集和视频帧的第二子集两者。1335的操作可以根据本文描述的方法来执行。在一些示例中,1335的操作的方面可以由参考图8至图11所描述的分组组件执行。
140.应当注意,本文描述的方法描述了可能的实现方式,并且操作和步骤可以被重新布置或以其他方式修改,并且其他实现方式是可能的。此外,可以组合来自方法中的两个或多个方法的方面。
141.可以使用各种不同技术和方法中的任何一种来表示本文描述的信息和信号。例如,在可以贯穿说明书中引用的数据、指令、命令、信息、信号、比特、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或者其任何组合来表示。
142.结合本文的公开内容所描述的各种说明性的框和模块可以利用被设计为执行本文所描述的功能的通用处理器、dsp、asic、fpga或其他可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者其任何组合来实现或执行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或者状态机。处理器也可以被实现作为计算设备的组合(例如,dsp和微处理器的组合、多个微处理器、一个或多个微处理器与dsp核心的结合,或者任何其他这种配置)。
143.本文中描述的功能可以是以硬件、由处理器执行的软件、固件或者其任何组合来实现的。如果以由处理器执行的软件来实现,则功能可以存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来发送。其他示例和实现方式在本公开内容及所附权利要求书的范围内。例如,由于软件的本质,本文所描述的功能可以是使用由处理器执行的软件、硬件、固件、硬连线或者这些项中的任一项的组合来实现的。用于实现功能的特征还可以物理地位于各种位置,包括是分布式的以使得功能中的部分功能是在不同的物理位置处实现的。
144.计算机可读介质包括非暂时性计算机存储介质和通信介质两者,通信介质包括促进从一个地方向另一个地方传送计算机程序的任何介质。非暂时性存储介质可以是能够由通用或特殊用途计算机存取的任何可用介质。通过示例而非限制的方式,非暂时性计算机可读介质可以包括ram、rom、电可擦除可编程只读存储器(eeprom)、闪速存储器、压缩光盘(cd)rom或其他光盘存储装置、磁盘存储装置或其他磁存储设备、或者能够用于携带或存储以指令或数据结构的形式的期望的程序代码单元并能够由通用或特殊用途计算机、或者通用或特殊用途处理器进行存取的任何其他非暂时性介质。而且,可以将任何连接适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字订户线(dsl)
或者诸如红外、无线电和微波之类的无线技术从网站、服务器或其他远程源发送的,则同轴电缆、光纤光缆、双绞线、dsl或者诸如红外、无线电和微波之类的无线技术是被包括在介质的定义中的。如本文中使用的,磁盘和光盘包括cd、激光光盘、光盘、数字通用光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则利用激光来光学地复制数据。上述的组合也被包括在计算机可读介质的保护范围之内。
145.如本文(包括在权利要求书中)中使用的,如项目列表中所使用的“或”(例如,以诸如
“……
中的至少一个”或
“……
中的一个或多个”之类的短语为结束的项目列表)指示包含性的列表,使得例如a,b或c中的至少一者的列表意指a或b或c或ab或ac或bc或abc(即,a和b和c)。而且,如本文所使用的,短语“基于”不应被解释为对闭合的条件集的引用。例如,在不脱离本公开的范围的情况下,描述为“基于条件a”的示例性步骤可以是基于条件a和条件b两者的。换言之,如本文所使用的,应当按照与短语“至少部分地基于”相同的方式来解释短语“基于”。
146.在附图中,相同的组件或特征可以具有相同的附图标记。进一步地,相同类型的各个组件可以通过在附图标记之后跟随破折号以及用于在相似组件之中进行区分的第二标记来进行区分的。如果在说明书中仅使用了第一附图标记,则描述可适用于具有相同的第一附图标记的类似组件中的任何一个组件,而不管第二附图标记或者其他随后的附图标记如何。
147.本文结合附图阐述的说明书描述示例配置,并且不表示可以实现的所有示例,也不表示在权利要求书的范围内的所有示例。如本文中使用的术语“示例性”意指“用作示例、实例或说明”,以及并不意指“与其他示例相比是优选的”或“更具优势”。出于提供对所描述的技术的理解的目的,具体实施方式包括特定细节。然而,在没有这些特定细节的情况下也可以实践这些技术。在一些实例中,公知的结构和设备是以框图形式示出的,以便避免对所描述的示例的概念造成模糊。
148.提供本文中的描述以使得本领域技术人员能够实现或者使用本公开内容。对于本领域技术人员而言,对本公开内容的各种修改将是显而易见的,以及本文中定义的一般原理可以在不脱离本公开内容的保护范围的情况下应用于其他变型。因此,本公开内容并不限于本文中描述的示例和设计,而是符合与本文中公开的原理和新颖性特征相一致的最宽泛的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献