CN117351101A - 用于解码/编码视频的神经处理单元及其装置 - Google Patents

用于解码/编码视频的神经处理单元及其装置 Download PDF

Info

Publication number
CN117351101A
CN117351101A CN202211215917.4A CN202211215917A CN117351101A CN 117351101 A CN117351101 A CN 117351101A CN 202211215917 A CN202211215917 A CN 202211215917A CN 117351101 A CN117351101 A CN 117351101A
Authority
CN
China
Prior art keywords
npu
neural network
information
artificial neural
video
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.)
Pending
Application number
CN202211215917.4A
Other languages
English (en)
Inventor
任一明
李善美
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.)
Tipu Aikesi Co ltd
Original Assignee
Tipu Aikesi Co ltd
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 Tipu Aikesi Co ltd filed Critical Tipu Aikesi Co ltd
Publication of CN117351101A publication Critical patent/CN117351101A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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
    • H04N19/172Methods 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 the region being a picture, frame or field
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请涉及用于解码/编码视频的神经处理单元及其装置。用于解码视频和/或特征图的神经处理单元(NPU)可以包括用于人工神经网络(ANN)的至少一个处理元件(PE),该至少一个PE接收和解码比特流。比特流是以帧为单位来接收的,并且一个帧包括用于ANN模型的权重、基本层的数据和多个增强层的数据。用于对视频和/或特征图进行编码的NPU可以包括用于人工神经网络(ANN)的至少一个处理元件(PE),该至少一个PE对输入视频或特征图进行编码并且将编码的输入视频或特征图作为比特流进行发送。至少一个PE以帧为单位发送比特流,并且一个帧包括用于ANN模型的权重、基本层的数据和多个增强层的数据。

Description

