CN113630375A - 使用四叉树方法的参数的压缩设备及方法 - Google Patents
使用四叉树方法的参数的压缩设备及方法 Download PDFInfo
- Publication number
- CN113630375A CN113630375A CN202110491385.6A CN202110491385A CN113630375A CN 113630375 A CN113630375 A CN 113630375A CN 202110491385 A CN202110491385 A CN 202110491385A CN 113630375 A CN113630375 A CN 113630375A
- Authority
- CN
- China
- Prior art keywords
- tensor
- parameter
- zero
- value
- pixels
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3066—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
- H03M7/405—Tree adaptation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3071—Prediction
- H03M7/3075—Space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种被配置为对包括多个像元的张量进行压缩的设备包括:四叉树生成器,所述四叉树生成器被配置为生成搜索包括在所述张量中的非零像元的四叉树,并从所述四叉树提取至少一个参数;模式选择器,所述模式选择器被配置为基于所述至少一个参数来确定压缩模式;以及比特流生成器,所述比特流生成器被配置为通过基于所述压缩模式对所述张量进行压缩来生成比特流。
Description
相关申请的交叉引用
本申请要求于2020年5月7日在韩国知识产权局提交的韩国专利申请No.10-2020-0054770号的优先权的权益,其全部公开内容通过引用合并于此。
技术领域
本发明构思涉及一种压缩数据的设备和方法,并且更具体地,涉及一种通过使用神经网络的四叉树方法的参数压缩张量的设备和方法。
背景技术
利用对生物大脑进行建模的计算架构来实现神经网络。由于神经网络处理器对大量输入数据执行大量计算,因此需要数据的快速处理、存储和读取。
在神经网络结构中使用张量的概念。张量是向量的一种广义表示方法,一个张量可以包括多个权重和特征图。神经网络可以将张量用作计算、存储和/或压缩的基本处理单元。
发明内容
本发明构思提供一种有效压缩张量的神经张量压缩器,包括该神经张量压缩器的神经网络处理器以及该神经网络处理器的操作方法。
本发明构思提供一种考虑数据特性的量化方法。
根据本发明构思的一方面,提供了一种被配置为对包括多个像元的张量进行压缩的设备,所述设备包括:四叉树生成器,所述四叉树生成器被配置为生成搜索包括在所述张量中的非零像元的四叉树,并从所述四叉树提取至少一个参数;模式选择器,所述模式选择器被配置为基于所述至少一个参数来确定压缩模式;以及比特流生成器,所述比特流生成器被配置为通过基于所述压缩模式对所述张量进行压缩来生成比特流。
根据本发明构思的另一方面,提供了一种神经网络处理器,所述神经网络处理器包括:算术电路,所述算术电路被配置为通过使用神经网络对输入数据执行计算来生成包括多个像元的张量;以及神经张量压缩器,所述神经张量压缩器被配置为通过对所述张量进行压缩来输出比特流,其中,所述神经张量压缩器还被配置为:生成与重复空间划分方法相对应的四叉树,以搜索包括在所述张量中的非零像元,从所述四叉树提取至少一个参数,并基于所述至少一个参数确定所述张量的压缩模式。
根据本发明构思的另一方面,提供了一种方法,所述方法包括:接收张量,所述张量是对特征图和权重执行重复算术计算的结果;提取至少一个参数,所述至少一个参数是对所述张量进行重复空间划分以压缩包括在所述张量中的多个像元之中的零像元的结果;基于所述至少一个参数确定压缩模式;以及基于所述压缩模式输出比特流。
根据本发明构思的另一方面,提供了一种神经网络处理器的压缩方法,所述神经网络处理器被配置为通过使用神经网络对特征图和权重执行计算,所述方法包括:接收作为所述计算的结果的张量,所述张量包括多个像元;基于所述多个像元之中的像元的最大值来设置所述张量的量化范围;基于所述量化范围选择性地对所述张量进行量化;以及对量化后的所述张量进行压缩。
附图说明
通过以下结合附图的详细描述,将更清楚地理解本发明构思的实施例,在附图中:
图1是根据本发明构思的示例实施例的外部存储器和神经网络处理器的框图;
图2是根据本发明构思的示例实施例的神经张量压缩器的框图;
图3A和图3B是示出根据本发明构思的示例实施例的在四叉树生成器中执行的基于四叉树的压缩方法的示图;
图4是根据本发明构思的示例实施例的压缩模式的确定方法的流程图;
图5是根据本发明构思的示例实施例的比特流的结构图;
图6是根据本发明构思的示例实施例的神经张量压缩器的操作方法的流程图;
图7是根据本发明构思的示例实施例的神经张量压缩器的操作方法的流程图;
图8是根据本发明构思的示例实施例的神经网络的示图;
图9是根据本发明构思的示例实施例的神经网络的卷积计算的示图;
图10是根据本发明构思的示例实施例的还包括量化器的神经张量压缩器的框图;
图11是根据本发明构思的示例实施例的根据像元值的像元分布的示图;
图12是根据本发明构思的示例实施例的量化器的操作方法的流程图;
图13是根据本发明构思的示例实施例的神经张量压缩器的操作方法的流程图;
图14是根据本发明构思的示例实施例的神经张量压缩器的操作方法的流程图;
图15是根据本发明构思的示例实施例的神经张量压缩器的操作方法的流程图;以及
图16是根据本发明构思的示例实施例的电子***的框图。
具体实施方式
在下文中,将参照附图详细描述本发明构思的实施例。在附图中,相同的标记始终表示相同的元素。图1是根据本发明构思的示例实施例的包括神经网络处理器100和外部存储器300的电子设备10的框图。
电子设备10可以通过基于神经网络实时分析输入数据来提取有效信息,基于提取到的信息确定状况,或者控制包括在电子设备10中的至少一个组件。例如,电子设备10可以应用于无人机、高级驾驶员辅助***(ADAS)、机器人设备、智能电视、智能电话、医疗设备、移动设备、图像显示设备、测量设备、物联网(IoT)设备等,并且另外地,可以用作各种电子设备。
电子设备10可以包括神经网络处理器100和外部存储器300。然而,实施例不限于此,并且还可以包括至少一个知识产权(IP)块。例如,除了神经网络处理器100和外部存储器300之外,电子设备10还可以包括需要对神经网络处理器100进行处理的至少一个IP块,诸如存储器装置(storage)和传感器。
神经网络处理器100可以生成神经网络,训练(或学习)神经网络,基于接收到的输入数据执行计算,并且基于操作结果生成信息信号,或者重新训练神经网络。神经网络的模型可以包括诸如以下各种模型:例如,诸如GoogleNet、AlexNet和VGG网络的卷积神经网络(CNN),区域(R)CNN(RCNN),R建议网络(RPN,R proposal network),递归神经网络(RNN,recurrent neural network),基于堆栈(S)的深度神经网络(DNN)(SDNN),状态空间(SS)DNN(SSDNN),反卷积网络,深度信念网络(DBN),受限玻尔兹曼机(RBM),全卷积网络,长短期记忆(LSTM)网络和分类网络,但不限于此。神经网络处理器100可以包括一个或更多个处理器(例如,中央处理单元等),其用于根据神经网络的模型执行计算。
神经网络处理器100可以包括用于存储与神经网络的模型相对应的程序的单独存储器作为内部存储器。神经网络处理器100也可以称为神经网络处理设备、神经网络集成电路、神经网络处理单元(NPU)等。
根据示例实施例,由神经网络处理器100生成的信息信号可以包括诸如以下各种类型的识别信号中的至少一种:语音识别信号、目标识别信号、图像识别信号和生物特征信息识别信号。
在示例实施例中,神经网络处理器100可以接收包括在视频流中的帧数据作为输入数据,并且从接收到的帧数据生成由帧数据表示的图像中包括的对象的识别信号。例如,神经网络处理器100可以基于输入数据生成面部识别信号,该输入数据是由相机提供的帧数据。
在示例实施例中,神经网络处理器100可以接收包括在音频流中的频率数据作为输入数据,并生成从频率数据提取的语音的语音识别信号。然而,作为另一示例,本发明构思不限于此,神经网络处理器100可以接收各种类型的输入数据,并根据输入数据生成识别信号。
因为由于神经网络的计算特性而生成许多具有零值的数据,因此神经网络处理器100可以通过去除具有零值的数据来压缩数据。
根据本发明构思的示例实施例,神经网络处理器100可以在卷积计算中使用的输入特征图数据中包括的多个像元(cell)之中,去除具有零作为数据值的零像元,并且通过使用不具有0作为数据值的非零像元的数据值以及使用非零像元的位置信息来压缩数据。神经网络处理器100可以通过压缩数据来提高处理、存储、加载和读取数据的速度。另外,神经网络处理器100可以通过将压缩数据存储在外部存储器300中或者从外部存储器300加载压缩数据来提高数据输入/输出速度。
神经网络处理器100可以包括神经张量解压缩器110、内部存储器120、算术电路130和神经张量压缩器140。
神经张量解压缩器110可以将以压缩形式存储的数据加载到外部存储器300中,并对数据进行解压缩。在示例实施例中,神经张量解压缩器110可以以逆序,对已经由神经张量压缩器140压缩的数据进行解压缩。例如,神经张量压缩器140可以压缩数据,并且神经张量解压器110可以以由神经张量压缩器140执行的压缩过程的逆序,对压缩数据进行解压缩。
在示例实施例中,神经张量解压缩器110可以通过参考外部存储器300中已经存储了数据的存储地址来确定数据已经被压缩的压缩算法,并且可以基于所确定的压缩算法对压缩数据进行解压缩。外部存储器300可以包括与压缩模式相对应的存储区域。例如,外部存储器300可以包括与第一压缩模式相对应的第一存储区域、与第二压缩模式相对应的第二存储区域以及与第三压缩模式相对应的第三存储区域。神经张量解压缩器110可以从加载数据的存储区域(即,存储区域的存储地址)确定压缩模式,并且可以根据压缩模式来应用解码方法。根据本发明构思的技术思想,因为可以根据存储区域对数据进行解压缩,所以所存储的比特流可以不包括压缩模式的比特信息。解压缩数据可以被临时存储在内部存储器120中。
内部存储器120可以临时存储解压缩数据,或者临时存储从算术电路130输出的计算结果(例如,张量)。
内部存储器120可以临时存储正在使用的数据,以在神经网络处理器100 中进行快速数据处理。因为在神经网络处理器100与布置在神经网络处理器100外部的外部存储器300之间的数据处理带宽受到限制,所以神经网络处理器100可以单独地包括内部存储器120以进行快速数据处理。在示例实施例中,内部存储器120可以具有比外部存储器300快的处理速度和高的稳定性,但是不限于此。例如,内部存储器120可以包括静态随机存取存储器(RAM)(SRAM),而外部存储器300可以包括动态RAM(DRAM)和同步DRAM(SDRAM)。
算术电路130可以从内部存储器120接收包括输入特征图和权重的输入数据。算术电路130可以通过使用接收到的输入特征图和权重执行卷积计算来生成张量。张量可以包括特征图和权重。
算术电路130可以对输入特征图和权重重复执行算术计算。算术电路130可以执行乘法、除法、加法、减法和逻辑计算,并且可以被称为乘法累加器(MAC)。算术电路130可以利用输入特征图和权重的算术计算的组合来解决复杂的数学计算(例如,微分和积分)。
神经张量压缩器140可以经由内部存储器120加载从算术电路130输出的计算结果。从算术电路130输出的计算结果可以称为张量。张量可以是向量的广义表示,并且可以包括多个像元。在示例实施例中,多个像元可以通过以矩阵形式排列而构成特征图,并且取决于神经网络的深度可以存在多个特征图。神经网络处理器100可以以张量为单位处理数据。神经张量压缩器140可以压缩张量,并将压缩结果存储在外部存储器300中。
在示例实施例中,神经张量压缩器140可以将生成的比特流输出到与压缩模式相对应的存储区域中。如上所述,外部存储器300可以包括与压缩模式相对应的存储区域。例如,外部存储器300可以包括与第一压缩模式相对应的第一存储区域、与第二压缩模式相对应的第二存储区域以及与第三压缩模式相对应的第三存储区域。例如,基于第一压缩模式的比特流可以被输出到第一存储区域,基于第二压缩模式的比特流可以被输出到第二存储区域,并且基于第三压缩模式的比特流可以被输出到第三存储区域。根据本发明构思的技术思想,因为可以响应于压缩模式而将数据存储在不同的空间中,所以比特流可以不包括压缩模式的比特信息。
神经张量解压缩器110、算术电路130和神经张量压缩器140可以利用处理电路(例如,包括逻辑电路的硬件)实现,或者可以利用硬件和软件的组合(例如,运行执行压缩操作的软件的处理器)实现。特别地,处理电路可以利用以下项来实现:中央处理单元(CPU),执行算术和逻辑计算、移位等的算术逻辑单元(ALU),数字信号处理器(DSP),微处理器、专用集成电路(ASIC)等,但不限于此。
为了便于描述,在本说明书中,包括在张量中的多个像元之中具有0值作为数据值的像元可以被称为零像元,并且多个像元之中具有0之外的值作为数据值的像元可以被称为非零像元。由于神经网络的计算特性,张量中存在的零像元的比率会很高。
图2是根据本发明构思的示例实施例的神经张量压缩器140的框图。
神经张量压缩器140可以包括四叉树生成器141、模式选择器143和比特流生成器145。
四叉树生成器141可以生成用于搜索包括在张量中的非零像元的四叉树。四叉树可以是将空间分层地划分成四个正方形的数据结构。在示例实施例中,四叉树生成器141可以通过将张量在空间上重复地划分为4个区域来将不存在非零像元的区域指定为0,并且将存在非零像元的区域指定为1。包括在被指定为0的区域中的所有像元可以具有像元值“0”并且可以被压缩,并且包括在被指定为1的区域中的像元可以在空间上被再次划分,以在下一个较低层中搜索非零像元。四叉树生成器141可以通过针对张量生成四叉树,来提取表示关于非零像元的最大比特宽度的信息的最大比特数据、表示关于非零像元的位置信息的像元位置数据、以及至少一个张量数据,其中,至少一个张量数据包括表示非零像元的值的非零数据。
四叉树生成器141可以包括非零缓冲器(未示出)。非零缓冲器可以缓冲包括在输入张量中的非零像元。
四叉树生成器141可以从所生成的四叉树提取至少一个参数。在示例实施例中,四叉树生成器141可以提取与作为四叉树的压缩结果而生成的比特的数目相对应的四叉树比特数QTB的参数,以及与非零像元的最大比特宽度相对应的非零像元比特宽度NZW的参数,以及与包括在张量中的零像元的数目或零计数相对应的零计数ZC的参数。
在示例实施例中,可以生成四叉树比特数QTB作为四叉树结果,并且四叉树比特数QTB可以对应于表示非零像元的位置信息的比特的总数目。另外,当非零像元之中具有最大值的像元以二进制表示时,非零像元比特宽度NZW(在下文也称为“非零比特宽度NZW”)可以对应于从最低有效位到不为0的最高数位的比特数。另外,零计数ZC可以对应于多个像元之中的零像元的数目。四叉树生成器141可以输出四叉树比特数QTB、零计数ZC和非零比特宽度NZW。
参照图3A和图3B详细描述从张量生成四叉树的方法和提取参数的方法。
模式选择器143可以基于从四叉树生成器141接收的四叉树比特数QTB、零计数ZC和非零比特宽度NZW中的至少一者来选择压缩模式。在示例实施例中,模式选择器143可以基于四叉树比特数QTB来确定出是否选择了四叉树压缩模式。在示例实施例中,模式选择器143可以基于零计数ZC和非零比特宽度NZW来选择零位图压缩模式和固定长度压缩模式之一。模式选择器143可以输出控制(commanding)压缩模式的模式信号MODE。参照图4详细描述基于参数选择压缩模式的方法。
比特流生成器145可以接收张量TENSOR,基于模式信号MODE对接收到的张量TENSOR进行压缩,并且输出压缩结果作为比特流BITSTREAM。在示例实施例中,比特流生成器145可以基于模式信号MODE生成比特流BITSTREAM。模式信号MODE可以包括控制四叉树压缩模式的信号、零位图压缩模式信号和固定长度压缩模式信号中的至少一者。
比特流生成器145可以基于控制四叉树压缩模式的模式信号MODE,基于四叉树对提供的张量TENSOR进行压缩。然而,本发明构思不限于此,比特流生成器145可以基于控制四叉树压缩模式的模式信号MODE,通过使用四叉树生成器141中使用的结果来压缩张量TENSOR而无需重新生成四叉树。
因为在许多情况下,将负数转换为0的整流线性单元(ReLU)操作应用于神经网络的卷积计算,所以许多零像元可能分布在特征图中。当非零像元聚集在特定区域中时,即使他们出现在特征图中,压缩效率也不会明显降低。然而,当非零像元分散地分布在特征图中时,会发生经过四叉树压缩的数据大小大于未压缩数据的大小的开销现象。
与不考虑零像元的压缩相比,根据本发明构思的技术思想的神经张量压缩器140和包括神经张量压缩器140的神经网络处理器100通过对其特性在于具有零值的像元数很少的张量TENSOR进行自适应压缩来提高压缩效率。另外,因为根据本发明构思的技术思想的神经张量压缩器140可以通过使用基于四叉树压缩张量TENSOR时提取的参数来确定压缩模式,所以可以使确定压缩模式的速度更快,因此可以提高压缩速度,所以其实现可以很容易。
另外,根据本发明构思的技术思想的神经张量压缩器140可以考虑包括在张量中的多个像元主要分布在低像元值区域中的特性,通过仅量化多个像元中的部分像元,来减少数据丢失并提高压缩效率。
图3A和图3B是示出根据本发明构思的示例实施例的在四叉树生成器141中执行的基于四叉树的压缩方法的示图。与图2一起参照图3A和图3B。
参照图3A,张量TENSOR可以包括多个特征图FM,并且可以通过以矩阵形式布置作为像元CELL的集合的像元组CG来生成每个特征图FM。例如,可以将以2×2矩阵形式布置的4个像元CELL的集合称为像元组CG,并且可以将以2×2矩阵形式布置的4个像元组CG的集合称为特征图FM,并且可以将四个特征图FM的集合称为张量TENSOR。然而,本发明构思不限于此,在像元组CG中,像元CELL可以以4×4矩阵形式布置,并且在特征图FM中,像元组CG可以以4×4矩阵形式布置。矩阵形式可以变化。
像元CELL可以是表示数据的最小单位,并且像元值可以以十六进制表示。在示例实施例中,因为一个像元CELL可以由两位的十六进制数表示,所以由像元CELL表示的数据可以包括8比特(即1字节)。然而,本发明构思不限于此,可以根据诸如10比特或12比特的数据表示格式来不同地配置由像元CELL表示的数据。
在像元组CG中,四个相邻像元CELL可以以2×2矩阵的形式布置,并且像元组CG的大小可以是4字节。在示例实施例中,像元组CG可以被称为特征图FM的子区域,该子区域是在特征图FM经过第一四叉树划分时生成的。
可以通过以4×4矩阵形式布置多个像元CELL来生成特征图FM。可以以四个特征图FM的布置形成张量TENSOR。然而,本发明构思不限于此,并且可以以各种数目的特征图FM的阵列形成一个张量TENSOR。
根据示例实施例,包括在一个张量TENSOR中的像元的数目可以取决于神经网络的深度。例如,当神经网络的深度为3时,像元CELL的数目可以为64(即,43),这是在3个方向轴(即宽度方向轴、高度方向轴和通道方向轴)上分别具有4个像元CELL的结果。在这种情况下,特征图FM可以以在宽度上具有4个像元CELL以及在高度上具有4个像元CELL的4×4矩阵形式被布置,并且特征图FM的数目可以是4,这可以与在通道方向轴上的像元CELL的数目相同。
为了便于描述,示出了一个张量TENSOR中包括64个像元CELL,但是实施例不限于此。在示例实施例中,假设神经网络的深度为M,则一个张量TENSOR中包括的像元CELL的数目可以为N(即,4M)。例如,当神经网络的深度为4时,一个张量TENSOR中的像元CELL的数目可以为256,而当神经网络的深度为5时,一个张量TENSOR中的像元CELL的数目可以为1,024。
四叉树生成器(例如,图2中的四叉树生成器141)可以基于四叉树方法来压缩第一张量TENSOR1。四叉树生成器141可以在行方向上搜索第一张量TENSOR1以进行四叉树压缩。
四叉树生成器141可以确定第一压缩长度LENGTH1为1,该第一压缩长度LENGTH1是基于四叉树压缩的第一张量TENSOR1的长度。在示例实施例中,四叉树生成器141可以包括非零缓冲器(未显示)。非零缓冲器可以缓冲包括在输入张量中的非零像元。根据示例实施例,四叉树生成器141可以在行方向上搜索第一张量TENSOR1以进行四叉树压缩,结果,可以识别出不存在被缓冲的非零像元。分配给张量以表示在第一张量TENSOR1中不存在非零像元(即,所有像元都是零像元)的最小长度可以是1字节。结果,第一压缩长度LENGTH1为1可以理解为已经分配了1字节来指示不存在非零像元。
根据示例实施例,分配给第一压缩长度LENGTH1的数据的大小可以是6比特。第一张量TENSOR1中可以包括64(即,43)个像元,并且一个像元的大小可以为1字节,因此,当所有像元都是非零像元时,第一张量TENSOR1的长度可以多达64(即,26)字节。
结果,可以以6比特表示关于从1字节至64字节的信息,并且可以通过二进制数000000(2)表示第一压缩长度LENGTH1。因为1字节包括8比特,所以其余两比特可以进行零填充。
因为第一张量TENSOR1中包括的非零像元不存在,所以第一非零比特宽度NZW1和第一非零值NZV1可以全部为0,第一非零比特宽度NZW1是包括在第一张量TENSOR1中的最大非零像元的比特长度,第一非零值NZV1是非零像元值的值。因为第一压缩长度LENGTH1为1的信息对应于第一张量TENSOR1中不包括非零像元的信息,所以第一非零比特宽度NZW1和作为非零像元的值的第一非零值NZV1的比特可以不包括在压缩数据中。
参照图3B,第二张量TENSOR2可以包括四个特征图(例如,FM1、FM2、FM3和FM4)。四叉树生成器(例如,图2中的四叉树生成器141)可以在行方向上搜索第二张量TENSOR2以进行四叉树压缩。非零缓冲器可以缓冲第二张量TENSOR2中的非零像元。作为缓冲的结果,因为包括在第二张量TENSOR2中的非零像元的最大值是十六进制的“0E”(或者二进制的00001110(2)),所以非零比特宽度NZW可以为4。
在示例实施例中,第二张量TENSOR2中的第一特征图FM1、第二特征图FM2和第四特征图FM4的像元值可以全部为0,并且仅第三特征图FM3可以具有非零像元(四叉树:0010(2))。第一特征图FM1、第二特征图FM2和第四特征图FM4均可以被压缩成1字节(00000000(2)),如图3A所示。
在示例实施例中,可以将四叉树应用于包括非零像元的第三特征图FM3。作为应用四叉树的结果,第三特征图FM3可以相对于中心被划分成四个相等的部分(例如,左上部分、右上部分、左下部分和右下部分),并且四个等分的部分可以分别是第一像元组CG1、第二像元组CG2、第三像元组CG3和第四像元组CG4。在第一像元组CG1和第二像元组CG2中可以不存在非零像元,而在第三像元组CG3和第四像元组CG4中可以存在非零像元(四叉树:0011(2))。可以在不存在非零像元的第一像元组CG1和第二像元组CG2中终止压缩,并且可以将四叉树再次应用于存在非零像元的第三像元组CG3 (包括“0E”)和第四像元组CG4(包括“06”)。仅第三像元组CG3的左上像元可以具有非零(四叉树:1000(2)),并且仅第四像元组CG4的左下像元可以具有非零(四叉树:0010(2))。因为已经到达第三像元组CG3和第四像元组CG4的非零像元,所以可以终止四叉树压缩。因为第三像元组CG3的非零值为十六进制的0E(即,0x0E),所以0E可以转换为二进制的1110(2)。因为第四像元组CG4的非零值为十六进制的06(即0x06),所以06可以转换为二进制的0110(2)。
根据本发明构思的技术思想的四叉树生成器141可以生成具有多个参数的四叉树作为四叉树压缩的结果。多个参数可以包括:压缩长度LENGTH,其是基于四叉树的张量的压缩长度;非零比特宽度NZW,其是包括在张量中的具有最大值的非零像元的比特宽度;零计数ZC,其是包括在张量中的多个像元中的零像元的数目;非零值NZV,其是非零像元值;以及四叉树比特数QTB,其是作为四叉树压缩的结果生成的比特的数目,但是本发明构思不限于此。
在将基于四叉树的压缩应用于张量TENSOR时,四叉树生成器141可以提取至少一个参数。
在示例实施例中,四叉树生成器141可以识别出在四叉树压缩中生成的比特的数目之和为33比特。33比特无法由4字节的空间表示,因此,四叉树生成器141可以确定第二压缩长度LENGTH2是5字节(即,000100(2))。因为5字节包括40比特,所以33比特之外的其余7比特可以进行零填充。
在示例实施例中,四叉树生成器141可以基于在非零缓冲器中缓冲的像元,确定第二非零比特宽度NZW2具有4比特。
在示例实施例中,因为作为四叉树压缩的结果已经生成了4个4比特,所以四叉树生成器141可以确定四叉树比特数QTB为16。四叉树比特数QTB可以在12至84的范围内。
在示例实施例中,四叉树生成器141可以提取零计数ZC。可以通过从包括在张量TENSOR中的多个像元CELL的数目减去在非零缓冲器中缓冲的非零数目来提取零计数ZC。
然而,本发明构思不限于非零缓冲器,并且可以根据作为四叉树压缩的结果而生成的比特来反向计算零计数ZC。例如,在作为四叉树压缩的结果已经生成的比特之中,最上层的比特可以是0010(2)。因为最上层的比特对应于非零是否在特征图FM中,所以0可以理解为表示一个特征图FM中包括的16个像元都是零像元。例如,三个“0”可以表示48个(即,16×3)零计数ZC。类似地,因为第二层的比特包括0011(2),存在两个“0”,并且第二层已经应用了一次四叉树,所以可以理解,每个0可以表示像元组的四个像元是零像元。例如,两个“0”可以表示零计数ZC为8(即,4×2)。类似地,因为第三层已经应用了两次四叉树,而第三层上的“0”的数目是6,所以可以理解,六个“0”表示6个像元是零像元。结果,可以反向计算出总的零计数ZC为62(即48+8+6)。
图4是根据本发明构思的示例实施例的压缩模式的确定方法的流程图。一起参照图2和图4。
当基于四叉树方法压缩张量TENSOR时,可以生成具有至少一个参数的四叉树。四叉树的参数可以包括:非零比特宽度NZW,其是包括在张量TENSOR中的具有最大值的非零像元的比特宽度;零计数ZC,其是包括在张量TENSOR中的多个像元之中的零像元的数目;以及四叉树比特数QTB,其是作为执行四叉树压缩的结果生成的比特的数目,但不限于此。
参照图4,模式选择器(例如,图2中的模式选择器143)可以将四叉树比特数QTB与包括在张量TENSOR中的像元数N进行比较,以确定出四叉树比特数QTB是否小于或等于像元数N(S11)。像元数N可以取决于神经网络的深度M,并且可以满足N=4M。
当四叉树比特数QTB小于或等于像元数N时(S11,是),可以基于四叉树方法来压缩张量TENSOR(S12)。
当四叉树比特数QTB大于像元数N时(S11,否),模式选择器143可以将非零比特宽度NZW和零计数ZC的乘积与像元数N进行比较,以确定出乘积是否大于像元数N(S13)。
当非零比特宽度NZW与零计数ZC的乘积大于像元数N时(S13,是),可以基于零位图方法来压缩张量TENSOR(S14)。零位图方法可以是这样的方法:将非零像元视为1,将零像元视为0,并且将包括关于非零像元和零像元的位置信息的前缀表用于压缩。
当非零比特宽度NZW与零计数ZC的乘积小于或等于像元数N(S13,否)时,可以基于固定长度方法来压缩张量TENSOR(S15)。固定长度方法可以是这样的方法:在不使用前缀表的情况下,将像元的长度固定为多个像元之中具有最大像元值的像元的比特宽度。
根据本发明构思的技术思想,需要将非零比特宽度NZW和零计数ZC的乘积与像元数N进行比较。可以参考下式。
(N+NZW×NZC)>(NZW×N) (式1)
左边的项可以对应于零位图方法,右边的项可以对应于固定长度方法。不等号的方向可以表示固定长度方法的压缩效率更好的情况。
式1可以总结如下。
N+NZW×(N-ZC)>NZW×N (式2)
式2可以总结如下。
N>NZW×ZC (式3)
总之,根据式3,模式选择器143可以将非零比特宽度NZW和零计数ZC的乘积与像元数N进行比较,并确定:当像元数N大于乘积时,固定长度方法的压缩效率更好。
稍后参照图5描述作为应用于四叉树方法、零位图方法和固定长度方法的压缩结果而生成的比特流。
图5是根据本发明构思的示例实施例的比特流的结构图。一起参照图2和图5。
参照图5中的(a),比特流生成器145可以生成零像元作为具有8比特大小的比特流。由于一个像元具有十六进制的2比特信息,因此一个像元的大小可以为8比特。零像元的像元值可以是0,并且当十进制的0转换为十六进制时,它可以表示为0x00。
参照图5中的(b),比特流生成器145可以生成未压缩的张量TENSOR作为大小为8×(N+1)的比特流。由于张量TENSOR中包括N个像元,并且一个像元的大小为8比特,因此可以生成8*N个像元的未压缩的比特流,另外,表示像元的最大值的8比特可以位于比特流的开头。例如,当像元的最大值为2时,最大值可以表示为十六进制的0x02,二进制的00000010(2),并且可以位于比特流开头的8比特中。
参照图5中的(c),比特流生成器145可以生成与由模式选择器143选择的四叉树方法相对应的比特流。根据示例实施例,当四叉树比特数QTB等于或小于像元目N时,可以生成图5中的(c)的比特流。
比特流生成器145可以将与张量TENSOR中包括的像元数N相对应的比特放置在比特流开头的6比特中。例如,当N等于64时,可以在6比特大小的空间中表示二进制数111111(2)(即,63(10))。
比特流生成器145可以在下一位置的1比特空间中写入标识四叉树是否已经被应用的1比特。
比特流生成器145可以将用于非零比特宽度NZW的比特放置在下一位置。由于像元具有8比特的信息,因此最大的非零比特宽度NZW也可以是8比特。当非零比特宽度NZW为1时,可以以比特为单位将000(2)(即,0=NZW-1)写入比特空间,而当非零比特宽度NZW为8时,以比特为单位写入111(2)(即7=NZW-1)。
比特流生成器145可以在下一位置的比特空间中写入用于四叉树比特数QTB的比特。在示例实施例中,当N为64时,作为四叉树压缩的结果而生成的比特的总数目的四叉树比特数QTB可以分布在12至84的范围内。因为图5中的(c)被确定为使得当四叉树比特数QTB小于或等于多个像元(即,N为64)时,由模式选择器143执行四叉树压缩,四叉树比特数QTB可以具有12至64的分布范围。
比特流生成器145可以在下一位置的比特空间中写入用于k个非零值NZV的比特。例如,比特流生成器145可以写入用于NZV 0至NZV k-1的比特。因为非零比特宽度NZW包括像元之中具有最大值的像元,所以每个非零值NZV可以通过仅使用与非零比特宽度NZW相对应的比特的数目来表示非零值NZV。
比特流生成器145可以执行零填充以使字节单位适配下一位置的比特空间。因为要进行零填充以适配字节单位,所以要进行零填充的比特数可以在0至7之间。
参照图5中的(d),比特流生成器145可以生成与模式选择器143选择的四叉树方法相对应的比特流。根据示例实施例,当四叉树比特数QTB以及非零比特宽度与零计数的乘积(NZW×ZC)都大于像元数N时,可以生成图5中的(d)的比特流。省略了与图5中的(c)的比特空间重复的描述。
与图5中的(c)所示的比特流相比,图5中的(d)所示的比特流可以示出由于写入了用于前缀表的比特而不是四叉树比特数QTB的比特并且写入了能够标识是否已经应用了灵活长度的比特而导致的比特流长度的差异。另外,与图5中的(c)所示的比特流相比,图5中的(d)所示的比特流的差异在于能够标识是否已经应用了四叉树的比特被写为0。前缀表可以通过将非零像元视为1并且将零像元视为0而包括64比特的信息,其中,64比特的信息包含关于非零像元和零像元的位置信息。
根据示例实施例,当四叉树比特数QTB超过64比特时,因为四叉树比特数QTB包括多达84比特,所以总是使用包括64比特的前缀表的零位图方法的压缩效率会更好。
参照图5中的(e),比特流生成器145可以生成与模式选择器143选择的固定长度方法相对应的比特流。根据示例实施例,当四叉树比特数QTB大于像元数N但是非零比特宽度与零计数的乘积(NZW×ZC)小于或等于像元数N时,可以生成图5中的(e)的比特流。省略了与图5中的(c)和图5中的(d)的比特空间重复的描述。
与图5中的(d)所示的比特流相比,图5中的(e)所示的比特流可以示出由于以下原因导致的差异:前缀表和非零值NZV未被使用,但是使用了固定长度的值,以及能够标识是否已经应用了灵活长度的比特为1。
根据示例实施例,当N为64并且它们中的大多数是非零像元时,因为没有必要提供位置信息,所以可以仅将64个像元之中的像元的最大值确定为非零比特宽度NZW,并且可以执行固定长度压缩。当非零比特宽度与零计数的乘积(NZW×ZC)小于或等于像元数N时,因为前缀表的64比特会产生开销,所以固定长度方法会更好。
图6是根据本发明构思的示例实施例的神经张量压缩器140的操作方法的流程图。
神经张量压缩器140可以接收张量,该张量是对特征图和权重重复进行算术运算的结果(S110)。
神经张量压缩器140可以提取作为四叉树压缩的结果的至少一个参数,在四叉树压缩中,通过在空间上对张量进行划分以压缩多个像元中的零像元(S120)。
神经张量压缩器140可以基于至少一个参数来确定压缩模式(S130)。
神经张量压缩器140可以基于压缩模式输出比特流(S140)。
图7是根据本发明构思的示例实施例的神经张量压缩器140的操作方法的流程图。
在操作S110之后,神经张量压缩器140可以提取作为四叉树压缩的结果而生成的四叉树比特数QTB(S121)。
神经张量压缩器140可以提取与多个像元之中具有最大像元值的非零像元的比特宽度相对应的非零比特宽度NZW(S122)。
神经张量压缩器140可以提取与多个像元之中具有零像元值的像元的数目相对应的零计数ZC(S123)。接下来,过程可以进行到操作S130。
图8是作为神经网络结构的示例的卷积神经网络结构的示图,图9是根据本发明构思的示例实施例的神经网络NN的卷积运算的示图。
参照图8,神经网络NN可以包括第一层L1至第n层Ln。第一层L1至第n层Ln均可以包括线性层或非线性层,并且在实施例中,至少一个线性层和至少一个非线性层可以组合并且可以称为单层。例如,线性层可以包括卷积层和全连接层,并且非线性层可以包括池化层和激活层。
例如,第一层L1可以是卷积层,第二层L2可以是池化层,而第n层Ln可以是作为输出层的全连接层。神经网络NN还可以包括激活层,并且还可以包括执行其他类型的操作的层。
第一层Ll至第n层Ln均可以接收输入数据(例如,图像帧)或在上一层上生成的特征图作为输入特征图,并通过对输入特征图进行计算生成输出特征图或识别信号REC。在这种情况下,特征图可以被称为表示输入数据的各种特性的数据。第一特征图FM1至第n特征图FMn可以具有例如二维矩阵或三维矩阵(或张量)的形状。第一特征图FM1至第n特征图FMn可以具有分别对应于x轴、y轴和z轴的宽度W(或列数)、高度H(或行数)和深度D。在这种情况下,深度D可以被称为通道数。
第一层L1可以通过将第一特征图FM1与权重图WM进行卷积来生成第二特征图FM2。权重图WM可以对第一特征图FM1进行过滤,并且也可以被称为过滤器(filter)或内核(kernel)。权重图WM的深度D(即,通道数)可以与第一特征图FM1的深度D(即,通道数)相同,并且权重图WM与第一特征图FM1的相同通道可以彼此卷积。权重图WM可以作为滑动窗口通过横穿第一特征图FM1而进行移动。移动量可以称为“步幅长度”或“步幅”。在每次移动期间,包括在权重图WM中的权重值可以乘以第一特征图FM1中的与权重图WM交叠的区域中的所有像元数据,并且将乘法的结果加在一起。包括在权重图WM中的每个权重值与第一特征图FM1交叠的区域中的第一特征图FM1的数据可以被称为提取数据。当第一特征图FM1和权重图WM彼此卷积时,可以生成第二特征图FM2的一个通道。尽管图8中示出了一个权重图WM,但是可以通过将多个权重图WM与第一特征图FM1进行充分卷积来生成第二特征图FM2的多个通道。例如,第二特征图FM2的通道数可以对应于权重图WM的数目。
第二层L2可以通过使用池化改变第二特征图FM2的空间大小来生成第三特征图FM3。池化可以被称为采样或下采样。二维池化窗口PW可以在第二特征图FM2上以池化窗口PW的大小为单位移动,并且可以从与池化窗口PW交叠的区域中的像元数据选择最大值(或像元数据的平均值)。因此,可以从第二特征图FM2生成空间大小已经改变了的第三特征图FM3。第三特征图FM3的通道数和第二特征图FM2的通道数可以彼此相同。
第n层Ln可以通过组合第n个特征图FMn的特征来对输入数据的类别CL进行分类。另外,第n层Ln可以生成与类别CL相对应的识别信号REC。在实施例中,输入数据可以对应于包括在视频流中的帧数据,并且第n层Ln可以通过基于由前一层提供的第n特征图FMn提取与包括在由帧数据指示的图像中的对象相对应的类别CL,来识别对象并生成与识别出的对象相对应的识别信号REC。
参照图9,输入特征图201可以包括D个通道,并且每个通道的输入特征图可以具有H行和W列的大小(D、H和W是自然数)。每个内核202可以具有R行和S列的大小(R和S是自然数),并且内核202可以包括与输入特征图201的通道数(或深度)D相对应的通道数。可以通过在输入特征图201与内核202之间执行三维卷积运算来生成输出特征图203,并且根据卷积运算,输出特征图203可以包括Y个通道(Y是自然数)。
可以参照图9描述通过在一个输入特征图201与一个内核202之间应用卷积运算来生成输出特征图203的过程,并且可以通过在所有通道的输入特征图201与所有通道的内核202之间执行参考图9描述的二维卷积运算来生成所有通道的输出特征图203。
图10是根据本发明构思的示例实施例的进一步包括量化器247的神经张量压缩器240的框图。
神经张量压缩器240可以包括四叉树生成器241、模式选择器243、比特流生成器245和量化器247。量化器247可以接收张量TENSOR,对接收到的张量TENSOR进行量化,并将量化张量TENSOR_Q提供给四叉树生成器241。四叉树生成器241可以接收量化张量TENSOR_Q,并且通过将四叉树方法应用于量化张量TENSOR_Q来生成四叉树。图10中的四叉树生成器241、模式选择器243和比特流生成器245分别对应于图2中的四叉树生成器141、模式选择器143和比特流生成器145,因此省略重复描述。
因为在许多情况下,ReLU计算被应用于神经网络NN的卷积计算,所以许多零像元可以分布在特征图和包括特征图的张量中。当存在许多零像元时,可以假设包括在张量中的大多数像元值一起相对接近于0。
根据本发明构思的技术思想,量化器247可以执行非均匀量化。在示例实施例中,量化器247可以通过使用张量具有许多零像元的特性来执行非均匀量化。
对于非均匀量化,可以应用下式4。
参照式4,非均匀量化值Qout可以对应于通过如下操作获得的值:将量化步长Qstep除以2与输入相加,将十进制向下舍入(rounded-down)的结果除以量化步长Qstep,并且将偏移量与除法结果相加。然而,本发明构思不限于此,并且可以应用考虑张量特性的各种非均匀量化方法。
根据本发明构思的技术思想的量化器247可以选择性地执行量化。在示例实施例中,当对神经网络处理器100的精度要求很高时,量化器247可以在不执行量化的情况下将张量TENSOR传递给四叉树生成器241。例如,在不执行量化时,量化张量TENSOR_Q可以与张量TENSOR相同。在示例实施例中,在神经网络处理器100以低功耗模式操作或神经网络处理器100安装在相对便宜的电子设备上的情况下,量化器247可以执行非均匀量化。
在执行均匀量化时,可能会在低像元值中发生数据丢失,这可能会对精度产生相对敏感的影响。当执行非均匀量化时,根据本发明构思的技术思想的神经张量压缩器240可以不对与数据处理精度有关的具有低像元值的像元执行量化,并且可以通过对具有高像元值的像元执行量化并减少数据丢失来大大降低数据压缩率。
图11是根据本发明构思的示例实施例的根据像元值的像元分布的曲线图。曲线图的横轴可以表示像元值,而纵轴可以表示像元数。
参照图11,假设包括在张量中的多个像元中的每个像元具有至多255的像元值。可以通过将255或最大像元值除以4来对量化步长Qstep进行分类。例如,量化范围可以被划分成第一范围(其中像元值为0至63)的量化步长1(即,Qstep为1)和偏移量0,第二范围(其中像元值为64至127)的量化步长2(即,Qstep为2)和偏移量32,以及第三范围(其中像元值为128至255)的量化步长4(即,Qstep为4)和偏移量64。然而,实施例不限于此。
根据示例实施例,因为对于第一范围,量化步长为1(或Qstep为1)并且偏移量为0,所以非均匀量化值可以包括值0至63。
根据示例实施例,因为对于第二范围,量化步长为2(或Qstep为2)并且偏移量为32,所以非均匀量化值可以包括值64至95。
根据示例实施例,因为对于第三范围,量化步长为4(或Qstep为4)并且偏移量为64,所以非均匀量化值可以包括值96至127。
根据本发明构思的技术构思的量化器(例如,图10中的量化器247)可以将具有介于0与255之间的值的8比特像元值量化为具有介于0与127之间的值的7比特像元值。因为非均匀量化会忽略对许多像元具有低像元值的范围的量化,所以与均匀量化相比,可以减少数据丢失。
图12是根据本发明构思的示例实施例的量化器247的操作方法的流程图。一起参照图10。
量化器247可以接收张量TENSOR(S21)。张量TENSOR可以包括64个8比特大小的像元。
量化器247可以划分8比特大小的像元值的范围(S22)。量化器247可以识别像元值是否小于64(S22)。当像元值小于64时(S22,是),该像元不被量化并且可以被提供给四叉树生成器241。当像元值是64或更大时(S22,否),该过程可以进行到操作S23。
量化器247可以识别像元值是否为128或更大(S23)。
当像元值小于128时(S23,否),量化器247可以将像元值除以2(S24),并且将偏移量32与经过除法的像元值相加(S25)。
当像元值是128或更大时(S23,是),量化器247可以将像元值除以4(S26),并且将偏移量64与经过除法的像元值相加(S27)。
图13是根据本发明构思的示例实施例的神经张量压缩器240的操作方法的流程图。一起参照图10和图13。
神经张量压缩器240可以接收作为通过使用神经网络对特征图和权重进行计算的结果的包括多个像元的张量(S210)。
神经张量压缩器240可以基于多个像元之中具有最大值的像元来设置张量的量化范围(S220)。
神经张量压缩器240可以基于量化范围来选择性地对张量进行量化(S230)。在示例实施例中,神经张量压缩器240可以对包括在第二范围内的像元进行量化,而不对包括在第一范围内的像元进行量化。例如,第一范围可以包括低像元值区域,并且第二范围可以包括相对高像元值区域,但是不限于此。
神经张量压缩器240可以通过将四叉树数据结构应用于量化张量TENSOR_Q来提取多个参数(S240)。
神经张量压缩器240可以基于多个参数(例如,NZW、ZC和QTB)来确定出是否已经生成了基于四叉树的比特流(S250)。
图14是根据本发明构思的示例实施例的神经张量压缩器240的操作方法的流程图。
在操作S210之后,量化器247可以计算通过将像元的最大值除以4并进行十进制向下舍入而获得的第一值(S221)。
量化器247可以计算通过将像元的最大值除以2并进行十进制向下舍入而获得的第二值(S222)。
量化器247可以将第一量化范围设置为大于或等于0并且小于或等于第一值(S223)。
量化器247可以将第二量化范围设置为大于或等于第一值并且小于或等于第二值(S224)。
量化器247可以将第三量化范围设置为大于或等于第二值并且小于或等于最大像元值(S225)。
量化器247可以对应于像元值将多个像元分类到量化范围(S226)。
接下来,过程可以进行到操作S230。
图15是根据本发明构思的示例实施例的神经张量压缩器240的操作方法的流程图。
在操作S220之后,量化器247可以将包括在第二量化范围中的像元的像元值除以2,并且将除法结果和第一偏移量相加以防止与第一量化范围交叠(S231)。
量化器247可以将包括在第三量化范围中的像元的像元值除以4,并且将除法结果和第二偏移量相加以防止与第二量化范围交叠(S232)。
接下来,过程可以进行到操作S240。
图16是根据本发明构思的示例实施例的电子***1000的框图。
参照图16,电子***1000可以基于神经网络NN实时地分析输入数据,提取有效信息,基于所提取的信息进行状况确定,并且控制电子***1000的组件。例如,电子***1000可以应用于无人机、ADAS、机器人设备、智能电视、智能电话、医疗设备、移动设备、图像显示设备、测量设备、物联网(IoT)设备等,并且另外地,电子***1000可以安装在各种电子设备之一上。
电子***1000除了图示的功能单元之外还可以包括各种类型的知识产权(IP)块。如本文所使用的,知识产权(IP)或IP块也可以被称为知识产权核,并且可以用于表示向***提供宏功能的独立的分立单元。本领域技术人员将理解,所公开的知识产权或知识产权核是通过使用基于半导体的制造技术或其他制造技术形成的诸如以下项的电子(或光学)电路物理实现的:逻辑电路、分立组件、微处理器、硬连线电路、存储元件、布线连接、总线、通信链路等。例如,IP块可以包括处理单元、处理单元中包括的多个核、多格式编解码器(MFC)、视频模块(例如,相机接口、联合摄影专家组(JPEG))处理器、视频处理器、混频器等)、3D图形核、音频***、驱动器、显示驱动器、易失性存储器、非易失性存储器、存储控制器、输入和输出接口块、高速缓存存储器等。
用于连接IP的技术可以包括基于***总线的连接方法。例如,作为总线的标准规范,可以应用高级RISC机器(ARM)的高级微控制器总线架构(AMBA)协议。AMBA协议的总线类型可以包括高级高性能总线(AHB)、高级***总线(APB)、高级可扩展接口(AXI)、AXI4、AXI一致性扩展(ACE)等。在上述总线类型中,AXI可以是IP之间的接口协议,并且可以提供多个未完成地址(multiple outstanding address)、数据交织等功能。另外,还可以应用其他类型的协议,例如SONIC uNetwork、IBM CoreConnect和OCP-IP的开放核协议。
神经网络处理器(或神经处理单元(NPU))1100可以经由***总线接收各种类型的输入数据,并且基于输入数据生成信息信号。例如,NPU 1100可以通过对输入数据执行神经网络运算来生成信息信号,并且神经网络运算可以包括卷积运算。
存储器(memory)1300可以是用于存储数据的存储区域,并且可以存储例如操作***(OS)、各种程序和各种数据。存储器1300可以是动态随机存取存储器(RAM)(DRAM),但是不限于此。存储器1300可以包括易失性存储器。易失性存储器可以包括DRAM、静态RAM(SRAM)、同步DRAM(SDRAM)、相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FeRAM)等。
CPU 1500可以控制电子***1000的所有操作,例如,CPU 1500可以包括中央处理单元(CPU)。CPU 1500可以包括一个处理器核(或单个核)或多个处理器核(或多核)。CPU1500可以处理或运行存储在存储器1300中的程序和/或数据。例如,CPU 1500可以通过运行存储在存储器1300中的程序来控制电子***1000的功能。
存储装置(storage)1700可以是用于存储数据的存储位置,并且可以存储各种程序和各种数据。存储装置1700可以包括非易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除PROM(EEPROM)、闪存、相变随机存取存储器(RAM)(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)、铁电RAM(FRAM)等。此外,在实施例中,存储装置1700可以包括硬盘驱动器(HDD)、固态硬盘(SSD)、紧凑型闪存(CF)存储装置、安全数字(SD)存储装置、微型安全数字(Secure Digital)存储装置、极限数字(xD)和记忆棒中的至少一种。
传感器1900可以收集电子***1000周围的信息。传感器1900可以感测或接收来自电子***1000外部的图像信号,并将感测到的或接收到的图像信号转换成图像数据(即,图像帧)。为此,传感器1900可以包括诸如以下项的各种类型的感测设备中的至少一种:成像设备、图像传感器、光检测和测距(LIDAR)传感器、超声传感器和红外传感器,或者可以从感测设备接收感测信号。在实施例中,传感器1900可以向神经网络处理器1100提供图像帧。例如,传感器1900可以包括图像传感器,通过拍摄电子***1000的外部环境来生成视频流,并且向神经网络处理器1100顺序地提供视频流的连续图像帧。
尽管已经参考本发明构思的实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以在形式和细节上进行各种改变。
Claims (20)
1.一种被配置为对包括多个像元的张量进行压缩的设备,所述设备包括:
四叉树生成器,所述四叉树生成器被配置为生成搜索包括在所述张量中的非零像元的四叉树,并从所述四叉树提取至少一个参数;
模式选择器,所述模式选择器被配置为基于所述至少一个参数来确定压缩模式;以及
比特流生成器,所述比特流生成器被配置为通过基于所述压缩模式对所述张量进行压缩来生成比特流。
2.根据权利要求1所述的设备,其中,所述至少一个参数包括:
第一参数,所述第一参数是作为所述四叉树的结果生成的,并且对应于表示关于所述非零像元的位置信息的比特的总数目;
第二参数,响应于非零像元之中具有最大值的像元以二进制表示,所述第二参数对应于从最低有效位到非零最高数位的比特数;以及
第三参数,所述第三参数对应于所述多个像元之中的零像元的数目。
3.根据权利要求2所述的设备,其中,所述模式选择器还被配置为:响应于所述第一参数的值小于或等于包括在所述张量中的像元数,选择第一压缩模式作为所述压缩模式,其中,在所述第一压缩模式下,以四叉树方法对所述张量进行压缩。
4.根据权利要求2所述的设备,其中,所述模式选择器还被配置为:响应于所述第一参数的值超过包括在所述张量中的像元数并且所述第二参数的值与所述第三参数的值的乘积值超过所述像元数,选择以零位图方法对所述张量进行压缩的第二压缩模式作为所述压缩模式,其中,在所述零位图方法中,将非零像元视为1并且将零像元视为0。
5.根据权利要求2所述的设备,其中,所述模式选择器还被配置为:响应于所述第一参数的值超过包括在所述张量中的像元数并且所述第二参数的值与所述第三参数的值的乘积值小于或等于所述像元数,选择以固定长度方法对所述张量进行压缩的第三压缩模式作为所述压缩模式,其中,在所述固定长度方法中,基于所述多个像元之中具有最大值的像元的比特宽度对所述张量进行压缩。
6.根据权利要求1所述的设备,其中,所述张量包括4M个像元,其中,M是自然数。
7.根据权利要求1所述的设备,其中,所述张量包括特征图和权重中的至少一者。
8.根据权利要求1所述的设备,其中,所述比特流生成器还被配置为:将所述比特流输出到多个存储区域中的与所述压缩模式相对应的至少一个存储区域。
9.一种神经网络处理器,包括:
算术电路,所述算术电路被配置为通过使用神经网络对输入数据执行计算来生成包括多个像元的张量;以及
神经张量压缩器,所述神经张量压缩器被配置为通过对所述张量进行压缩来输出比特流,
其中,所述神经张量压缩器还被配置为:生成与重复空间划分方法相对应的四叉树,以搜索包括在所述张量中的非零像元,从所述四叉树提取至少一个参数,并基于所述至少一个参数确定所述张量的压缩模式。
10.根据权利要求9所述的神经网络处理器,其中,所述至少一个参数包括:
第一参数,所述第一参数是作为所述四叉树的结果生成的,并且对应于表示所述非零像元的位置信息的比特的总数目;
第二参数,响应于非零像元之中具有最大值的像元以二进制表示,所述第二参数对应于从最低有效位到非零最高数位的比特总数;以及
第三参数,所述第三参数对应于所述多个像元之中的零像元的数目。
11.根据权利要求10所述的神经网络处理器,其中,所述神经张量压缩器还被配置为:当所述第一参数的值小于或等于包括在所述张量中的像元数时,通过应用四叉树方法来对所述张量进行压缩。
12.根据权利要求10所述的神经网络处理器,其中,所述神经张量压缩器还被配置为:当所述第一参数的值大于包括在所述张量中的像元数时并且当所述第二参数的值与所述第三参数的值的乘积值大于所述像元数时,通过应用零位图方法来对所述张量进行压缩,其中,在所述零位图方法中,将非零像元视为1并且将零像元视为0。
13.根据权利要求10所述的神经网络处理器,其中,当所述第一参数的值大于包括在所述张量中的像元数时并且当所述第二参数的值与所述第三参数的值的乘积值小于或等于所述像元数时,通过应用固定长度方法来对所述张量进行压缩,其中,在所述固定长度方法中,基于所述多个像元之中具有最大值的像元的比特宽度对所述张量进行压缩。
14.根据权利要求9所述的神经网络处理器,其中,所述张量包括4M个像元,其中,M是自然数。
15.根据权利要求9所述的神经网络处理器,其中,所述比特流被输出到多个存储区域中的与所述压缩模式相对应地设置的一个存储区域。
16.一种方法,包括:
接收张量,所述张量是对特征图和权重执行重复算术计算的结果;
提取至少一个参数,所述至少一个参数是对所述张量进行重复空间划分以压缩包括在所述张量中的多个像元之中的零像元的结果;
基于所述至少一个参数确定压缩模式;以及
基于所述压缩模式输出比特流。
17.根据权利要求16所述的方法,其中,所述的提取至少一个参数包括:
提取第一参数,所述第一参数是作为四叉树的结果生成的,并且对应于表示非零像元的位置信息的比特的总数目;
提取第二参数,响应于非零像元之中具有最大值的像元以二进制表示,所述第二参数对应于从最低有效位到非零最高数位的比特总数;以及
提取第三参数,所述第三参数对应于所述多个像元之中的零像元的数目。
18.根据权利要求17所述的方法,其中,所述的确定压缩模式包括:
将所述第一参数的值和包括在所述张量中的像元数进行比较;以及
响应于所述第一参数的所述值大于所述像元数,将所述第二参数的值与所述第三参数的值的乘积值和所述像元数进行比较。
19.根据权利要求18所述的方法,还包括:
响应于所述第一参数的所述值小于或等于所述像元数,以四叉树方法对所述张量进行压缩。
20.根据权利要求18所述的方法,还包括:
当所述第二参数的所述值与所述第三参数的所述值的所述乘积值大于所述像元数时,以零位图方法对所述张量进行压缩,其中,在所述零位图方法中,将非零像元视为1并且将零像元视为0;以及
当所述第二参数的所述值与所述第三参数的所述值的所述乘积值小于或等于所述像元数时,以固定长度方法对所述张量进行压缩,其中,在固定长度方法中,基于所述多个像元之中具有最大值的像元的比特宽度来对所述张量进行压缩。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0054770 | 2020-05-07 | ||
KR1020200054770A KR20210136476A (ko) | 2020-05-07 | 2020-05-07 | 쿼드 트리 방법의 파라미터들을 이용하여 압축하는 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113630375A true CN113630375A (zh) | 2021-11-09 |
Family
ID=78377935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110491385.6A Pending CN113630375A (zh) | 2020-05-07 | 2021-05-06 | 使用四叉树方法的参数的压缩设备及方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11569843B2 (zh) |
KR (1) | KR20210136476A (zh) |
CN (1) | CN113630375A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466082A (zh) * | 2022-01-29 | 2022-05-10 | 上海阵量智能科技有限公司 | 数据压缩、数据解压方法、***及人工智能ai芯片 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230124503A (ko) * | 2022-02-18 | 2023-08-25 | 인텔렉추얼디스커버리 주식회사 | 특징맵 압축 방법 및 장치 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5079630A (en) | 1987-10-05 | 1992-01-07 | Intel Corporation | Adaptive video compression system |
US5225904A (en) | 1987-10-05 | 1993-07-06 | Intel Corporation | Adaptive digital video compression system |
US7958096B2 (en) | 2000-09-20 | 2011-06-07 | Ndsu-Research Foundation | System and method for organizing, compressing and structuring data for data mining readiness |
US6735254B2 (en) | 2001-06-29 | 2004-05-11 | Qualcomm, Inc. | DCT compression using Golomb-Rice coding |
US8824553B2 (en) | 2003-05-12 | 2014-09-02 | Google Inc. | Video compression method |
HUP0301368A3 (en) | 2003-05-20 | 2005-09-28 | Amt Advanced Multimedia Techno | Method and equipment for compressing motion picture data |
US9479786B2 (en) | 2008-09-26 | 2016-10-25 | Dolby Laboratories Licensing Corporation | Complexity allocation for video and image coding applications |
US10565207B2 (en) | 2016-04-12 | 2020-02-18 | Hsilin Huang | Method, system and program product for mask-based compression of a sparse matrix |
US20180131946A1 (en) * | 2016-11-07 | 2018-05-10 | Electronics And Telecommunications Research Institute | Convolution neural network system and method for compressing synapse data of convolution neural network |
US10587880B2 (en) | 2017-03-30 | 2020-03-10 | Qualcomm Incorporated | Zero block detection using adaptive rate model |
US10795836B2 (en) * | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
TWI684141B (zh) | 2017-10-12 | 2020-02-01 | 英屬開曼群島商意騰科技股份有限公司 | 人工神經元中以非零封包加速乘法運算的裝置及方法 |
US10855986B2 (en) * | 2018-05-29 | 2020-12-01 | Qualcomm Incorporated | Bandwidth compression for neural network systems |
US11586883B2 (en) * | 2018-12-14 | 2023-02-21 | Microsoft Technology Licensing, Llc | Residual quantization for neural networks |
CN109993199B (zh) * | 2019-01-10 | 2020-11-17 | 北京工业大学 | 一种针对高阶张量数据的处理方法 |
US10594338B1 (en) * | 2019-03-18 | 2020-03-17 | WaveOne Inc. | Adaptive quantization |
US11574232B2 (en) * | 2019-05-15 | 2023-02-07 | Google Llc | Compression of machine-learned models via entropy penalized weight reparameterization |
US10938411B1 (en) * | 2020-03-25 | 2021-03-02 | Arm Limited | Compression and/or decompression of activation data |
US11580402B2 (en) * | 2020-05-11 | 2023-02-14 | Arm Limited | System and method for compressing activation data |
-
2020
- 2020-05-07 KR KR1020200054770A patent/KR20210136476A/ko active Search and Examination
-
2021
- 2021-02-24 US US17/183,471 patent/US11569843B2/en active Active
- 2021-05-06 CN CN202110491385.6A patent/CN113630375A/zh active Pending
-
2023
- 2023-01-10 US US18/095,039 patent/US20230144499A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114466082A (zh) * | 2022-01-29 | 2022-05-10 | 上海阵量智能科技有限公司 | 数据压缩、数据解压方法、***及人工智能ai芯片 |
CN114466082B (zh) * | 2022-01-29 | 2024-01-09 | 上海阵量智能科技有限公司 | 数据压缩、数据解压方法、***及人工智能ai芯片 |
Also Published As
Publication number | Publication date |
---|---|
KR20210136476A (ko) | 2021-11-17 |
US20230144499A1 (en) | 2023-05-11 |
US20210351788A1 (en) | 2021-11-11 |
US11569843B2 (en) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102332490B1 (ko) | 심층 신경망용 압축 방법, 칩, 전자 장치 및 매체 | |
US10860922B2 (en) | Sparse convolutional neural network accelerator | |
KR102499396B1 (ko) | 뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법 | |
US11003985B2 (en) | Convolutional neural network system and operation method thereof | |
CN110073359B (zh) | 用于卷积神经网络的有效数据布局 | |
US20230144499A1 (en) | Compressing device and method using parameters of quadtree method | |
CN110473137A (zh) | 图像处理方法和装置 | |
US20160093343A1 (en) | Low power computation architecture | |
JP2023512570A (ja) | 画像処理方法および関連装置 | |
KR20230078652A (ko) | 계층적 가중치 희소 컨볼루션 프로세싱을 위한 방법 및 시스템 | |
Nakahara et al. | High-throughput convolutional neural network on an FPGA by customized JPEG compression | |
US20200218777A1 (en) | Signal Processing Method and Apparatus | |
US11704556B2 (en) | Optimization methods for quantization of neural network models | |
CN111105017A (zh) | 神经网络量化方法、装置及电子设备 | |
WO2022179588A1 (zh) | 一种数据编码方法以及相关设备 | |
CN110874628A (zh) | 人工神经网络及其中控制定点的方法 | |
WO2022022176A1 (zh) | 一种图像处理方法以及相关设备 | |
US11403782B2 (en) | Static channel filtering in frequency domain | |
US20200356844A1 (en) | Neural network processor for compressing featuremap data and computing system including the same | |
WO2021081854A1 (zh) | 一种卷积运算电路和卷积运算方法 | |
WO2021179117A1 (zh) | 神经网络通道数搜索方法和装置 | |
TW202416219A (zh) | 支援機器學習加速的記憶體儲存格式 | |
WO2024058682A1 (en) | Data processing method and device | |
Mahmoud | Data-aware Computational Imaging Acceleration | |
KR20220132375A (ko) | 차량 영상의 화소를 분류하는 행렬 곱셈 가속기에 최적화된 임베디드 의미 분할 네트워크 장치 |
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 |