[0001]相关申请的交叉引用
[0002]本申请要求于2022年11月15日提交的名称为“NEURAL IMAGE COMPRESSION WITHCONTROLLABLE SPATIAL BIT ALLOCATION”的美国专利申请第17/987,844号的优先权,其要求于2021年11月16日提交的名称为“NEURAL IMAGE COMPRESSION WITH CONTROLLABLESPATIAL BIT ALLOCATION”的美国临时专利申请第63/280,097号的权益,这些申请的公开内容全文以引用方式明确并入本文
[0003]技术领域
[0004]本公开的各方面整体涉及神经网络,并且更具体地涉及使用人工神经网络利用可控空间比特分配进行的神经图像压缩。
[0005]背景技术
[0006]人工神经网络可以包括互连的人工神经元群(例如,神经元模型)。人工神经网络可以是计算设备或表示为要由计算设备执行的方法。卷积神经网络是一种前馈人工神经网络。卷积神经网络可包括神经元集合,其中每个神经元具有感受野并且共同地拼出输入空间。卷积神经网络(CNN)(诸如深度卷积神经网络(DCN))具有众多应用。具体而言,这些神经网络架构被用于各种技术,诸如图像识别、模式识别、语音识别、自动驾驶和其他分类任务。
[0007]神经网络在多媒体压缩(诸如视频压缩和图像压缩)中得到了成功的应用。图像压缩有益于传达多媒体,诸如图像和视频。然而,用户可包括具有不同计算能力的不同计算机架构,并且可以在不同的网络状况下操作此类设备。常规图像编解码器和神经图像压缩方案在不同的空间位置上均匀地优化整个图像的率失真折衷,而不考虑在每个图像中是否存在比其他区域更重要/显著的区域。
[0008]发明内容
[0009]在本公开的一个方面,一种处理器实现的方法包括在人工神经网络的编码器处接收图像和与该图像对应的空间分割图,该空间分割图指示一个或多个感兴趣区域。该方法还包括根据可控空间比特分配,经由编码器压缩图像,该可控空间比特分配是基于学习的量化箱大小的。
[0010]本公开的另一方面涉及一种装置,该装置具有存储器和耦合到该存储器的一个或多个处理器。该处理器被配置为在人工神经网络的编码器处接收图像和与该图像对应的空间分割图,该空间分割图指示一个或多个感兴趣区域。该处理器被进一步配置为根据可控空间比特分配,经由编码器压缩图像,可控空间比特分配是基于学习的量化箱大小的。
[0011]在本公开的一个方面,一种处理器实现的方法包括在人工神经网络的解码器处接收来自编码器的比特流。该方法还包括经由解码器解码比特流,以恢复与空间分割图对应的图像的经量化的潜在表示,该空间分割图指示一个或多个感兴趣区域。该方法还包括将倒数增益控制元件应用于经量化的潜在表示以产生空间分割图,该倒数增益控制元件具有与学习的量化箱大小对应的增益值。该方法还包括基于空间分割图来经由解码器生成重建图像。
[0012]本公开的另一方面涉及一种装置,该装置具有存储器和耦合到该存储器的一个或多个处理器。该处理器被配置为在人工神经网络的解码器处接收来自编码器的比特流。该处理器被进一步配置为经由解码器解码比特流,以恢复与空间分割图对应的图像的经量化的潜在表示,该空间分割图指示一个或多个感兴趣区域。该处理器被进一步配置为将倒数增益控制元件应用于经量化的潜在表示以产生空间分割图,该倒数增益控制元件具有与学习的量化箱大小对应的增益值。该处理器还被配置为基于空间分割图来经由解码器生成重建图像。
[0013]本公开的附加特征和优点将在下文描述。本领域技术人员应当领会,本公开可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。本领域技术人员还应认识到,这样的等效构造并不脱离所附权利要求中所阐述的本公开的教导。被认为是本公开的特性的新颖特征,在其组织和操作方法两方面连同进一步的目的和优点在结合附图来考虑时,从以下描述将被更好地理解。然而,要清楚理解的是,提供每一幅附图均仅用于例示和描述目的,并且无意作为对本公开的限定的定义。
[0014]附图说明
[0015]在结合附图理解下面阐述的具体实施方式时,本公开的特征、实质和优点将变得更加明显,在附图中,相同附图标记始终进行对应的标识。
[0016]图1例示了根据本公开的某些方面的使用片上系统(SOC)(包括通用处理器)的神经网络的示例具体实施。
[0017]图2A、图2B和图2C是例示根据本公开的各方面的神经网络的示图。
[0018]图2D是例示根据本公开的各方面的示例性深度卷积网络(DCN)的示图。
[0019]图3是例示根据本公开的各方面的示例性深度卷积网络(DCN)的框图。
[0020]图4是例示根据本公开的各方面的可使人工智能(AI)功能模块化的示例性软件架构400的框图。
[0021]图5是例示根据本公开的各方面的用于具有增益控制的神经压缩的示例架构的框图。
[0022]图6是例示根据本公开的各方面的用于压缩输入的示例架构的框图。
[0023]图7是例示根据本公开的各方面的用于神经压缩的训练目标的计算的框图。
[0024]图8是进一步例示根据本公开的各方面的具有增益控制的神经压缩的示图。
[0025]图9A和图9B是例示根据本公开的各方面的用于使用人工神经网络(ANN)利用可控空间比特分配进行的图像压缩的示例架构的框图。
[0026]图10和图11是例示根据本公开的各方面的用于操作人工神经网络的方法的流程图。
[0027]具体实施方式
[0028]以下结合附图阐述的具体实施方式旨在作为对各种配置的描述,而不旨在表示可实践所描述的概念的仅有配置。为了提供对各种概念的全面理解,具体实施方式包括特定细节。然而,对于本领域的技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践这些概念。在一些情况下,为了避免对这些概念造成模糊,公知的结构和组件是以框图形式示出的。
[0029]基于教导内容,本领域技术人员应当认识到,本公开的范围旨在涵盖本公开的任何方面,无论该方面是独立于本公开的任何其他方面来实现的还是与任何其他方面结合地实现的。例如,使用所阐述的任意数量的方面可以实现装置或可以实践方法。另外,本公开的范围旨在覆盖使用作为所阐述的本公开的各个方面的补充或者与之不同的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应该理解的是,所公开的本公开的任何方面可以通过权利要求的一个或多个元素来体现。
[0030]词语“示例性”用于意指“用作示例、实例、或例示”。描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。
[0031]尽管描述了特定方面,但这些方面的众多变体和置换落在本公开的范围之内。虽然提到了优选方面的一些益处和优点,但本公开的范围并非旨在被限定于特定益处、用途或目的。相反,本公开的各方面旨在能够广泛地应用于不同的技术、系统配置、网络和协议,其中一些作为示例在附图以及以下对优选方面的描述中例示。具体实施方式和附图仅仅是对本公开的例示而不是限制,本公开的保护范围由所附权利要求书及其等效物来限定。
[0032]如描述的,神经网络在多媒体压缩(诸如视频压缩和图像压缩)中得到了成功的应用。图像压缩有益于传达多媒体,诸如图像和视频。然而,用户可包括具有不同计算能力的不同计算机架构,并且可以在不同的网络状况下操作此类设备。
[0033]一些常规图像编解码器和神经图像压缩方案受生物学启发。人类以不同的分辨率感知场景的不同部分,聚焦于更显著的感兴趣区域。考虑到这一点,常规的基于对象的编解码器采用非均匀的比特分配来支持显著区域,代价是增加了剩余区域中的失真。该常规方法可允许在低率约束下提高感知质量。已经引入了用于视频压缩的其他常规神经编解码器。然而,这些常规神经编解码器在所有空间位置上均匀地操作。即,这些常规神经编解码器在不同的空间位置上均匀地优化整个图像的率失真折衷,而不考虑在每个图像中是否存在比其他区域更重要/显著的区域。
[0034]为了解决这些和其他挑战,根据本公开的各方面,关于图像区域的语义信息(包括显著方面(例如,包括一个或多个特定的感兴趣对象))可与神经压缩组合,以对这样的感兴趣区域进行优先级排序。优先级排序可例如导致在感兴趣区域中分配比在图像的其他区域中更多的比特,以与图像的其他区域(例如,背景)相比减少感兴趣区域中的失真。
[0035]本公开的各方面可有利地应用于视频会议、交通工具相机记录(例如,其他汽车或交通标志)、视频监控(例如,汽车牌照或人脸)、聚焦视频流(例如,其中图像的一部分处于高分辨率而其余部分被有效地模糊——可应用)、以及其他视频处理应用。
[0036]图1例示了片上系统(SOC)100的示例实现,其可包括被配置为用于操作人工神经网络(例如,神经端到端网络)以提供图像压缩和通信的中央处理单元(CPU)102或多核CPU。变量(例如,神经信号和突触权重)、与计算设备相关联的系统参数(例如,具有权重的神经网络)、延迟、频率槽信息和任务信息可以存储在与神经处理单元(NPU)108相关联的存储块中、与CPU 102相关联的存储块中、与图形处理单元(GPU)104相关联的存储块中、与数字信号处理器(DSP)106相关联的存储块中、存储块118中,或者可以跨多个块分布。在CPU 102处执行的指令可以从与CPU 102相关联的程序存储器加载,或者可以从存储块118加载。
[0037]SOC 100还可以包括针对特定功能定制的附加处理块,诸如GPU 104、DSP 106、连接块110(其可包括第五代(5G)连接、第四代长期演进(4G LTE)连接、Wi-Fi连接、USB连接、蓝牙连接等)以及可以例如检测和识别姿势的多媒体处理器112。在一种具体实施中,NPU108在CPU 102、DSP 106和/或GPU 104中实施。SOC 100还可以包括传感器处理器114、图像信号处理器(ISP)116和/或导航模块120,该导航模块可包括全球定位系统。
[0038]SOC 100可以基于ARM指令集。在本公开的一方面,加载到通用处理器102中的指令可包括用于在人工神经网络的编码器处接收图像和与该图像对应的空间分割图的代码。该空间分割图指示一个或多个感兴趣区域。通用处理器102还可包括用于根据可控空间比特分配经由编码器压缩图像的代码。该可控空间比特分配是基于学习的量化箱大小的。
[0039]SOC 100可以基于ARM指令集。在本公开的一方面,加载到通用处理器102中的指令可包括用于在人工神经网络的解码器处接收来自编码器的比特流的代码。通用处理器102还可包括用于经由解码器解码比特流以恢复与空间分割图对应的图像的经量化的潜在表示的代码。该空间分割图指示一个或多个感兴趣区域。通用处理器102可附加包括用于将倒数增益控制元件应用于经量化的潜在表示以产生空间分割图的代码。该倒数增益控制元件具有与学习的量化箱大小对应的增益值。通用处理器102还可包括用于基于空间分割图来经由解码器生成重建图像的代码。
[0040]深度学习架构可以通过学习在每一层中以连续的更高的抽象级别表示输入来执行对象识别任务,从而构建输入数据的有用特征表示。以这种方式,深度学习解决了传统机器学习的主要瓶颈。在深度学习出现之前,针对对象识别问题的机器学习方法可能严重依赖于人类工程化特征,可能与浅分类器组合。浅分类器可以是两类(two-class)线性分类器,例如,其中可以将特征向量分量的加权和与阈值进行比较以预测输入属于哪一类。人类工程化特征可以是由具有领域专业知识的工程师针对特定问题领域定制的模板或内核。相反,深度学习架构可以学习表示与人类工程师可能设计的特征类似的特征,但是需要通过训练。此外,深度网络可以学习表示和识别人类可能尚未考虑的新类型的特征。
[0041]深度学习架构可以学习特征的层次结构。例如,如果用视觉数据呈现,则第一层可以学习识别输入流中相对简单的特征,诸如边缘。在另一个示例中,如果用听觉数据呈现,则第一层可以学习识别特定频率中的频谱功率。第二层以第一层的输出作为输入,可以学习识别特征的组合,诸如视觉数据的简单形状或听觉数据的声音组合。例如,较高层可以学习在视觉数据中表示复杂的形状或在听觉数据中表示词语。再更高层可以学习识别常见的视觉对象或口语短语。
[0042]当应用于具有自然层次结构的问题时,深度学习架构可以表现得尤其出色。例如,机动化交通工具的分类可以受益于首先学习识别轮、挡风玻璃和其他特征。这些特征可以在较高层以不同的方式进行组合,以识别汽车、卡车和飞机。
[0043]神经网络可以被设计成具有多种连接模式。在前馈网络中,信息从较低层传递到较高层,其中,给定层中的每个神经元与较高层中的神经元通信。如上所述,可以在前馈网络的连续层中构建分层表示。神经网络还可以具有循环或反馈(也被称为自上而下)连接。在循环连接中,来自给定层中的神经元的输出可被传达给相同层中的另一神经元。循环架构可以有助于识别跨越按顺序被传递给神经网络的输入数据块中的多于一个输入数据块的模式。从给定层中的神经元到较低层中的神经元的连接被称为反馈(或自上而下)连接。当高层级概念的识别可辅助辨别输入的特定低层级特征时,具有许多反馈连接的网络可能是有帮助的。
[0044]神经网络各层之间的连接可以是全连接的,也可以是局部连接的。图2A例示了全连接神经网络202的示例。在全连接神经网络202中,第一层中的神经元可将其输出传达到第二层中的每个神经元,使得第二层中的每个神经元将从第一层中的每个神经元接收输入。图2B例示了局部连接神经网络204的示例。在局部连接神经网络204中,第一层中的神经元可连接到第二层中的有限数量的神经元。更一般地,局部连接神经网络204的局部连接层可被配置为使得一层中的每个神经元将具有相同或相似的连接性模式,但其连接强度可具有不同的值(例如,210、212、214和216)。局部连接的连接模式可能会在较高层中产生空间上不同的感受野,因为给定区域中的较高层神经元可以接收输入,该输入通过训练被调谐到网络的总输入的受限部分的属性。
[0045]局部连接的神经网络的一个示例是卷积神经网络。图2C例示了卷积神经网络206的示例。卷积神经网络206可以被配置为使得与第二层中每个神经元的输入相关联的连接强度被共享(例如,208)。卷积神经网络可能非常适合于其中输入的空间位置有意义的问题。
[0046]一种类型的卷积神经网络是深度卷积网络(DCN)。图2D例示了被设计成从自图像捕获设备230(诸如车载相机)输入的图像226识别视觉特征的DCN 200的详细示例。当前示例的DCN 200可被训练以标识交通标志和交通标志上提供的数字。当然,可针对其他任务对DCN 200进行训练,诸如标识车道标记或标识交通信号灯。
[0047]可通过监督学习对DCN 200进行训练。在训练期间,可向DCN 200呈现图像(诸如限速标志的图像226),并且随后可计算前向传递以产生输出222。DCN 200可包括特征提取部分和分类部分。在接收到图像226时,卷积层232可将卷积内核(未示出)应用于图像226以生成第一组特征图218。例如,卷积层232的卷积内核可以是生成28×28特征图的5×5内核。在本示例中,因为在第一组特征图218中生成了四个不同的特征图,所以在卷积层232处将四个不同的卷积内核应用于图像226。卷积内核也可被称为滤波器或卷积滤波器。
[0048]第一组特征图218可由最大池化层(未示出)进行子采样以生成第二组特征图220。最大池化层减小第一组特征图218的大小。即,第二组特征图220的大小(诸如14×14)小于第一组特征图218的大小(诸如28×28)。减小的大小向后续层提供类似的信息,同时减少存储器消耗。第二组特征图220可经由一个或多个后续卷积层(未示出)被进一步卷积以生成一组或多组后续特征图(未示出)。
[0049]在图2D的示例中,第二组特征图220被卷积以生成第一特征向量224。此外,第一特征向量224被进一步卷积以生成第二特征向量228。第二特征向量228的每个特征可包括与图像226的可能特征对应的数字,诸如“标志”、“60”和“100”。Softmax函数(未示出)可将第二特征向量228中的数字转换为概率。因此,DCN 200的输出222是图像226包括一个或多个特征的概率。
[0050]在本示例中,输出222中的“标志”和“60”的概率高于输出222中的其他数字(诸如“30”、“40”、“50”、“70”、“80”、“90”和“100”)的概率。在训练之前,由DCN 200产生的输出222可能是不正确的。因此,可计算输出222与目标输出之间的误差。目标输出是图像226的地面真值(例如,“标志”和“60”)。然后可调整DCN 200的权重,使得DCN 200的输出222更接近于目标输出。
[0051]为了调整权重,学习算法可以计算权重的梯度向量。梯度可以指示权重被调整时误差将增加或减小的量。在顶层处,梯度可以直接对应于连接倒数第二层中的激活神经元和输出层中的神经元的权重的值。在较低层中,梯度可以取决于权重的值和较高层的计算的误差梯度。该权重可随后被调整以减小误差。这种调整权重的方式可以被称为“后向传播”,因为其涉及通过神经网络的“后向传递”。
[0052]在实践中,可以通过少量示例来计算权重的误差梯度,使得计算出的梯度接近真实的误差梯度。这种近似方法可以被称为随机梯度下降。可以重复随机梯度下降,直到整个系统的可实现错误率停止下降或直到错误率达到目标水平。在学习之后,可以向DCN呈现新图像,并且通过网络的前向传递可以产生可以被认为是DCN的推测或预测的输出222。
[0053]深度置信网络(DBN)是包括多层隐藏节点的概率模型。DBN可用于提取训练数据集的分层表示。DBN可以通过对受限玻尔兹曼机(RBM)的层进行堆叠来获得。RBM是一类可在输入集上学习概率分布的人工神经网络。因为RBM可以在没有关于每个输入应该被分类到的类别的信息的情况下学习概率分布,所以RBM通常用于无监督学习。使用无监督和受监督的混合范式,DBN的底部RBM可以以无监督的方式进行训练,并可以用作特征提取器,而顶部RBM可以以受监督的方式进行训练(在来自前一层的输入和目标类的联合分布上)并且可以用作分类器。
[0054]深度卷积网络(DCN)是被配置有附加池化和归一化层的卷积网络的网络。DCN在许多任务上都达到了最先进的性能。DCN可以使用监督学习来训练,其中输入目标和输出目标两者对于许多范例是已知的并且被用于通过使用梯度下降方法来修改网络的权重。
[0055]DCN可以是前馈网络。另外,如上所述,从DCN的第一层中的神经元到下一较高层中的一组神经元的连接跨第一层中的各神经元被共享。DCN的前馈和共享连接可用于快速处理。例如,DCN的计算负担可能比包括循环或反馈连接的类似大小的神经网络的计算负担小得多。
[0056]卷积网络的每一层的处理可以被认为是空间不变的模板或基础投影。如果输入首先被分解为多个通道,诸如彩色图像的红、绿和蓝通道,那么在该输入上训练的卷积网络可以被认为是三维的,其中,两个空间维度沿着图像的轴,并且第三维度捕获颜色信息。卷积连接的输出可被认为在后续层中形成特征图,该特征图(例如,220)中的每个元素从先前层(例如,特征图218)中一定范围的神经元以及从该多个通道中的每个通道接收输入。特征图中的值可以用非线性(诸如修正,max(0,x))进一步处理。来自相邻神经元的值可以进一步池化,这对应于下采样,并且可以提供附加的局部不变性和降维。对应于白化的归一化也可以通过特征图中神经元之间的侧向抑制来应用。
[0057]深度学习架构的性能可以随着更多标记数据点变得可用或随着计算能力的增加而增加。现代深度神经网络通常用计算资源来训练,这些计算资源比仅十五年前的典型研究人员可用的计算资源大数千倍。新的架构和训练范式可以进一步提升深度学习的性能。校正的线性单元可以减少被称为消失梯度的训练问题。新的训练技术可以减少过度拟合,并且因此使得更大的模型能够实现更好的泛化。封装技术可以提取给定感受野中的数据,并进一步提高整体性能。
[0058]图3是例示深度卷积网络350的框图。深度卷积网络350可包括基于连接和权重共享的多个不同类型的层。如图3所示,深度卷积网络350包括卷积块354A、354B。卷积块354A、354B中的每一者可被配置有卷积层(CONV)356、归一化层(LNorm)358和最大池化层(MAXPOOL)360。
[0059]卷积层356可包括一个或多个卷积滤波器,其可应用于输入数据以生成特征图。尽管仅示出了卷积块354A、354B中的两个卷积块,但本公开不限于此,而是替代地,根据设计偏好,任何数量的卷积块354A、354B可被包括在深度卷积网络350中。归一化层358可对卷积滤波器的输出进行归一化。例如,归一化层358可提供白化或侧向抑制。最大池化层360可在空间上提供下采样聚合以用于局部不变性和维度下降。
[0060]例如,深度卷积网络的并行滤波器组可被加载在SOC 100的CPU 102或GPU 104上以实现高性能和低功耗。在另选的实施方案中,并行滤波器组可被加载在SOC 100的DSP106或ISP 116上。另外,深度卷积网络350可访问可存在于SOC 100上的其他处理块,诸如分别专用于传感器和导航的传感器处理器114和导航模块120。
[0061]深度卷积网络350还可包括一个或多个全连接层362(FC1和FC2)。深度卷积网络350还可包括逻辑回归(LR)层364。在深度卷积网络350的每一层356、358、360、362、364之间是待更新的权重(未示出)。层(例如,356、358、360、362、364)中的每个层的输出可用作深度卷积网络350中的层(例如,356、358、360、362、364)中的后一个层的输入,以从在卷积块354A中的第一个卷积块处提供的输入数据352(例如,图像、音频、视频、传感器数据和/或其他输入数据)学习分层特征表示。深度卷积网络350的输出是输入数据352的分类分数366。分类分数366可以是一组概率,其中每个概率是输入数据包括来自一组特征的特征的概率。
[0062]图4是例示可使人工智能(AI)功能模块化的示例性软件架构400的框图。根据本公开的各方面,通过使用该架构,可以设计可使得SoC 420的各种处理块(例如,CPU 422、DSP424、GPU 426和/或NPU 428)支持如所公开的用于针对AI应用402的后训练量化的自适应舍入的应用。
[0063]AI应用402可被配置为调用在用户空间404中定义的功能,例如,这些功能可提供对指示设备当前操作位置的场景的检测和识别。例如,AI应用402可取决于所识别的场景是办公室、演讲厅、餐厅、还是室外环境诸如湖泊来不同地配置话筒和相机。AI应用402可作出对与在AI功能应用编程接口(API)406中定义的库相关联的编译的程序代码的请求。该请求可最终依赖于被配置为基于例如视频和定位数据来提供推断响应的深度神经网络的输出。
[0064]运行时引擎408(其可以是运行时框架的编译的代码)可进一步可由AI应用402访问。例如,AI应用402可使得运行时引擎按特定时间区间或由应用的用户接口检测到的事件触发地来请求推断。在使得运行时引擎提供推断响应时,运行时引擎可进而发送信号给在SOC 420上运行的操作系统(OS)空间410(诸如内核412)中的操作系统。操作系统进而可使得在CPU 422、DSP 424、GPU 426、NPU 428或它们的某种组合上执行连续量化松弛。CPU 422可由操作系统直接访问,而其他处理块可通过驱动器(诸如分别用于DSP 424、GPU 426或NPU 428的驱动器414、416或418)来访问。在示例性示例中,深度神经网络可被配置为在处理块(诸如CPU 422、DSP 424和GPU 426)的组合上运行,或可在NPU 428上运行。
[0065]应用402(例如,AI应用)可被配置为调用在用户空间404中定义的功能,例如,这些功能可提供对指示设备当前操作位置的场景的检测和识别。例如,应用402可取决于所识别的场景是办公室、演讲厅、餐厅、还是室外环境诸如湖泊来不同地配置话筒和相机。应用402可作出对与在场景检测应用编程接口(API)406中定义的库相关联的编译的程序代码的请求以提供对当前场景的估计。该请求可最终依赖于被配置为基于例如视频和定位数据来提供场景估计的差分神经网络的输出。
[0066]运行时引擎408(其可以是运行时框架的编译的代码)可进一步可由应用402访问。例如,应用402可使得运行时引擎按特定时间区间或由应用的用户接口检测到的事件触发地来请求场景估计。在使得运行时引擎估计场景时,运行时引擎可进而发送信号给在SOC420上运行的操作系统410(诸如内核412)。操作系统410进而可使得在CPU 422、DSP 424、GPU 426、NPU 428或它们的某种组合上执行计算。CPU 422可由操作系统直接访问,而其他处理块可通过驱动器(诸如分别用于DSP 424、GPU 426或NPU 428的驱动器414-418)来访问。在示例性示例中,差分神经网络可被配置为在处理块(诸如CPU 422和GPU 426)的组合上运行,或可在NPU 428上运行。
[0067]如描述的,本公开的各方面涉及神经图像压缩。根据本公开的各方面,关于图像区域的语义信息(包括显著方面(例如,包括一个或多个特定的感兴趣对象))可与神经压缩组合,以对这样的感兴趣区域进行优先级排序。优先级排序可例如导致在感兴趣区域中分配比在图像的其他区域中更多的比特,以与图像的其他区域(例如,背景)相比减少感兴趣区域中的失真。
[0068]视频帧在时间步I处可被定义为 其中H是高度并且W是宽度。然后,视频序列可被表示为x={x 0 ,x 1 ,…x T },其中T=1帧。与视频序列对应的二元的感兴趣区域(ROI)掩模的序列可被定义为s={s 0 ,s 1 ,…s T },其中s i ∈{0,1} H×W 。
[0069]一个神经视频编解码器包括I帧编解码器和P帧编解码器。I帧编解码器是均值尺度超先验自动编码器(AE),其独立地编码单个帧x 0 ,以产生重建 P帧编解码器可包括两个超先验AE。第一超先验AE,即P帧流超先验AE根据先前重建 和当前帧x i 来估计尺度空间流g i ,该尺度空间流可用于使先前重建变形为 第二超先验AE,即P帧残差超先验AE编码残差 最终重建 可通过将变形预测 与估计残差 相加来获得。每个超先验AE的由z 0 、w i 、以及v i 表示的潜在代码可四舍五入为整数值,然后使用由它们相应的超解码器估计的先验参数来进行熵译码。
[0070]本公开的各方面提供使用潜在缩放来控制空间比特分配。缩放因子可应用于潜在表示以改变量化步长,从而导致率与失真之间的不同折衷。为了便于说明,描述了I帧超先验AE的潜在缩放。然而,应当理解,相同的潜在缩放过程也可应用于P帧残差超先验AE。
[0071]根据本公开的各方面,提供了被称为增益超先验AE的类超先验网络。增益超先验AE可将ROI掩模s 0 编码为潜在代码 潜在代码 可被解码为增益变量h 0 ,该增益变量共享在空间上和通道上都与潜在变量z 0 相同的维度。相反,常规潜在缩放仅使用通道增益。潜在z 0 可用估计的空间增益变量h 0 的倒数缩放,其中h 0 ≥1。以此方式,增益可仅使量化网格更粗略,这可能导致在这些区域中分配较少比特。均值μ和尺度σ可被表示为由I帧超解码器估计的先验参数。在量化步骤中,缩放后的潜在表示 可通过其先验均值 居中,其中 是元素级除法。接下来,四舍五入运算符 可应用于 上,使得超先验编码器学习到的估计的均值μ在网格上。然后,偏移 可被加回。去量化的潜在表示 可通过在量化块之后乘以h 0 来获得。即,去量化的潜在表示 可由下式给出:
[0072]其中⊙表示元素级乘法。去量化的潜在表示 可被传递到解码器以生成重建帧 对于率计算和熵译码, 的经修改的概率 如下使用:
[0073]如公式2所指示的,潜在缩放可被解释为有效地改变量化网格或箱宽度。在实践中,对于熵译码,量化网格可以是不变的并且四舍五入到整数网格并且适当地缩放先验,如公式3所示。如描述的,相同的过程可应用于P帧残差潜在代码v t 。
[0074]率失真(R-D)损失可被适配为考虑ROI掩模。可将视频序列x中的所有帧的率和失真与对应ROI掩模s相加:
[0075]其中β是率失真折衷变量。 表示失真损失,该失真损失是涉及二元的ROI掩模的经修改的均方误差(MSE):
[0076]其中均值计算图像维度的平均值,γ是非ROI的罚分, 是平方误差,并且s i 在通道维度上广播。
[0077]此外,率损失 通过存在于模型中的每个潜在变量的超先验估计的交叉熵 来计算。对于隐式ROI,率损失 等于:
[0078]潜在缩放ROI的率损失 还包括用于I帧超先验AE的潜在缩放的潜在变量 以及用于P帧残差超先验AE的潜在缩放的 潜在缩放ROI的率损失则由下式给出:
[0079]超潜在代码的率也用作训练期间的率损失的一部分,但是为了简单起见,这里不在公式中表达。
[0080]在实践中,来自ROI掩模 和 的两个额外率贡献与模型的标准率部分 和 相比仅为小部分。
[0081]图5是例示根据本公开的各方面的用于具有增益控制的神经压缩的示例架构500的框图。架构500可包括编码器502和解码器504。架构500还可包括超编码器506和超解码器508。超编码器506和超解码器508可管理编码器502与解码器504之间的压缩流水线570。
[0082]例如,编码器502可包括与激活层(诸如广义除法归一化层(GDN))交错的多个卷积层(Conv)。卷积层可连续地处理输入530(诸如图像)以提取输入530的特征并生成输入530的潜在表示(代码)520。潜在表示(代码)520可对应于输入530的分割图。分割图可指示输入530的空间分割,诸如输入530内的对象位置的轮廓。即,输入530的空间分割可指示输入530的一个或多个感兴趣区域(例如,对象或人)。分割图可以是二元的分割图。即,分割图可使用二元的值来指示分割图的区域是否是感兴趣区域。例如,可使用值1来指示感兴趣区域,并且值0可指示区域不是感兴趣区域(例如,背景)。然而,本公开不限于此,并且在一些方面,分割也可以是连续的。例如,分割可包括多个感兴趣区域,并且可使用连续值来指示区域的优先级或相对重要性。
[0083]另一方面,解码器504可相对于编码器502对称地配置。例如,如图5的示例所示,解码器504可包括多个转置卷积层(Tconv),它们与激活函数诸如逆GDN(IGDN)交错。因此,解码器504可接收潜在表示(代码)520。解码器504可通过连续的交错层(例如,Tconv-IGDN)处理潜在表示(代码)520以解码潜在表示(代码)520并生成输入530的重建550。
[0084]超编码器506包括一组卷积层(Conv)。卷积层可与激活函数交错,诸如整流器线性单元(ReLU)(未示出)。超编码器506接收输入530的潜在表示(代码)520。超编码器506通过连续的交织层(例如,conv-ReLU)处理输入530的潜在表示(代码)520以生成超代码。超代码可经由四舍五入块来量化并提供给算术编码器(AE)。算术编码器(AE)对超代码进行熵译码,将其转换为比特流,该比特流被传送到超解码器508。
[0085]超解码器508可相对于超编码器506对称地配置。超解码器508可包括一组转置卷积层(Tconv),它们可与逆ReLU激活交错。超解码器508可经由算术解码器(AD)接收从超编码器506传送的比特流。算术解码器(AD)对比特流进行熵解码以恢复超代码。超解码器508通过转置卷积层的连续层处理超代码,以解码超代码并确定与输入530的潜在表示(代码)520对应的位置(loc)和尺度。
[0086]压缩流水线570可被配置有增益控制(例如,510、512、514和516)。不是在潜在表示(代码)520的不同空间位置上均匀地应用压缩,而是增益控制使得能够针对潜在表示(代码)520的不同空间位置进行可控压缩。即,可针对输入530的不同区域差分地执行压缩。可针对输入530的较显著部分调整量化箱大小(其可被认为是增益)。例如,在压缩期间可将比非ROI(例如,背景)更多的比特分配给感兴趣区域(ROI)。
[0087]压缩流水线570采用与输入530的空间分割图对应的潜在表示(代码)520。应用增益510,使得分割图乘以增益510。增益控制元件可控制率失真折衷。增益越大,量化箱越粗略,进而率越低,失真越高。即,较大增益值可对应于较大量化箱大小,并且相反,较小增益值可对应于较小量化箱大小。因为增益应用于输入530的每个潜在表示代码(520),所以它然后可针对输入图像的每个空间位置不同地控制率失真折衷。
[0088]在一些方面,可基于分割图来配置增益510。增益510的输出可例如经由四舍五入块量化。经量化的潜在表示可提供给算术编码器(AE),该算术编码器(AE)执行熵译码以将经量化的潜在表示转换为比特流,该比特流可被传送到解码器504。
[0089]可经由算术解码器(AD)接收比特流,该算术解码器(AD)解码比特流以恢复经量化的潜在表示。倒数增益516应用于经量化的潜在表示。使用经由超解码器508确定的位置和尺度值来产生分割图(代码)522。
[0090]图6是例示根据本公开的各方面的用于压缩输入的示例架构600的框图。参考图6,架构600包括编码器602和解码器604。架构600还可包括辅助网络606。辅助网络606可包括辅助编码器608和辅助解码器610。辅助网络606可管理编码器602与解码器604之间的压缩流水线。如图6所示,辅助编码器608接收分割图作为输入,并且生成分割代码(seg-code)。分割代码提供给辅助解码器610,该辅助解码器确定压缩流水线的增益值。
[0091]根据本公开的各方面,架构600可根据由下式给出的目标函数来训练:R+λD,其中R是率D是失真,并且λ是拉格朗日乘数。使用目标函数,人工神经网络(ANN)可被训练以平衡率R(比特数)和失真D。率R对应于来自熵译码阶段的比特数,并且确定要发送多少信息。率R可给出为R=seg-code+code。失真D可被计算为编码器602处的输入与经由解码器604输出的重建图像之间的差。失真D可由感兴趣区域(ROI)的均方误差(MSE)与MSE(非ROI)的总和给出。拉格朗日乘数λ可以是折衷参数,其用于平衡两个目标之间的折衷——减少失真和减少用于传送输入的比特率。
[0092]在一些方面,空间分割图可以是二元的分割图。另选地,空间分割图可以是非二元的分割图,以提供感兴趣区域与非感兴趣区域之间的平滑过渡,从而减少此类区域之间的边界处的质量的急剧变化。
[0093]图7是例示根据本公开的各方面的用于神经压缩的训练目标的计算的框图700。参考图7,分割图702提供给辅助网络(例如,图6所示的606或图5所示的超编码器506/超解码器508)。经由辅助网络606的编码器608接收分割图702。编码器608可处理分割图以生成分割图702的潜在表示704(例如,图5所示的超代码)。分割图702的潜在表示704提供给辅助网络的解码器610。解码器610解码潜在表示704以生成增益值706。增益值706应用于经由主网络612的编码器602生成的输入710的潜在表示708。增益值706应用于输入710的潜在表示708以基于感兴趣区域来控制潜在表示的压缩。如图所示,该率由来自辅助网络的潜在表示704的率与主网络612的潜在表示708的率的总和给出。
[0094]可基于ROI(例如,ROI或非ROI)来将失真分成两个部分。如参考图6描述的,值λ控制总率失真折衷。对于非ROI上的失真,可通过除以减小因子(reduction-factor)来应用折扣,该减小因子可用作超参数。因此,当最小化目标函数时,可将更多权重置于由减小因子超参数控制的失真(例如,ROI)上。ROI的失真可表达为输入图像710与经由主网络输出的重建图像712之间的差乘以ROI,其中差是根据每个像素MSE测量的。将每个像素MSE与分割图元素级相乘并求平均。非ROI的失真可表达为输入图像与重建图像之间的差乘以ROI的补数(例如,1-ROI)。
[0095]在一些方面中,训练目标可包括复合率估计和复合失真估计。可基于ROI和非ROI来调整训练目标以平衡率失真折衷。例如,训练目标可表达为:
[0096]其中reduction-factor是超参数(例如,10)。
[0097]图8是进一步例示根据本公开的各方面的具有增益控制的神经压缩的示图800。如图8所示,也可在训练后调整非感兴趣区域的比特分配(例如,通过缩放增益值)。增益可由附加参数α修改,该附加参数控制分割图的非ROI的比特分配。因此,经修改的增益可由下式给出:
[0098]增益=(增益-1)*α+1
[0099]例如,通过增大参数α,可在训练后调整非ROI区域的比特分配。
[0100]图9A和图9B是例示根据本公开的各方面的用于使用人工神经网络(ANN)利用可控空间比特分配进行的图像压缩的示例架构900和950的框图。参考图9A,示例架构900包括多个超先验自动编码器910、920、930。示例架构900提供使用ROI掩模s i 作为到超先验自动编码器910、920、930中的每一者的附加输入的ROI感知框架。值得注意的是,ROI掩模可不被馈送到解码器904、924、934,因为编码器902、922、932可将相关ROI信息隐式地存储在现有的潜在代码中。由于解码器904、924、934不使用ROI掩模,因此可避免传送掩模的表示。
[0101]如图9B所示,示例架构950包括多个超先验自动编码器910、920、930。另外,示例架构950还包括多个增益超先验AE 952、992。增益超先验AE 952、992将ROI掩模s 0 编码为潜在代码 该潜在代码被解码为增益变量h 0 ,该增益变量共享在空间上和通道上都与潜在变量z 0 相同的维度。尺度空间变形单元954用增益变量的倒数h 0 缩放潜在表示z 0 ,其中h 0 ≥1。以此方式,增益可使量化网格更粗略,这可能导致在这些区域中分配较少比特。均值μ和尺度σ可被表示为由I帧超解码器904估计的先验参数。在量化步骤中,缩放后的潜在表示 可通过其先验均值 居中,其中 是元素级除法运算符。四舍五入运算符 可应用于 上,使得超编码器902学习到的估计的均值μ在网格上。然后,偏移 可被加回。去量化的潜在表示 可通过乘以h 0 来获得。进而,去量化的潜在表示 可提供给解码器904以获得重建帧
[0102]图10是例示根据本公开的各方面的用于使用人工神经网络(ANN)进行压缩的处理器实现的方法1000的流程图。如图10所示,在框1002处,在ANN的编码器处接收图像和与该图像对应的空间分割图。该空间分割图指示一个或多个感兴趣区域。如参考图5描述的,输入530可由编码器502接收。例如,输入530可以是视觉输入(诸如视频或图像)。
[0103]在框1004处,根据可控空间比特分配经由编码器压缩图像。该可控空间比特分配是基于学习的量化箱大小的。如参考图5描述的,压缩流水线570采用与输入530的空间分割图对应的潜在表示(代码)520。应用增益510,使得分割图乘以增益510。增益控制元件可控制率失真折衷。增益越大,量化箱越粗略,进而率越低,失真越高。即,较大增益值可对应于较大量化箱大小,并且相反,较小增益值可对应于较小量化箱大小。因为增益应用于输入530的每个潜在表示代码(520),所以它然后可针对输入图像的每个空间位置不同地控制率失真折衷。在一些方面,可基于分割图来配置增益510。增益510的输出可例如经由四舍五入块量化。经量化的潜在表示可提供给算术编码器(AE),该算术编码器(AE)执行熵译码以将经量化的潜在表示转换为比特流,该比特流可被传送到解码器504。
[0104]图11是例示根据本公开的各方面的用于使用人工神经网络(ANN)进行压缩的过程1100的流程图。如图11所示,在框1102处,在ANN的解码器处接收比特流。
[0105]在框1104处,经由解码器解码比特流,以恢复与空间分割图对应的图像的经量化的潜在表示。该空间分割图指示一个或多个感兴趣区域。如描述的,例如,参考图5,算术解码器解码比特流以恢复与空间分割图对应的图像的经量化的潜在表示。输入530的空间分割可指示输入530的一个或多个感兴趣区域(例如,对象或人)。
[0106]在框1106处,倒数增益控制元件应用于经量化的潜在表示以产生空间分割图,该倒数增益控制元件具有与学习的量化箱大小对应的增益值。如描述的,例如,参考图5,倒数增益516应用于经量化的潜在表示。使用经由超解码器508确定的位置和尺度值来产生分割图(代码)522。
[0107]在框1108处,基于空间分割图来生成重建图像。
[0108]在以下编号的条款中提供了各具体实施示例。
[0109]1.一种处理器实现的方法,包括:
[0110]在人工神经网络的编码器处接收图像和与所述图像对应的空间分割图,所述空间分割图指示一个或多个感兴趣区域;以及
[0111]根据可控空间比特分配,经由所述编码器压缩所述图像,所述可控空间比特分配是基于学习的量化箱大小的。
[0112]2.根据条款1所述的处理器实现的方法,还包括:
[0113]基于所述学习的量化箱大小来量化所述图像的潜在表示和所述空间分割图;以及
[0114]将所述图像的所述经量化的潜在表示和所述经量化的分割图传送到解码器。
[0115]3.根据条款1或2所述的处理器实现的方法,其中所述学习的量化箱大小为不同的感兴趣区域提供不同的比特分配。
[0116]4.根据条款1至3中任一项所述的处理器实现的方法,其中经由减小因子控制非感兴趣区域的比特分配。
[0117]5.根据条款1至4中任一项所述的处理器实现的方法,其中基于缩放参数来调整所述学习的量化箱大小。
[0118]6.根据条款1至5中任一项所述的处理器实现的方法,其中所述空间分割图包括二元的分割图。
[0119]7.一种处理器实现的方法,包括:
[0120]在人工神经网络的解码器处接收来自编码器的比特流;
[0121]经由所述解码器解码所述比特流,以恢复与空间分割图对应的图像的经量化的潜在表示,所述空间分割图指示一个或多个感兴趣区域;
[0122]将倒数增益控制元件应用于所述经量化的潜在表示以产生所述空间分割图,所述倒数增益控制元件具有与学习的量化箱大小对应的增益值;以及
[0123]基于所述空间分割图来经由所述解码器生成重建图像。
[0124]8.根据条款7所述的处理器实现的方法,其中所述学习的量化箱大小是基于所述一个或多个感兴趣区域的,以控制所述图像的每个空间位置的率失真折衷。
[0125]9.根据条款7或8所述的处理器实现的方法,其中基于所述空间分割图来配置所述倒数增益控制元件。
[0126]10.根据条款7至9中任一项所述的处理器实现的方法,其中所述学习的量化箱大小为不同的感兴趣区域提供不同的比特分配。
[0127]11.一种装置,所述装置包括:
[0128]存储器;和
[0129]耦合至所述存储器的至少一个处理器,所述至少一个处理器被配置为:
[0130]在人工神经网络的编码器处接收图像和与所述图像对应的空间分割图,所述空间分割图指示一个或多个感兴趣区域;以及
[0131]根据可控空间比特分配,经由所述编码器压缩所述图像,所述可控空间比特分配是基于学习的量化箱大小的。
[0132]12.根据条款11所述的装置,其中所述至少一个处理器被进一步配置为:
[0133]基于所述学习的量化箱大小来量化所述图像的潜在表示和所述空间分割图;以及
[0134]将所述图像的所述经量化的潜在表示和所述经量化的分割图传送到解码器。
[0135]13.根据条款11或12所述的装置,其中所述学习的量化箱大小为不同的感兴趣区域提供不同的比特分配。
[0136]14.根据条款11至13中任一项所述的装置,其中所述至少一个处理器被进一步配置为经由减小因子控制非感兴趣区域的比特分配。
[0137]15.根据条款11至14中任一项所述的装置,其中所述至少一个处理器被进一步配置为基于缩放参数来调整所述学习的量化箱大小。
[0138]16.根据条款11至15中任一项所述的装置,其中所述空间分割图包括二元的分割图。
[0139]17.一种装置,所述装置包括:
[0140]存储器;和
[0141]耦合至所述存储器的至少一个处理器,所述至少一个处理器被配置为:
[0142]在人工神经网络的解码器处接收来自编码器的比特流;
[0143]经由所述解码器解码所述比特流,以恢复与空间分割图对应的图像的经量化的潜在表示,所述空间分割图指示一个或多个感兴趣区域;
[0144]将倒数增益控制元件应用于所述经量化的潜在表示以产生所述空间分割图,所述倒数增益控制元件具有与学习的量化箱大小对应的增益值;以及
[0145]基于所述空间分割图来经由所述解码器生成重建图像。
[0146]18.根据条款17所述的装置,其中所述学习的量化箱大小是基于所述一个或多个感兴趣区域的,以控制所述图像的每个空间位置的率失真折衷。
[0147]19.根据条款17或18所述的装置,其中所述至少一个处理器被进一步配置为基于所述空间分割图来配置所述倒数增益控制元件。
[0148]20.根据条款17至19中任一项所述的装置,其中所述学习的量化箱大小为不同的感兴趣区域提供不同的比特分配。
[0149]在一个方面,接收部件、压缩部件、量化部件、传送部件、解码部件、应用部件和/或生成部件可以是CPU 102、与CPU 102相关联的程序存储器、专用存储块118、全连接层362、NPU 428和/或被配置为执行所叙述的功能的路由连接处理单元216。在另一配置中,前述部件可以是被配置为执行由前述部件所叙述的功能的任何模块或任何装置。
[0150]上述方法的各种操作可以通过能够执行对应功能的任何合适的部件来执行。这些部件可包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。一般而言,在附图中例示操作的情况下,这些操作可具有带相似编号的相应配对部件加功能组件。
[0151]如本文所用,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括计算、运算、处理、推导、调查、查找(例如,在表、数据库或另一数据结构中查找)、断定等等。附加地,“确定”可包括接收(例如接收信息)、访问(例如访问存储器中的数据)等。此外,“确定”可包括解析、选择、选取、建立等。
[0152]如本文所用,提到条目列表“中的至少一项”的短语,指代这些条目的任意组合(其包括单一成员)。作为一个示例,“a、b或c中的至少一者”旨在涵盖:a、b、c、a-b、a-c、b-c和a-b-c。
[0153]结合本公开所描述的各种例示性逻辑框、模块以及电路可用设计成执行所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、分立门或晶体管逻辑件、分立硬件组件或它们的任何组合来实现或执行。通用处理器可以是微处理器,但在另选方案中,处理器可以是任何市售的处理器、控制器、微控制器、或状态机。处理器还可被实施为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器,或任何其它这样配置。
[0154]结合本公开内容描述的方法的步骤或者算法可以直接体现在硬件、由处理器执行的软件模块或二者的组合中。软件模块可以位于本领域已知的任何形式的存储介质中。可使用的存储介质的一些示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM等等。软件模块可包括单个指令、或许多个指令,并且可分布在若干不同的代码段上,分布在不同的程序间以及跨多个存储介质分布。存储介质可以耦合到处理器,使得处理器能够从该存储介质读取信息,以及向该存储介质写入信息。在另选方案中,存储介质可与处理器成一整体。
[0155]本文所公开的方法包括用于实现所描述方法的一个或多个步骤或动作。方法步骤和/或动作可以彼此互换而不偏离权利要求书的范围。换句话讲,除非指定了步骤或动作的特定顺序,否则在不脱离权利要求的范围的情况下,可以修改特定步骤和/或动作的顺序和/或使用。
[0156]本文描述的功能可以利用硬件、软件、固件或者它们的任何组合来实现。如果在硬件中实现,则示例硬件配置可包括设备中的处理系统。可以利用总线架构来实现该处理系统。取决于处理系统的具体应用和整体设计约束,总线可以包括任何数量的互连总线和桥接器。总线可以将各种电路链接在一起,包括处理器、机器可读介质和总线接口。此外,总线接口可用于将网络适配器等经由总线连接到处理系统。网络适配器可用于实现信号处理功能。对于某些方面,用户接口(例如,小键盘、显示器、鼠标、操纵杆等)也可以连接到总线。总线还可以链接各种其他电路,诸如定时源、外围设备、稳压器、功率管理电路等,它们在本领域中是众所周知的,因此将不再进一步描述。
[0157]处理器可以负责管理总线和通用处理,包括执行机器可读介质上存储的软件。处理器可以利用一个或多个通用处理器和/或专用处理器来实现。示例包括微处理器、微控制器、DSP处理器和可以执行软件的其他电路。软件应被广泛地解释为表示指令、数据或它们的任何组合,无论是被称为软件、固件、中间件、微代码、硬件描述语言还是其他。作为示例,机器可读介质可包括随机存取存储器(RAM)、闪存、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、磁盘、光盘、硬盘驱动器、或者任何其他合适的存储介质、或它们的任何组合。机器可读介质可以计算机程序产品来体现。计算机程序产品可以包括包装材料。
[0158]在硬件具体实施中,机器可读介质可以是与处理器分开的处理系统的一部分。然而,如本领域技术人员将容易理解的,机器可读介质或其任何部分可在处理系统外部。作为示例,机器可读介质可包括传送线、由数据调制的载波、和/或与设备分开的计算机产品,所有这些都可由处理器通过总线接口来访问。另选地或另外,机器可读介质或它们的任何部分可集成到处理器中,诸如在具有高速缓存和/或通用寄存器堆的情况下。虽然所讨论的各种组件可被描述为具有特定位置,诸如本地组件,但它们也可按各种方式来配置,诸如某些组件被配置为分布式计算系统的一部分。
[0159]可以将处理系统配置为具有提供处理器功能的一个或多个微处理器和提供机器可读介质的至少一部分的外部存储器的通用处理系统,所有这些通过外部总线架构与其他支持电路链接在一起。另选地,该处理系统可以包括一个或多个神经形态处理器以用于实现所描述的神经元模型和神经系统模型。作为另一另选方案,处理系统可以利用具有处理器的专用集成电路(ASIC)、总线接口、用户接口、支持电路以及集成在单个芯片中的机器可读介质的至少一部分来实现,或者利用一个或多个现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑件、分立硬件组件、或者任何其他合适的电路、或者能够执行本公开通篇所描述的各种功能性的电路的任何组合来实现。本领域技术人员将认识到取决于特定应用和施加在整个系统上的总体设计约束如何最好地实现处理系统的所述功能性。
[0160]机器可读介质可以包括多个软件模块。这些软件模块包括当由处理器执行时使处理系统执行各种功能的指令。软件模块可以包括传送模块和接收模块。每个软件模块可以驻留在单个存储设备中或者跨多个存储设备分布。以举例的方式,当触发事件发生时,软件模块可以从硬盘驱动器加载到RAM中。在软件模块的执行期间,处理器可以将指令中的一些指令加载到高速缓存中以提高访问速度。接着可将一个或多个高速缓存线加载到通用寄存器堆中以供处理器执行。当在下文提及软件模块的功能性时,将理解的是,这样的功能性由处理器在执行来自该软件模块的指令时实现。此外,应当理解,本公开的各方面产生对处理器、计算机、机器或实现此类方面的其他系统的功能的改进。
[0161]如果在软件中实现,则各功能可作为一个或多个指令或代码存储在计算机可读介质上或通过其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,通信介质包括促成计算机程序从一地向另一地传输的任何介质。存储介质可以是计算机能够存取的任何可用介质。示例性地而非限制性地,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置或其他磁存储设备、或者可以用于以指令或数据结构的形式携带或存储期望程序代码并且可由计算机访问的任意其他介质。另外,任何连接也被适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光缆、双绞线、数字用户线(DSL)、或诸如红外(IR)、无线电、以及微波的无线技术从网站、服务器、或其他远程源传送的,则该同轴电缆、光缆、双绞线、DSL、或诸如红外、无线电、以及微波的无线技术被包括在介质的定义中。如本文所用,磁盘和光盘包括压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和 光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。因此,在一些方面,计算机可读介质可包括非暂态计算机可读介质(例如,有形介质)。此外,对于其他方面,计算机可读介质可以包括暂态计算机可读介质(例如,信号)。上述的组合应当也被包括在计算机可读介质的范围内。
[0162]因此,特定方面可以包括用于执行本文给出的操作的计算机程序产品。例如,此类计算机程序产品可包括其上存储(和/或编码)有指令的计算机可读介质,这些指令能够由一个或多个处理器执行以执行所描述的操作。对于某些方面,计算机程序产品可以包括包装材料。
[0163]此外,应当理解,用于执行所描述的方法和技术的模块和/或其他适当部件可由用户终端和/或基站在适用时下载和/或以其他方式获得。例如,此类设备能够耦合到服务器以促进用于执行所描述的方法的部件的传输。另选地,所描述的各种方法能够经由存储部件(例如,RAM、ROM、诸如压缩光盘(CD)或软盘等物理存储介质等)来提供,以使得一旦将该存储部件耦合到或提供给该设备,用户终端和/或基站就能获得该各种方法。此外,可利用适于向设备提供所描述的方法和技术的任何其他合适的技术。
[0164]应理解,权利要求书不限于上文例示的精确配置和组件。可在以上所描述的方法和装置的布局、操作和细节上作出各种改动、更换和变形而不会脱离权利要求的范围。