用于解码/编码视频的神经处理单元及其装置
技术领域
本公开涉及用于机器分析的比特流格式。
背景技术
信息和通信行业的持续发展导致具有高清晰度(HD)分辨率的广播服务在全球范围内扩展。结果,此类服务的用户已经习惯了高分辨率和高清晰度的图像和/或视频,并且对诸如超高清(UHD)视频之类的高画质(即,高分辨率、高质量)的视频的需求增加。在2013年通过高效视频编码(HEVC)完成了对于UHD(4K、8K或更高)视频数据的编码技术的标准化。
HEVC是比之前的H.264/AVC技术具有更高的压缩率和更低的复杂度的下一代视频压缩技术。HEVC是用于有效压缩HD和UHD视频内容的海量数据的关键技术。
HEVC像之前的压缩标准一样执行基于块的编码。然而,与H.264/AVC不同,不同之处在于仅存在一个简档(profile)。HEVC的独特简档中总共包括八种核心编码技术,包括分层编码结构、变换、量化、帧内预测编码、图片间运动预测、熵编码、环路滤波等技术。
自从2013年采用了HEVC视频编解码器以来,使用4K和8K视频图像的沉浸式视频和虚拟现实服务得到了扩展,并且开发了通用视频编码(VVC)标准。称作H.266的VVC是下一代视频编解码器,其旨在与HEVC相比将性能提高到两倍以上。
H.266(VVC)的开发目标是上一代编解码器(即,H.265(HEVC))的两倍以上的效率。VVC最初是考虑到4K或更高分辨率而开发的,但由于VR市场的扩展,它也被开发用于16K级别的超高分辨率图像处理,以应对360度图像。此外,随着HDR市场由于显示技术的发展而逐渐扩展,VVC不仅支持10比特颜色深度,而且还支持16比特颜色深度,并且支持1000尼特、4000尼特、10000尼特的亮度表达。此外,由于它是考虑到VR市场和360度视频市场而开发的,所以它支持从0至120FPS的可变帧率。
人工智能的进步
人工智能(AI)也在快速发展。AI是指人工地模仿人类智能,也就是说,能够执行识别、分类、推理、预测和控制/决策的智能。
由于人工智能技术的发展和物联网(IOT)装置的增加,预计机器之间的流量将会***,并且依赖机器的图像分析将得到广泛应用。
发明内容
本公开的发明人已经认识到尚未开发用于通过机器进行图像分析的技术的问题。
因此,本公开的一个目的是提供一种用于通过机器高效地执行图像分析的神经处理单元(NPU)。
根据本公开的示例的神经处理单元(NPU)可以是用于解码视频和/或特征图的NPU。NPU可以包括用于人工神经网络的至少一个处理元件(PE),该至少一个PE被配置为接收和解码比特流。可以以帧为单位接收比特流,并且比特流的一帧可以包括用于人工神经网络模型的权重、基本层的数据和多个增强层的数据。
接收的比特流的多个增强层的至少一部分可以被配置为被选择性地处理。
多个增强层的至少一部分可以被配置为根据接收的比特流的传输信道的可用带宽而被选择性地处理。
多个增强层的至少一部分可以被配置为根据预设的机器分析任务而被选择性地处理。
接收的比特流的传输信道的可用带宽可以被配置为被检测。
至少一个PE可以被配置为根据预设的机器分析任务选择性地处理多个增强层的至少一部分。
一个帧中包括的多个增强层的数量可以根据传输信道的条件而变化。
NPU可以被配置为根据传输信道的条件确定多个增强层的数量并反馈给编码器。
多个增强层可以根据多个增强层的层的索引以升序被包括在一个帧中。
根据本公开的另一示例的NPU可以是用于编码视频和/或特征图的NPU。NPU可以包括用于人工神经网络的至少一个处理元件(PE),该至少一个PE被配置为编码输入视频或特征图并且将编码的输入视频或特征图作为比特流进行发送。至少一个PE还可以被配置为以帧为单位发送比特流,并且比特流的一个帧可以包括用于人工神经网络模型的权重、基本层的数据和多个增强层的数据。
可以根据传输信道的可用带宽来调整比特流的多个增强层的数量。
可以针对至少一个帧间隔调整比特流的多个增强层的数量。
至少一个PE可以被配置为根据预设的机器分析任务选择性地处理多个增强层的至少一部分。
至少一个PE可以被配置为根据第一机器分析任务处理基本层和第一增强层。
至少一个PE可以被配置为根据第二机器分析任务处理基本层、第一增强层和第二增强层。
一个帧中包括的多个增强层的数量可以根据传输信道的条件而变化。
NPU可以被配置为从解码器接收关于一个帧中包括的多个增强层的数量的反馈。
多个增强层可以根据多个增强层的层的索引以升序被包括在一个帧中。
根据本公开的另一示例的VCM解码器可以是用于解码视频和/或特征图的VCM解码器。VCM解码器可以包括用于人工神经网络的至少一个处理元件(PE),该至少一个PE被配置为接收和解码比特流。比特流可以以帧为单位进行发送,并且比特流的一个帧可以包括用于人工神经网络模型的权重、基本层的数据和多个增强层的数据。
根据本公开的另一示例的VCM编码器可以是用于编码视频和/或特征图的VCM编码器。VCM编码器可以包括用于人工神经网络的至少一个处理元件(PE),该至少一个PE被配置为对输入视频或特征图进行编码并将编码的输入视频或特征图作为比特流进行发送。至少一个PE还可以被配置为以帧为单位发送比特流,并且比特流的一个帧可以包括用于人工神经网络模型的权重、基本层的数据和多个增强层的数据。
根据本公开的NPU,可以有效地执行图像分析。
附图说明
图1是视频/图像编码***的示意图。
图2是视频/图像编码器的示意图。
图3是视频/图像解码器的示意图。
图4是使用SVC的编码和解码处理的示例图。
图5是例示根据本公开的神经处理单元的示意性概念图。
图6是例示可以应用于本公开的多个处理元件当中的一个处理元件的示意性概念图。
图7是例示图5的神经处理单元的修改示例的示意性概念图。
图8是例示示例性人工神经网络模型的示意性概念图。
图9A是用于说明卷积神经网络的基本结构的图。
图9B是以易于理解的方式例示卷积神经网络的操作的总图。
图10A至图10D是分别例示包括VCM编码器的NPU和包括VCM解码器的NPU的配置的示例图。
图11A和图11B是分别例示比特流在人工神经网络模型中的位置的示例图。
图12是例示本公开的示例的示例图。
具体实施方式
在本说明书或本申请中公开的根据本公开的构思的实施方式的具体结构或分步描述仅仅是为了描述根据本公开的构思的实施方式的目的而例示的。根据本公开的构思的示例可以以各种形式实施并且不应被解释为限于在本说明书或本申请中描述的示例。
可以对根据本公开的构思的示例应用各种修改和改变,并且示例可以具有各种形式,使得示例将在说明书或申请中参照附图进行详细描述。然而,应当理解,根据本公开的构思的示例不限于具体示例,而是包括本公开的精神和技术范围中包括的所有改变、等同或替代。
诸如第一和/或第二之类的术语可以用于描述各种组件,但组件不受上述术语的限制。上述术语用于区分一个组件与另一个组件,例如,在不脱离根据本发明的构思的范围的情况下,第一组件可以被称为第二组件,并且类似地,第二组件可以被称为第一组件。
应当理解,当描述元件与另一元件“联接”或“连接”时,该元件可以直接联接或直接连接到另一元件,或者通过第三元件联接或连接到另一元件。相反,当描述元件“直接联接”或“直接连接”到另一元件时,应当理解,其间不存在任何元件。描述组件之间的关系的其它表达方式,例如“在…之间”、“与…相邻”和“直接与…相邻”,应当以相同方式解释。
本说明书中使用的术语仅用于描述具体示例,而不旨在限制本公开。如果上下文中没有明显相反的含义,则单数形式可以包括复数形式。在本说明书中,应当理解,术语“包括”或“具有”指示存在说明书中描述的特征、数量、步骤、操作、组件、部件或其组合,但是不排除预先存在或添加一个或更多个其它特征、数量、步骤、操作、组件、部件或其组合的可能性。
如果没有相反的定义,则本文使用的所有术语(包括技术术语或科学术语)具有与本领域普通技术人员通常理解的含义相同的含义。在通用词典中定义的术语应当解释为与相关技术的上下文中的含义相同的含义,但如果在本说明书中没有明确定义,则不被解释为理想或过度形式的含义。
当描述示例时,将不描述在本公开的技术领域中众所周知并且与本公开不直接相关的技术。原因是省略了不必要的描述以清楚地传达本公开的主旨而不模糊主旨。
本公开涉及视频/图像编码。例如,本公开中公开的方法/示例可以与通用视频编码(VVC)标准(ITU-T Rec.H.266)、VVC之后的下一代视频/图像编码标准、或与视频编码相关的其它标准。其它标准可以包括高效视频编码(HEVC)标准(ITU-T Rec.H.265)、基本视频编码(EVC)标准、AVS2标准等。
本公开提出了与视频/图像编码相关的各种实施方式,并且除非另有说明,否则这些实施方式可以彼此组合。
在本公开中,视频可以表示根据时间流逝的一组或一系列图像。图片通常是指表示特定时间段中的一个图像的单位,而切片/瓦片是在编码时构成图片的一部分的单位。切片/瓦片可以包括一个或更多个编码树单元(CTU)。一个图片可以由一个或更多个切片/瓦片组成。一个图片可以由一个或更多个瓦片组组成。一个瓦片组可以包括一个或更多个瓦片。
像素或像元可以表示构成一个图片(或图像)的最小单位。此外,“样本”可以用作对应于像素的术语。样本通常可以表示像素或像素的值,可以仅表示亮度分量的像素/像素值,或者可以仅表示色度分量的像素/像素值。另选地,样本可以是指空间域中的像素值,或者当这种像素值被变换到频域时,它可以是指频域中的变换系数。
单元可以表示图像处理的基本单位。单元可以包括图片的至少一个特定区域和与区域相关的信息。一个单元可以包括一个亮度块和两个色度(例如,Cb、Cr)块。在一些情况下,单元可以与诸如块或区域之类的术语可互换地使用。一般而言,M×N块可以包括包含M列和N行的变换系数的集合(或阵列)或者样本(或样本阵列)。
术语的定义
这里,为了帮助理解本说明书中提出的本公开的内容,将简要定义本说明书中使用的术语。
NPU是神经处理单元的缩写并且是指独立于中央处理器(CPU)之外专门用于人工神经网络模型的操作的处理器。
AI加速器:作为AI计算加速器,它可以指NPU。
ANN是人工神经网络的缩写,并且是指通过模仿人脑中神经元通过突触的连接来将分层结构中的节点连接起来的网络,以模仿人类智能。
关于人工神经网络的结构的信息:信息包括关于层数的信息、层中的节点数量、每个节点的值、关于操作处理方法的信息、关于应用于每个节点的权重矩阵的信息等。
关于人工神经网络的数据本地性(locality)的信息:允许神经处理单元基于请求到单独的存储器的数据访问请求顺序来预测由神经处理单元处理的人工神经网络模型的操作顺序的信息。
DNN:深度神经网络的缩写并且可以意味着增加人工神经网络的隐藏层的数量以实现更高的人工智能。
CNN:卷积神经网络的缩写并且是一种神经网络,其功能类似于在人脑的视觉皮层中执行的图像处理。已知卷积神经网络适用于图像处理,并且已知卷积神经网络易于提取输入数据的特征并且识别特征的图案。
核(kernel)是指应用于CNN的权重矩阵。核的值可以通过机器学习来确定。
在下文中,将通过参照附图说明本公开的示例来详细描述本公开。
图1示意性地示出了视频/图像编码***的示例。
参照图1,视频/图像编码***可以包括源装置和接收装置。源装置可以通过数字存储介质或网络以文件或流的形式将编码的视频/图像信息或数据发送给接收装置。
源装置可以包括视频源、编码设备和发送器。接收装置可以包括接收器、解码设备和渲染器。编码设备可以称为视频/图像编码器,并且解码设备可以称为视频/图像解码器。发送器可以包括在编码设备中。接收器可以包括在解码设备中。渲染器可以包括显示单元,并且显示单元可以被配置为单独的装置或外部组件。
视频源可以通过捕获、合成或生成视频/图像的处理来获取视频/图像。视频源可以包括视频/图像捕获装置和/或视频/图像生成装置。视频/图像捕获装置可以包括例如一个或更多个相机、包含先前捕获的视频/图像的视频/图像档案等。视频/图像生成装置可以包括例如计算机、平板或智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获处理可以代替生成相关数据的处理。
编码设备可以对输入视频/图像进行编码。为了压缩和编码效率,编码设备可以执行一系列过程,诸如预测、变换和量化。编码的数据(编码的视频/图像信息)可以以比特流的形式输出。
发送器可以通过数字存储介质或网络以文件或流的形式将以比特流形式输出的编码的视频/图像信息或数据发送到接收装置的接收器。数字存储介质可以包括各种存储介质,诸如闪存驱动器、SD卡、CD、DVD、蓝光光盘、HDD、SSD等。发送器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行传输的元件。接收器可以接收/提取比特流并将其发送到解码设备。
解码设备可以通过执行与编码设备的操作相对应的一系列过程(诸如逆量化、逆变换和预测)来对视频/图像进行解码。
渲染器可以渲染解码的视频/图像。渲染的视频/图像可以通过显示单元进行显示。
图2例示了视频/图像编码器的配置。
在下文中,视频编码设备可以包括图像编码设备。
参照图2,编码设备10a可以被配置为包括图像划分单元10a-10、预测器10a-20、残差处理器10a-30、熵编码器10a-40、加法器10a-50、滤波器10a-60和存储器10a-70。预测器10a-20可以包括帧间预测器10a-21和帧内预测器10a-22。残差处理器10a-30可以包括变换器10a-32、量化器10a-33、解量化器10a-34和逆变换器10a-35。残差处理器10a-30还可以包括减法器10a-31。加法器10a-50可以称为重构器或重构块生成器。上述图像划分单元10a-10、预测器10a-20、残差处理器10a-30、熵编码器10a-40、加法器10a-50和滤波器10a-60可以根据实施方式由一个或更多个硬件组件(例如,编码器芯片组或处理器)来配置。此外,存储器10a-70可以包括解码图片缓冲器(DPB),并且可以由数字存储介质来配置。存储器10a-70的硬件组件可以被配置为内部或外部组件。
图像划分单元10a-10可以将输入到编码设备10a的输入图像(或图片、帧)划分为一个或更多个处理器。作为示例,处理器可以被称为编码单元(CU)。在这种情况下,编码单元可以根据四叉树二叉树三叉树(QTBTTT)结构从编码树单元(CTU)或最大编码单元(LCU)递归地划分。例如,可以基于四叉树结构、二叉树结构和/或三元结构将一个编码单元划分为具有更低深度的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,并且后面可以应用二叉树结构和/或三元结构。另选地,可以首先应用二叉树结构。可以基于不再被划分的最终编码单元来执行根据本公开的编码过程。在这种情况下,可以根据图像特性,根据编码效率,直接将最大编码单元用作最终编码单元。另选地,如果需要,可以将编码单元递归地划分为更低深度的编码单元,使得可以将具有最佳大小的编码单元用作最终编码单元。这里,编码过程可以包括诸如预测、变换和恢复(它们将在后面描述)之类的过程。作为另一示例,处理器还可包括预测器(PU)或变换器(TU)。在这种情况下,预测器和变换器可以分别从上述最终编码单元中分割或划分。预测器可以是样本预测的单位,并且变换器可以是用于推导变换系数的单位和/或用于从变换系数推导残差信号的单位。
在一些情况下,单元可以与诸如块或区域之类的术语可互换地使用。一般来说,M×N块可以表示包括M列和N行的样本或变换系数的集合。样本一般可以表示像素或像素的值,可以仅表示亮度分量的像素/像素值,或者可以仅表示色度分量的像素/像素值。样本可以用作对应于作为像素或像元的图片(或图像)的术语。
减法器10a-31可以通过从输入视频信号(原始块、原始样本或原始样本阵列)中减去从预测器10a-20输出的预测信号(预测块、预测样本或预测样本阵列)来生成残差信号,并且生成的残差信号被发送到变换器10a-32。预测器10a-20可以对处理目标块(在下文中称为当前块)执行预测并且生成相对于当前块的包括预测样本的预测块。预测器10a-20可以确定是将帧内预测还是将帧间预测应用于当前块或编码单元(CU)。预测器可以生成诸如预测模式信息之类的关于预测的各种类型的信息,并将信息发送到熵编码器10a-40。关于预测的信息可以在熵编码器10a-40中编码并以比特流的形式输出。
帧内预测器10a-22可以参考当前图片中的样本来预测当前块。根据预测模式,参考的样本可以与当前块相邻或者可以与其分离。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如DC模式和平面模式。根据预测方向的细微程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这是示例,并且可以依据设置使用更多或更少数量的定向预测模式。帧内预测器10a-22可以使用应用于相邻块的预测模式来确定要应用于当前块的预测模式。
帧间预测器10a-21可以基于由参考图片上的运动矢量指定的参考块(参考样本阵列)来推导相对于当前块的预测块。这里,为了减少以帧间预测模式发送的运动信息的量,可以基于相邻块与当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,相邻块可以包括存在于当前图片中的空间相邻块和存在于参考图片中的时间相邻块。包括参考块的参考图片可以与包括时间相邻块的参考图片相同或不同。时间相邻块可以被称为并置参考块或并置CU(colCU),并且包括时间相邻块的参考图片可以被称为并置图片(colPic)。例如,帧间预测器10a-21可以基于相邻块形成运动信息候选列表,并且生成指示哪个候选用于推导当前块的运动矢量和/或参考图片索引的信息。可以基于各种预测模式执行帧间预测,并且在跳过模式和合并模式的情况下,帧间预测器10a-21可以使用相邻块的运动信息作为当前块的运动信息。在跳过模式的情况下,与合并模式不同,可以不发送残差信号。在运动矢量预测(MVP)模式的情况下,可以通过使用相邻块的运动矢量作为运动矢量预测符并且发信号通知运动矢量差来指示当前块的运动矢量。
预测器10a-20可以基于后面要描述的各种预测方法来生成预测信号。例如,预测器可以应用帧内预测或帧间预测来预测一个块,并且可以同时应用帧内预测和帧间预测。这可以称为组合的帧间和帧内预测(CIIP)。此外,预测器可以执行帧内块复制(IBC)来预测块。IBC可以用于诸如游戏之类的内容的视频/图像编码,例如,画面内容编码(SCC)。IBC基本上在当前图片内执行预测,但是可以类似于帧间预测来执行,不同之处在于:参考块是在当前图片内推导的。也就是说,IBC可以使用本公开中描述的帧间预测技术中的至少一种。
通过帧间预测器10a-21或帧内预测器10a-22生成的预测信号可以用于生成重构信号或残差信号。变换器10a-32可以通过将变换技术应用于残差信号来生成变换系数。例如,变换技术可以包括DCT(离散余弦变换)、DST(离散正弦变换)、GBT(基于图表的变换)和CNT(条件非线性变换)中的至少一种。这里,GBT是指从表示关于像素之间的关系的信息的图表中获得的变换。CNT是指基于使用所有先前重构的像素生成的预测信号获得的变换。此外,可以将变换处理应用于具有相同大小的正方形像素块或应用于具有可变大小的非正方形块。
量化器10a-33可以量化变换系数并将量化变换系数发送到熵编码单元10a-40并且熵编码单元10a-40可以对量化信号(关于量化变换系数的信息)进行编码,并将编码信号作为比特流输出。关于量化变换系数的信息可以称为残差信息。量化器10a-33可以基于系数扫描顺序将块形式的量化变换系数重新布置成一维矢量的形式,并且可以基于一维矢量的形式的量化变换系数生成关于量化变换系数的信息。熵编码单元10a-40例如可以执行各种编码方法,诸如指数哥伦布、上下文自适应可变长度编码(CAVLC)和上下文自适应二进制算术编码(CABAC)。
熵编码单元10a-40可以将视频/图像重构所需的信息(例如,语法元素的值等)与量化变换系数一起或与量化变换系数分离地编码。编码信息(例如,视频/图像信息)可以在网络抽象层(NAL)单元中以比特流的形式发送或存储。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)之类的各种参数集的信息。此外,视频/图像信息还可以包括一般约束信息。本公开中后面描述的发信号通知/发送的信息和/或语法元素可以通过上述编码过程被编码并且被包括在比特流中。比特流可以通过网络发送或存储在数字存储介质中。这里,网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括诸如闪存驱动器、SD卡、CD、DVD、蓝光光盘、HDD或SSD之类的各种存储介质。发送从熵编码单元10a-40输出的信号的发送器(未示出)和/或存储信号的存储器(未示出)可以被配置为编码设备10a的内部/外部元件,并且发送器可以被包括在熵编码单元10a-40中。
从量化器10a-33输出的量化变换系数可以用于生成预测信号。例如,可以通过环路中的解量化器10a-34和逆变换器10a-35对量化变换系数应用逆量化和逆变换来重构残差信号。加法器10a-50可以将重构的残差信号与从帧间预测器10a-21或帧内预测器10a-22输出的预测信号相加,使得可以生成重构信号(重构图片、重构块或重构样本阵列)。当像应用跳过模式的情况那样相对于处理目标块不存在残差时,预测块可以用作重构块。加法器10a-50也可以称为重构单元或重构块生成器。生成的重构信号可以用于当前图片中的下一处理目标块的帧内预测,或者通过后面将描述的滤波用于下一图片的帧间预测。
此外,可以在图片编码和/或恢复期间应用具有色度缩放的亮度映射(LMCS)。
滤波器10a-60可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器10a-60可以通过对重构图片应用各种滤波方法来生成修改后的重构图像,并将修改后的重构图像存储到存储器10a-70中,具体地,存储器10a-70可以存储在DPB中。各种滤波方法可以包括例如去块滤波、样本自适应偏移(SAO)、自适应环路滤波器、双边滤波器等。滤波器10a-60可以生成各种类型的滤波相关信息并将它发送到熵编码单元10a-90,如后面将在每种滤波方法的描述中描述的。滤波相关信息可以由熵编码单元10a-90编码并且以比特流的形式输出。
发送到存储器10a-70的修改后的重构图片可以用作帧间预测器10a-80中的参考图片。由此,当应用帧间预测时,编码设备可以避免编码设备10a和解码设备之间的预测失配,并且还可以提高编码效率。
存储器10a-70的DPB可以存储修改后的重构图片以用作帧间预测器10a-21中的参考图片。存储器10a-70可以存储从中推导(或编码)当前图片中的运动信息的块的运动信息和/或已重构图片中的块的运动信息。存储的运动信息可以被发送到帧间预测器10a-21以用作空间相邻块的运动信息或时间相邻块的运动信息。存储器10a-70可以存储在当前图片中重构的块的重构样本,并且可以将重构样本发送到帧内预测器10a-22。
图3例示了视频/图像解码器的配置。
参照图3,解码设备10b可以被配置为包括熵解码器10b-10、残差处理器10b-20、预测器10b-30、加法器10b-40、滤波器10b-50和存储器10b-60。预测器10b-30可以包括帧间预测器10b-31和帧内预测器10b-32。残差处理器10b-20可以包括解量化器10b-21和逆变换器10b-22。根据示例,熵解码器10b-10、残差处理器10b-20、预测器10b-30、加法器10b-40和滤波器10b-50可以由一个硬件组件(例如,解码器芯片组或处理器)配置。此外,存储器10b-60可以包括解码图片缓冲器(DPB),并且可以由数字存储介质配置。存储器10b-60的硬件组件可以被配置为内部或外部组件。
当输入包括视频/图像信息的比特流时,解码设备10b可以与在图2的编码设备10a中处理视频/图像信息的处理相对应地重构图像。例如,解码设备10b可以基于从比特流获得的块划分相关信息推导单元/块。解码设备10b可以通过使用在编码设备中应用的处理单元来执行解码。因此,解码的处理单元例如可以是编码单元,并且编码单元可以根据四叉树结构、二叉树结构和/或三叉树结构来从编码树单元或最大编码单元来进行划分。一个或更多个变换器可以从编码单元推导出。另外,通过解码设备10b解码并输出的重构图像信号可以通过回放装置再现。
解码设备10b可以接收从图2的编码设备10a输出的、比特流形式的信号,并且可以通过熵解码器10b-10对接收到的信号进行解码。例如,熵解码器10b-10可以解析比特流以推导图像恢复(或图片恢复)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)之类的各种参数集的信息。此外,视频/图像信息还可以包括一般约束信息。
解码设备可以进一步基于关于参数集的信息和/或一般约束信息对图片进行解码。后面在本公开中描述的信令/接收信息和/或语法元素可以通过解码过程被解码并且从比特流中获得。例如,熵解码器10b-10可以基于诸如指数哥伦布、CAVLC或CABAC之类的编码方法对比特流中的信息进行解码,并且可以输出图像重构所需的语法元素值和相对于残差的变换系数的量化值。更具体地,CABAC熵解码方法接收与比特流中的每个语法元素对应的bin,使用解码目标语法元素信息以及相邻和解码目标块的解码信息或者关于在前一级中解码的符号/bin的信息来确定上下文模型,根据确定的上下文模型预测bin生成概率,并执行bin的算术解码以生成与每个语法元素值对应的符号。在这种情况下,CABAC熵解码方法可以在确定上下文模型之后,通过将解码的符号/bin信息用于下一个符号/bin的上下文模型来更新上下文模型。由熵解码器10b-10解码的信息当中的关于预测的信息被提供给预测器10b-30,并且由熵解码器10b-10提供关于熵解码的残差的信息。也就是说,量化变换系数和相关参数信息可以输入到解量化器10b-21。
此外,可以将由熵解码器10b-10解码的信息当中的关于滤波的信息提供给滤波器10b-50。另一方面,接收从编码设备输出的信号的接收器(未示出)可以进一步被配置为解码设备10b的内部/外部元件,或者接收器可以是熵解码器10b-10的组件。另一方面,根据本公开的解码设备可以被称为视频/图像/图片解码设备,并且解码设备可以被划分为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器10b-10,并且样本解码器可以包括解量化器10b-21、逆变换器10b-22、预测器10b-30、加法器10b-40、滤波器10b-50和存储器10b-60中的至少一个。
解量化器10b-21可以对量化变换系数进行逆量化以输出变换系数。解量化器10b-21可以以二维块形式重新布置量化变换系数。在这种情况下,可以基于由编码装置执行的系数扫描顺序来执行重新布置。解量化器10b-21可以使用量化参数(例如,量化步长信息)对量化变换系数执行逆量化并且获得变换系数。解量化器10b-21可以使用量化参数(例如,量化步长信息)对量化变换系数执行逆量化并且获得变换系数。
逆变换器10b-22对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。
预测器可以对当前块执行预测并且生成包括当前块的预测样本的预测块。预测器可以基于从熵解码器10b-10输出的预测信息来确定是将帧内预测还是帧间预测应用于当前块,并且可以确定特定的帧内/帧间预测模式。
预测器可以基于后面描述的各种预测方法来生成预测信号。例如,预测器可以应用帧内预测或帧间预测来预测一个块,并且可以同时应用帧内预测和帧间预测。这可以称为组合的帧间和帧内预测(CIIP)。此外,预测器可以执行帧内块复制(IBC)来预测块。IBC可以用于诸如游戏之类的内容的视频/图像编码,例如,画面内容编码(SCC)。IBC基本上在当前图片内执行预测,但是可以类似于帧间预测来执行,不同之处在于:参考块是在当前图片内推导的。也就是说,IBC可以使用本公开中描述的帧间预测技术中的至少一种。
帧内预测器10b-32可以参考当前图片中的样本来预测当前块。根据预测模式,参考样本可以位于当前块附近或者可以彼此分开地定位。在帧内预测中,预测模式可以包括多个非定向模式和多个定向模式。帧内预测器10b-32可以通过使用应用于相邻块的预测模式来确定应用于当前块的预测模式。
帧间预测器10b-31可以基于参考图片上的运动矢量所指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中发送的运动信息的量,可以基于相邻块与当前块之间的运动信息之间的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。
在帧间预测的情况下,相邻块可以包括存在于当前图片中的空间相邻块和存在于参考图片中的时间相邻块。例如,帧间预测器10b-31可以基于相邻块构建运动信息候选列表,并且基于接收到的候选选择信息推导当前块的运动矢量和/或参考图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示当前块的帧间预测的模式的信息。
加法器10b-40可以通过将获得的残差信号添加到从预测器10b-30输出的预测信号(预测块或预测样本阵列)来生成重构信号(重构图片、重构块或重构样本阵列)。当像应用跳过模式的情况那样不存在相对于处理目标块的残差时,预测块可以用作重构块。
加法器10b-40可以称为恢复单元或恢复块生成单元。生成的重构信号可以用于当前图片中的下一处理对象块的帧内预测,可以通过如下所述的滤波输出,或者可以用于下一图片的帧间预测。
此外,可以在图片解码处理中应用具有色度缩放的亮度映射(LMCS)。
滤波器10b-50可以通过对重构信号应用滤波来提高主观/客观图片质量。例如,滤波器10b-50可以通过对重构图片应用各种滤波方法来生成修改的重构图片,并将修改的重构图片发送到存储器60,具体地,发送到DPB。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波器和双边滤波器。
存储在存储器10b-60的DPB中的(修改的)重构图片可以用作帧间预测器10b-31中的参考图片。存储器10b-60可以存储推导(或解码)当前图片中的运动信息的块的运动信息和/或已重构图片中的块的运动信息。存储的运动信息可以被发送到帧间预测器10b-31以用作空间相邻块的运动信息或时间相邻块的运动信息。存储器10b-60可以存储当前图片中重构的块的重构样本,并且可以将重构样本发送到帧内预测器10b-32。
在本公开中,解码设备10b的预测器10b-30、解量化器10b-21、逆变换器10b-22和滤波器10b-50中描述的示例可以被应用为分别与编码设备10a-的预测器10a-20、解量化器10a-34、逆变换器10a-35和滤波器10a-60相同或对应。
如上所述,在视频编码中,执行预测以提高压缩效率。由此,可以生成包括作为要编码的块的当前块的预测样本的预测块。这里,预测块包括空间域(或像素域)中的预测样本。预测块在编码装置和解码设备中被等同地推导。编码设备可以通过向解码设备发信号通知关于原始块和预测块之间的残差的信息(残差信息)而不是原始块本身的原始样本值来提高图像编码效率。解码设备可以基于残差信息推导包括残差样本的残差块,可以通过将残差块和预测块相加来生成包括重构样本的重构块,并且可以生成包括重构块的重构图片。
残差信息可以通过变换和量化过程来生成。例如,编码设备推导原始块和预测块之间的残差块,并对包括在残差块中的残差样本(残差样本阵列)执行变换过程以推导变换系数,并且通过对残差块执行量化过程以推导量化变换系数,相关联的残差信息可以发信号通知给解码设备(经由比特流)。这里,残差信息可以包括量化变换系数的值信息、位置信息、变换技术、变换核、以及诸如量化参数之类的信息。解码设备可以基于残差信息执行逆量化/逆变换过程并推导残差样本(或残差块)。解码设备可以基于预测块和残差块生成重构图片。编码设备也可以对量化变换系数进行逆量化/逆变换以供后面的图片的帧间预测参考,以推导残差块,并且基于此生成重构图片。
可伸缩视频编码
可伸缩视频编码(SVC)是指在一个比特流中包括若干类型的图像的复杂比特流视频,并且可以通过将若干类型的图像压缩成一个复杂比特流来在各种网络和混杂的终端环境中提供视频服务。
SVC可以变换成针对机器任务的可伸缩特征编码(SFC)。SFC可以生成在一个比特流中包括若干类型的特征图的复杂比特流特征图。如上所述,通过将各种类型的特征图压缩成一个复杂比特流,可以在各种网络和混杂的终端环境中提供机器分析服务。
SFC是允许解码设备选择性地解码比特流的一部分的技术。编码的比特流可以包括基本层和至少一个增强层。基本层和至少一个增强层可以在编码的比特流内以特定顺序布置。
SVC或SFC包括各种可伸缩编码模式。例如,空间可伸缩性模式提供空间分辨率的层,并且时间可伸缩性模式提供帧速率的层。此外,质量可伸缩性、复杂度可伸缩性等提供用于图像的视觉质量或特征图的特征质量的层以及用于解码方法的复杂度的层。
在空间可伸缩性模式中,图像或特征图的基本层包含分辨率降低的编码帧。当仅对基本层进行解码时,可以获得低分辨率的输出图像和/或特征图。当一个或更多个增强层与基本层一起解码时,可以获得高分辨率的输出图像和/或特征图。
在时间可伸缩性模式中,基本层以低视频或特征图帧速率进行编码。尽管当仅对基本层进行解码时帧速率较低,但可以通过将基本层和至少一个增强层一起解码来增加帧速率。增强层可以包括在没有预测的情况下编码的I-VOP、从先前层的VOP和随后的基本层VOP预测的P-VOP、以及从先前层和随后层的VOP预测的B-VOP。
如上所述,用于SVC或SFC的输入信号在层之间可以具有不同的分辨率、帧速率、比特深度、颜色格式、纵横比等。因此,通过考虑这一点来执行层之间的预测,与联播相比,可以减少冗余并增加编码性能。
可以使用各种层间预测方法。为了减少在增强层中发送的关于编码器、预测器和变换器的信息量,可以执行层之间的编码器/预测器/变换器的预测。
图4例示了使用SVC的编码和解码处理。
参照图4,编码设备10a可以对原始视频(例如,UHD视频)执行SVC编码或SFC编码,使得可以划分和发送若干层的视频或特征图流。如图所示,各种层可以包括例如基本层、第一增强层和第二增强层。
基本层可以用于如下所述的基本分辨率(例如,SD分辨率)的图像,并且第一增强层可以包括基本层中不包括的信息以用于第一分辨率(例如,FHD分辨率)的图像。第二增强层可以包括基本层和第一增强层中不包括的信息以用于第二分辨率(例如,UHD分辨率)的图像。
基本层可以用于如下所述的基本分辨率(例如,最小特征图分辨率,诸如224×224×3)的特征图,第一增强层可以包括基本层中不包括的信息以用于第一分辨率(例如,512×512×3分辨率)的特征图。第二增强层可以包括第一基本层和第二增强层中包括的信息以用于第二分辨率(例如,720×720×3分辨率)的特征图。
可以发送包括基本层、第一增强层和第二增强层的视频流。
提取器从接收的比特流中提取基本层以及一个或更多个增强层,并将它们发送到解码设备10b。
当解码设备10b仅对基本层进行解码时,可以获得低分辨率的输出图像。然而,如果解码设备10b将一个或更多个增强层与基本层一起解码,则可以获得高分辨率的输出图像。
神经处理单元
图5例示了根据本公开的神经处理单元。
参照图5,神经处理单元(NPU)100是专用于执行人工神经网络的操作的处理器。
人工神经网络是指收集有人工神经元的网络,人工神经元在各种输入或进入刺激时,将输入或刺激乘以权重,将相乘后的值相加,并对通过使用激活函数附加地添加偏离的值进行转换以发送。如上所述训练的人工神经网络可以用于根据输入数据输出推理结果。
NPU 100可以是由电气/电子电路实现的半导体器件。电气/电子电路可以是指包括大量电子元件(晶体管、电容器等)的电路。
NPU 100可以包括多个处理元件(PE)110、NPU内部存储器120、NPU调度器130和NPU接口140。多个处理元件110、NPU内部存储器120、NPU调度器130和NPU接口140中的每一者可以是连接有大量电子元件的半导体电路。因此,一些电子元件可能难以用肉眼识别或区分,而只能通过操作来识别。
例如,任意电路可以用作多个处理元件110,或者可以用作NPU调度器130。NPU调度器130可以被配置为执行被配置为控制NPU 100的人工神经网络推理操作的控制单元的功能。
NPU 100可以包括多个处理元件110、被配置为存储从多个处理元件110推理的人工神经网络模型的NPU内部存储器120、以及被配置为控制相对于多个处理元件110和NPU内部存储器120的操作调度的NPU调度器130。
NPU 100可以被配置为处理与使用SVC或SFC的编码和解码方法相对应的特征图。
多个处理元件110可以执行人工神经网络的操作。
NPU接口140可以通过***总线与连接到NPU 100的各种组件(例如,存储器)通信。
NPU调度器130可以被配置为控制多个处理元件110的操作和NPU内部存储器120的读/写指令以用于神经处理单元100的推理操作。
NPU调度器130可以基于人工神经网络模型的数据本地性信息或关于结构的信息来控制多个处理元件110和NPU内部存储器120。
NPU调度器130可以分析关于可以在多个处理元件110中操作的人工神经网络模型的结构或者接受关于可以在多个处理元件110中操作的人工神经网络模型的结构的分析信息。例如,可以包括在人工神经网络模型中的人工神经网络的数据可以包括每一层的节点数据(即,特征图)、关于层的布局的数据、层的本地性信息或关于结构的信息、以及连接层的节点的每个连接网络的权重数据(即,权重核)的至少一部分。人工神经网络的数据可以存储在NPU调度器130中设置的存储器中或NPU内部存储器120。
NPU调度器130可以基于人工神经网络模型的数据本地性信息或关于结构的信息来调度要由NPU 100处理的人工神经网络模型的操作顺序。
NPU调度器130可以基于人工神经网络模型的数据本地性信息或关于结构的信息来获取在其中存储人工神经网络模型的层的特征图和权重数据的存储器地址值。例如,NPU调度器130可以获取存储在存储器中的人工神经网络模型层的特征图和权重数据的存储器地址值。因此,NPU调度器130可以获取要从主存储器驱动的人工神经网络模型的层的特征图和权重数据,以将获取的数据存储在NPU内部存储器120中。
每一层的特征图可以有对应的存储器地址值。
每个权重数据可以具有对应的存储器地址值。
NPU调度器130可以基于人工神经网络模型的数据本地性信息或关于结构的信息(例如,人工神经网络的层的布局信息或关于人工神经网络模型的结构的信息)调度多个处理元件110的操作顺序。
NPU调度器130基于人工神经网络模型的数据本地性信息或关于结构的信息进行调度,使得NPU调度器可以以不同于正常CPU的调度概念的方式进行操作。考虑到公平性、效率、稳定性和反应时间,正常CPU的调度操作以提供最高效率。也就是说,考虑优先级和操作时间,正常CPU调度以在同一时间期间执行最多的处理。
传统的CPU使用考虑诸如每个处理的优先级或操作处理时间之类的数据来调度任务的算法。
相比之下,NPU调度器130可以根据基于人工神经网络模型的数据本地性信息或关于结构的信息确定的NPU 100的处理顺序来控制NPU 100。
此外,NPU调度器130可以根据基于人工神经网络模型的数据本地性信息或关于结构的信息和/或要使用的NPU 100的数据本地性信息或关于结构的信息确定的处理顺序来操作NPU 100。
然而,本公开不限于NPU 100的数据本地性信息或关于结构的信息。
NPU调度器130可以被配置为存储人工神经网络的数据本地性信息或关于结构的信息。
也就是说,即使仅利用人工神经网络模型的数据本地性信息或关于人工神经网络结构的信息,NPU调度器130也可以确定处理顺序。
此外,NPU调度器130可以通过考虑人工神经网络模型的数据本地性信息或关于结构的信息以及NPU 100的数据本地性信息或关于结构的信息来确定NPU 100的处理顺序。此外,根据所确定的处理顺序可以进行处理的优化。
多个处理元件110是指设置有被配置为操作人工神经网络的特征图和权重数据的多个处理元件PE1至PE12的配置。每个处理元件可以包括乘法和累加(MAC)运算器和/或算术逻辑单元(ALU)运算器,但是根据本公开的示例不限于此。
每个处理元件可以被配置为可选地进一步包括用于处理附加特殊功能的附加特殊功能单元。
例如,处理元件PE也可以修改并实现为进一步包括批量归一化单元、激活函数单元、插值单元等。
即使图5作为示例例示了多个处理元件,但由多个乘法器和加法器树实现的运算器也可以被配置为并行设置在一个处理元件中,而不是MAC中。在这种情况下,多个处理元件110也可以被称为包括多个运算器的至少一个处理元件。
多个处理元件110被配置为包括多个处理元件PE1至PE12。图5的多个处理元件PE1至PE12只是为了描述方便的示例,并且多个处理元件PE1至PE12的数量不受限制。处理元件阵列110的大小或数量可以由多个处理元件PE1至PE12的数量来确定。多个处理元件110的大小可以由N×M矩阵来实现。这里,N和M是大于零的整数。多个处理元件110可以包括N×M个处理元件。也就是说,可以提供一个或更多个处理元件。
可以考虑NPU 100在其中操作的人工神经网络模型的特性来设计多个处理元件110的大小。
多个处理元件110被配置为执行人工神经网络操作所需的诸如加法、乘法和累加之类的功能。换句话说,多个处理元件110可以被配置为执行乘法和累加(MAC)操作。
在下文中,将以多个处理元件110当中的第一处理元件PE1为例进行说明。
图6例示了可以应用于本公开的多个处理元件当中的一个处理元件。
根据本公开的示例的NPU 100可以包括多个处理元件110、被配置为存储从多个处理元件110推理的人工神经网络模型的NPU内部存储器120、以及被配置为基于人工神经网络模型的数据本地性信息或关于结构的信息控制多个处理元件110和NPU内部存储器120的NPU调度器130。多个处理元件110被配置为执行MAC运算并且多个处理元件110被配置为量化并输出MAC运算结果,但本公开的实施方式不限于此。
NPU内部存储器120可以根据人工神经网络模型的存储器大小和数据大小来存储人工神经网络模型的全部或部分。
第一处理元件PE1可以包括乘法器111、加法器112、累加器113和比特量化器114。然而,根据本公开的示例不限于此,并且可以考虑人工神经网络的操作特性来修改多个处理元件110。
乘法器111将输入的(N)比特数据和(M)比特数据相乘。乘法器111的运算值被输出为(N+M)比特数据。
乘法器111可以被配置为接收一个变量和一个常数。
累加器113使用加法器112将乘法器111的运算值和累加器113的运算值累加与(L)个循环的数量一样多的次数。因此,累加器113的输出单元和输入单元的数据的比特宽度可以输出为(N+M+log2(L))个比特。这里,L是大于零的整数。
当累加完成时,累加器113被应用以初始化复位以将存储在累加器113中的数据初始化为零,但根据本公开的示例不限于此。
比特量化器114可以减小从累加器113输出的数据的比特宽度。比特量化器114可以由NPU调度器130控制。量化数据的比特宽度可以输出为(X)个比特。这里,X是大于零的整数。根据上述配置,多个处理元件110被配置为执行MAC运算,并且多个处理元件110可以量化MAC运算结果以输出结果。量化可以具有(L)个循环越大,功耗越小的效果。此外,当功耗减少时,也可以减少热量生成。具体地,当热量生成减少时,可以降低NPU 100由于高温而导致的错误操作的可能性。
比特量化器114的输出数据(X)比特可以用作卷积的输入数据或后续层的节点数据。当人工神经网络模型被量化时,比特量化器114可以被配置为被提供以来自人工神经网络模型的量化信息。然而,这不限于此,并且NPU调度器130也可以被配置为通过分析人工神经网络模型来提取量化信息。因此,输出数据(X)比特被转换为要输出的量化比特宽度以对应于量化数据大小。比特量化器114的输出数据(X)比特可以以量化比特宽度存储在NPU内部存储器120中。
根据本公开的示例的NPU 100的多个处理元件110可以包括乘法器111、加法器112和累加器113。可以根据是否应用量化来选择比特量化器114。
图7例示了图5的神经处理单元100的修改示例。
除了多个处理元件110之外,图7的NPU 100与图5中示例性例示的NPU 100基本相同。因此,为了描述方便,将省略冗余描述。
除了多个处理元件PE1至PE12之外,图7中示例性例示的多个处理元件110还可以包括对应于处理元件PE1至PE12的寄存器文件RF1至RF12。
图7的多个处理元件PE1至PE12和多个寄存器文件RF1至RF12只是为了描述方便的示例,并且多个处理元件PE1至PE12和多个寄存器文件RF1至RF12的数量不受限制。
处理元件阵列110的大小或数量可以由多个处理元件PE1至PE12和多个寄存器文件RF1至RF12的数量来确定。多个处理元件110和多个寄存器文件RF1至RF12的大小可以通过N×M矩阵来实现。这里,N和M是大于零的整数。
可以考虑NPU 100在其中操作的人工神经网络模型的特性来设计多个处理元件110的阵列大小。作为附加说明,寄存器文件的存储器大小可以考虑操作的人工神经网络模型的数据大小、所需的操作速度和所需的功耗来确定。
NPU 100的寄存器文件RF1至RF12是直接连接到处理元件PE1至PE12的静态存储器单元。例如,寄存器文件RF1至RF12可以由触发器和/或锁存器配置。寄存器文件RF1至RF12可以被配置为存储对应的处理元件PE1至PE12的MAC运算值。寄存器文件RF1至RF12可以被配置为向NPU内部存储器120提供权重数据和/或节点数据或被提供以来自NPU内部存储器120的权重数据和/或节点数据。
寄存器文件RF1至RF12也可以被配置为在MAC运算期间执行累加器的临时存储器的功能。
图8例示了示例性人工神经网络模型。
在下文中,将说明可以在NPU 100中操作的示例性人工神经网络模型110-10的操作。
图8的示例性人工神经网络模型110-10可以是在如图1或图4所示的NPU 100中被训练或在单独的机器学习装置中被训练的人工神经网络。人工神经网络模型可以是被训练以执行诸如对象识别或语音识别之类的各种推理功能的人工神经网络。
人工神经网络模型110-10可以是深度神经网络(DNN)。
然而,根据本公开的示例的人工神经网络模型110-10不限于深度神经网络。
例如,人工神经网络模型可以是执行诸如对象检测、对象划分、图像/视频重构、图像/视频增强、对象跟踪、事件识别、事件预测、异常检测、密度估计、事件搜索、测量等的推理的训练模型。
例如,人工神经网络模型可以是诸如Bisenet、Shelfnet、Alexnet、Densenet、Efficientnet、EfficientDet、Googlenet、Mnasnet、Mobilenet、Resnet、Shufflenet、Squeezenet、VGG、Yolo、RNN、CNN、DBN、RBM、LSTM等的模型。例如,人工神经网络模型可以是诸如生成对抗网络(GAN)、变换器等的模型。然而,本公开不限于此,在NPU中操作的新的人工神经网络模型正在不断地发布。
然而,本公开不限于此。此外,人工神经网络模型110-10可以是基于至少两个不同模型的综合模型。
人工神经网络模型110-10可以存储在NPU 100的NPU内部存储器120中。
在下文中,将参照图5描述由NPU 100执行的示例性人工神经网络模型110-10的推理处理。
人工神经网络模型110-10可以是示例性深度神经网络模型,其包括输入层110-11、第一连接网络110-12、第一隐藏层110-13、第二连接网络110-14、第二隐藏层110-15、第三连接网络110-16和输出层110-17。然而,本公开并非仅限于图8所示的人工神经网络模型。第一隐藏层110-13和第二隐藏层110-15也可以称为多个隐藏层。
输入层110-11可以示例性地包括输入节点x1和x2。也就是说,输入层110-11可以包括关于两个输入值的信息。图5或7所示的NPU调度器130可以设置图5或7的NPU内部存储器120中的、在其中存储关于来自输入层110-11的输入值的信息的存储器地址。
例如,第一连接网络110-12可以包括关于用于将输入层110-11的节点分别连接到第一隐藏层110-13的节点的六个权重值的信息。图5或7的NPU调度器130可以设置NPU内部存储器120中的、在其中存储关于第一连接网络110-12的权重值的信息的存储器地址。每个权重值与输入节点值相乘,并且将相乘值的累加值存储在第一隐藏层110-13中。这里,节点可以被称为特征图。
例如,第一隐藏层110-13可以包括节点a1、a2和a3。也就是说,第一隐藏层110-13可以包括关于三个节点值的信息。图5或图7所示的NPU调度器130可以可以设置NPU内部存储器120中的、用于存储关于第一隐藏层110-13的节点值的信息的存储器地址。
NPU调度器130可以被配置为调度操作顺序以使得第一处理元件PE1执行第一隐藏层110-13的a1节点的MAC运算。NPU调度器130可以被配置为调度操作顺序以使得第二处理元件PE2执行第一隐藏层110-13的a2节点的MAC运算。NPU调度器130可以被配置为调度操作顺序以使得第三处理元件PE3执行第一隐藏层110-13的a3节点的MAC运算。这里,NPU调度器130可以预先调度操作顺序以使得三个处理元件同时并行地执行每个MAC运算。
例如,第二连接网络110-14可以包括关于用于将第一隐藏层110-13的节点分别连接到第二隐藏层110-15的节点的九个权重值的信息。图5或7的NPU调度器130可以可以设置NPU内部存储器120中的、用于存储关于第二连接网络110-14的权重值的信息的存储器地址。将第二连接网络110-14的权重值与从对应的第一隐藏层110-13输入的节点值相乘,并将相乘值的累加值存储在第二隐藏层110-15中。
例如,第二隐藏层110-15可以包括节点b1、b2和b3。也就是说,第二隐藏层110-15可以包括关于三个节点值的信息。NPU调度器130可以设置NPU内部存储器120中的、用于存储关于第二隐藏层110-15的节点值的信息的存储器地址。
NPU调度器130可以被配置为调度操作顺序以使得第四处理元件PE4执行第二隐藏层110-15的b1节点的MAC运算。NPU调度器130可以被配置为调度操作顺序以使得第五处理元件PE5执行第二隐藏层110-15的b2节点的MAC运算。NPU调度器130可以被配置为调度操作顺序以使得第六处理元件PE6执行第二隐藏层110-15的b3节点的MAC运算。
这里,NPU调度器130可以预先调度操作顺序以使得三个处理元件同时并行地执行每个MAC运算。
这里,NPU调度器130可以确定调度以使得第二隐藏层110-15的操作在人工神经网络模型的第一隐藏层110-13的MAC运算之后执行。
也就是说,NPU调度器130可以被配置为基于人工神经网络模型的数据本地性信息或结构信息来控制多个处理元件110和NPU内部存储器120。
例如,第三连接网络110-16可以包括关于分别连接第二隐藏层110-15的节点和输出层110-17的节点的六个权重值的信息。NPU调度器130可以设置用于在NPU内部存储器120中存储关于第三连接网络110-16的权重值的信息的存储器地址。将第三连接网络110-16的权重值与从第二隐藏层110-15输入的节点值相乘,并将相乘值的累加值存储在输出层110-17中。
例如,输出层110-17可以包括节点y1和y2。也就是说,输出层110-17可以包括关于两个节点值的信息。NPU调度器130可以设置用于在NPU内部存储器120中存储关于输出层110-17的节点值的信息的存储器地址。
NPU调度器130可以被配置为调度操作顺序以使得第七处理元件PE7执行输出层110-17的y1节点的MAC运算。NPU调度器130可以被配置为调度操作顺序以使得第八处理元件PE8执行输出层110-15的y2节点的MAC运算。
这里,NPU调度器130可以预先调度操作顺序以使得两个处理元件同时并行地执行MAC运算。
这里,NPU调度器130可以确定调度以使得输出层110-17的操作在人工神经网络模型的第二隐藏层110-15的MAC运算之后执行。
也就是说,NPU调度器130可以被配置为基于人工神经网络模型的数据本地性信息或结构信息来控制多个处理元件110和NPU内部存储器120。
也就是说,NPU调度器130可以分析人工神经网络模型的结构或者接收可以在多个处理元件110中操作的分析信息。可以包括在人工神经网络模型中的人工神经网络的信息可以包括关于每个层的节点值的信息、层的放置数据本地性信息或关于结构的信息,以及关于连接层的节点的每个连接网络的权重值的信息。
NPU调度器130被提供有示例性人工神经网络模型110-10的数据本地性信息或关于结构的信息,使得NPU调度器130可以确定人工神经网络模型110-10的从输入到输出的操作顺序。
因此,NPU调度器130可以考虑调度顺序来设置NPU内部存储器120中的、存储每一层的MAC运算值的存储器地址。
也就是说,NPU内部存储器120可以被配置为在保持NPU 100的推理操作的同时保存存储在NPU内部存储器120中的连接网络的权重数据。因此,可以降低存储器读写操作的频率。
也就是说,NPU内部存储器120可以被配置为在保持推理操作的同时重复使用存储在NPU内部存储器120中的MAC运算值。
图9A图解了卷积神经网络的基本结构。
参照图9A,卷积神经网络可以是一个或多个卷积层、池化层和全连接层的组合。
在本公开的实施方式中,在卷积神经网络中,每个通道具有用于提取通道的输入图像的特征的核。核可以由二维矩阵组成,并且在遍历输入数据的同时执行卷积运算。核的大小可以任意确定,并且核遍历输入数据的步幅(stride)也可以任意确定。每个核的所有输入数据的卷积结果可以称为特征图或激活图。在下文中,核可以包括一组权重值或多组权重值。每层的核数可以称为通道数。核可以称为矩阵型权重,或者核可以称为权重。
这样,由于卷积运算是通过组合输入数据和核形成的运算,因此可以在其后应用用于添加非线性的激活函数。当激活函数应用于作为卷积运算的结果的特征图时,它可以称为激活图。
具体地,参照图9A,卷积神经网络包括至少一个卷积层、至少一个池化层和至少一个全连接层。
例如,卷积可以由两个主要参数定义:输入数据的大小(通常是1×1、3×3或5×5矩阵)和输出特征图的深度(核数)。这些关键参数可以通过卷积计算。这些卷积可以从深度32开始,继续到深度64,并在深度128或256处结束。卷积运算可以意味着在作为输入数据的输入图像矩阵上滑动大小为3×3或5×5的核的操作,将核的每个权重与重叠的输入图像矩阵的每个元素相乘,然后将它们全部相加。
可以将激活函数应用于以这种方式生成的输出特征图以最终输出激活图。此外,当前层中使用的权重可以通过卷积发送到下一层。池化层可以执行池化操作以通过输出数据(即激活图)的下采样来减小特征图的大小。例如,池化操作可以包括但不限于最大池化和/或平均池化。
最大池化操作使用核,并且输出在通过滑动特征图和核来使特征图与核重叠的区域中的最大值。平均池化操作输出在通过滑动特征图和核来使特征图与核重叠的区域内的平均值。这样,由于通过池化操作减小了特征图的大小,因此特征图的权重数量也减少。
全连接层可以将通过池化层输出的数据分类为多个类(即,推理值),并输出分类后的类及其分数。通过池化层输出的数据形成三维特征图,并且该三维特征图可以转换成一维矢量并且作为全连接层输入。
图9B以易于理解的方式例示了卷积神经网络的操作。
参照图9B,输入图像是大小为5×5的二维矩阵。此外,在图9B中,使用了三个节点,即通道1、通道2和通道3。
首先,将描述层1的卷积运算。
输入图像在层1的第一节点处与通道1的核1进行卷积,并作为结果输出特征图1。此外,输入图像在层1的第二节点处与通道2的核2进行卷积,并作为结果输出特征图2。输入图像在第三节点处与通道3的核3进行卷积,并作为结果输出特征图3。
接下来,将描述层2的池化操作。
从层1输出的特征图1、特征图2和特征图3输入到层2的三个节点。层2接收从层1输出的特征图作为输入以执行池化。池化可以减小矩阵的大小或强调矩阵中的特定值。池化方法可以包括最大池化、平均池化和最小池化。最大池化用于收集矩阵特定区域中的最大值,并且平均池化用于计算特定区域中的平均值。
为了处理每个卷积,NPU 100的处理元件PE1至PE12被配置为执行MAC运算。
在图9B的示例中,5×5矩阵的特征图通过池化减少为4×4矩阵。
具体来说,层2的第一节点以通道1的特征图1作为输入执行池化,然后输出4×4矩阵。层2的第二节点以通道2的特征图2作为输入执行池化,然后输出4×4矩阵。层2的第三节点以通道3的特征图3作为输入执行池化,然后输出4×4矩阵。
接下来,将描述层3的卷积运算。
层3的第一节点接收来自层2的第一节点的输出作为输入以执行与核4的卷积并输出其结果。层3的第二节点接收来自层2的第二节点的输出作为输入以执行与通道2的核5的卷积并输出其结果。类似地,层3的第三节点接收来自层2的第三节点的输出作为输入以执行与通道3的核6的卷积并输出其结果。
如上所述,重复卷积和池化,最后,如图9A所示,可以输出全连接层。输出可以再次输入到人工神经网络进行图像识别。
用于机器的视频编码
近来,随着监控、智能交通、智慧城市、智能工业和智能内容之类的各个产业领域的发展,由机器消费的图像或特征图数据的量日益增加。另一方面,当前使用的传统图像压缩方法是考虑到由观看者感知的人类视觉的特性而开发的技术并且包含不必要的信息,这使得它在执行机器任务时效率低下。因此,需要研究一种用于高效地压缩特征图以执行机器任务的视频编解码技术。
用于多媒体编码的国际标准化组织运动图像专家组(MPEG)正在讨论用于机器的视频编码(VCM)技术。VCM是一种基于机器视觉而非观看者的视角的图像或特征图编码技术。
本公开
图10A至图10D分别例示了包括VCM编码器的NPU和包括VCM解码器的NPU的配置。
参照图10A,第一NPU 100a可以包括VCM编码器,并且第二NPU 100b可以包括VCM解码器。
当第一NPU 100a中的VCM编码器对视频和/或特征图进行编码并将其作为比特流进行发送时,第二NPU 100b中的VCM解码器可以解码并输出比特流。在这种情况下,第二NPU100b中的VCM解码器可以输出一个或更多个视频和/或特征图。例如,第二NPU 100b中的VCM解码器可以输出第一特征图以使用机器进行分析,并且可以输出第一图像以供用户观看。第一图像可以具有比第一特征图的分辨率更高的分辨率。
参照图10B,第一NPU 100a可以包括用于提取特征图的特征提取器和VCM编码器。
第一NPU 100a中的VCM编码器可以包括特征编码器。第二NPU 100b可以包括VCM解码器。第二NPU 100b中的VCM解码器可以包括特征解码器和视频重构器。特征解码器可以从比特流中解码特征图并输出第一特征图以使用机器进行分析。视频再生器可以从比特流再生并输出第一图像以供用户观看。
参照图10C,第一NPU 100a可以包括用于提取特征图的特征提取器和VCM编码器。
第一NPU 100a中的VCM编码器可以包括特征编码器。第二NPU 100b可以包括VCM解码器。第二NPU 100b中的VCM解码器可以包括特征解码器。特征解码器可以从比特流中解码特征图并输出第一特征图以使用机器进行分析。也就是说,比特流可以仅编码为特征图,而不是图像。更详细地,特征图可以是包括关于用于基于图像处理机器的特定任务的特征的信息的数据。
参照图10D,第一NPU 100a可以包括用于提取特征图的特征提取器和VCM编码器。
第一NPU 100a中的VCM编码器可以包括特征变换器和视频编码器。第二NPU100b可以包括VCM解码器。第二NPU 100b中的VCM解码器可以包括视频解码器和逆变换器。
参照图10A至图10D,第一NPU 100a可以至少包括VCM编码器,并且第二NPU 100b可以至少包括VCM解码器。然而,本公开不限于此,并且可以修改VCM编码器以包括第一NPU100a,或者可以修改VCM解码器以包括第二NPU 100b。
第一NPU 100a可以通过处理人工智能操作(例如,卷积)来生成特征图。第一NPU100a可以在通过处理人工智能操作对特征图进行编码之后发送。
第二NPU 100b可以接收编码的特征图。第二NPU 100b可以通过处理人工智能操作(例如,解卷积)来解码编码的特征图。
为了处理人工智能计算,可以使用特定结构的人工神经网络模型。例如,对于特征图提取,NPU可以处理卷积运算。例如,对于特征图编码,NPU可以处理卷积运算。例如,为了解码编码的特征图,NPU可以处理解卷积运算。
人工神经网络模型可以具有多层结构,并且人工神经网络模型可以包括骨干网络。通过第一NPU 100a的人工智能操作生成的特征图可以是在多层人工神经网络模型的特定层中生成的特征图。也就是说,特征图可以是在多层人工神经网络模型的至少一层中生成的至少一个特征图。在多层人工神经网络模型的特定层中生成的特征图可以是适合使用特定机器进行分析的特征图。
图11A和图11B分别例示了比特流在人工神经网络模型中的位置。
如参照图11A可见,当第一NPU 100a或VCM编码器使用人工神经网络模型(例如,卷积网络模型)接收视频时,可以为每一层生成相应的特征图。图11A示出了将与卷积网络模型的最后层对应的全连接层中的特征图作为比特流进行发送的示例。
然后,第二NPU 100b或VCM解码器可以使用解卷积网络模型对包括特征图的比特流进行解码。
另一方面,参照图11B,示出了在人工神经网络模型(例如,卷积网络模型)的中间层中生成的特征图作为比特流进行发送而不是将全连接层中的特征图作为比特流进行发送的示例。
图12例示了本公开的示例。
参照图12,示出了第一NPU 100a和第二NPU 100b。
图12所示的服务器可以向第一NPU 100a发送关于人工神经网络(ANN)模型的信息,例如,包括YoloV5s模型的权重的信息。
第一NPU 100a可以包括用于对输入视频进行编码的VCM编码器。尽管未示出,但第一NPU 100a还可以包括如图10B、图10C或图10D所示的特征提取器。第一NPU 100a中的VCM编码器可以包括如图10B或图10C所示的特征编码器。另选地,第一NPU 100a中的VCM编码器可以包括如图10D所示的特征转换器和/或视频编码器。
第二NPU 100b可以包括内部存储器、至少一个VCM解码器和至少一个PE。内部存储器可以是例如静态随机存取存储器(SRAM)。根据本文提出的示例,内部存储器可以选择性地排除动态随机存取存储器(DRAM)。为此,如稍后将描述的,由第一NPU 100a以帧为单位发送的比特流可以包括人工神经网络(ANN)模型的信息。
如果比特流可以包括人工神经网络模型的信息和特征图二者,则即使没有DRAM,也可以仅用比特流独立地执行AI操作。换句话说,在SRAM的情况下,可能难以增加存储容量,并且可能难以仅使用SRAM来存储各种模型的权重。然而,这仅是示例,并且本公开不限于诸如DRAM或SRAM之类的特定的存储器类型。
这里,模型信息可以包括模型结构信息、深度学习模型的每一层的操作信息、激活函数信息等。例如,模型的信息可以是与Tensorflow、Pytorch、Keras、ONNX等兼容的格式的信息。
也就是说,比特流可以包括图像和/或特征图和模型信息。
如图10B所示,第二NPU 100b中的VCM解码器可以包括特征解码器和/或视频重构器。另选地,如图10C所示,第二NPU 100b中的VCM解码器可以包括特征解码器。另选地,如图10D所示,第二NPU 100b中的VCM解码器可以包括视频解码器和/或逆变换器。
第一NPU 100a中的VCM编码器可以支持各种可伸缩编码模式。例如,用于空间可伸缩性的模式提供空间分辨率的层,并且用于时间可伸缩性的模式提供帧率的层。此外,质量可伸缩性和复杂度可伸缩性提供了图像的视觉质量的层和解码方法的复杂度的层。
具有空间可伸缩性的图像和/或特征图的基本层包括分辨率降低的编码帧。当仅对基本层进行解码时,可以获得低分辨率的输出图像。将至少一个增强层连同基本层一起解码可以提供高分辨率的输出图像和/或特征图。
第一NPU 100a中的VCM编码器对原始的视频和/或特征图(例如,UHD或FHD视频)执行SVC或SFC编码,使得可以将其划分为若干层的视频或特征图流并进行发送。
如图所示,多个层可以包括例如基本层和至少一个增强层。如图所示,至少一个增强层可以包括第一增强层、第二增强层、第三增强层、第四增强层和第五增强层中的至少一个。基本层可以包括例如用于320分辨率的图像和/或特征图的信息。第一增强层可以包括例如用于512分辨率的图像和/或特征图的信息。第二增强层可以包括例如用于1024分辨率的图像和/或特征图的信息。第三增强层可以包括例如用于1600分辨率的图像和/或特征图的信息。第四增强层可以包括例如用于FHD分辨率的图像和/或特征图的信息。第五增强层可以包括例如用于UHD分辨率的图像和/或特征图的信息。
然而,本公开不限于增强层,并且增强层可以被称为诸如扩展层、附加层和下层之类的各种层。
VCM编码器可以根据传输信道的可用带宽来生成包括特定数量的增强层的比特流。
VCM编码器可以根据传输信道的可用带宽来生成选择性地省略了至少一个增强层的比特流。
VCM编码器可以根据传输信道的可用带宽来生成选择性地添加了至少一个增强层的比特流。
VCM解码器可以操作以仅接收比特流的基本层和至少一些增强层。
传输信道的可用带宽可以实时变化或以特定周期变化。由于各种原因,传输信道的可用带宽可能会变化。例如,传输信道的带宽可以根据通信量的增加而在特定时间内减少。
因此,VCM编码器可以被配置为获取传输信道的可用带宽。VCM编码器可以根据可用带宽改变增强层的数量。
VCM编码器可以被配置为对比特流中包括的增强层信息进行编码。因此,VCM解码器可以被配置为确定比特流的增强层的数量。此外,VCM解码器可以被配置为检测传输信道的可用带宽。一个接收帧中包括的至少一个增强层的数量可以根据传输信道的状态而变化。
NPU可以根据传输信道的状态确定一个接收帧中包括的至少一个增强层的数量,并且将它反馈给编码装置。
至少一个增强层可以根据至少一个增强层的索引以升序被包括在一个帧中。
如图所示,第一NPU 100a可以以帧为单位发送比特流。如图所示,一帧可以包括关于人工神经网络(ANN)模型的信息,图像和/或特征图的基本层以及至少一个增强层。
例如,ANN模型的信息可以包括权重。此外,ANN模型的信息可以包括被配置为基于ANN模型的操作顺序或调度信息来控制第一NPU 100a的寄存器-映射(register-map)。
第一NPU 100a可以根据来自第二NPU 100b的请求重传关于人工神经网络模型的信息。例如,第二NPU 100b可以根据权重是否在作为内部存储器的SRAM中被重用来确定是否请求重传。如果确定重传请求是必要的,则第二NPU 100b可以向第一NPU 100a发送重传请求。
人工神经网络模型例如可以是YOLO。你只看一次(you-only-look-once,YOLO)是一种用于对象检测的算法,并且是通过仅查看一次图像就可以预测图像中存在的对象和对象的位置的算法。它不是将其检测为要分类的对象,而是通过多维划分边界框并且应用类别概率来处理单次回归问题。输入图像通过CNN划分为张量的网格形式,并且通过根据每个区段生成对象边界框和类别概率来识别对应区域中的对象。因为YOLO没有应用用于提取候选区域的单独网络,所以它在处理时间方面显示出优于更快的R-CNN的性能。
第二NPU 100b可以从接收的比特流的帧中提取关于ANN模型的信息、基本层和一个或更多个增强层。具体地,第二NPU 100b可以根据需要的任务从一个或更多个增强层中提取一个或更多个增强层。
例如,对于1号机器任务,可以仅解码视频流中的基本层,或者对于2号机器任务,可以仅解码视频流中的基本层和第一增强层。另选地,为了供用户观看,可以对视频流中的基本层以及第一增强层至第五增强层进行解码。对于这样的解码,可以使用人工神经网络模型。也就是说,可以通过使用比特流的帧中的权重来执行解码。
解码的图像可以包括对象识别。例如,在机器任务1中,解码的图像中的植物可以如图所示地被识别。
本公开的示例仅是示例,其被提供以容易地说明本公开的技术内容并且帮助理解本公开,并且不旨在限制本公开的范围。本公开所属领域的普通技术人员将清楚,除了上述示例之外,还可以实现那些其它的修改示例。
本文描述的权利要求可以以各种方式组合。例如,本公开的方法权利要求的技术特征可以组合并且被实现为设备,并且本说明书的设备权利要求的技术特征可以组合并且被实现为方法。此外,本说明书的方法权利要求的技术特征和设备权利要求的技术特征可以组合以实现为设备,并且本说明书的方法权利要求的技术特征和本说明书的设备权利要求的技术特征可以被组合以实现为方法。
[支持本发明的国家研发项目]
[项目标识号]1711152851
[任务编号]2020-0-00364-003
[部门名称]韩国科学与信息通信技术部
[任务管理(专业)机构名称]韩国信息与通信技术规划与评估研究所
[研究项目名称]适用于人工智能的半导体技术的开发
[研究任务名称]用于基于人工智能(AI)增强车辆用通信技术的NPU和应用***的开发
[贡献率]1/1
[执行任务的组织名称]蒂普爱可斯有限公司
[研究时段]2022.01.01~2022.12.31
相关申请的交叉引用
本申请要求于2022年6月29日向韩国知识产权局提交的韩国专利申请No.10-2022-0079596的优先权,其公开内容通过引用并入本文。

