CN115210715A - 用于神经网络的压缩表示的高级语法 - Google Patents
用于神经网络的压缩表示的高级语法 Download PDFInfo
- Publication number
- CN115210715A CN115210715A CN202080098136.4A CN202080098136A CN115210715A CN 115210715 A CN115210715 A CN 115210715A CN 202080098136 A CN202080098136 A CN 202080098136A CN 115210715 A CN115210715 A CN 115210715A
- Authority
- CN
- China
- Prior art keywords
- neural network
- data
- information
- unit
- compressed
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 476
- 238000000034 method Methods 0.000 claims description 61
- 238000013139 quantization Methods 0.000 claims description 58
- 238000013507 mapping Methods 0.000 claims description 24
- 230000011218 segmentation Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 17
- 230000011664 signaling Effects 0.000 claims description 14
- 238000005192 partition Methods 0.000 claims description 10
- 230000015654 memory Effects 0.000 description 45
- 239000010410 layer Substances 0.000 description 39
- 238000007906 compression Methods 0.000 description 33
- 230000006835 compression Effects 0.000 description 33
- 238000004891 communication Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 23
- 238000004590 computer program Methods 0.000 description 18
- 239000012634 fragment Substances 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 238000007667 floating Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000000354 decomposition reaction Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- AWSBQWZZLBPUQH-UHFFFAOYSA-N mdat Chemical compound C1=C2CC(N)CCC2=CC2=C1OCO2 AWSBQWZZLBPUQH-UHFFFAOYSA-N 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002265 prevention Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 239000011229 interlayer Substances 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000006837 decompression Effects 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 102100022734 Acyl carrier protein, mitochondrial Human genes 0.000 description 2
- 101000678845 Homo sapiens Acyl carrier protein, mitochondrial Proteins 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 239000000969 carrier Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- 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/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
- G06N3/105—Shells for specifying net layout
-
- 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/46—Embedding additional information in the video signal during the compression process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/40—Tree coding, e.g. quadtree, octree
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种装备,包括:用于对用于至少一个神经网络的高级比特流语法进行编码或解码的装置;其中,该高级比特流语法包括至少一个信息单元,所述信息单元具有元数据或该至少一个神经网络的一部分的压缩的神经网络数据;以及其中,串行化比特流包括该至少一个信息单元中的一个或多个信息单元。
Description
技术领域
示例和非限制性实施例总体上涉及多媒体传输和神经网络,更具体地,涉及用于神经网络的压缩表示的高级语法。
背景技术
已知为神经网络的交换提供标准化格式。
发明内容
根据一方面,一种装备,包括用于对用于至少一个神经网络的高级比特流语法进行编码或解码的装置;其中,所述高级比特流语法包括至少一个信息单元,所述信息单元具有元数据或所述至少一个神经网络的一部分的压缩的神经网络数据;并且其中,串行化比特流包括所述至少一个信息单元中的一个或多个信息单元。
根据一个方面,一种装备,包括至少一个处理器;以及至少一个包括计算机程序代码的非暂时性存储器;其中,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装备至少执行:对用于至少一个神经网络的高级比特流语法进行编码或解码;其中,所述高级比特流语法包括至少一个信息单元,所述信息单元具有元数据或所述至少一个神经网络的一部分的压缩的神经网络数据;并且其中,串行化比特流包括所述至少一个信息单元中的一个或多个信息单元。
根据一方面,一种方法,包括对用于至少一个神经网络的高级比特流语法进行编码或解码;其中,所述高级比特流语法包括至少一个信息单元,所述信息单元具有元数据或所述至少一个神经网络的一部分的压缩的神经网络数据;并且其中,串行化比特流包括所述至少一个信息单元中的一个或多个信息单元。
根据一个方面,提供了一种机器可读的非暂时性程序存储设备,其有形地体现了所述机器可执行的用于执行操作的指令的程序,所述操作包括:对用于至少一个神经网络的高级比特流语法进行编码或解码;其中,所述高级比特流语法包括至少一个信息单元,所述信息单元具有元数据或所述至少一个神经网络的一部分的压缩的神经网络数据;并且其中,串行化比特流包括所述至少一个信息单元中的一个或多个信息单元。
附图说明
结合附图在以下描述中解释前述方面和其他特征,其中:
图1示意性地示出了采用本文所述示例的实施例的电子设备;
图2示意性地示出了适合于采用本文描述的示例的实施例的用户设备;
图3还示意性地示出了采用本文描述的示例的实施例的电子设备,这些电子设备使用无线和有线网络连接进行连接;
图4示意性地示出了一般级别的编码器的框图;
图5是示出根据本文描述的示例的编码器和解码器之间的接口的框图;
图6示出了压缩的神经网络(NNR)比特流的示例结构;
图7是示出NNR比特流如何可以由不同类型的若干NNR单元组成的示例图;
图8示出了AlexNet的示例拓扑描述,它采用神经网络交换格式(NNEF)拓扑图格式;
图9是被配置为实现用于神经网络的压缩表示的高级语法的示例装备;
图10是实现用于神经网络的压缩表示的高级语法的示例方法;以及
图11是其中可以实践示例实施例的一种可能且非限制性***的框图。
具体实施方式
可以在说明书和/或附图中找到的以下首字母缩略词和缩写定义如下:
3GP 3GPP文件格式
3GPP 第三代合作伙伴计划
3GPP TS 3GPP技术规范
4CC 四字码
4G ***宽带蜂窝网络技术
5G 第五代蜂窝网络技术
5GC 5G核心网
ACC 准确性
AI 人工智能
AIoT 人工智能物联网
a.k.a. 也被称为
AMF 访问和移动性管理功能
AVC 高级视频编码
CDMA 码分多址
CE 核心实验
CU 中央单元
DASH 基于HTTP的动态自适应流式传输
DCT 离散余弦变换
DSP 数字信号处理器
DU 分布式单元
eNB(或eNodeB) 演进的Node B(例如,LTE基站)
EN-DC E-UTRA-NR双连接
en-gNB或En-gNB 向UE提供NR用户平面和控制平面协议终止并充当EN-DC中的辅助节点的节点
E-UTRA 演进的通用陆地无线电接入,即LTE无线电接入技术
FDMA 频分多址
f(n) 使用以(从左到右)左比特在前的方式写入的n比特的固定模式比特串。
F1或F1-C CU和DU控制接口之间的接口
gNB(或gNodeB) 用于5G/NR的基站,即向UE提供NR用户平面和控制平面协议终止并通过NG接口连接到5GC的节点
GSM 全球移动通信***
H.222.0 MPEG-2***的正式名称为ISO/IEC 13818-1和ITU-T Rec.H.222.0
H.26x ITU-T的域中的视频编码标准族
HLS 高级语法
IBC 内部块复制
ID 标识符
IEC 国际电工委员会
IEEE 电气和电子工程师学会
I/F 接口
IMD 集成消息传送设备
IMS 即时消息传送服务
I/O 输入/输出
IoT 物联网
IP 互联网协议
ISO 国际标准化组织
ISOBMFF ISO基本媒体文件格式
ITU 国际电信联盟
ITU-T 国际电联电信标准化部门
LTE 长期演进
LZMA Lempel–Ziv–Markov链压缩
LZMA2 简单容器格式,其可以包括未压缩数据和LZMA数据
LZO Lempel–Ziv–Oberhumer压缩
LZW Lempel–Ziv–Welch压缩
MAC 媒体访问控制
Mdat 媒体数据盒子
MME 移动性管理实体
MMS 多媒体消息传送服务
Moov 电影盒子
MP4 用于MPEG-4部分14文件的文件格式
MPEG 运动图像专家组
MPEG-2 由ITU定义的H.222/H.262
MPEG-4 用于ISO/IEC 14496的音频和视频编码标准
MSB 最高有效比特
NAL 网络抽象层
NDU NN压缩数据单元
ng或NG 新一代
ng-eNB或NG-eNB 新一代eNB
NN 神经网络
NNEF 神经网络交换格式
NNR 神经网络表示
NR 新无线电(5G无线电)
Num 数字
N/W或NW 网络
ONNX 开放神经网络交换
PB 协议缓冲区
PC 个人电脑
PDA 个人数字助理
PDCP 分组数据汇聚协议
PHY 物理层
PID 分组标识符
PLC 电力线通信
PSNR 峰值信噪比
RAM 随机存取存储器
RAN 无线电接入网
RFC 征求意见
RFID 射频识别
RFM 参考帧存储器
RLC 无线电链路控制
RRC 无线电资源控制
RRH 远程无线电头
RU 无线电单元
Rx 接收器/接收
SDAP 服务数据适配协议
SGW 服务网关
SMF 会话管理功能
SMS 短消息传送服务
st(v) 编码为如ISO/IEC 10646中指定的UTF-8字符的空终止字符串
SVC 可伸缩视频编码
S1 eNodeB和EPC之间的接口
TCP-IP 传输控制协议-互联网协议
TDMA 时分多址
trak 轨道盒子
TS 传输流
TV 电视
Tx 发射器/发送
UE 用户设备
ue(v) 无符号整数Exp-Golomb编码的语法元素,左比特在前
UICC 通用集成电路卡
UMTS 通用移动电信***
u(n) 使用n比特的无符号整数
UPF 用户平面功能
URI 统一资源标识符
URL 统一资源定位符
UTF-8 8比特Unicode变换格式
WLAN 无线局域网
X2 LTE网络中两个eNodeB之间的互连接口
Xn 两个NG-RAN节点之间的接口
下面详细描述根据实施例的用于视频/图像编码过程的合适装备和可能机制。在这方面,首先参考图1和图2,其中图1示出了装备50的示例框图。该装备可以是物联网(IoT)装备,其被配置为执行各种功能,例如通过一个或多个传感器收集信息、接收或发送信息、分析由该装备接收或收集的信息,等等。该装备可以包括视频编码***,该***可以结合编解码器。图2示出了根据示例实施例的装备的布局。图1和图2的元件将在下面进行说明。
电子设备50例如可以是无线通信***的移动终端或用户设备、传感器设备、标签或其他低功率设备。然而,应当理解,本文描述的示例的实施例可以在可以通过神经网络处理数据的任何电子设备或装备内实现。
装备50可以包括用于结合和保护设备的外壳30。装备50还可以包括液晶显示器形式的显示器32。在本文描述的示例的其他实施例中,显示器可以是适合于显示图像或视频的任何合适的显示技术。装备50还可以包括小键盘34。在本文描述的示例的其他实施例中,可以采用任何合适的数据或用户接口机制。例如,用户接口可被实现为作为触敏显示器的一部分的虚拟键盘或数据输入***。
该装备可以包括麦克风36或可以是数字或模拟信号输入的任何合适的音频输入。装备50还可以包括音频输出设备,其在本文描述的示例的实施例中可以是以下中的任何一个:听筒38、扬声器或模拟音频或数字音频输出连接。装备50还可以包括电池(或者在本文描述的示例的其他实施例中,该设备可以由诸如太阳能电池、燃料电池或发条发电机的任何合适的移动能量设备供电)。该装备还可包括能够记录或捕获图像和/或视频的摄像机。装备50还可以包括用于与其他设备进行短程视距(line of sight)通信的红外端口。在其他实施例中,装备50还可以包括任何合适的短程通信解决方案,例如蓝牙无线连接或USB/火线有线连接。
装备50可以包括用于控制装备50的控制器56、处理器或处理器电路。控制器56可以连接到存储器58,在本文描述的示例的实施例中,存储器58可以存储图像和音频数据形式的数据并且/或者还可以存储用于在控制器56上实现的指令。控制器56还可以连接到适合于执行音频和/或视频数据的编码和/或解码或协助由控制器执行的编码和/或解码的编解码器电路54。
装备50还可以包括读卡器48和智能卡46,例如UICC和UICC读卡器,用于提供用户信息并且适合于提供用于在网络上针对用户的认证和授权的认证信息。
装备50可以包括无线电接口电路52,该无线电接口电路52连接到控制器并且适合于生成无线通信信号,例如用于与蜂窝通信网络、无线通信***或无线局域网进行通信。装备50还可以包括连接到无线电接口电路52的天线44,用于向其他装备发送在无线电接口电路52处生成的射频信号和/或用于从其他装备接收射频信号。
装备50可以包括能够记录或检测各个帧的摄像机,所述各个帧随后被传递到编解码器54或控制器以进行处理。该装备可以在传输和/或存储之前从另一个设备接收视频图像数据以进行处理。装备50还可以无线地或通过有线连接接收图像以进行编码/解码。上述装备50的结构元件表示用于执行对应功能的装置的示例。
关于图3,示出了可以在其中利用本文描述的示例的实施例的***的示例。***10包括可以通过一个或多个网络进行通信的多个通信设备。***10可以包括有线或无线网络的任何组合,该无线网络包括但不限于无线蜂窝电话网络(例如GSM、UMTS、CDMA、LTE、4G、5G网络等),例如由任何IEEE 802.x标准定义的无线局域网(WLAN),蓝牙个域网,以太网局域网,令牌环局域网,广域网和互联网。
***10可以包括有线和无线通信设备和/或装备50,它们适用于实现本文描述的示例的实施例。
例如,图3中所示的***示出了移动电话网络11和互联网28的表示。与互联网28的连接可以包括但不限于远程无线连接、短程无线连接和各种有线连接(包括但不限于:电话线、电缆线、电源线和类似的通信路径)。
***10中示出的示例通信设备可包括但不限于电子设备或装备50、个人数字助理(PDA)和移动电话14的组合、PDA 16、集成的消息传送设备(IMD)18、台式计算机20、笔记本计算机22。装备50可以是静止的或当由移动的个人携带时移动的。装置50还可以以运输模式被定位,该运输模式包括但不限于汽车、卡车、出租车、公共汽车、火车、轮船、飞机、自行车、摩托车或任何类似的合适运输模式。
实施例还可以在以下中实现:可以/可以不具有显示或无线能力的机顶盒(即数码TV接收器)、具有硬件和/或软件来处理神经网络数据的平板电脑或(笔记本电脑)个人计算机(PC)、各种操作***、以及提供基于硬件/软件的编码的芯片组、处理器、DSP和/或嵌入式***。
一些或进一步装备可以发送和接收呼叫和消息,并通过与基站24的无线连接25与服务提供商进行通信。基站24可以连接至网络服务器26,该网络服务器26允许在移动电话网络11和互联网28之间进行通信。该***可以包括附加的通信设备和各种类型的通信设备。接口2被配置为提供对互联网28的访问,例如用于集成消息传送设备(IMD)18。
通信设备可以使用各种传输技术进行通信,包括但不限于码分多址(CDMA)、全球移动通信***(GSM)、通用移动电信***(UMTS)、时分多址(TDMA)、频分多址(FDMA)、传输控制协议-互联网协议(TCP-IP)、短消息传送服务(SMS)、多媒体消息传送服务(MMS)、电子邮件、即时消息服务(IMS)、蓝牙、IEEE 802.11、3GPP窄带物联网和任何类似的无线通信技术。涉及实现本发明的各种实施例的通信设备可以使用各种介质进行通信,包括但不限于无线电、红外、激光、电缆连接以及任何合适的连接。
在电信和数据网络中,信道可以指物理信道或逻辑信道。物理信道可以指诸如线路的物理传输介质,而逻辑信道可以指在多路复用的介质上的逻辑连接,能够传送多个逻辑信道。信道可以用于将信息信号(例如比特流)从一个或多个发送器(或发射器)传送到一个或多个接收器。
实施例也可以在所谓的IoT设备中实现。例如,物联网(IoT)可以定义为现有互联网基本设施内唯一可标识的嵌入式计算设备的互连。各种技术的融合已经并将使嵌入式***的许多领域,诸如无线传感器网络、控制***、家庭/楼宇自动化等,能够纳入物联网(IoT)中。为了利用互联网,IoT设备被设置有IP地址作为唯一标识符。IoT设备可以配备有无线电发射器,例如WLAN或蓝牙发射器或RFID标签。替代地,IoT设备可以通过有线网络(例如基于以太网的网络或电力线连接(PLC))接入基于IP的网络。
在ISO/IEC 13818-1或等效地在ITU-T建议H.222.0中指定的MPEG-2传输流(TS)是一种用于在多路复用流中携带音频、视频和其他媒体以及程序元数据或其他元数据的格式。分组标识符(PID)用于标识TS内的基本流(也称为分组化基本流)。因此,MPEG-2TS内的逻辑信道可以被认为对应于特定的PID值。
可用的媒体文件格式标准包括ISO基本媒体文件格式(ISO/IEC 14496-12,其可缩写为ISOBMFF)和从ISOBMFF导出的用于NAL单元结构化视频的文件格式(ISO/IEC 14496-15)。
视频编解码器由将输入视频变换成适合存储/传输的压缩的表示的编码器和可以将压缩的视频表示解压缩回可视形式的解码器组成。视频编码器和/或视频解码器也可以彼此分离,即不需要形成编解码器。通常,编码器会丢弃原始视频序列中的一些信息,以便以更紧凑的形式(即以较低的比特率)表示视频。
典型的混合视频编码器,例如ITU-T H.263和H.264的许多编码器实施方式,在两个阶段中编码视频信息。首先,例如通过运动补偿模块(在先前编码的视频帧之一中查找并指示与正在编码的块密切对应的区域)或通过空间模块(使用将要以指定方式编码的块周围的像素值)来预测某个图片区域(或“块”)中的像素值。其次,对预测误差(即预测的像素块与原始像素块之间的差异)进行编码。这可以通过使用指定变换(例如离散余弦变换(DCT)或其变体)变换像素值的差异、量化系数和对量化的系数进行熵编码来完成。通过改变量化过程的保真度,编码器可以控制在像素表示的精度(图片质量)和生成的编码视频表示的大小(文件大小或传输比特率)之间的平衡。
在时间预测中,预测源可以是先前解码的图片(又名参考图片)。在块内复制(IBC;又名块内复制预测和当前图片参考)中,预测可以与时间预测类似地应用,但参考图片可能是当前图片,并且在预测过程中只能参考先前解码的样本。层间或视图间预测可以与时间预测类似地应用,但是参考图片可以是分别来自另一可缩放层或来自另一视图的解码图片。在某些情况下,帧间预测可以仅指时间预测,而在其他情况下,帧间预测可以统称为时间预测以及帧内块复制、层间预测和视图间预测中的任何一个,前提是它们以与时间预测相同的或类似的过程执行。帧间预测或时间预测有时可称为运动补偿或运动补偿预测。
帧间预测(也可称为时间预测、运动补偿或运动补偿预测)减少了时间冗余。在帧间预测中,预测源是先前解码的图片。帧内预测利用了同一图片内的相邻像素可能相关的事实。可以在空间域或变换域中执行帧内预测,即可以预测样本值或变换系数。在不应用帧间预测的情况下,可以在帧内编码中利用帧内预测。
编码过程的一个结果是一组编码参数,例如运动矢量和量化的变换系数。如果首先从空间或时间上相邻的参数预测参数,则许多参数可以被更有效地进行熵编码。例如,可以从空间上相邻的运动矢量来预测运动矢量,并且可以仅对相对于运动矢量预测器的差进行编码。编码参数的预测和帧内预测可以统称为图片内(in-picture)预测。
图4示出了视频编码器的一般结构的框图。图4呈现了用于两层的编码器,但应当理解,所呈现的编码器可以被类似地扩展以编码多于两层。图4示出了包括用于基本层的第一编码器部分500和用于增强层的第二编码器部分502的视频编码器。第一编码器部分500和第二编码器部分502中的每一个可以包括用于编码输入画面的相似元件。编码器部分500、502可以包括像素预测器302、402、预测误差编码器303、403和预测误差解码器304、404。图4还示出了像素预测器302、402的实施例,其包括帧间预测器306、406、帧内预测器308、408、模式选择器310、410、滤波器316、416和参考帧存储器318、418。第一编码器部分500的像素预测器302接收300将要在帧间预测器306(其确定图像和运动补偿参考帧318之间的差异)和帧内预测器308(其仅基于当前帧或图片的已处理部分确定针对图像块的预测)两者处编码的视频流的基本层图像。帧间预测器和帧内预测器的输出都被传递到模式选择器310。帧内预测器308可以具有多于一种的帧内预测模式。因此,每个模式可以执行帧内预测并将预测信号提供给模式选择器310。模式选择器310还接收基本层图片300的副本。对应地,第二编码器部分502的像素预测器402接收400将要在帧间预测器406(其确定图像与运动补偿参考帧418之间的差异)和帧内预测器408(其仅基于在当前帧或图片的已处理部分来确定针对图像块的预测)两者处编码的视频流的增强层图像。帧间预测器和帧内预测器两者的输出都被传递到模式选择器410。帧内预测器408可以具有多于一个的帧内预测模式。因此,每个模式可以执行帧内预测并将预测信号提供给模式选择器410。模式选择器410还接收增强层图片400的副本。
取决于哪种编码模式被选择用以编码当前块,帧间预测器306、406的输出或可选的帧内预测器模式之一的输出或模式选择器内的表面编码器的输出被传递到模式选择器310、410的输出。模式选择器的输出被传递到第一求和设备321、421。第一求和设备可以从基本层图片300/增强层图片400中减去像素预测器302、402的输出,以产生第一预测误差信号320、420,其被输入到预测误差编码器303、403。
像素预测器302、402进一步从初步重构器339、439接收图像块312、412的预测表示和预测误差解码器304、404的输出338、438的组合。初步重构图像314、414可以被传递到帧内预测器308、408和滤波器316、416。接收初步表示的滤波器316、416可以对初步表示进行滤波,并且输出最终重构图像340、440,其可被保存在参考帧存储器318、418中。参考帧存储器318可以连接到帧间预测器306以用作在帧间预测操作中与未来基本层图片300进行比较的参考图像。根据一些实施例,在基本层被选择并指示为增强层的层间样本预测和/或层间运动信息预测的源的情况下,参考帧存储器318也可以连接到帧间预测器406以被用作在帧间预测操作中与未来增强层图片400进行比较的参考图像。此外,参考帧存储器418可以连接到帧间预测器406以用作在帧间预测操作中与未来增强层图片400进行比较的参考图像。
根据一些实施例,在基本层被选择并指示为用于预测增强层的滤波参数的源的情况下,来自第一编码器部分500的滤波器316的滤波参数可以被提供给第二编码器部分502。
预测误差编码器303、403包括变换单元342、442和量化器344、444。变换单元342、442将第一预测误差信号320、420变换到变换域。该变换例如是DCT变换。量化器344、444量化变换域信号,例如DCT系数,以形成量化系数。
预测误差解码器304、404接收来自预测误差编码器303、403的输出,并执行预测误差编码器303、403的相反处理以产生解码的预测误差信号338、438,解码的预测误差信号338、438当在第二求和设备339、439处与图像块312、412的预测表示组合时产生初步重构图像314、414。预测误差解码器可以被认为包括去量化器346、446和逆变换单元348、448,去量化器346、446对量化的系数值(例如DCT系数)进行去量化以重构变换信号,逆变换单元348、448对重构变换信号执行逆变换,其中逆变换单元348、448的输出包含重构块。预测误差解码器还可以包括块滤波器,其可以根据进一步的解码信息和滤波器参数对重构块进行滤波。
熵编码器330、430接收预测误差编码器303、403的输出,并且可以对该信号执行合适的熵编码/可变长度编码以提供误差检测和校正能力。熵编码器330、430的输出可以例如通过多路复用器508被***到比特流中。
图5是示出根据本文描述的示例的在实现神经网络编码503的编码器502和实现神经网络解码505的解码器504之间的接口的框图500。编码器502可以体现设备、软件方法或硬件电路。编码器502具有这样的目标:将输入数据511(例如,输入视频)压缩成压缩数据512(例如,比特流),从而使得比特率被最小化并且分析或处理算法的准确性被最大化。为此,编码器502使用编码器或压缩算法,例如以执行神经网络编码503。
一般分析或处理算法可以是解码器504的一部分。解码器504使用解码器或解压缩算法,例如以执行神经网络解码505以解码由编码器502编码的压缩数据512(例如,压缩视频)。解码器504产生解压缩数据513(例如重构数据)。
编码器502和解码器504可以是实现抽象的实体,可以是分开的实体或相同的实体,或者可以是相同物理设备的一部分。
分析/处理算法可以是任何算法,传统的或从数据中学习的。在从数据中学习的算法的情况下,假设可以例如使用经由梯度下降的优化来修改或更新该算法。学习算法的一个例子是神经网络。
ISO基本媒体文件格式。可用的媒体文件格式标准包括ISO基本媒体文件格式(ISO/IEC 14496-12,其可缩写为ISOBMFF)、MPEG-4文件格式(ISO/IEC 14496-14,也称为MP4格式)、用于NAL(网络抽象层)单元结构化视频的文件格式(ISO/IEC 14496-15)和3GPP文件格式(3GPP TS 26.244,也称为3GP格式)。ISOBMFF是衍生所有上述文件格式(不包括ISOBMFF本身)的基本。
ISOBMFF的一些概念、结构和规范在下面被描述为基于其可以实现实施例的容器文件格式的示例。本文描述的示例的方面不限于ISOBMFF,而是针对一种可能的基本给出描述,在该基本上可以部分或完全实现本文描述的示例。
ISO基本媒体文件格式中的基本构建块被称为盒子(box)。每个盒子都有头部和有效负载。盒子头部指示盒子的类型和就字节而言的盒子的大小。盒子可以包裹(enclose)其他盒子,并且ISO文件格式指定在特定类型的盒子内允许哪些盒子类型。此外,每个文件中某些盒子的存在可能是强制性的,而其他盒子的存在可能是可选的。此外,对于某些盒子类型,可能允许文件中存在多个盒子。因此,可以考虑ISO基本媒体文件格式来指定盒子的分层结构。
根据ISO基本媒体文件格式,文件包括被封装成盒子的媒体数据和元数据。每个盒子被四字符代码(4CC)标识并且以告知该盒子的类型和大小的头部开始。
在符合ISO基本媒体文件格式的文件中,媒体数据可以被提供在MediaDataBox('mdat')的一个或多个实例中,并且MovieBox('moov')可以用于包裹针对定时媒体的元数据。在某些情况下,针对将要可操作的文件,可能需要同时存在“mdat”和“moov”盒子。“moov”盒子可以包括一个或多个轨道,并且每个轨道可以驻留在一个对应的TrackBox(“trak”)中。每个轨道都与处理程序(handler)相关联,处理程序由四字符代码标识并指定轨道类型。视频、音频和图像序列轨道可以统称为媒体轨道,并且它们包含基本媒体流。其他轨道类型包括提示轨道和定时元数据轨道。
轨道包括样本,例如音频或视频帧。对于视频轨道,媒体样本可以对应于编码图片或访问单元。媒体轨道指的是根据媒体压缩格式(及其对ISO基本媒体文件格式的封装)格式化的样本(其也可以称为媒体样本)。提示轨道是指提示样本,其包含用于构建数据分组以通过指示的通信协议传输的说明书(cookbook)指令。定时元数据轨道可以指描述所参考媒体和/或提示样本的样本。
例如在将内容记录到ISO文件以例如避免在记录应用崩溃、存储器空间不足或发生其他意外(incident)时丢失数据时,可以使用电影片段。没有电影片段,可能会发生数据丢失,因为文件格式可能要求将所有元数据(例如电影盒子)写入文件的一个连续区域。此外,在记录文件时,可能没有足够的存储器空间(例如,随机存取存储器(RAM))来针对可用存储大小缓冲电影盒子,并且在关闭电影时重新计算电影盒子的内容可能太慢了。此外,电影片段可以使得能够使用常规ISO文件解析器(parser)同时记录和播放文件。此外,针对渐进式下载,例如当使用电影片段时同时接收和播放文件,可能需要更短的初始缓冲持续时间,并且与具有相同媒体内容但结构化的没有电影片段的文件相比,初始电影盒子更小。
电影片段特征可以使得能够将元数据分成多个碎片(piece),否则元数据可能驻留在电影盒子中的。每个碎片可以对应于轨道的某个时间段。换言之,电影片段特征可以使得能够实现文件元数据和媒体数据的交织。因此,电影盒子的大小可能仅限于上述要实现的用例。
在一些示例中,用于电影片段的媒体样本可以驻留在mdat盒子中。然而,对于电影片段的元数据,可以提供moof盒子。moof盒子可以包括先前已经在moov盒子中的特定播放时间的持续时段的信息。moov盒子本身可能仍然表示有效的电影,但此外,它可以包括指示电影片段可能跟随在同一个文件中的mvex盒子。电影片段可以及时扩展与moov盒子相关联的呈现。
在电影片段内可以有一组轨道片段,包括从零到每个轨道多个的任何位置。轨道片段又可以包括从零到多个轨道运行的任何位置,其文档中的每个文档是针对该轨道的连续样本运行(并且因此类似于块(chunk))。在这些结构内,许多字段是可选的,并且可以被默认。可以被包括在moof盒子中的元数据可能被限制为可以被包括在moov盒子中并且在某些情况下可能被不同地编码的元数据的子集。可以从ISOBMFF规范中找到有关可以被包括在moof盒子中的盒子的详细信息。
自包含电影片段可以被定义为由按文件顺序连续的moof盒子和mdat盒子组成,并且其中mdat盒子包含电影片段的样本(moof盒子为其提供元数据)并且不包含任何其他电影片段(即任何其他moof盒子)的样本。
媒体分段(segment)可以包括一个或多个自包含电影片段。媒体分段可以用于例如在MPEG-DASH中的传递,例如流式传输。
轨道参考机制可以用于将轨道相互关联。TrackReferenceBox包括盒子,每个盒子都提供从包含轨道到一组其他轨道的参考。这些参考通过所包含盒子的盒子类型(即盒子的四字符代码)进行标记。
ISO基本媒体文件格式包含三种用于可与特定样本相关联的定时元数据的机制:样本组、定时元数据轨道和样本辅助信息。衍生的规范可以通过这三种机制中的一种或多种提供类似的功能。
ISO基本媒体文件格式及其衍生品(例如AVC文件格式和SVC文件格式)中的样本分组可以被定义为基于分组标准将轨道中的每个样本分配为一个样本组的成员。样本分组中的样本组不限于连续样本,并且可以包含不相邻的样本。由于轨道中的样本可能有一个以上的样本分组,因此每个样本分组可以具有类型字段,用以指示分组的类型。样本分组可以通过两个链接的数据结构来表示:(1)SampleToGroupBox(sbgp盒子)表示样本到样本组的分配;(2)SampleGroupDescriptionBox(sgpd盒子)包含针对每个样本组的样本组条目,其描述该组的属性。基于不同的分组标准,可能有SampleToGroupBox和SampleGroupDescriptionBox的多个实例。这些实例可以通过用于指示分组的类型的类型字段来区分。SampleToGroupBox可以包括grouping_type_parameter字段,其可以被用于例如指示分组的子类型。
神经网络标准的MPEG压缩表示(MPEG NNR-ISO/IEC 15938-17)旨在提供一种标准化的方式来压缩和分发“神经网络”(从现在起称为NN)。这是启用AI的物联网(AIoT)设备和生态***时代的重要方面,其中数十亿连接的物联网设备可能是智能的并且具有AI组件(例如,联网汽车、家庭自动化***、智能手机、摄像头等)。
行业定义了几种“交换格式”。ONNX(https://onnx.ai/)或NNEF(https://www.khronos.org/nnef)可以被列为最著名的两个。然而,它们缺乏神经网络的任何压缩方面,也没有为这种压缩的NN数据定义灵活且结构良好的高级语法。它们提供拓扑信息和从拓扑元素到神经网络权重和/或系数的链接。
MPEG NNR具有以下用例,其通常需要通过可能的高级比特流语法来解决:
·整个或部分神经网络的传输(例如逐层)
·及时对神经网络进行部分更新
·提供有关压缩的神经网络的某些特性的信息(例如准确性、压缩方法、压缩比等)
·以渐进方式访问压缩的神经网络表示
·神经网络的可重用权重或部分(在许多情况下,仅使用神经网络的初始层,例如当该神经网络仅用作特征提取器并且提取的特征被其他神经网络或其他神经网络的部分使用时)。
·神经网络的再训练和联合(federated)学习
本文描述的示例介绍了用于MPEG NNR压缩的神经网络的高级语法。它以层或子层(即滤波器、内核、偏差等)粒度提供对相关NN信息的粒度访问。它还使得能够通过通信信道传输压缩的NN表示,以及对压缩的神经网络进行部分更新。它也可以与现有的交换格式一起使用,以提供神经网络权重和系数的压缩表示。
本文描述的示例改进了压缩的NN的可交换性和存储。本文描述的示例还通过为压缩的NN信息交换提供明确定义的高级语法来改进解码器端操作。
本文描述的示例定义了一种用于压缩的NN的高级比特流语法,其包括以下逻辑概念:
-压缩的NN全局元数据信令
-NN拓扑级元数据信令
-NN量化参数信令
-与压缩的NN数据相关的元数据信令
-压缩的NN数据信令
定义了一种基本比特流语法。该比特流由跨越整个压缩的NN的全局元数据发起。比特流由包含整个神经网络的特定部分的元数据和/或压缩的神经网络数据的信息单元组成。这种分割(partitioning)是与NN拓扑信息相关的,其粒度细到NN的唯一可识别部分(层、滤波器、内核等)。
本文描述的示例的一些新颖方面可以被列为一种方法,包括:
·对神经网络的计算结构信息的信号传送(即拓扑和量化)
·对神经网络的全局信息作为元数据的信号传送。这样的元数据可以包含NN类型信息、压缩的表示信息、压缩的表示准确性信息等。
·将神经网络分割为独立或从属的可解码单元
·对分割信息以及与分割单元相关的元数据的信号传送
·将关于分割的神经网络单元的相关信息信号传送给神经网络的结构信息
·存储分割的神经网络单元的编码表示和用于解码此类单元的相关元数据
(量化的)神经网络(NN)通常由以下信息表示:
-神经网络的一般级别参数
-网络的拓扑,其具有针对不同拓扑元素的唯一标识符
-(如果量化神经网络的权重)关于量化的信息
-表示拓扑元素及其对应数据类型的变量
诸如NNEF之类的交换格式定义上述信息并将它们存储在预定目录树结构中的文件中。
在本文描述的示例中,这种数据结构被定义为独立于底层文件存储机制,但是采用可互操作的方式,使得这种交换机制可以利用压缩的NN比特流并将其转换为它们自己的数据和存储结构。
压缩的NN比特流(以下称为NNR比特流)具有如图6所示的结构。
NNR比特流602由NNR单元组成。NNR单元604可以包括以下信息:
-NNR单元大小:该信息可以信号传送NNR单元的总字节大小。该字段的大小可以是16比特或32比特,其可以由第一个字节的最高有效比特(MSB)指示。
-NNR单元头部:该字段可包含有关有效负载中携带的数据的类型、所携带的NNR单元的一般元数据等的信息。在以下部分中,将给出此类元数据元素的更完整列表。
-NNR单元有效负载:它携带压缩或未压缩的NN相关数据。这样的数据可以是以下之一:NNR参数集合(即NN全局信息)、拓扑数据、量化数据或压缩/未压缩的NN数据。
NNR单元可以被级联以形成可以表示NN的串行化比特流。NNR编码器可以生成这样的串行化比特流。然后该比特流通过传输信道被携带到解码器进行解码。
在另一个实施例中,这样的NNR比特流可以被存储为虚拟或非虚拟目录树结构中的文件。例如,NNEF可以用于携带压缩的NN数据。在这种情况下,NN变量可以使用NNR编码来被压缩,作为NNR比特流被存储到预定目录结构中的文件中。
在一些实施例中,拓扑数据、量化数据和压缩的NN数据可以是全部的或部分的;这意味着数据要么在单个NNR单元中,要么被分割到多个NNR单元中。在后一种情况下,NNR单元头部可包含指示这种部分存储的信息。该信息可以由计数器表示,该计数器向后计数以指示使用的分割的数量。例如,如果数据被分割到2个NNR单元中,则第一个NNR单元将包含计数器编号2,而第二个NNR单元可以包含计数器编号1。在另一个实施例中,计数器可以表示比分割数量少一个值。
在另一个实施例中,NNR单元头部中的标志可以指示分割并且另一个标志可以指示属于所分割数据的最后一个NNR单元。
在另一个实施例中,分割的NNR单元可以在它们的NNR单元头部中具有相同的标识符,该标识符可以指示该分割所属的NN级别信息。这可以是唯一的id,唯一的字符串,相对或绝对URI或URL,等等。
如果拓扑信息被分割,则多个拓扑数据NNR单元可以聚集在一起以形成最终的NN拓扑。NN压缩数据单元(NDU)有效负载可属于整个神经网络、整个层或其中的一部分。
NN压缩数据单元有效负载中的变量/权重可以是经由唯一引用或标签可映射到拓扑元素的。这样的数据可以被携带在NNR NDU单元头部中(即,在其有效负载包含压缩数据的NNR单元的NNR单元头部中)。该数据可以是唯一id,唯一字符串,相对或绝对URI或URL,等等。
每个NNR单元头部可包含关于NNR单元数据有效负载606中的数据的类型的信息。下表可以作为此类数据单元及其枚举数据值的示例给出:
在上表中,枚举、类型和标识符仅作为示例给出,并且可以使用其他值。
图7是示出NNR比特流如何可以由不同类型的若干NNR单元(例如,NNR单元1到6)组成的示例图700。
单元的存在顺序可以不同并且可以是NNR编码器和内容创建者的选择。在可以通过其他方式(例如文件存储、存储格式指示等)推理NN数据开始的情况下,NNR开始单元702可以不存在。在另一个实施例中,NNR开始单元702可以具有这样的有效负载,该有效负载具有固定或可变数的字节,其可以指示开始码。参考图6的引用标记606(“NNR NN数据开始单元有效负载”)。
NNR NN级参数集合。NNR参数集合有效负载704可以由以下信息的全部或子集组成:
1.指示符,指示是比特流在内部携带拓扑作为数据单元还是比特流提供针对该拓扑的引用/URL/Id。
2.模型的准确性和其他性能度量[test-accuracy,test-dataset-ID/URL,bitrate,等]。如果服务器具有一组预压缩模型,则此信息可以由服务器和客户端侧使用,并且基于客户端的请求,服务器选择最接近匹配的压缩的NN模型。
3.另外,根据前面字段(5)中的信息,服务器可以生成将向客户端发送的清单,然后由客户端选择其优选的压缩模型。
4.更新指示符(它是否是对NN的更新)
5.更新参考:在其之上应用权重更新的基线NN版本。这可能是唯一的NN版本ID。
6.指示是否执行了稀疏化的稀疏化指示符(可能是单个比特)。
7.稀疏指示符张量(指示哪些单元或权重为零)
8.指示是否执行了量化的量化指示符(可能是单个比特)。
9.量化步长(如果使用可扩展的统一量化)
10.量化图
11.解码器侧所需的最大存储器大小(这通常与最大层和输出激活有关):一些示例可能是层中全连接参数的最大数量,层中卷积参数的最大数量,等等。
12.网络级优先级信息(将解码器侧压缩参数映射到更细粒度级别的结果性能度量。例如,在分类器的情况下,每个类如何受到某些稀疏化阈值的影响。
13.网络级熵信息,例如熵模型和上下文模型。这可能是指定解码器侧可用的上下文模型之一的ID。
14.关于输入类型的信息(例如,媒体类型;所需的输入大小;范围;归一化;数值精度;等等)
作为示例,以下NNEF模型可以被NNR编码为具有如图8所示的头部。特别是,图8示出了AlexNet的示例拓扑描述800,AlexNet采用神经网络交换格式(NNEF)拓扑图格式。
对应的NNR网络参数集合NNR单元704可以定义如下:
·NNR单元头部:“NNR_NPS”
·有效负载:
1.[是文件明确地携带拓扑还是作为ID?]1
2.[模型的准确性和其他性能度量:test-accuracy,test-dataset-ID/URL,bitrate]ACC=37%,dataset=www.imagenet.com/1234,file_size=23MB
3.[更新标志]0
4.[更新参考:在其之上应用权重更新的基线NN版本。这可以是唯一的NN版本ID]0
5.[稀疏化标志]0
6.[稀疏化指示符张量(指示哪些单元或权重为零)]0(这可以被包括在每层的NNR单元中)
7.[量化标志]0
8.[量化步长(如果是可扩展的统一量化)]:无
9.[量化图(如果基于码本的非统一量化)]:dict(0:0.2,1:0.77,2:-0.8,....)
10.[解码器侧所需的最大存储器大小:全连接参数的最大数量,卷积参数的最大数量]12345、54321
11.[解码器的侧网络级进一步稀疏化(将稀疏化阈值映射到结果性能度量)]dict(0.01:37,0.05:40,0.1:49)
12.[网络级优先级信息(将解码器侧压缩参数映射到更细粒度的性能度量)]dict(0.01:dict(class1:35,class2:20,class3:54,class4:43),0.05:dict(class1:50,class2:25,class3:43,class4:35),0.1:dict(class1:40,class2:60,class3:54,class4:36))
13.[网络级熵信息,例如熵模型和上下文模型]context_model_3
14.[关于输入类型的信息(例如,媒体类型;所需的输入大小和形状;范围;归一化;数值精度;等等)]“图像”,[3,224,224],0-255,dict(“平均值”:[0.47,0.47,0.47,],“方差”:[0.5,0.5 0.5]),24比特。
NNR_NPSNNR单元有效负载可以被格式化为针对上述信息元素中的每一个包括固定的和可变的长度信息。
NNR拓扑数据单元。NNR拓扑数据单元706可以在NNR单元头部中包含以下信息:
-NNR单元类型为NNR_TPL
-拓扑格式枚举为NNEF:该字段可以指示存储的拓扑信息的实际格式。可能的值如下表所示:
-拓扑是否被进一步压缩。此信息可包含以下压缩指示符的枚举:
-部分信息标志:指示该数据单元中的信息是部分的
-最后部分数据标志:指示这是部分信息的最后数据单元。替代地,
-计数器:指示部分信息的索引。值为0指示没有部分信息,大于0的值指示部分信息的索引。该计数器可以向后计数以最初指示分割的总数。
NNR数据单元有效负载可以包含压缩或未压缩格式、或分割或未分割格式的拓扑数据单元;如NNR单元头部数据中所指示的。
NNR量化数据单元。该数据单元708可以包含与NNR拓扑数据单元中相同类型的头部,但是数据单元类型被标记为“NNR_QNT”。它可以包含与上面定义的相同的字段。NNR数据单元有效负载可以包含压缩或未压缩格式、或分割或未分割格式的量化数据;如NNR单元头部数据中所指示的。量化数据的示例是将量化值映射到去量化值的字典或查找表。
NNR压缩的NN数据单元。NNR压缩数据单元(NDU,也可以称为CDU)710和712可以包含属于NN拓扑或图的数据元素的全部或部分信息。
NDU可以由包含类型“NNR_NDU”的NNR单元头部来标识。NDU的NNR单元头部可包含以下信息的子集或全部:
1.NDU编号或标识符
2.NDU元素激活/禁用
3.NDU特定的量化图。如果为空,则可以使用NN级量化图。
4.NDU方面的优先级信息(将解码器侧压缩参数映射到结果性能度量)。优先级信息可以是不同NDU之间的相对优先级信息。
5.1比特:指示矩阵是否被分解的标志
6.关于分解的矩阵的附加信息
7.NDU级的熵信息,例如熵模型和上下文模型。
8.指示可独立解码NDU的标志
9.将NDU中的元素映射到拓扑元素的唯一标识符阵列(例如,在NNEF情况下,这是NDU中存在的标签列表)
10.NDU计数器:相关NDU数量的向后计数(例如部分携带的NN编码变量):默认可能为0
NNR压缩的全部或部分数据可以作为有效负载被携带。
使用与上面相同的AlexNet示例,可以将几个变量存储在NNR NDU中,如下所示。在这个实现示例中,
·NNR NDU单元:
·头部:“NNR_NDU”、base_id="alexnet_v2/conv1/"、id_list={['kernel',enum(type)],['bias',enum(type)]}//…。enum(type)对应于支持的数据类型之一,例如float32、float64、int16、int32、uint16、int16、int8、uint8等。
·头部中的其他信息是:
1.[NDU号]1
2.[NDU激活还是禁用]0
3.[NDU特定量化图。如果为空,则使用NN级量化图。]空
4.[NDU方面的优先级信息(将解码器侧压缩参数映射到结果性能度量)]1
5.[矩阵被分解了吗?]0
6.[关于分解的矩阵的附加信息]无
7.[NDU级的熵信息,例如熵模型和上下文模型。]context_model_3
8.[可独立解码的NDU标志]1
9.NDU计数器:0(替代地,NDU_Partial_Flag=False,NDU_Last_Flag=False)
-有效负载:NNR变量的压缩表示,如在头部的ID/标签阵列中列出的那些。
base_id指示针对有效负载中不同NN变量的基本标识符。id_list包含变量id,类型对。
NNR比特流高级语法。以下部分中的数据结构和信息作为示例给出,并且它们的名称和值可变化。它们在高级语法中的顺序或基数在不同的实现中也可不同。
比特流类型描述符:以下描述符指定了每个语法元素的解析过程:
-b(8):具有任何比特串模式(8比特)的字节。该描述符的解析过程由函数read_bits(8)的返回值指定。
-f(n):使用n比特写入的固定模式比特串(从左到右),左比特在前。此描述符的解析过程由函数read_bits(n)的返回值指定。
-i(n):使用n比特的有符号整数。当语法表中n为“v”时,比特数以依赖于其他语法元素的值的方式变化。此描述符的解析过程由函数read_bits(n)的返回值指定,该函数被解释为最高有效比特首先写入的二进制补码整数表示。具体来说,这个描述符的解析过程具体如下:
-st(v):以空字符结尾(null-terminated)的字符串,按照ISO/IEC10646的规定编码为UTF-8字符。解析过程规定如下:st(v)从比特流中字节对齐的位置开始,读取并返回来自比特流的一系列字节,从当前位置开始并持续到但不包括等于0x00的下一个字节对齐字节,并将比特流指针前进(stringLength+1)*8个比特位置,其中stringLength等于返回的字节数。st(v)语法描述符仅在比特流中的当前位置是字节对齐位置时使用。
-u(n):使用n比特的无符号整数。当语法表中n为“v”时,比特数以依赖于其他语法元素的值的方式变化。此描述符的解析过程由函数read_bits(n)的返回值指定,该函数被解释为无符号整数的二进制表示,其中首先写入的最高有效比特。
-ue(v):无符号整数0阶Exp-Golomb编码语法元素,左比特在前。
字节对齐:在以下数据结构中,假定字节对齐的数据结构。为了启用这种对齐,byte_alignment()数据结构被附加到其他数据结构。
NNR比特流:以下数据结构是在压缩的神经网络高级比特流语法的上下文中新定义的。
NNR单元语法:NNR单元由大小信息、头部信息和有效负载信息组成。
more_data_in_nnr_unit()规定如下:
-如果当前nnr_unit中跟着更多数据,即当前nnr_unit中到现在的解码数据小于numBytesInNNRUnit,则more_data_in_nnr_unit()的返回值等于TRUE。
-否则,more_data_in_nnr_unit()的返回值等于FALSE。
在一些实施例中,NNR单元内的每个信息可以具有其大小信息。在另一个实施例中,只有这样的信息的子集可以存在于NNR单元中。在另一个实施例中,每个NNR单元可以具有用于标记这些NNR单元的开始和结束的开始码和结束码。开始码可以是预定义的比特模式。比特流语法可以使得开始码是可识别的,即可以通过在从比特流中搜索开始码的比特模式时找到NNR单元的开始。
NNR单元大小语法:NNR单元大小可以以字节为单位指示NNR单元的总大小。它可以提供NNR单元的整体大小信息,包括nnr_unit_size()。在一些实施例中,它可以仅指示头部和有效负载的大小。
nnr_unit_size_flag指示用作nnr_unit_size的数据类型的比特数。如果该值为0,则nnr_unit_size为15比特无符号整数值,否则为31比特无符号整数值。在另一个实施例中,对于一些NNR单元类型,例如类型为“NNR_STR”(NN开始指示符)的NR单元,可以强制将nnr_unit_size_flag设置为0。
NNR单元头部语法:NNR单元头部可以提供关于NNR单元类型和附加相关元数据的信息。
nnr_unit_type可以指示NNR单元的类型。可以定义以下NNR单元。
NNR单元类型 | 类型标识符 | 值 |
NN级参数集合数据单元 | NNR_NPS | 0x01 |
NN拓扑或图形数据单元 | NNR_TPL | 0x02 |
NN量化数据单元 | NNR_QNT | 0x03 |
NN压缩数据单元 | NNR_NDU | 0x04 |
NN压缩网络数据开始单元 | NNR_STR | 0x00 |
保留 | 0x05-0xFF |
必须注意,上表是一个示例,并且可以定义更多的NNR数据单元。此外,类型标识符和值是作为示例给出的,并且可以定义其他标识符和值。在另一个实施例中,nnr_unit_type可以用小于8的比特数来定义。在下面的所有示例中,“(count-1)”可以用可以称为“countMinusOne”或类似名称的变量替换,其可以指示比计数变量少一的值。
NNR参数集合单元头部。下面给出了nnr_parameter_set_unit_header()的示例语法。
topology_flag可以指示NN高级语法比特流中拓扑信息的存在。当被设置为1时,它可以指示拓扑在比特流中并与NNR单元类型“NNR_TPL”一起被携带。如果为0,则可以意味着拓扑是通过Id、URI、URL等从外部引用的。
nn_update_flag当设置为1时指示NNR单元可以用于对具有idupdate_nn_id的先前NN的部分更新。
nn_id(和update_nn_id)是NNR编码的NN的唯一标识符。在另一个实施例中,该字段可以是可以包含绝对或相对URI或URL的以空字符结尾(null-terminated)的字符串,或唯一字符串。在NNEF上下文中,该字符串参考可以对应于一个或多个NNEF变量,这些变量被保存为“.dat”文件。
当设置为1时,sparsification_flag指示在NN上应用稀疏化。
sparsification_tensor()包含有关哪些单元或权重为0的信息。它可具有以下语法:
在sparsification_tensor()中:compressed_flag指示是否对sparsification_data()应用压缩。compression_format枚举用于压缩sparsification_data()的压缩算法。在另一个实施例中,在稀疏化数据表示中可能存在明确定义的顺序,其直接映射到权重的顺序。在另一个实施例中,sparsification_tensor()可以存在于NNR单元的NNR单元有效负载中。
当设置为1时,decomposition_flag指示NN压缩数据单元中的至少一个包含分解的矩阵。quantization_flag可以指示量化信息的存在。quantization_step_size可以指示标量的统一量化的步长间隔。
quantization_map()可以信号传递基于码本的非统一量化方案。它可能具有如下语法:
quantization_map_data()可以是{[索引<整数>:值<浮点>]}形式的阵列(例如字典),其中索引可以是量化值指示符,第二值可以是对应于该量化值索引的有符号浮点值。在另一个实施例中,每个索引可以指示量化步长的范围。在另一个实施例中,这些值的类型可以是8比特、16比特、32比特或64比特浮点值。在另一个实施例中,可以在NNR单元的NNR单元有效负载中携带量化图。
max_memory_requirement可以指示针对NNR解码器或推理设备运行神经网络所需的最大存储器的值。在一个实施例中,该值可以被指示为两个值的串联:全连接参数的最大数量和层或层的一部分(例如在卷积核中)中的卷积参数的最大数量。在另一个实施例中,该值可以被指示为64比特值并且它可以是无符号整数或被强制转换为无符号整数的浮点数。
sparsification_performance_map()可以信号传送基于选择的准确性报告方案的在不同稀疏化阈值和所得NN推理准确性之间的映射。在以下示例中,准确性是介于0和100之间的值,其中阈值是浮点值。
计数可以信号传送在数据结构中存在的信息元组的数量。在另一个实施例中,sparsification_performance_map()可以被携带在NNR单元的NNR单元有效负载中。sparsification_threshold可以信号传送稀疏化阈值;当应用于权重时(即将低于sparsification_threshold的权重或参数归零);推理准确性为nn_accuracy(标度为0到100)。在另一个实施例中,nn_accuracy是数据结构中列出的条目之间的相对值。
dataset_id()可以提供关于哪些数据集合和哪些版本的数据集合被用于计算性能测量的信息。在另一个实施例中,该数据结构也可以存在于NNR_NDU单元的头部或有效负载中,以便在应用于NNR压缩数据单元内的数据结构时指示不同阈值的准确性级别。
在另一个实施例中,sparsification_performance_map()可以包含模型的任务相关性能(例如,分类的准确性或图像压缩中的PSNR),相对于原始非稀疏模型的性能下降或增益,以及通过将稀疏化应用于模型获得的在非零比率方面的压缩率。
accuracy_information()可以提供关于不同数据集合上的压缩的NN的准确性的信息。
dataset_information是数据集合的绝对或相对URI或URL,相对其计算准确性。nn_dataset_accuracy是介于0和100之间的准确性值。在另一个实施例中,nn_accuracy是针对数据集合进行测试时未压缩的和压缩的NN准确性之间的比率。在这种情况下,该值可以作为浮点值来被信号传送。
priority_map()可以信号传送关于神经网络性能的不同方面如何受一些压缩参数影响的信息(例如具有不同阈值的稀疏化)。例如,在分类器神经网络的情况下,该信息可以包括将一组稀疏化阈值映射到按类的对应准确性集合的字典或查找表。
compression_parameter可以信号传送一个或多个压缩参数值,例如稀疏化阈值或量化点的数量。在一个实施例中,可以将不同的compression_parameters应用于在NDU中信号传送的NN的不同组件(例如变量)。
accuracies_per_aspect可以采用按方面的粒度,信号传递关于在应用compression_parameter时神经网络的准确性的信息,其中神经网络的方面可以是例如在分类器神经网络的情况下的类(因此,针对每个类提供准确性),或者在检测器神经网络的情况下,边界盒子大小与边界盒子中心的关系(因此,为边界盒子大小和边界盒子中心分开提供准确性)等。
dataset_id()可以提供关于在计算性能测量时使用了哪个(些)数据集合和哪个版本的数据集合的信息。
nn_entropy_information()可以信号传送关于在所有可用熵模型或上下文模型中在解码器侧使用哪个熵模型或上下文模型的信息。
nn_input_type_information()可以信号传送关于接受的输入数据的类型的信息,例如媒体类型(图像、音频帧等)、用于输入数据结构所需的大小和形状、范围、归一化方法和参数、数值精度,等等。
NNR拓扑单元头部。该数据结构信号传送与拓扑相关的头部数据。
topology_storage_format可以指示所存储的拓扑信息的实际格式。可能的值如下表所示:
topology_compressed_flag可以指示拓扑是否被进一步压缩。
compression_format可以包含以下压缩指示符的枚举:
partial_flag可以指示该数据单元中的信息是部分的。last_flag可以指示这是部分信息的最后一个数据单元。counter可以指示部分信息的索引。值为0表示没有部分信息,大于0的值指示部分信息的索引。该计数器可以向后计数以初始指示分割的总数。在另一个实施例中,当计数器存在于数据结构中时,partial_flag和last_flag可能不存在。反之也有可能。
NNR量化单元头部。此头部信息可能与NNR拓扑单元头部非常相似。
quantization_storage_format可以具有与topology_storage_format相同的语法和语义。quantization_compressed_flag可以具有与topology_compressed_flag相同的语法和语义。
NNR压缩数据单元头部。NNR压缩数据单元头部提供有关其后面的NNR压缩数据单元的信息。它的数据结构和语义可能如下:
base_id是唯一的字符串,其可以用于指示目录树结构的基本URI、URL、根或类似信息。当与id_list元素的id_name值串联时,它为压缩的NN数据单元元素提供唯一标识符。在NNEF上下文中,此唯一标识符可以对应于保存为“.dat”文件的NNEF变量。
id_list可以提供存在于压缩的NN数据单元中的唯一可识别的神经网络拓扑元素的列表。
count指示数据结构中列出的实体的数量。id_name为可能跨越压缩数据的一部分的压缩的NN数据单元元素提供唯一标识符。在一个实施例中,这样的标识符可以对应于NNEF拓扑图中的变量标识符。该字段的解释可能取决于压缩数据格式(即NNEF、ONNX、MPEG等)。
data_type可以是枚举的数据类型值。可能的值可以是(但不限于):二进制、uint、int、具有1比特、4比特、8比特、16比特、32比特和64比特精度的浮点数。data_size可以指示在压缩的N个数据单元未压缩时属于这个id的参数或权重的数量。在另一个实施例中,该值可以指示对应于这些参数或权重的字节大小。
NDU_quantization_map()可以信号传送基于码本的非统一量化方案。它可能具有如下语法:
quantization_map_data()可以是{[索引<整数>:值<浮点>]}形式的阵列(例如字典),其中索引可以是量化值指示符,并且第二值可以是对应于该量化值索引的有符号浮点值。在另一个实施例中,每个索引可以指示量化步长的范围。在另一个实施例中,这些值的类型可以是8比特、16比特、32比特或64比特浮点值。
NDU_priority_map()可以信号传送关于神经网络性能的不同方面如何受一些压缩参数影响的信息(例如,具有不同阈值的稀疏化或用于量化的不同精度水平)。例如,在分类器神经网络的情况下,该信息可以包括将一组稀疏化阈值映射到按类的对应准确性组的字典或查找表。
compression_parameter可以信号传送一个或多个压缩参数值,例如稀疏化阈值或量化点的数量。accuracies_per_aspect可以信号传送在应用compression_parameter时按照每方面的粒度的有关神经网络的准确性的信息,其中神经网络的一个方面可以是例如分类器神经网络情况下的类(因此,准确性是针对每个类而提供的),或者在检测器神经网络的情况下的边界盒子大小相比边界盒子中心(因此,准确性是分开针对边界盒子大小和边界盒子中心而提供的)等。dataset_id()可以提供关于在计算性能测量时使用了哪些数据集合和数据集合的哪个版本的信息。
NDU_entropy_information()可以信号传送关于在所有可用熵模型或上下文模型中在解码器侧使用哪个熵模型或上下文模型的信息。在无损编码步骤(例如算术编码)中可以使用上下文模型来估计下一个要编码或解码的符号的概率。
NDU_decomposition_information()可以信号传送关于用于压缩在这个NNR单元中考虑的变量的分解方法及其参数的信息。
decomposition_method信号传送关于分解方法的信息。其默认值可能为0,指示不使用该字段。
decomposition_parameters()信号传送关于以下的信息:关于由decomposition_method指定的分解方法的特定参数,这些参数在解码器侧对重构原始数据结构有用或者对推理过程有用。这样的信息可以包含分解产生的矩阵的维度。
NNR开始单元头部。NNR开始单元头部可以指示压缩的NN比特流的开始。它具有唯一的签名,以便在从任何比特索引解析比特流时可以识别它。在另一个实施例中,可以将某些开始码仿真防止方案应用于NNR压缩比特流,使得该值不被仿真并且不存在于比特流中的任何其他位置。仿真防止方案可以例如将仿真防止字节添加到比特流中否则将发生开始码仿真的字节位置中。在另一个实施例中,可以对NNR单元大小+NNR单元头部+NNR单元有效负载的整个比特流值进行这种仿真防止。具有以下定义的nnr_start_code的这种值可能如下:0x000C00F0F0F0F0F0F0F0F0(2字节大小+1字节单元类型+8字节头部数据)。在一个实施例中,解码器或另一个实体例如从开始码识别NNR单元,然后从NN比特流或各个NNR单元中删除开始码仿真防止,例如通过识别添加到比特流中的字节以避免发生开始码仿真并从比特流中删除这些字节。然后可以在不考虑开始码仿真字节或干预语法的类似等的情况下完成NNR单元的解码。
nnr_start_unit_header(){ | 描述符 |
nnr_start_code | u(64) |
} |
nnr_start_code可以指示NNR比特流的开始。该值可以是64比特值,例如0xF0F0F0F0F0F0F0F0。该值是作为示例给出的,并且可以定义其他值。NN开始指示符NNR单元可能没有NNR数据有效负载。在另一个实施例中,可以将nnr_start_code存储为有效负载并且nnr_start_header可以是空的。
NNR单元有效负载。下面提供了nnr_unit_payload的示例语法。
nnr_parameter_set_payload()可以是空的或者填充有已经在NNR参数集合单元头部中定义的一些数据结构。
nnr_topology_unit_payload()可以是拓扑的部分或全部表示。它可以是压缩的或未压缩的。它的格式在NNR拓扑单元头部中定义。预计NNR解码器会在解压缩之后或之前将此信息提供给更高级别的组件。NNR解码器可能不会理解此结构的数据格式,除非它是由定义NNR解码器的相同实体定义的。
nnr_quantization_unit_payload()可以是量化参数的部分或全部表示。它可以是压缩的或未压缩的。它的格式在NNR量化单元头部中定义。预计NNR解码器会在解压缩之后或之前将此信息提供给更高级别的组件。NNR解码器可能不会理解此结构的数据格式,除非它是由定义NNR解码器的相同实体定义的。
nnr_start_unit_payload()可以是空的,或者它可包含如上定义的NNR开始码。
nnr_data_unit_payload()是NNR压缩数据单元。它的压缩方案由定义NNR解码器的相同实体定义。NNR压缩数据单元可以是可单独解码的或依赖于其他压缩数据单元。NNR压缩数据单元头部信息提供有关压缩数据单元的不同特性的必要元数据。
NNR解码过程。NNR解码器在接收到NNR编码的比特流时,预计会执行以下步骤(解析元素的顺序可以改变):
1.解析并检查类型为NNR_STR的NNR单元是否存在。
2.一旦找到NNR_STR单元,通过读取单元的大小、头部信息和有效负载开始解析下一个NNR单元。
3.识别和解析拓扑NNR单元,并将拓扑信息提供给解码实体。
4.识别和解析量化NNR单元并将拓扑信息提供给解码实体。
5.识别和解析NNR压缩数据单元并将它们提供给NNR解码过程。解码可以按单元进行,也可以通过将多个NNR单元组合在一起来进行。
在另一个实施例中,NNR解码器可以简单地从头开始解析比特流而不关注NNR开始数据单元。这种数据单元的存在可以通过其他方式信号传送给NNR解码器。
在本文描述的示例的一些实施例中,解码器可以基于经由所公开的高级语法提供的信息来决定对神经网络的数据执行(进一步)压缩。特别是,HLS中的优先级信息用于基于给定要求来决定应用哪些压缩参数值。例如,要求可以是可接受的整体准确性,或针对类的子集的可接受准确性(在分类器神经网络的情况下)。
图9是示例装备900,其可以在硬件中实现,被配置为基于本文描述的示例实现用于神经网络的压缩表示的高级语法。装备900包括处理器902、包括计算机程序代码905的至少一个非暂时性存储器904,其中至少一个存储器904和计算机程序代码905被配置为利用至少一个处理器902使该装备基于本文描述的示例来实现高级语法906。装备900可选地包括可用于在呈现期间显示内容的显示器或I/O 908。装备900可选地包括一个或多个网络(NW)接口(I/F)910。(一个或多个)NW I/F 910可以是有线和/或无线的并且经由因特网/其他网络通过任何通信技术进行通信。(一个或多个)NW I/F 910可以包括一个或多个发射器和一个或多个接收器。(一个或多个)N/W I/F 910可以包括标准众所周知的组件,例如放大器、滤波器、频率转换器、(解)调制器和编码器/解码器电路以及一个或多个天线。
装备900可以是远程、虚拟或云装备。装备900可以是编码器或解码器,或者既是编码器又是解码器。存储器904可以使用任何合适的数据存储技术来实现,例如基于半导体的存储器设备、闪存、磁存储器设备和***、光学存储器设备和***、固定存储器和可移动存储器。存储器904可以包括用于存储数据的数据库。装备900不需要包括提到的每个特征,或者也可以包括其他特征。装备900可以对应于或者是图1和图2所示的装备50的另一个实施例,或图3所示装备中的任何装备。装备900可以对应于图11所示装备或者是图11所示装备的另一个实施例,包括UE 110、RAN节点170或网络元件190。
图10是实现用于神经网络的压缩表示的高级语法的示例方法1000。在1002,该方法包括对用于至少一个神经网络的高级比特流语法进行编码或解码。在1004,该方法包括其中高级比特流语法包括具有元数据或所述至少一个神经网络的一部分的压缩的神经网络数据的至少一个信息单元。在1006,该方法包括其中串行化比特流包括所述至少一个信息单元中的一个或多个。
转向图11,该图示出了其中可以实践这些示例的一个可能的非限制性示例的框图。示出了用户设备(UE)110、无线电接入网络(RAN)节点170和(一个或多个)网络元件190。在图1的例子中,用户设备(UE)110与无线网络100进行无线通信。UE是可以接入无线网络100的无线设备。UE 110包括通过一个或多个总线127互连的一个或多个处理器120、一个或多个存储器125以及一个或多个收发器130。一个或多个收发器130中的每一个包括接收器Rx 132和发射器Tx 133。一个或多个总线127可以是地址、数据或控制总线,并且可以包括任何互连机制,例如主板或集成电路上的一系列线路、光纤或其他光通信设备等。一个或多个收发器130被连接到一个或多个天线128。一个或多个存储器125包括计算机程序代码123。UE 110包括模块140,包括部分140-1和/或140-2之一或两者,其可以通过多种方式实现。模块140可以以硬件实现为模块140-1,例如实现为一个或多个处理器120的一部分。模块140-1也可以实现为集成电路或通过诸如可编程门阵列的其他硬件实现。在另一示例中,模块140可以被实现为模块140-2,其被实现为计算机程序代码123并且由一个或多个处理器120执行。例如,一个或多个存储器125和计算机程序代码123可以被配置为与一个或多个处理器120一起使得用户设备110执行如本文所述的操作中的一个或多个。UE 110经由无线链路111与RAN节点170通信。
在该示例中,RAN节点170是提供无线设备(例如UE 110)对无线网络100的接入的基站。RAN节点170可以是例如用于5G的基站,也称为新无线电(NR)。在5G中,RAN节点170可以是NG-RAN节点,其被定义为gNB或ng-eNB。gNB是向UE提供NR用户平面和控制平面协议终止的节点,并且经由NG接口连接到5GC(例如,网络元件190)。ng-eNB是向UE 110提供E-UTRA用户平面和控制平面协议终止的节点,并且经由NG接口连接到5GC。NG-RAN节点可以包括多个gNB,gNB还可以包括中央单元(CU)(gNB-CU)196和分布式单元(DU)(gNB-DU),其中DU 195被示出。注意,DU 195可以包括无线电单元(RU)或耦合到RU并控制RU。gNB-CU是托管gNB的无线电资源控制(RRC)、SDAP和PDCP协议或控制一个或多个gNB-DU的操作的en-gNB的RRC和PDCP协议的逻辑节点。gNB-CU终止与gNB-DU连接的F1接口。F1接口被示为参考198,尽管参考198还示出了RAN节点170的远程元件和RAN节点170的集中式元件之间的链路,例如gNB-CU 196和gNB-DU 195之间的链路。gNB-DU是托管gNB或en-gNB的RLC、MAC和PHY层的逻辑节点,并且其操作部分由gNB-CU控制。一个gNB-CU支持一个或多个小区。一个小区仅由一个gNB-DU支持。gNB-DU终止与gNB-CU连接的F1接口198。注意,DU 195被认为包括收发器160,例如,作为RU的一部分,但是这方面的一些示例可以使收发器160作为分开的RU的一部分,例如,在DU 195的控制下并连接到DU 195。RAN节点170也可以是用于LTE(长期演进)的eNB(演进的NodeB)基站,或任何其他合适的基站或节点。
RAN节点170包括通过一个或多个总线157互连的一个或多个处理器152、一个或多个存储器155、一个或多个网络接口(N/W I/F)161、以及一个或多个收发器160。一个或多个收发器160中的每一个包括接收器Rx 162和发射器Tx 163。一个或多个收发器160连接到一个或多个天线158。一个或多个存储器155包括计算机程序代码153。CU 196可以包括处理器152、存储器155和网络接口161。注意DU 195也可以包含它自己的一个或多个存储器和处理器,和/或其他硬件,但这些未示出。
RAN节点170包括模块150,其包括可以以多种方式实现的部分150-1和/或150-2之一或两者。模块150可以以硬件实现为模块150-1,例如实现为一个或多个处理器152的一部分。模块150-1也可以实现为集成电路或通过诸如可编程门阵列的其他硬件实现。在另一示例中,模块150可以实现为模块150-2,模块150-2实现为计算机程序代码153并且由一个或多个处理器152执行。例如,一个或多个存储器155和计算机程序代码153被配置为与一个或多个处理器152一起使得RAN节点170执行如本文所述的操作中的一个或多个。注意,模块150的功能可以是分布式的,例如分布在DU 195和CU 196之间,或者单独在DU 195中实现。
一个或多个网络接口161例如通过链路176和131在网络上进行通信。两个或更多个gNB 170可以使用例如链路176进行通信。链路176可以是有线的或无线的或两者兼有,并且可以实现例如用于5G的Xn接口、用于LTE的X2接口或用于其他标准的其他合适的接口。
一个或多个总线157可以是地址、数据或控制总线,并且可以包括任何互连机制,例如主板或集成电路上的一系列线路、光纤或其他光通信设备、无线信道之类的。例如,一个或多个收发器160可以被实现为用于LTE的远程无线电头端(RRH)195或用于5G的gNB实现的分布式单元(DU)195,其中RAN节点170的其他元件可能在物理上位于在与RRH/DU 195不同的位置,并且一个或多个总线157可以部分实现为例如光纤电缆或其他合适的网络连接,以连接RAN节点170的其他元件(例如中央单元(CU)196、gNB-CU)到RRH/DU 195。参考198还指示那些合适的网络链路。
注意,本文的描述指示“小区”执行功能,但是应该清楚形成小区的设备可以执行这些功能。小区构成基站的一部分。也就是说,每基站可以有多个小区。例如,单个载波频率和关联带宽可能有三个小区,每个小区覆盖360度区域的三分之一,因此单个基站的覆盖区域覆盖近似椭圆形或圆形。此外,每个小区可以对应单个载波,基站可以使用多个载波。所以如果每载波有3个120度小区和2个载波,那么基站总共有6个小区。
无线网络100可以包括一个或多个网络元件190,其可以包括核心网络功能,并且通过一个或多个链路181提供与诸如电话网络和/或数据通信网络(例如,互联网)的进一步网络的连接。这种用于5G的核心网络功能可以包括接入和移动性管理功能(AMF)和/或用户平面功能(UPF)和/或会话管理功能(SMF)。这种用于LTE的核心网络功能可以包括MME(移动性管理实体)/SGW(服务网关)功能。这些仅仅是可以由网络元件190支持的示例功能,并且注意,5G和LTE功能都可以被支持。RAN节点170经由链路131耦合到网络元件190。链路131可以被实现为例如用于5G的NG接口,或用于LTE的S1接口,或用于其他标准的其他合适的接口。网络元件190包括通过一个或多个总线185互连的一个或多个处理器175、一个或多个存储器171和一个或多个网络接口(N/W I/F)180。一个或多个存储器171包括计算机程序代码173。一个或多个存储器171和计算机程序代码173被配置为与一个或多个处理器175一起使得网络元件190执行一个或多个操作。
无线网络100可以实现网络虚拟化,这是将硬件和软件网络资源和网络功能组合成单个基于软件的管理实体,虚拟网络的过程。网络虚拟化涉及平台虚拟化,通常与资源虚拟化组合使用。网络虚拟化被分类外部,将许多网络或网络的一部分组合成一个虚拟单元,或内部,为单个***上的软件容器提供类似网络的功能。注意,由网络虚拟化产生的虚拟化实体在某种程度上仍然使用例如处理器152或175以及存储器155和171之类的硬件来实现,并且这种虚拟化实体也产生了技术效果。
计算机可读存储器125、155和171可以是适合本地技术环境的任何类型,并且可以使用任何合适的数据存储技术来实现,例如基于半导体的存储器设备、闪存、磁存储器设备和***、光学存储器设备和***、固定存储器和可移动存储器。计算机可读存储器125、155和171可以是用于执行存储功能的装置。处理器120、152和175可以是适合本地技术环境的任何类型,并且可以包括通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器中的一个或多个,作为非限制性示例。处理器120、152和175可以是用于执行功能(例如控制UE110、RAN节点170、网络元件190和本文所述的其他功能)的装置。
通常,用户设备110的各种实施例可以包括但不限于蜂窝电话(例如智能电话)、平板电脑、具有无线通信能力的个人数字助理(PDA)、具有无线通信能力的便携式计算机、具有无线通信能力的图像捕获设备(例如数码摄像头)、具有无线通信能力的游戏设备、具有无线通信能力的音乐存储和播放设备、允许无线互联网访问和浏览的互联网设备、具有无线通信能力的平板电脑,以及结合了这些功能的组合的便携式单元或终端。
模块140-1、140-2、150-1和150-2中的一个或多个可以被配置为基于本文描述的示例实现用于神经网络的压缩表示的高级语法。计算机程序代码173还可以被配置为基于本文描述的示例实现用于神经网络的压缩表示的高级语法。
对“计算机”、“处理器”等的提及应被理解为不仅涵盖具有不同架构的计算机(例如单/多处理器架构和顺序(冯.诺依曼)/并行架构)而且也涵盖专用电路(例如现场可编程门阵列(FPGA)、专用电路(ASIC)、信号处理设备和其他处理电路)。对计算机程序、指令、代码等的提及应被理解为涵盖用于可编程处理器的软件或固件(例如硬件设备的可编程内容(例如用于处理器的指令)),或用于固定功能设备、门阵列或可编程逻辑器件的配置设置,等等。
如本文所用,术语“电路”可以指以下任何一种:(a)硬件电路实现,例如模拟和/或数字电路中的实现;以及(b)电路和软件(和/或固件)的组合,例如(如适用):(i)处理器的组合,或(ii)处理器/软件的一部分,包括数字信号处理器,软件和存储器,它们一起工作以使装备执行各种功能;以及(c)需要软件或固件进行操作的电路,例如微处理器或微处理器的一部分,即使软件或固件在物理上不存在。“电路”的这种描述适用于本申请中该术语的使用。作为进一步的示例,如本文所用,术语“电路”还将涵盖仅处理器(或多个处理器)或处理器的一部分及其(或它们的)随附软件和/或固件的实现。例如,如果适用于特定元件,术语“电路”还将涵盖用于移动电话的基带集成电路或应用处理器集成电路,或服务器、蜂窝网络设备或其他网络设备中的类似集成电路。
一种示例装备,包括:至少一个处理器;以及包括计算机程序代码的至少一个非暂时性存储器;其中,所述至少一个存储器和所述计算机程序代码被配置为与所述至少一个处理器一起使所述装备至少执行:对用于至少一个神经网络的高级比特流语法进行编码或解码;其中,所述高级比特流语法包括至少一个信息单元,该信息单元具有元数据或该至少一个神经网络的一部分的压缩的神经网络数据;以及其中,串行化比特流包括所述至少一个信息单元中的一个或多个信息单元。
该装备还可以包括,其中,将串行化比特流作为文件被存储在虚拟或非虚拟目录树结构中,或者作为比特流通过数据管道被发送。
所述装备还可以包括,其中,所述至少一个神经网络的所述一部分是以下中的至少一个:层、滤波器、内核、偏差、量化权重、张量、或作为至少一个神经网络的可识别部分的任何其他数据结构。
该装备还可以包括,其中,信息单元包括:信号传送该信息单元的大小的单元大小;携带与神经网络相关的压缩或未压缩数据的单元有效负载;以及具有关于单元有效负载所携带的数据类型的信息的单元头部。
该装备还可以包括,其中,该单元有效负载包括以下中的至少一项:包括关于神经网络的全局信息的参数集合;拓扑数据;压缩的或未压缩的神经网络数据单元有效负载;完整或部分的神经网络数据;量化数据;或与开始码相关的有效负载数据。
该装备还可以包括,其中,拓扑数据、压缩的或未压缩的神经网络数据单元有效负载或量化数据中的至少一个被分割为多个信息单元。
该装备还可以包括,其中,单元头部包括用于指示该分割的信息。
该装备还可以包括,其中,指示该分割的信息由向后计数以便指示使用的分割的数量的计数器表示。
该装备还可以包括,其中,单元头部中的标志指示该分割,并且单元头部中的另一个标志指示属于分割的数据的最后一个信息单元。
该装备还可以包括,其中,多个信息单元在它们各自的单元头部中具有相同的标识符以指示分割所属的神经网络级信息。
该装备还可以包括,其中,神经网络交换格式用于携带压缩的神经网络数据。
该装备还可以包括,其中,压缩的神经网络数据单元有效负载是经由与压缩的网络数据单元有效负载相关联的单元头部内的引用或标签可映射到拓扑数据的,其中所述引用或标签包括以下中的至少一个:唯一标识符、唯一字符串、或相对或绝对统一资源标识符或定位符。
该装备还可以包括,其中,单元头部指示串行化比特流的开始。
该装备还可以包括,其中,编码器通过传输信道将串行化比特流提供给解码器。
该装备还可以包括,其中,高级语法的解码包括:通过读取至少一个信息单元的大小、与该信息单元相关联的单元头部以及与该信息单元相关联的有效负载,来解析该单元;以及识别和解析与该信息单元相关联的拓扑数据、量化数据、或压缩的或未压缩的数据中的至少一个。
所述装备还可以包括,其中,所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装备至少执行:检查开始单元的存在,该开始单元指示比特流的开始和在比特流的该开始处解码的开始。
所述装备还可以包括,其中,所述至少一个存储器和所述计算机程序代码还被配置为与所述至少一个处理器一起使所述装备至少执行:进一步压缩与所述信息单元相关联的压缩数据。
该装备的其他方面可以包括以下内容。该信息单元可以包括:信号传送该信息单元的字节大小的单元大小;携带与该至少一个神经网络相关的压缩或未压缩数据和相关元数据的单元有效负载;以及具有关于由该单元有效负载所携带的数据类型的信息和相关元数据的单元头部。该单元有效负载可以包括以下至少一项:参数集合,其包括全局元数据和关于至少一个神经网络的信息;神经网络拓扑信息及相关数据;压缩的或未压缩的神经网络数据,其为完整的或部分的;量化数据;或压缩的神经网络比特流开始指示符或与开始代码相关的有效负载数据。神经网络单元头部可以包括指示该分割的信息。计数器值0可以指示没有部分信息,大于0的计数器值可以指示部分信息的索引。多个信息单元可以在其各自的单元头部中具有相同的唯一标识符,以指示分割所属的神经网络拓扑元素级别信息。唯一标识符可以是NNEF拓扑图中的Khronos神经网络交换格式(NNEF)变量标识符或标签。拓扑信息可以包括Khronos神经网络交换格式(NNEF)拓扑信息。多个信息单元可以在它们的单元头部中具有指示这些信息单元是否是可独立解码的标志。参数集合可以包含指示在压缩的神经网络比特流中拓扑单元的存在和携带的标志。参数集合可以包含指示稀疏化是否被应用于该至少一个神经网络的标志。参数集合可以包含稀疏化性能图数据结构,其信号传送在不同稀疏化阈值和所得到的神经网络推理准确性之间的映射。所得到的神经网络推理准确性可以对应于该至少一个神经网络在输出准确性方面的性能。单元有效负载或头部可以包含量化映射数据结构,其信号传送码本,该码本包括在量化值和对应的去量化值之间的映射。单元头部可以指示神经网络单元类型,其指示串行化比特流的开始,其中串行化比特流是压缩的或未压缩的神经网络比特流。高级语法的解码可以包括:通过读取至少一个信息单元的大小、与该信息单元相关联的单元头部以及与该信息单元相关联的有效负载,来解析该单元;识别和解析与信息单元相关联的拓扑数据、量化数据、开始码指示符数据、参数集合数据或压缩或未压缩数据中的至少一个。
一种示例装备包括:用于对用于至少一个神经网络的高级比特流语法进行编码或解码的装置;其中,该高级比特流语法包括至少一个信息单元,该信息单元具有元数据或该至少一个神经网络的一部分的压缩的神经网络数据;以及其中,串行化比特流包括该至少一个信息单元中的一个或多个信息单元。
该装备的其他方面可以包括以下内容。串行化比特流可以作为文件被存储在虚拟或非虚拟目录树结构中,或者作为比特流通过数据管道被发送。所述至少一个神经网络的所述一部分是以下中的至少一个:层、滤波器、内核、偏差、量化权重、张量或作为至少一个神经网络的可识别部分的任何其他数据结构。该信息单元可以包括:信号传送该信息单元的大小的单元大小;携带与该至少一个神经网络相关的压缩或未压缩数据和相关元数据的单元有效负载;以及具有关于单元有效负载所携带的数据类型的信息和相关元数据的单元头部。单元有效负载可以包括以下至少一项:参数集合,其包括全局元数据和关于至少一个神经网络的信息;神经网络拓扑信息及相关数据;压缩的或未压缩的神经网络数据,其为完整的或部分的;量化数据;或压缩的神经网络比特流开始指示符或开始代码相关的有效负载数据。拓扑数据、压缩的或未压缩的神经网络数据单元有效负载或量化数据中的至少一个可以被分割为多个信息单元。神经网络单元头部可以包括指示该分割的信息。指示该分割的信息可以由向后计数以便指示使用的分割的数量的计数器表示。计数器值0可以指示没有部分信息,大于0的计数器值可以指示部分信息的索引。多个信息单元可以在其各自的单元头部中具有相同的唯一标识符,以指示分割所属的神经网络拓扑元素级别信息。该唯一标识符可以是NNEF拓扑图中的Khronos神经网络交换格式(NNEF)变量标识符或标签。拓扑信息可以包括Khronos神经网络交换格式(NNEF)拓扑信息。多个信息单元可以在它们的单元头部中具有指示这些信息单元是否是可独立解码的标志。参数集合可以包含指示压缩的神经网络比特流中拓扑单元的存在和携带的标志。参数集合可以包含指示稀疏化是否被应用于该至少一个神经网络的标志。参数集合可以包含稀疏化性能图数据结构,其信号传送在不同稀疏化阈值和所得到的神经网络推理准确性之间的映射。所得到的神经网络推理准确性可以对应于该至少一个神经网络在输出准确性方面的性能。单元有效负载或头部可以包含量化映射数据结构,其信号传送码本,该码本包括在量化值和对应的去量化值之间的映射。可以使用神经网络交换格式来携带压缩的神经网络数据。压缩的神经网络数据单元有效负载可以是经由与压缩的网络数据单元有效负载相关联的单元头部内的引用或标签可映射到拓扑数据的,其中该引用或标签包括以下中的至少一个:唯一标识符、唯一字符串、或相对或绝对的统一资源标识符或定位符。单元头部可以指示神经网络单元类型,其指示串行化比特流的开始,其中串行化比特流是压缩的或未压缩的神经网络比特流。编码器可以通过传输信道向解码器提供该串行化比特流。高级语法的解码可以包括:通过读取至少一个信息单元的大小、与该信息单元相关联的单元头部以及与该信息单元相关联的有效负载,来解析该单元;识别和解析与该信息单元相关联的拓扑数据、量化数据、开始码指示符数据、参数集合数据、或压缩或未压缩数据中的至少一个。该装备还可以包括用于检查开始单元的存在的装置,该开始单元指示比特流的开始和在比特流的开始处解码的开始。该装备还可以包括用于进一步压缩与信息单元相关联的压缩数据的装置。
一种示例方法,包括:对用于至少一个神经网络的高级比特流语法进行编码或解码;其中,该高级比特流语法包括至少一个信息单元,该信息单元具有元数据或该至少一个神经网络的一部分的压缩的神经网络数据;以及其中,串行化比特流包括该至少一个信息单元中的一个或多个信息单元。
该方法的其他方面可以包括以下内容。串行化比特流可以作为文件被存储在虚拟或非虚拟目录树结构中,或者作为比特流通过数据管道被发送。所述至少一个神经网络的所述一部分是以下中的至少一个:层、滤波器、内核、偏差、量化权重、张量、或至少一个神经网络的可识别部分的任何其他数据结构。该信息单元可以包括:信号传送该信息单元的大小的单元大小;携带与神经网络相关的压缩或未压缩数据和相关元数据的单元有效负载;以及具有关于单元有效负载所携带的数据类型的信息和相关元数据的单元头部。单元有效负载可以包括以下至少一项:参数集合,其包括全局元数据和关于至少一个神经网络的信息;神经网络拓扑信息及相关数据;压缩的或未压缩的神经网络数据,其为完整的或部分的;量化数据;或压缩的神经网络比特流开始指示符或与开始代码相关的有效负载数据。拓扑数据、压缩的或未压缩的神经网络数据单元有效负载、或量化数据中的至少一个可以被分割为多个信息单元。神经网络单元头部可以包括指示该分割的信息。指示该分割的信息可以由向后计数以便指示使用的分割的数量的计数器表示。计数器值0可以指示没有部分信息,大于0的计数器值可以指示部分信息的索引。多个信息单元可以在其各自的单元头部中具有相同的唯一标识符,以指示分割所属的神经网络拓扑元素级别信息。该唯一标识符可以是NNEF拓扑图中的Khronos神经网络交换格式(NNEF)变量标识符或标签。拓扑信息可以包括Khronos神经网络交换格式(NNEF)拓扑信息。多个信息单元可以在它们的单元头部中具有指示这些信息单元是否是可独立解码的标志。参数集合可以包含指示压缩的神经网络比特流中拓扑单元的存在和携带的标志。参数集合可以包含指示稀疏化是否被应用于至少一个神经网络的标志。参数集合可以包含稀疏化性能图数据结构,其信号传送不同稀疏化阈值和所得到的神经网络推理准确性之间的映射。所得到的神经网络推理准确性可以对应于该至少一个神经网络在输出准确性方面的性能。单元有效负载或头部可以包含量化映射数据结构,其信号传送码本,该码本包括在量化值和对应的去量化值之间的映射。可以使用神经网络交换格式来携带压缩的神经网络数据。压缩的神经网络数据单元有效负载可以是经由与压缩的网络数据单元有效负载相关联的单元头部内的引用或标签可映射到拓扑数据的,其中该引用或标签包括以下中的至少一个:唯一标识符、唯一字符串、或相对或绝对的统一资源标识符或定位符。单元头部可以指示神经网络单元类型,其指示串行化比特流的开始,其中串行化比特流是压缩的或未压缩的神经网络比特流。编码器可以通过传输信道向解码器提供串行化比特流。高级语法的解码可以包括:通过读取至少一个信息单元的大小、与该信息单元相关联的单元头部以及与该信息单元相关联的有效负载,来解析该单元;识别和解析与信息单元相关联的拓扑数据、量化数据、开始码指示符数据、参数集合数据、或压缩或未压缩数据中的至少一个。该方法还可以包括检查开始单元的存在,该开始单元指示比特流的开始和在比特流的开始处解码的开始。该方法还可以包括进一步压缩与信息单元相关联的压缩数据。
提供了一种机器可读的示例非暂时性程序存储设备,其有形地体现了该机器可执行的用于执行操作的指令的程序,所述操作包括:对用于至少一个神经网络的高级比特流语法进行编码或解码;其中,该高级比特流语法包括至少一个信息单元,该信息单元具有元数据或该至少一个神经网络的一部分的压缩的神经网络数据;以及其中,串行化比特流包括该至少一个信息单元中的一个或多个信息单元。
该非暂时性程序存储设备的其他方面可以包括以下内容。串行化比特流可以作为文件被存储在虚拟或非虚拟目录树结构中,或者作为比特流通过数据管道被发送。所述至少一个神经网络的所述一部分是以下中的至少一个:层、滤波器、内核、偏差、量化权重、张量或至少一个神经网络的可识别部分的任何其他数据结构。该信息单元可以包括:信号传送该信息单元的大小的单元大小;携带与神经网络相关的压缩或未压缩数据和相关元数据的单元有效负载;以及具有关于单元有效负载所携带的数据类型的信息和相关元数据的单元头部。单元有效负载可以包括以下至少一项:参数集合,其包括全局元数据和关于至少一个神经网络的信息;神经网络拓扑信息及相关数据;压缩的或未压缩的神经网络数据,其为完整的或部分的;量化数据;或压缩的神经网络比特流开始指示符或开始代码相关的有效负载数据。拓扑数据、压缩的或未压缩的神经网络数据单元有效负载或量化数据中的至少一个可以被分割为多个信息单元。神经网络单元头部可以包括指示该分割的信息。指示该分割的信息可以由向后计数以便指示使用的分割的数量的计数器表示。计数器值0可以指示没有部分信息,大于0的计数器值可以指示部分信息的索引。多个信息单元可以在其各自的单元头部中具有相同的唯一标识符,以指示分割所属的神经网络拓扑元素级别信息。该唯一标识符可以是NNEF拓扑图中的Khronos神经网络交换格式(NNEF)变量标识符或标签。拓扑信息可以包括Khronos神经网络交换格式(NNEF)拓扑信息。多个信息单元可以在它们的单元头部中具有指示这些信息单元是否是可独立解码的标志。参数集合可以包含指示压缩的神经网络比特流中拓扑单元的存在和携带的标志。参数集合可以包含指示稀疏化是否被应用于该至少一个神经网络的标志。参数集合可以包含稀疏化性能图数据结构,其信号传送不同稀疏化阈值和所得到的神经网络推理准确性之间的映射。所得到的神经网络推理准确性可以对应于该至少一个神经网络在输出准确性方面的性能。单元有效负载或头部可以包含量化映射数据结构,其信号传送码本,该码本包括在量化值和对应的去量化值之间的映射。可以使用神经网络交换格式来携带压缩的神经网络数据。压缩的神经网络数据单元有效负载可以是经由与压缩的网络数据单元有效负载相关联的单元头部内的引用或标签可映射到拓扑数据的,其中该引用或标签包括以下中的至少一个:唯一标识符、唯一字符串、或相对或绝对的统一资源标识符或定位符。单元头部可以指示神经网络单元类型,其指示串行化比特流的开始,其中串行化比特流是压缩的或未压缩的神经网络比特流。编码器可以通过传输信道将串行化比特流提供给解码器。高级语法的解码可以包括:通过读取至少一个信息单元的大小、与该信息单元相关联的单元头部以及与该信息单元相关联的有效负载,来解析该单元;识别和解析与该信息单元相关联的拓扑数据、量化数据、开始码指示符数据、参数集合数据、或压缩或未压缩数据中的至少一个。非暂时性程序存储设备的操作还可以包括检查开始单元的存在,该开始单元指示比特流的开始和在比特流的开始处解码的开始。非暂时性程序存储设备的操作还可以包括进一步压缩与信息单元相关联的压缩数据。
应当理解,上述描述仅是说明性的。本领域技术人员可以设计各种替代和修改。例如,各种从属权利要求中记载的特征可以以任何合适的组合彼此组合。此外,来自上述不同实施例的特征可以选择性地组合成新的实施例。因此,该描述旨在涵盖落入所附权利要求范围内的所有此类替代、修改和变化。
Claims (51)
1.一种装备,包括:
用于对用于至少一个神经网络的高级比特流语法进行编码或解码的装置;其中,所述高级比特流语法包括至少一个信息单元,所述信息单元具有元数据或所述至少一个神经网络的一部分的压缩的神经网络数据;以及
其中,串行化比特流包括所述至少一个信息单元中的一个或多个信息单元。
2.根据权利要求1所述的装备,其中,所述串行化比特流作为文件被存储在虚拟或非虚拟目录树结构中,或者作为比特流通过数据管道被发送。
3.根据权利要求1至2中任一项所述的装备,其中,所述至少一个神经网络的所述一部分是以下中的至少一个:层,滤波器,内核,偏差,量化权重,张量,或至少一个神经网络的可识别部分的任何其他数据结构。
4.根据权利要求1至3中任一项所述的装备,其中,所述信息单元包括:
信号传送所述信息单元的大小的单元大小;
携带与所述至少一个神经网络相关的压缩或未压缩数据以及相关元数据的单元有效负载;以及
具有关于所述单元有效负载携带的数据类型的信息和相关元数据的单元头部。
5.根据权利要求4所述的装备,其中,所述单元有效负载包括以下至少一项:
包括全局元数据和关于所述至少一个神经网络的信息的参数集合;
神经网络拓扑信息和相关数据;
压缩的或未压缩的神经网络数据,其为完整的或部分的;
量化数据;或
压缩的神经网络比特流开始指示符或与开始码相关的有效负载数据。
6.根据权利要求5所述的装备,其中,所述拓扑数据、所述压缩的或未压缩的神经网络数据单元有效负载、或所述量化数据中的至少一个被分割为多个信息单元。
7.根据权利要求6所述的装备,其中,神经网络单元头部包括用于指示所述分割的信息。
8.根据权利要求7所述的装备,其中,指示所述分割的所述信息由向后计数以便指示使用的分割的数量的计数器表示。
9.根据权利要求7至8中任一项所述的装备,其中,计数器值0指示没有部分信息,并且大于0的所述计数器值指示所述部分信息的索引。
10.根据权利要求6至9中任一项所述的装备,其中,所述多个信息单元在它们各自的单元头部中具有相同的唯一标识符,以指示分割所属的神经网络拓扑元素级别信息。
11.根据权利要求10所述的装备,其中,所述唯一标识符是NNEF拓扑图中的Khronos神经网络交换格式NNEF变量标识符或标签。
12.根据权利要求6至11中任一项所述的装备,其中,所述拓扑信息包括Khronos神经网络交换格式NNEF拓扑信息。
13.根据权利要求6至12中任一项所述的装备,其中,所述多个信息单元在它们的单元头部中具有指示这样的信息单元是否是可独立解码的标志。
14.根据权利要求5至13中任一项所述的装备,其中,所述参数集合包含指示在所述压缩的神经网络比特流中拓扑单元的存在和携带的标志。
15.根据权利要求5至14中任一项所述的装备,其中,所述参数集合包含指示是否将稀疏化被应用于所述至少一个神经网络的标志。
16.根据权利要求5至15中任一项所述的装备,其中,所述参数集合包含稀疏化性能图数据结构,所述稀疏化性能图数据结构信号传送在不同稀疏化阈值与所得到的神经网络推理准确性之间的映射。
17.根据权利要求16所述的装备,其中,所述得到的神经网络推理准确性对应于所述至少一个神经网络在输出准确性方面的性能。
18.根据权利要求5至17中任一项所述的装备,其中,单元有效负载或头部包含量化映射数据结构,所述量化映射数据结构信号传送码本,所述码本包括在量化值和对应的去量化值之间的映射。
19.根据权利要求1至18中任一项所述的装备,其中,使用神经网络交换格式来携带所述压缩的神经网络数据。
20.根据权利要求5至19中任一项所述的装备,其中,所述压缩的神经网络数据单元有效负载是经由与所述压缩的网络数据单元有效负载相关联的单元头部内的引用或标签可映射到所述拓扑数据的,其中所述引用或标签包括以下中的至少一个:唯一标识符,唯一字符串,或相对或绝对的统一资源标识符或定位符。
21.根据权利要求4至20中任一项所述的装备,其中,所述单元头部指示神经网络单元类型,所述神经网络单元类型指示所述串行化比特流的开始,其中所述串行化比特流是压缩的或未压缩的神经网络比特流。
22.根据权利要求1至21中任一项所述的装备,其中,编码器通过传输信道向解码器提供所述串行化比特流。
23.根据权利要求1至22中任一项所述的装备,其中,所述高级语法的所述解码包括:
通过读取至少一个信息单元的大小、与所述信息单元相关联的单元头部,以及与所述信息单元相关联的有效负载,来解析所述单元;以及
识别和解析与所述信息单元相关联的拓扑数据、量化数据、开始码指示符数据、参数集合数据、或压缩或未压缩数据中的至少一个。
24.根据权利要求23所述的装备,还包括:
用于检查开始单元的存在的装置,所述开始单元指示所述比特流的所述开始和在所述比特流的所述开始处所述解码的开始。
25.根据权利要求23至24中任一项所述的装备,还包括:
用于进一步压缩与所述信息单元相关联的压缩数据的装置。
26.一种方法,包括:
对用于至少一个神经网络的高级比特流语法进行编码或解码;
其中,所述高级比特流语法包括至少一个信息单元,所述信息单元具有元数据或所述至少一个神经网络的一部分的压缩的神经网络数据;以及
其中,串行化比特流包括所述至少一个信息单元中的一个或多个信息单元。
27.根据权利要求26所述的方法,其中,所述串行化比特流作为文件被存储在虚拟或非虚拟目录树结构中,或者作为比特流通过数据管道被发送。
28.根据权利要求26至27中任一项所述的方法,其中,所述至少一个神经网络的所述部分是以下中的至少一个:层,滤波器,内核,偏差,量化权重,张量,或至少一个神经网络的可识别部分的任何其他数据结构。
29.根据权利要求26至28中任一项所述的方法,其中,所述信息单元包括:
信号传送所述信息单元的大小的单元大小;
携带与所述至少一个神经网络相关的压缩或未压缩数据以及相关元数据的单元有效负载;以及
具有关于所述单元有效负载携带的数据类型的信息和相关元数据的单元头部。
30.根据权利要求29所述的方法,其中,所述单位有效负载包括以下至少一项:
包括全局元数据和关于所述至少一个神经网络的信息的参数集合;
神经网络拓扑信息和相关数据;
压缩的或未压缩的神经网络数据,其为完整的或部分的;
量化数据;或
压缩的神经网络比特流开始指示符或与开始码相关的有效负载数据。
31.根据权利要求30所述的方法,其中,所述拓扑数据、所述压缩的或未压缩的神经网络数据单元有效负载、或所述量化数据中的至少一个被分割为多个信息单元。
32.根据权利要求31所述的方法,其中,神经网络单元头部包括用于指示所述分割的信息。
33.根据权利要求32所述的方法,其中,指示所述分割的所述信息由向后计数以便指示使用的分割的数量的计数器表示。
34.根据权利要求32至33中任一项所述的方法,其中,计数器值0指示没有部分信息,并且大于0的所述计数器值指示所述部分信息的索引。
35.根据权利要求31至34中任一项所述的方法,其中,所述多个信息单元在它们各自的单元头部中具有相同的唯一标识符,以指示分割所属的神经网络拓扑元素级别信息。
36.根据权利要求35所述的方法,其中,所述唯一标识符是NNEF拓扑图中的Khronos神经网络交换格式NNEF变量标识符或标签。
37.根据权利要求31至36中任一项所述的方法,其中,所述拓扑信息包括Khronos神经网络交换格式NNEF拓扑信息。
38.根据权利要求31至37中任一项所述的方法,其中,所述多个信息单元在它们的单元头部中具有指示这样的信息单元是否是可独立解码的标志。
39.根据权利要求30至38中任一项所述的方法,其中,所述参数集合包含指示所述压缩的神经网络比特流中拓扑单元的存在和携带的标志。
40.根据权利要求30至39中任一项所述的方法,其中,所述参数集合包含指示稀疏化是否被应用于所述至少一个神经网络的标志。
41.根据权利要求30至40中任一项所述的方法,其中,所述参数集合包含稀疏化性能图数据结构,所述稀疏化性能图数据结构信号传送在不同稀疏化阈值与所得到的神经网络推理准确性之间的映射。
42.根据权利要求41所述的方法,其中,所述得到的神经网络推理准确性对应于所述至少一个神经网络在输出准确性方面的性能。
43.根据权利要求30至42中任一项所述的方法,其中,单元有效负载或头部包含量化映射数据结构,所述量化映射数据结构信号传送码本,所述码本包括在量化值和对应的去量化值之间的映射。
44.根据权利要求26至43中任一项所述的方法,其中,使用神经网络交换格式来携带所述压缩的神经网络数据。
45.根据权利要求30至44中任一项所述的方法,其中,所述压缩的神经网络数据单元有效负载是经由与所述压缩的网络数据单元有效负载相关联的单元头部内的引用或标签可映射到所述拓扑数据的,其中所述引用或标签包括以下中的至少一个:唯一标识符、唯一字符串、或相对或绝对的统一资源标识符或定位符。
46.根据权利要求29至45中任一项所述的方法,其中,所述单元头部指示神经网络单元类型,所述神经网络单元类型指示所述串行化比特流的开始,其中所述串行化比特流是压缩的或未压缩的神经网络比特流。
47.根据权利要求26至46中任一项所述的方法,其中,编码器通过传输信道向解码器提供所述串行化比特流。
48.根据权利要求26至47中任一项所述的方法,其中,所述高级语法的所述解码包括:
通过读取至少一个信息单元的大小、与所述信息单元相关联的单元头部、以及与所述信息单元相关联的有效负载来解析所述单元;以及
识别和解析与所述信息单元相关联的拓扑数据、量化数据、开始码指示符数据、参数集合数据、或压缩或未压缩数据中的至少一个。
49.根据权利要求48所述的方法,还包括:
检查开始单元的存在,所述开始单元指示所述比特流的开始和在所述比特流的所述开始处所述解码的开始。
50.根据权利要求48至49中任一项所述的方法,还包括:
进一步压缩与所述信息单元相关的压缩数据。
51.一种机器可读的非暂时性程序存储设备,其有形地体现可由所述机器执行以执行操作的指令的程序,所述操作包括:
对用于至少一个神经网络的高级比特流语法进行编码或解码;
其中,所述高级比特流语法包括至少一个信息单元,所述信息单元具有元数据或所述至少一个神经网络的一部分的压缩的神经网络数据;以及
其中,串行化比特流包括所述至少一个信息单元中的一个或多个信息单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062957982P | 2020-01-07 | 2020-01-07 | |
US62/957,982 | 2020-01-07 | ||
PCT/FI2020/050878 WO2021140275A1 (en) | 2020-01-07 | 2020-12-31 | High level syntax for compressed representation of neural networks |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115210715A true CN115210715A (zh) | 2022-10-18 |
Family
ID=76654786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080098136.4A Pending CN115210715A (zh) | 2020-01-07 | 2020-12-31 | 用于神经网络的压缩表示的高级语法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11412266B2 (zh) |
EP (1) | EP4088227A4 (zh) |
CN (1) | CN115210715A (zh) |
WO (1) | WO2021140275A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12022129B2 (en) | 2020-04-15 | 2024-06-25 | Nokia Technologies Oy | High level syntax and carriage for compressed representation of neural networks |
US12036036B2 (en) | 2021-02-05 | 2024-07-16 | Nokia Technologies Oy | High-level syntax for signaling neural networks within a media bitstream |
US11647216B2 (en) * | 2021-04-12 | 2023-05-09 | Tencent America LLC | Techniques for signaling neural network topology, parameters, and processing information in video stream |
JP2022188911A (ja) * | 2021-06-10 | 2022-12-22 | キオクシア株式会社 | 圧縮装置、圧縮伸張装置及びメモリシステム |
CN113610303B (zh) * | 2021-08-09 | 2024-03-19 | 北京邮电大学 | 一种负荷预测方法及*** |
WO2023064419A1 (en) * | 2021-10-13 | 2023-04-20 | Google Inc. | Quantized machine-learning configuration information |
CN114466082B (zh) * | 2022-01-29 | 2024-01-09 | 上海阵量智能科技有限公司 | 数据压缩、数据解压方法、***及人工智能ai芯片 |
KR20230124503A (ko) * | 2022-02-18 | 2023-08-25 | 인텔렉추얼디스커버리 주식회사 | 특징맵 압축 방법 및 장치 |
FR3137809A1 (fr) * | 2022-07-08 | 2024-01-12 | Orange | Codage et décodage de données audio et/ou vidéo |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001509354A (ja) * | 1997-01-21 | 2001-07-10 | サーノフ コーポレイション | 接続点の存在を示す情報ストリームシンタックス |
US7280549B2 (en) * | 2001-07-09 | 2007-10-09 | Micron Technology, Inc. | High speed ring/bus |
US20150264404A1 (en) * | 2014-03-17 | 2015-09-17 | Nokia Technologies Oy | Method and apparatus for video coding and decoding |
US10725942B2 (en) * | 2018-11-09 | 2020-07-28 | Xilinx, Inc. | Streaming platform architecture for inter-kernel circuit communication for an integrated circuit |
EP3973460A1 (en) * | 2019-05-21 | 2022-03-30 | InterDigital VC Holdings, Inc. | Linear neural reconstruction for deep neural network compression |
US20210174214A1 (en) * | 2019-12-10 | 2021-06-10 | The Mathworks, Inc. | Systems and methods for quantizing a neural network |
-
2020
- 2020-12-31 WO PCT/FI2020/050878 patent/WO2021140275A1/en unknown
- 2020-12-31 CN CN202080098136.4A patent/CN115210715A/zh active Pending
- 2020-12-31 EP EP20911988.2A patent/EP4088227A4/en active Pending
-
2021
- 2021-01-04 US US17/140,512 patent/US11412266B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4088227A4 (en) | 2024-01-24 |
WO2021140275A1 (en) | 2021-07-15 |
US11412266B2 (en) | 2022-08-09 |
EP4088227A1 (en) | 2022-11-16 |
US20210211733A1 (en) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11412266B2 (en) | High level syntax for compressed representation of neural networks | |
US12036036B2 (en) | High-level syntax for signaling neural networks within a media bitstream | |
US20240022787A1 (en) | Carriage and signaling of neural network representations | |
US20230217028A1 (en) | Guided probability model for compressed representation of neural networks | |
US20230252273A1 (en) | Systems and methods for encoding/decoding a deep neural network | |
CN105554513A (zh) | 一种基于h.264的全景视频传输方法及*** | |
US20210103813A1 (en) | High-Level Syntax for Priority Signaling in Neural Network Compression | |
US12022129B2 (en) | High level syntax and carriage for compressed representation of neural networks | |
US20240202507A1 (en) | Method, apparatus and computer program product for providing finetuned neural network filter | |
WO2023135518A1 (en) | High-level syntax of predictive residual encoding in neural network compression | |
WO2022269415A1 (en) | Method, apparatus and computer program product for providng an attention block for neural network-based image and video compression | |
US20240195969A1 (en) | Syntax and semantics for weight update compression of neural networks | |
US20230325639A1 (en) | Apparatus and method for joint training of multiple neural networks | |
US20230196072A1 (en) | Iterative overfitting and freezing of decoder-side neural networks | |
WO2022269469A1 (en) | Method, apparatus and computer program product for federated learning for non independent and non identically distributed data | |
US20230186054A1 (en) | Task-dependent selection of decoder-side neural network | |
US20220335979A1 (en) | Method, apparatus and computer program product for signaling information of a media track | |
US20240205422A1 (en) | Method and apparatus for signaling of regions and region masks in image file format | |
US20230014367A1 (en) | Compression of data stream | |
US20230169372A1 (en) | Appratus, method and computer program product for probability model overfitting | |
US20230232082A1 (en) | Method and apparatus for signaling multiple media data types | |
WO2023194816A1 (en) | Method and apparatus for tracking group entry information | |
WO2023057903A1 (en) | Method, apparatus and computer program product for implementing mechanisms for carriage of renderable text | |
WO2023200752A1 (en) | Model level update skipping in compressed incremental learning | |
WO2023148084A1 (en) | A method and an apparatus for encoding/decoding attributes of a 3d object |
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 |