Claims (20)

1.一种用于解码视频和/或特征图的神经处理单元NPU,所述NPU包括:
用于人工神经网络的至少一个处理元件PE,所述至少一个PE被配置为接收和解码比特流,
其中,所述比特流是以帧为单位接收的,并且
其中,所述比特流的一个帧包括用于人工神经网络模型的权重、基本层的数据和多个增强层的数据。
2.根据权利要求1所述的NPU,其中,接收的比特流的所述多个增强层的至少一部分被配置为被选择性地处理。
3.根据权利要求1所述的NPU,其中,所述多个增强层的至少一部分被配置为根据接收的比特流的传输信道的可用带宽而被选择性地处理。
4.根据权利要求1所述的NPU,其中,所述多个增强层的至少一部分被配置为根据预设的机器分析任务而被选择性地处理。
5.根据权利要求1所述的NPU,其中,接收的比特流的传输信道的可用带宽被配置为被检测。
6.根据权利要求1所述的NPU,其中,所述至少一个PE被配置为根据预设的机器分析任务来选择性地处理所述多个增强层中的至少一个。
7.根据权利要求1所述的NPU,其中,一个帧中包括的所述多个增强层的数量根据传输信道的条件而变化。
8.根据权利要求1所述的NPU,其中,所述NPU被配置为根据传输信道的条件确定一个帧中包括的所述多个增强层的数量并反馈给编码器。
9.根据权利要求1所述的NPU,其中,所述多个增强层根据所述多个增强层的层的索引以升序被包括在一个帧中。
10.一种用于编码视频和/或特征图的神经处理单元NPU,所述NPU包括:
用于人工神经网络的至少一个处理元件PE,所述至少一个PE被配置为对输入视频或特征图进行编码并且将编码的输入视频或特征图作为比特流进行发送,
其中,所述至少一个PE还被配置为以帧为单位发送所述比特流,并且
其中,所述比特流的一个帧包括用于人工神经网络模型的权重、基本层的数据和多个增强层的数据。
11.根据权利要求10所述的NPU,其中,根据传输信道的可用带宽来调整所述比特流的所述多个增强层的数量。
12.根据权利要求10所述的NPU,其中,针对至少一个帧间隔调整所述比特流的所述多个增强层的数量。
13.根据权利要求10所述的NPU,其中,所述至少一个PE被配置为根据预设的机器分析任务来选择性地处理所述多个增强层的至少一部分。
14.根据权利要求10所述的NPU,其中,所述至少一个PE被配置为根据第一机器分析任务处理所述基本层和第一增强层。
15.根据权利要求10所述的NPU,其中,所述至少一个PE被配置为根据第二机器分析任务处理所述基本层、第一增强层和第二增强层。
16.根据权利要求10所述的NPU,其中,一个帧中包括的所述多个增强层的数量根据传输信道的条件而变化。
17.根据权利要求10所述的NPU,其中,所述NPU被配置为从解码器接收关于一个帧中包括的所述多个增强层的数量的反馈。
18.根据权利要求10所述的NPU,其中,所述多个增强层根据所述多个增强层的层的索引以升序被包括在一个帧中。
19.一种用于解码视频和/或特征图的VCM解码器,所述VCM解码器包括:
用于人工神经网络的至少一个处理元件PE,所述至少一个PE被配置为接收和解码比特流,
其中,所述比特流是以帧为单位接收的,并且
其中,所述比特流的一个帧包括用于人工神经网络模型的权重、基本层的数据和多个增强层的数据。
20.一种用于编码视频和/或特征图的VCM编码器,所述VCM编码器包括:
用于人工神经网络的至少一个处理元件PE,所述至少一个PE被配置为对输入视频或特征图进行编码并将编码的输入视频或特征图作为比特流进行发送,
其中,所述至少一个PE还被配置为以帧为单位发送所述比特流,并且
其中,所述比特流的一个帧包括用于人工神经网络模型的权重、基本层的数据和多个增强层的数据。
CN202211215917.4A 2022-06-29 2022-09-30 用于解码/编码视频的神经处理单元及其装置 Pending CN117351101A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2022-0079596 2022-06-29
KR1020220079596A KR20240002416A (ko) 2022-06-29 2022-06-29 Npu를 이용한 머신 분석을 위한 비트스트림 포맷

Publications (1)

Publication Number Publication Date
CN117351101A true CN117351101A (zh) 2024-01-05

Family

ID=87767232

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211215917.4A Pending CN117351101A (zh) 2022-06-29 2022-09-30 用于解码/编码视频的神经处理单元及其装置

Country Status (3)

Country Link
US (2) US11743477B1 (zh)
KR (1) KR20240002416A (zh)
CN (1) CN117351101A (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200111948A (ko) * 2019-03-20 2020-10-05 삼성전자주식회사 인공 신경망을 처리하는 방법 및 이를 위한 전자 장치
US11210815B2 (en) * 2019-08-09 2021-12-28 Intel Corporation Point cloud playback mechanism
US11943460B2 (en) * 2021-01-12 2024-03-26 Qualcomm Incorporated Variable bit rate compression using neural network models

Also Published As

Publication number Publication date
US20240007659A1 (en) 2024-01-04
US11743477B1 (en) 2023-08-29
KR20240002416A (ko) 2024-01-05

Similar Documents

Publication Publication Date Title
CN112585966B (zh) 以基于历史的运动向量为基础的帧间预测方法及其装置
Duan et al. Video coding for machines: A paradigm of collaborative compression and intelligent analytics
CN105453570A (zh) 用于下一代视频的对分区数据的内容自适应熵编码
TWI830107B (zh) 通過指示特徵圖資料進行編碼
CN110830803B (zh) 结合块匹配和串匹配的图像压缩方法
US20230276063A1 (en) Npu for encoding or decoding videostream format for machine analisys
US11677987B2 (en) Joint termination of bidirectional data blocks for parallel coding
TW202228081A (zh) 用於從位元流重建圖像及用於將圖像編碼到位元流中的方法及裝置、電腦程式產品
US11838519B2 (en) Image encoding/decoding method and apparatus for signaling image feature information, and method for transmitting bitstream
CN116671106A (zh) 使用分割信息的信令解码
CN116708824A (zh) 编解码设备、存储介质和数据发送设备
US20230362378A1 (en) Video coding method and apparatus
CN113767625A (zh) 基于mpm列表的帧内预测方法及其设备
CN116648716A (zh) 通过指示特征图数据进行解码
WO2023132919A1 (en) Scalable framework for point cloud compression
CN109246430A (zh) 虚拟现实360度视频快速帧内预测和cu划分提前决策
US11893783B2 (en) Apparatus and method for transceiving feature map extracted using MPEG-VCM
JP2024513693A (ja) ピクチャデータ処理ニューラルネットワークに入力される補助情報の構成可能な位置
US11743477B1 (en) Video-stream format for machine analysis using NPU
US11831887B1 (en) Scalable video coding for machine
US20240089475A1 (en) Distributed computational system and method for artificial neural network
JP2024511587A (ja) ニューラルネットワークベースのピクチャ処理における補助情報の独立した配置
KR20240030922A (ko) Mpeg-vcm에 기반하여 인공신경망을 분산 처리하는 npu 및 방법
US20240187599A1 (en) Image decoding method and apparatus therefor
CN118176728A (zh) 特征编码/解码方法和装置以及存储比特流的记录介质

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