[go: up one dir, main page]

CN119316617A - 一种解码方法、装置及其设备 - Google Patents

一种解码方法、装置及其设备 Download PDF

Info

Publication number
CN119316617A
CN119316617A CN202310856767.3A CN202310856767A CN119316617A CN 119316617 A CN119316617 A CN 119316617A CN 202310856767 A CN202310856767 A CN 202310856767A CN 119316617 A CN119316617 A CN 119316617A
Authority
CN
China
Prior art keywords
quantization
target
feature
network layer
weight
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.)
Granted
Application number
CN202310856767.3A
Other languages
English (en)
Other versions
CN119316617B (zh
Inventor
彭博
林晨
李哲暘
谭文明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202411932643.XA priority Critical patent/CN119450084A/zh
Priority to CN202511483286.8A priority patent/CN121078238A/zh
Priority to CN202310856767.3A priority patent/CN119316617B/zh
Priority to TW113126212A priority patent/TW202504315A/zh
Priority to PCT/CN2024/105166 priority patent/WO2025011638A1/zh
Priority to TW114115562A priority patent/TW202533578A/zh
Publication of CN119316617A publication Critical patent/CN119316617A/zh
Application granted granted Critical
Publication of CN119316617B publication Critical patent/CN119316617B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

本申请提供一种解码方法、装置及其设备,该方法包括:从当前图像块对应的码流中解码当前图像块对应的目标特征;基于目标特征确定目标解码网络的第一输入特征;获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于目标特征值量化位宽和目标特征值量化超参将第一输入特征转换为第二输入特征;基于目标解码网络的定点型权重对第二输入特征进行处理,得到目标解码网络的输出特征;其中,定点型权重是基于目标权重量化位宽和目标权重量化超参确定;基于目标解码网络的输出特征确定当前图像块对应的重建图像块。通过本申请技术方案,能够在保证解码质量的前提下,降低解码计算量。

Description

一种解码方法、装置及其设备
技术领域
本申请涉及编解码技术领域,尤其是涉及一种解码方法、装置及其设备。
背景技术
为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码可以包括预测、变换、量化、熵编码、滤波等过程。针对预测过程,预测过程可以包括帧内预测和帧间预测,帧间预测是指利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。帧内预测是指利用视频空间域的相关性,使用当前帧图像的已编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
随着深度学习技术的迅速发展,深度学习技术在许多高层次的计算机视觉问题上取得成功,如图像分类、目标检测等,深度学习技术也逐渐在编解码领域开始应用,即可以采用神经网络对图像进行编码和解码。虽然基于神经网络的编解码方法展现出巨大的性能潜力,但是,基于神经网络的编解码方法仍然存在解码性能较差和复杂度较高等问题。
发明内容
有鉴于此,本申请提供一种解码方法、装置及其设备,提高解码性能,降低解码复杂度。
本申请提供一种解码方法,所述方法包括:
从当前图像块对应的码流中解码所述当前图像块对应的目标特征;
基于所述目标特征确定目标解码网络的第一输入特征;
获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于所述目标特征值量化位宽和所述目标特征值量化超参将所述第一输入特征转换为第二输入特征;
基于目标解码网络的定点型权重对所述第二输入特征进行处理,得到所述目标解码网络的输出特征;其中,所述定点型权重是基于目标权重量化位宽和目标权重量化超参确定;
基于所述目标解码网络的输出特征确定所述当前图像块对应的重建图像块。
本申请提供一种解码装置,所述装置包括:
解码模块,用于从当前图像块对应的码流中解码所述当前图像块对应的目标特征;
确定模块,用于基于所述目标特征确定目标解码网络的第一输入特征;
处理模块,用于获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于所述目标特征值量化位宽和所述目标特征值量化超参将所述第一输入特征转换为第二输入特征;基于目标解码网络的定点型权重对所述第二输入特征进行处理,得到所述目标解码网络的输出特征;其中,所述定点型权重是基于目标权重量化位宽和目标权重量化超参确定;
所述确定模块,用于基于目标解码网络的输出特征确定当前图像块对应的重建图像块。
本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现上述的解码方法。
本申请提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,实现上述的解码方法。
由以上技术方案可见,本申请实施例中,从当前图像块对应的码流中解码当前图像块对应的目标特征,基于目标特征确定目标解码网络的第一输入特征,基于目标特征值量化位宽和目标特征值量化超参将第一输入特征转换为第二输入特征,基于目标解码网络的定点型权重对第二输入特征进行处理得到目标解码网络的输出特征,基于该输出特征确定当前图像块对应的重建图像块,从而提出一种端到端的视频图像压缩方法,能够基于解码网络实现视频图像的解码,达到提升编码效率和解码效率的目的。采用目标权重量化位宽和目标权重量化超参构建定点化权重的解码网络,并采用目标特征值量化位宽和目标特征值量化超参生成定点化的输入特征,实现自适应解码加速,在保证解码质量的前提下,降低解码计算量。
附图说明
图1是本申请一种实施方式中的三维特征矩阵的示意图;
图2是本申请一种实施方式中的解码方法的流程图;
图3是本申请一种实施方式中的编码端的处理过程示意图;
图4是本申请一种实施方式中的解码端的处理过程示意图;
图5A和图5B是本申请一种实施方式中的解码网络的示意图;
图6A和图6B是本申请一种实施方式中的解码网络的示意图;
图7是本申请一种实施方式中的解码端设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非用于限制本申请。本申请实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但是,这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息,取决于语境。此外,所使用的词语“如果”可以被解释成为“在……时”,或“当……时”,或“响应于确定”。
本申请实施例中提出一种解码方法,可以涉及如下技术术语:
JPEG(Joint Photographic Experts Group,联合图像专家组):JPEG是用于连续色调静态图像压缩的一种标准,文件后缀名可以为.jpg或者.jpeg,是一种常用的图像文件格式。JPEG是采用预测编码(DPCM)、离散余弦变换(DCT)以及熵编码的联合编码方式,以去除冗余的图像和彩色数据,属于有损压缩格式,能够将图像压缩在很小的储存空间,一定程度上会造成图像数据的损伤。尤其是,在使用过高的压缩比例时,将使得最终解压缩后恢复的图像质量降低,如果追求高品质图像,则JPEG不宜采用过高的压缩比例。
JPEG-AI(Joint Photographic Experts Group Artificial Intelligence,联合图像专家组-人工智能):JPEG-AI的范围是创建基于学习的图像编码标准,提供单流、紧凑的压缩域表示,在同等主观质量下,比常用的图像编码标准显著提高压缩效率,在图像处理和计算机视觉任务中有效提升性能。JPEG-AI面向广泛的应用,如云存储、视觉管理、自动驾驶汽车和设备、图像采集存储和管理、视觉数据的实时管理和媒体分发等。JPEG-AI的目标是设计一种编解码解决方案,该解决方案需要以相同的主观质量显著提高压缩效率,为基于机器学习的图像处理和计算机视觉任务提供有效的压缩域处理。JPEG-AI需要针对硬件和软件实现友好的编码和解码,对8位和10位深度的支持,使用文本和图形对图像进行高效编码和渐进式解码。
熵编码(Entropy Encoding):熵编码就是在编码过程中按照熵原理不丢失任何信息的编码,信息熵为信源的平均信息量(不确定性的度量)。熵编码的编码方式可以包括但不限于:香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)。
神经网络(Neural Network,NN):神经网络是指人工神经网络,神经网络是一种运算模型,由大量节点(或称为神经元)之间相互联接构成。在神经网络中,神经元处理单元可表示不同的对象,如特征、字母、概念,或者一些有意义的抽象模式。神经网络中处理单元的类型可以分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。神经元之间的连接权值反映了单元间的连接强度,信息的表示和处理体现在处理单元的连接关系中。神经网络是一种非程序化、类大脑风格的信息处理方式,神经网络的本质是通过神经网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。在视频处理领域,常用的神经网络可以包括但不限于:卷积神经网络(CNN)、循环神经网络(RNN)、全连接网络等。
卷积神经网络(Convolutional Neural Network,CNN):卷积神经网络是一种前馈神经网络,是深度学习技术中极具代表的网络结构之一,卷积神经网络的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络的基本结构可以包括两层,其一为特征提取层(也称卷积层),每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来。其二是特征映射层(也称激活层),神经网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构可采用Sigmoid函数、ReLU函数、Leaky-ReLU函数、PReLU函数、GDN函数等作为卷积网络的激活函数。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。
示例性的,卷积神经网络相较于图像处理算法的优点之一在于,避免了对图像复杂的前期预处理过程(提取人工特征等),可以直接输入原始图像,进行端到端的学习。卷积神经网络相较于普通神经网络的优点之一在于,普通神经网络都是采用全连接的方式,即输入层到隐藏层的神经元都是全部连接的,这样做将导致参数量巨大,使得网络训练耗时甚至难以训练,而卷积神经网络则通过局部连接、权值共享等方法避免了这一困难。
示例性的,卷积神经网络可以进行大型图像处理,卷积神经网络中通常包括卷积层、池化层、全连接层等,卷积神经网络在图像分类、目标检测、语义分割等领域取得很大进展。
反卷积层(Deconvolution):反卷积层又称为转置卷积层,反卷积层和卷积层的工作过程很相似,主要区别在于,反卷积层会通过padding(填充),使得输出大于输入(当然也可以保持相同)。若stride为1,则表示输出尺寸等于输入尺寸;若stride(步长)为N,则表示输出特征的宽为输入特征的宽的N倍,输出特征的高为输入特征的高的N倍。
模型定点化/模型量化:模型定点化也可以称为模型量化,是一种常用的神经网络模型加速算法,通过将模型float类型的参数及输入输出的特征值定点化成固定比特的数值,如8bit、4bit,可以减少网络模型的计算代价、数据带宽和储存空间,使得网络模型能够在内存和计算能力有限的硬件上更快更好的应用。模型的定点化包括对模型权值的定点化和对特征值的定点化,定点化的比特数越低,在硬件上的加速越明显,性能也会相应的降低。
图像编解码:图像编解码技术的目的是对图像进行编码压缩,以便于降低图像数据的传输及存储的成本,同时可以被解码端进行解码还原成图像内容,越高的编码压缩率可以带来更低的传输和存储消耗,但是也给图像的复原带来很大困难。随着人工智能在各个领域的成功表现,人工智能也被应用到图像编解码领域,以获得更低压缩率和更好图像复原效果。
特征(feature):本申请中涉及的特征,可以是一个C*W*H的三维特征矩阵,参见图1所示,是三维特征矩阵的示意图,在三维特征矩阵中,C表示通道(channel)数,H表示特征高度,W表示特征宽度。三维特征矩阵可以是神经网络的输入,也可以是神经网络的输出。
率失真原则(Rate-Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和,为了实现代价考虑,也可以使用SAD指标,SAD是指重建图像块与源图像的差值绝对值之和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。在模式选择时,若使用率失真原则去对编码模式做比较决策,通常可以保证编码性能最佳。
针对编码端的各个模块,提出了非常多的编码工具,而每个工具往往又有多种模式。对于不同视频序列,能获得最优编码性能的编码工具往往不同。因此,在编码过程中,通常采用RDO(Rate-Distortion Opitimize)比较不同工具或模式的编码性能,以选择最佳模式。在确定最优工具或模式后,再通过在比特流中编码标记信息的方法传递工具或模式的决策信息。这种方法虽然带来了较高的编码复杂度,但可以针对不同内容,自适应选择最优的模式组合,获得最优的编码性能。解码端可通过直接解析标志信息获得相关模式信息,复杂度影响较小。
以下结合几个具体实施例,对本申请实施例中的解码方法进行详细说明。
实施例1:本申请实施例中提出一种解码方法,参见图2所示,该方法可以包括:
步骤201、从当前图像块对应的码流中解码当前图像块对应的目标特征。
步骤202、基于该目标特征确定目标解码网络的第一输入特征。
步骤203、获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于目标特征值量化位宽和目标特征值量化超参将该第一输入特征转换为第二输入特征。
步骤204、基于目标解码网络的定点型权重对第二输入特征进行处理,得到目标解码网络的输出特征;其中,定点型权重是基于目标权重量化位宽和目标权重量化超参确定。
步骤205、基于目标解码网络的输出特征确定当前图像块对应的重建图像块。
示例性的,目标解码网络包括至少一个目标网络层,目标网络层可以是采用定点型权重的网络层,针对目标解码网络中的每个目标网络层:基于该目标网络层的目标特征值量化位宽和目标特征值量化超参将该目标网络层的第一输入特征转换为第二输入特征;基于该目标网络层的定点型权重对该第二输入特征进行处理,得到该目标网络层的输出特征;其中,该目标网络层的定点型权重是基于该目标网络层的目标权重量化位宽和该目标网络层的目标权重量化超参确定;其中,不同目标网络层的目标特征值量化位宽可以相同或者不同,不同目标网络层的目标特征值量化超参可以相同或者不同,不同目标网络层的目标权重量化位宽可以均为固定量化位宽,不同目标网络层的目标权重量化超参可以相同或者不同。
示例性的,基于该目标网络层的目标特征值量化位宽和目标特征值量化超参将该目标网络层的第一输入特征转换为第二输入特征,包括但不限于:采用如下公式将该目标网络层的第一输入特征转换为第二输入特征:quant=clip(round(data×2param),-2bw-1,2bw-1-1);或者,quant=clip(round(data÷param),-2bw-1,2bw-1-1);其中,quant用于表示第二输入特征,data用于表示第一输入特征,param用于表示目标特征值量化超参,bw用于表示目标特征值量化位宽,clip用于表示截断函数,round用于表示四舍五入。
其中,通过截断函数clip的操作,若round(data×2param)小于-2bw-1,则quant为-2bw-1,若round(data×2param)大于2bw-1-1,则quant为2bw-1-1,若round(data×2param)位于-2bw-1与2bw-1-1之间,则quant为round(data×2param)。
其中,通过截断函数clip的操作,若round(data÷param)小于-2bw-1,则quant为-2bw-1,若round(data÷param)大于2bw-1-1,则quant为2bw-1-1,若round(data÷param)位于-2bw-1与2bw-1-1之间,则quant为round(data÷param)。
在后续实施例中,clip操作的含义类似,在后续过程中不再重复赘述。
示例性的,样本解码网络可以包括采用浮点型权重的多个网络层,多个网络层可以包括目标网络层,针对每个目标网络层:获取该目标网络层对应的权重量化超参候选列表,该权重量化超参候选列表可以包括多个候选权重量化超参;针对每个候选权重量化超参,采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重;基于该候选仿真权重对该目标网络层的浮点型输入特征进行处理,得到该目标网络层的浮点型输出特征,基于该目标网络层的浮点型输出特征确定该候选权重量化超参对应的量化误差;基于每个候选权重量化超参对应的量化误差,将最小量化误差对应的候选权重量化超参确定为目标权重量化超参,将该固定量化位宽确定为目标权重量化位宽;基于该目标权重量化位宽和该目标权重量化超参对目标网络层的浮点型权重进行定点量化得到该目标网络层的定点型权重;基于每个目标网络层的定点型权重生成目标解码网络。
示例性的,获取该目标网络层对应的权重量化超参候选列表,可以包括但不限于:基于该目标网络层的所有浮点型权重确定最大权重值;其中,每个浮点型权重包括多个权重值,且最大权重值是所有浮点型权重的所有权重值中的最大值;基于最大权重值生成该目标网络层对应的初始权重量化超参;基于初始权重量化超参构建权重量化超参候选列表。
示例性的,基于最大权重值生成该目标网络层对应的初始权重量化超参,可以包括但不限于:采用如下公式生成初始权重量化超参:param=bw-1-ceil(log2(max));或者,param=(max)/2bw-1;其中,param用于表示该目标网络层对应的初始权重量化超参,bw用于表示固定量化位宽,max用于表示最大权重值,ceil用于表示向上取整操作。
示例性的,采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重,可以包括:采用如下公式对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重:quant=2-param×clip(round(data×2param),-2bw-1,2bw -1-1);或者,quant=param×clip(round(data÷param),-2bw-1,2bw-1-1);其中,quant用于表示候选仿真权重,param用于表示该候选权重量化超参,data用于表示目标网络层的浮点型权重,bw用于表示固定量化位宽,clip用于表示截断函数,round用于表示四舍五入。
示例性的,基于该目标网络层的浮点型输出特征确定该候选权重量化超参对应的量化误差,可以包括但不限于:基于该目标网络层的浮点型输出特征确定样本输出特征,该样本输出特征可以为样本解码网络中参考网络层的输出特征,且该参考网络层为位于该目标网络层后面的任一网络层;基于样本输出特征和参考输出特征确定该候选权重量化超参对应的量化误差;其中,参考输出特征的获取方式可以包括但不限于:从样本码流中解码样本特征,基于该样本特征确定样本解码网络对应的浮点型输入特征,基于浮点型输入特征确定参考输出特征,该参考输出特征可以为样本解码网络中参考网络层的输出特征。
示例性的,样本解码网络可以包括采用浮点型权重的多个网络层,多个网络层包括目标网络层,针对每个目标网络层:获取该目标网络层对应的特征值量化超参候选列表和量化位宽集合,特征值量化超参候选列表包括多个候选特征值量化超参,量化位宽集合包括至少两个量化位宽;从量化位宽集合中遍历当前量化位宽,针对每个候选特征值量化超参,采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征;基于该目标网络层的伪权重对该候选输入特征进行处理,得到该目标网络层的浮点型输出特征,基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差;基于每个候选特征值量化超参对应的量化误差,若最小量化误差小于预设阈值,则将最小量化误差对应的候选特征值量化超参确定为目标特征值量化超参,将当前量化位宽确定为目标特征值量化位宽,为该目标网络层记录目标特征值量化超参和目标特征值量化位宽。
示例性的,基于每个候选特征值量化超参对应的量化误差,若最小量化误差不小于预设阈值,则判断当前量化位宽是否为量化位宽集合的最后一个量化位宽;若是,将最小量化误差对应的候选特征值量化超参确定为目标特征值量化超参,将当前量化位宽确定为目标特征值量化位宽,为该目标网络层记录目标特征值量化超参和目标特征值量化位宽;若否,遍历当前量化位宽的后一个量化位宽作为当前量化位宽,并返回执行采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征的操作。
示例性的,获取该目标网络层对应的特征值量化超参候选列表,包括:基于该目标网络层的所有浮点型输入特征确定最大特征值;其中,每个浮点型输入特征包括多个特征值,且最大特征值是所有浮点型输入特征的所有特征值中的最大值;基于最大特征值生成该目标网络层对应的初始特征值量化超参;基于初始特征值量化超参构建特征值量化超参候选列表。
示例性的,基于最大特征值生成该目标网络层对应的初始特征值量化超参,可以包括但不限于:采用如下公式生成初始特征值量化超参:param=bw-1-ceil(log2(max));或者,param=(max)/2bw-1;其中,param表示该目标网络层对应的初始特征值量化超参,bw表示当前量化位宽,max表示最大特征值,ceil表示向上取整操作。
示例性的,采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征,可以包括但不限于:采用如下公式对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征:quant=2-param×clip(r nd(data×2param),-2bw-1,2bw-1-1);或,quant=param×clip(round(data÷param),-2bw-1,2bw-1-1);其中,quant表示该候选输入特征,param表示该候选特征值量化超参,data表示该浮点型输入特征,bw表示该当前量化位宽,clip表示截断函数,round表示四舍五入。
示例性的,基于该目标网络层的伪权重对该候选输入特征进行处理,得到该目标网络层的浮点型输出特征之前,还可以采用该目标网络层的目标权重量化超参和该目标网络层的目标权重量化位宽对该目标网络层的浮点型权重进行仿真量化得到该目标网络层的伪权重。
示例性的,基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差,可以包括但不限于:基于该目标网络层的浮点型输出特征确定样本输出特征,该样本输出特征可以为样本解码网络中参考网络层的输出特征,且该参考网络层为位于该目标网络层后面的任一网络层;基于样本输出特征和参考输出特征确定该候选特征值量化超参对应的量化误差;其中,参考输出特征的获取方式可以包括但不限于:从样本码流中解码样本特征,基于该样本特征确定样本解码网络对应的浮点型输入特征,基于浮点型输入特征确定参考输出特征,该参考输出特征可以为样本解码网络中参考网络层的输出特征。
示例性的,上述执行顺序只是为了方便描述给出的示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
由以上技术方案可见,本申请实施例中,从当前图像块对应的码流中解码当前图像块对应的目标特征,基于目标特征确定目标解码网络的第一输入特征,基于目标特征值量化位宽和目标特征值量化超参将第一输入特征转换为第二输入特征,基于目标解码网络的定点型权重对第二输入特征进行处理得到目标解码网络的输出特征,基于该输出特征确定当前图像块对应的重建图像块,从而提出一种端到端的视频图像压缩方法,能够基于解码网络实现视频图像的解码,达到提升编码效率和解码效率的目的。采用目标权重量化位宽和目标权重量化超参构建定点化权重的解码网络,并采用目标特征值量化位宽和目标特征值量化超参生成定点化的输入特征,实现自适应解码加速,在保证解码质量的前提下,降低解码计算量。
实施例2:编码端的处理过程可以参见图3所示,图3只是一个示例,对此不作限制。
编码端在得到当前图像块x(当前图像块x可以为原始图像块x,即输入的图像块)之后,可以通过分析变换网络(即神经网络)对当前图像块x进行分析变换,得到当前图像块x对应的图像特征y。其中,通过分析变换网络对当前图像块x进行特征变换是指:将当前图像块x变换到latent域的图像特征y,从而方便后续所有过程在latent域上进行操作。
图像可以划分成1个图像块,也可以划分成多个图像块,若图像划分成1个图像块,则当前图像块x也可以为当前图像,即对于图像块的编解码过程也可以直接用于图像。
编码端在得到图像特征y之后,对图像特征y进行系数超参特征变换,得到系数超参特征z,比如说,可以将图像特征y输入给超参编码网络(即神经网络),由超参编码网络对图像特征y进行系数超参特征变换,得到系数超参特征z。其中,超参编码网络可以是已训练的神经网络,对此超参编码网络的训练过程不作限制,能够对图像特征y进行系数超参特征变换即可。其中,latent域的图像特征y经过超参编码网络之后得到超先验latent信息z。
编码端在得到系数超参特征z之后,可以对系数超参特征z进行量化,得到系数超参特征z对应的超参量化特征,即图3中的Q操作为量化过程。在得到系数超参特征z对应的超参量化特征之后,对超参量化特征进行编码,得到当前图像块对应的Bitstream#1(即第一码流,第一码流属于当前图像块对应的主码流),即图3中的AE操作表示编码过程,如熵编码过程。或者,编码端在得到系数超参特征z之后,也可以直接对系数超参特征z进行编码,得到当前图像块对应的Bitstream#1,而不涉及量化过程。其中,Bitstream#1中携带的超参量化特征或者系数超参特征z主要用于获取均值和概率分布模型的概率分布参数。
在得到当前图像块对应的Bitstream#1之后,编码端可以将当前图像块对应的Bitstream#1发送给解码端,关于解码端针对当前图像块对应的Bitstream#1的处理过程,参见后续实施例。
编码端在得到当前图像块对应的Bitstream#1之后,还可以对Bitstream#1进行解码,得到超参量化特征,即图3中的AD表示解码过程,然后,对超参量化特征进行反量化,得到系数超参特征z_hat,系数超参特征z_hat与系数超参特征z可以相同或者不同,图3中的IQ操作为反量化过程。或者,编码端在得到当前图像块对应的Bitstream#1之后,还可以对Bitstream#1进行解码,得到系数超参特征z_hat,而不涉及系数超参特征z_hat的反量化过程。
针对Bitstream#1的编码过程,可以采用固定概率密度模型的编码方法,针对Bitstream#1的解码过程,可以采用固定概率密度模型的解码方法,对此编码和解码过程不做限制。
编码端在得到系数超参特征z_hat之后,可以基于当前图像块的系数超参特征z_hat和前面图像块的图像特征y_hat(图像特征y_hat的确定过程参见后续实施例),进行基于上下文的预测,得到当前图像块对应的预测值mu(即均值mu),比如说,将系数超参特征z_hat和图像特征y_hat输入给均值预测网络,由均值预测网络基于系数超参特征z_hat和图像特征y_hat确定预测值mu,对此预测过程不作限制。其中,针对基于上下文的预测过程,输入包括系数超参特征z_hat和已解码的图像特征y_hat,两者联合输入获取更精准的预测值mu,预测值mu用于与原始特征作差获得残差,残差与解码的特征相加得到重建y。
需要注意的是,均值预测网络为可选的神经网络,即也可以没有均值预测网络,即不需要通过均值预测网络确定预测值mu,图3中的虚线框表示均值预测网络为可选。
编码端在得到图像特征y之后,可以基于图像特征y和预测值mu确定残差特征r,如将图像特征y与预测值mu的差值作为残差特征r。然后,对残差特征r进行特征处理,得到图像特征s,对此特征处理过程不做限制,可以是任意特征处理方式。在该情况下,需要部署均值预测网络,由均值预测网络提供预测值mu。或者,编码端在得到图像特征y之后,可以对图像特征y进行特征处理,得到图像特征s,对此特征处理过程不做限制,可以是任意特征处理方式。在该情况下,不需要部署均值预测网络,通过虚线框表示残差过程为可选过程。
编码端在得到图像特征s之后,可以对图像特征s进行量化,得到图像特征s对应的图像量化特征,即图3中的Q操作为量化过程。在得到图像特征s对应的图像量化特征之后,编码端可以对该图像量化特征进行编码,得到当前图像块对应的Bitstream#2(即第二码流),即图3中的AE操作表示编码过程,如熵编码过程。或者,编码端也可以直接对图像特征s进行编码,得到当前图像块对应的Bitstream#2,而不涉及图像特征s的量化过程。
在得到当前图像块对应的Bitstream#2之后,编码端可以将当前图像块对应的Bitstream#2发送给解码端,关于解码端针对当前图像块对应的Bitstream#2的处理过程,参见后续实施例。
编码端在得到当前图像块对应的Bitstream#2之后,还可以对Bitstream#2进行解码,得到图像量化特征,即图3中的AD表示解码过程,然后,编码端可以对图像量化特征进行反量化,得到图像特征s’,图像特征s’与图像特征s可以相同或者不同,图3中的IQ操作为反量化过程。或者,编码端在得到当前图像块对应的Bitstream#2之后,还可以对Bitstream#2进行解码,得到图像特征s’,而不涉及图像量化特征的反量化过程。
编码端在得到图像特征s’之后,可以对图像特征s’进行特征恢复(即特征处理的逆过程),对此特征恢复过程不做限制,可以是任意特征恢复方式,得到残差特征r_hat,残差特征r_hat与残差特征r可以相同或者不同。编码端得到残差特征r_hat后,基于残差特征r_hat和预测值mu确定图像特征y_hat,图像特征y_hat与图像特征y可以相同或不同,比如说,将残差特征r_hat与预测值mu的和作为图像特征y_hat。在该情况下,需要部署均值预测网络,由均值预测网络提供预测值mu。或者,编码端在得到图像特征s’之后,可以对图像特征s’进行特征恢复(即特征处理的逆过程),得到图像特征y_hat,图像特征y_hat与图像特征y可以相同或不同。在该情况下,不需要部署均值预测网络,通过虚线框表示残差过程为可选过程。
编码端在得到图像特征y_hat之后,可以对图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat,比如说,将图像特征y_hat输入给合成变换网络,由合成变换网络对图像特征y_hat进行合成变换,得到重建图像块x_hat,至此,完成图像重建过程。
在一种可能的实施方式中,编码端在对图像量化特征或者图像特征s进行编码,得到当前图像块对应的Bitstream#2时,编码端需要先确定概率分布模型,然后基于该概率分布模型对图像量化特征或者图像特征s进行编码。此外,编码端在对Bitstream#2进行解码时,也需要先确定概率分布模型,然后基于该概率分布模型对Bitstream#2进行解码。
为了得到概率分布模型,继续参见图3所示,编码端在得到系数超参特征z_hat之后,可以对系数超参特征z_hat进行系数超参特征反变换,得到概率分布参数p,比如说,将系数超参特征z_hat输入给概率超参解码网络,由概率超参解码网络对系数超参特征z_hat进行系数超参特征反变换,得到概率分布参数p,在得到概率分布参数p之后,可以基于概率分布参数p生成概率分布模型。其中,概率超参解码网络可以是已训练的神经网络,对此概率超参解码网络的训练过程不作限制,能够对系数超参特征z_hat进行系数超参特征反变换即可。
在一种可能的实施方式中,上述编码端的处理过程,可以由深度学习模型或者神经网络模型执行,从而实现端到端的图像压缩和编码过程,对此编码过程不作限制。
实施例3:解码端的处理过程可以参见图4所示,图4只是一个示例,对此不作限制。
解码端在得到当前图像块对应的Bitstream#1之后,还可以对Bitstream#1进行解码,得到超参量化特征,即图4中的AD表示解码过程,然后,对超参量化特征进行反量化,得到系数超参特征z_hat,系数超参特征z_hat与系数超参特征z可以相同或者不同,图4中的IQ操作为反量化过程。或者,解码端在得到当前图像块对应的Bitstream#1之后,还可以对Bitstream#1进行解码,得到系数超参特征z_hat,而不涉及系数超参特征z_hat的反量化过程。
针对Bitstream#1的解码过程,可以采用固定概率密度模型的解码方法,对此不做限制。
图像可以划分成1个图像块,也可以划分成多个图像块,若图像划分成1个图像块,则当前图像块x也可以为当前图像,即对于图像块的解码过程也可以直接用于图像。
解码端在得到系数超参特征z_hat之后,可以基于当前图像块的系数超参特征z_hat和前面图像块的图像特征y_hat(图像特征y_hat的确定过程参见后续实施例),进行基于上下文的预测,得到当前图像块对应的预测值mu(即均值mu),比如说,将系数超参特征z_hat和图像特征y_hat输入给均值预测网络,由均值预测网络基于系数超参特征z_hat和图像特征y_hat确定预测值mu,对此预测过程不作限制。其中,针对基于上下文的预测过程,输入包括系数超参特征z_hat和已解码的图像特征y_hat,两者联合输入获取更精准的预测值mu。
需要注意的是,均值预测网络为可选的神经网络,即也可以没有均值预测网络,即不需要通过均值预测网络确定预测值mu,图4中的虚线框表示均值预测网络为可选。
解码端在得到当前图像块对应的Bitstream#2之后,还可以对Bitstream#2进行解码,得到图像量化特征,即图4中的AD表示解码过程,然后,解码端可以对图像量化特征进行反量化,得到图像特征s’,图像特征s’与图像特征s可以相同或者不同,图4中的IQ操作为反量化过程。或者,解码端在得到当前图像块对应的Bitstream#2之后,还可以对Bitstream#2进行解码,得到图像特征s’,而不涉及图像量化特征的反量化过程。
解码端在得到图像特征s’之后,可以对图像特征s’进行特征恢复(即特征处理的逆过程),得到残差特征r_hat,残差特征r_hat与残差特征r相同或者不同。解码端在得到残差特征r_hat之后,基于残差特征r_hat和预测值mu确定图像特征y_hat,图像特征y_hat与图像特征y相同或不同,如将残差特征r_hat与预测值mu的和作为图像特征y_hat。在该情况下,需要部署均值预测网络,由均值预测网络提供预测值mu。或者,解码端在得到图像特征s’之后,可以对图像特征s’进行特征恢复,得到图像特征y_hat,图像特征y_hat与图像特征y可以相同或不同。在该情况下,不需要部署均值预测网络,通过虚线框表示残差过程为可选过程。
解码端在得到图像特征y_hat之后,可以对图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat,比如说,将图像特征y_hat输入给合成变换网络,由合成变换网络对图像特征y_hat进行合成变换,得到重建图像块x_hat,至此,完成图像重建过程。
在一种可能的实施方式中,解码端在对Bitstream#2进行解码时,需要先确定概率分布模型,然后基于该概率分布模型对Bitstream#2进行解码。为了得到概率分布模型,继续参见图4所示,解码端在得到系数超参特征z_hat之后,可以对系数超参特征z_hat进行系数超参特征反变换,得到概率分布参数p,比如说,将系数超参特征z_hat输入给概率超参解码网络,由概率超参解码网络对系数超参特征z_hat进行系数超参特征反变换,得到概率分布参数p,在得到概率分布参数p之后,可以基于概率分布参数p生成概率分布模型。其中,概率超参解码网络可以是已训练的神经网络,对此概率超参解码网络的训练过程不作限制,能够对系数超参特征z_hat进行系数超参特征反变换,得到概率分布参数p即可。
在一种可能的实施方式中,上述解码端的处理过程,可以由深度学习模型或者神经网络模型执行,从而实现端到端的图像压缩和编码过程,对此解码过程不作限制。
实施例4:针对实施例2和实施例3,在编码端涉及分析变换网络、超参编码网络、均值预测网络、概率超参解码网络和合成变换网络,在解码端涉及均值预测网络、概率超参解码网络和合成变换网络,上述网络均可以为神经网络。可以将解码端涉及的所有神经网络作为解码网络,也可以将解码端涉及的部分神经网络作为解码网络,对此不作限制。比如说,可以将均值预测网络、概率超参解码网络、合成变换网络中的所有网络均作为解码网络,也可以将均值预测网络、概率超参解码网络、合成变换网络中的部分网络作为解码网络。当然,在解码端涉及其它神经网络时,也可以将其它神经网络作为解码网络,对此不作限制。
在一种可能的实施方式中,以将解码端涉及的所有神经网络作为解码网络为例进行说明,参见图5A所示,解码网络可以包括概率超参解码网络、合成变换网络。参见图5B所示,解码网络可以包括均值预测网络、概率超参解码网络、合成变换网络。当然,在图5A和图5B中,解码网络也可以只包括合成变换网络,而不包括其它网络,对此不作限制。
在一种可能的实施方式中,编码端或者解码端可以从当前图像块对应的码流(如第一码流和第二码流)中解码当前图像块对应的目标特征,基于该目标特征确定解码网络的输入特征,基于解码网络对该输入特征进行处理,得到解码网络的输出特征,在得到输出特征之后,可以基于该输出特征确定当前图像块对应的重建图像块,以下对此过程进行说明。
参见图5A所示,编码端或者解码端在得到当前图像块对应的Bitstream#1(即第一码流)之后,可以对Bitstream#1进行解码,得到超参量化特征(即当前图像块的目标特征),对超参量化特征进行反量化,得到系数超参特征z_hat(即基于该目标特征确定概率超参解码网络的输入特征)。或者,编码端或者解码端在得到当前图像块对应的Bitstream#1之后,可以对Bitstream#1进行解码,得到系数超参特征z_hat(即当前图像块的目标特征,将该目标特征直接作为概率超参解码网络的输入特征),而不涉及系数超参特征z_hat的反量化过程。
在得到系数超参特征z_hat(即概率超参解码网络的输入特征)之后,将系数超参特征z_hat输入给概率超参解码网络(即解码网络),由概率超参解码网络对系数超参特征z_hat进行系数超参特征反变换,得到当前图像块对应的概率分布参数p(即概率超参解码网络的输出特征)。在得到概率分布参数p之后,可以基于概率分布参数p生成概率分布模型。
编码端或者解码端在得到当前图像块对应的Bitstream#2(即第二码流)之后,还可以对Bitstream#2进行解码,得到图像量化特征(即当前图像块的目标特征),对图像量化特征进行反量化,得到图像特征s’,对图像特征s’进行特征恢复,得到图像特征y_hat(即基于该目标特征确定合成变换网络的输入特征)。或者,编码端或者解码端在得到当前图像块对应的Bitstream#2之后,还可以对Bitstream#2进行解码,得到图像特征s’(即当前图像块的目标特征),不涉及图像量化特征的反量化过程,对图像特征s’进行特征恢复,得到图像特征y_hat(即基于该目标特征确定合成变换网络的输入特征)。编码端或者解码端在对Bitstream#2进行解码时,可以基于概率分布模型对Bitstream#2进行解码,对此过程不再赘述。
在得到图像特征y_hat之后,编码端或者解码端将图像特征y_hat输入给合成变换网络(即解码网络),由合成变换网络对图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat(即合成变换网络的输出特征)。综上可以看出,可以基于合成变换网络对图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat。
在得到合成变换网络的输出特征之后,可以将合成变换网络的输出特征作为当前图像块x对应的重建图像块x_hat,即基于该输出特征确定当前图像块x对应的重建图像块x_hat。
参见图5B所示,编码端或者解码端在得到当前图像块对应的Bitstream#1之后,可以对Bitstream#1进行解码,得到超参量化特征(即当前图像块的目标特征),对超参量化特征进行反量化,得到系数超参特征z_hat(即基于该目标特征确定概率超参解码网络的输入特征)。或者,在得到当前图像块对应的Bitstream#1之后,对Bitstream#1进行解码,得到系数超参特征z_hat(即当前图像块的目标特征,将该目标特征直接作为概率超参解码网络的输入特征)。
在得到系数超参特征z_hat(即概率超参解码网络的输入特征)之后,将系数超参特征z_hat输入给概率超参解码网络(即解码网络),由概率超参解码网络对系数超参特征z_hat进行系数超参特征反变换,得到当前图像块对应的概率分布参数p(即概率超参解码网络的输出特征)。在得到概率分布参数p之后,可以基于概率分布参数p生成概率分布模型。
在得到系数超参特征z_hat(即均值预测网络的输入特征)之后,将系数超参特征z_hat和前面图像块的图像特征y_hat输入给均值预测网络(即解码网络),由均值预测网络基于系数超参特征z_hat和图像特征y_hat确定预测值mu(即均值预测网络的输出特征),即均值预测网络进行基于上下文的预测,得到当前图像块对应的预测值mu(即均值mu)。
编码端或者解码端在得到当前图像块对应的Bitstream#2之后,还可以对Bitstream#2进行解码,得到图像量化特征(即当前图像块的目标特征),对图像量化特征进行反量化,得到图像特征s’,对图像特征s’进行特征恢复(即残差恢复,为残差处理的逆过程),得到残差特征r_hat,基于残差特征r_hat和预测值mu确定图像特征y_hat,如将残差特征r_hat与预测值mu的和作为图像特征y_hat(即基于该目标特征确定合成变换网络的输入特征)。
或者,编码端或者解码端在得到当前图像块对应的Bitstream#2之后,还可以对Bitstream#2进行解码,得到图像特征s’(即当前图像块的目标特征),对图像特征s’进行特征恢复,得到残差特征r_hat,基于残差特征r_hat和预测值mu确定图像特征y_hat,如将残差特征r_hat与预测值mu的和作为图像特征y_hat(即基于该目标特征确定合成变换网络的输入特征)。
在得到图像特征y_hat之后,编码端或者解码端将图像特征y_hat输入给合成变换网络(即解码网络),由合成变换网络对图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat(即合成变换网络的输出特征)。综上可以看出,可以基于合成变换网络对图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat。
在得到合成变换网络的输出特征之后,可以将合成变换网络的输出特征作为当前图像块x对应的重建图像块x_hat,即基于该输出特征确定当前图像块x对应的重建图像块x_hat。
实施例5:针对实施例4,解码网络可以为浮点解码网络,即解码网络可以采用浮点化权重(即浮点化参数),即解码网络的权重均为float类型的权重,解码网络的输入特征值为float类型的特征值,解码网络的输出特征值为float类型的特征值。比如说,针对解码网络的每个网络层,该网络层可以采用浮点化权重,即该网络层的权重均为float类型的权重,该网络层的输入特征值为float类型的特征值,该网络层的输出特征值为float类型的特征值。
但是,为了实现浮点化权重的解码网络,解码端需要存储float类型的权重,而存储float类型的权重时,需要占用大量存储资源。而且,解码端在采用float类型的权重对float类型的特征值进行处理时,需要占用大量计算资源,且解码端的处理速度比较慢。
针对上述发现,本实施例提出一种面向图像编码后解码的高效推理方法,可以采用定点解码网络对图像特征进行处理,实施例4中涉及的解码网络为定点解码网络,即解码网络可以采用定点化权重(即定点化参数),即解码网络的权重均为固定比特的权重,解码网络的输入特征值为固定比特的特征值,解码网络的输出特征值为固定比特的特征值。比如说,针对解码网络的网络层,网络层可以采用定点化权重,即网络层的权重为固定比特的权重,网络层的输入特征值为固定比特的特征值,网络层的输出特征值为固定比特的特征值。
显然,为了实现定点化权重的解码网络,解码端需要存储固定比特的权重(如8比特、16比特等),而在存储固定比特的权重时,只需要占用少量存储资源,从而能够节省存储资源。而且,解码端在采用固定比特的权重对固定比特的特征值进行处理时,只需要占用少量计算资源,从而能够节省计算资源。而且,解码端在采用固定比特的权重对固定比特的特征值进行处理时,能够提高处理速度,实现解码过程的自适应加速。
本实施例是一种无须训练的方案,可以快速集成到任一浮点的解码网络中,得到定点化权重的解码网络,定点化权重的解码网络可以直接在硬件平台上进行推理,在得到定点化权重的解码网络时,会先评估解码网络的每一网络层对量化的敏感度,来确定每一网络层更合适的量化位宽,从而保证解码网络的量化压缩率,同时保证解码网络的量化性能。
示例性的,在将解码网络的浮点型参数量化成定点类型参数时,可以降低解码网络的存储消耗,将解码网络的浮点型特征值量化为定点类型特征值时,也可以降低前向计算时的带宽。另外,将解码网络中的浮点操作转换为定点操作时,可以降低解码网络的计算量,同时定点类型下的计算,也有助于不同设备间的解码一致性。但是,解码网络的量化本身是通过降低数据类型和计算的精度来实现的,从而对解码网络的性能造成影响,这在图像编解码中是无法接受的。针对上述发现,考虑到基于神经网络的解码器,在对码流进行解码时,对于量化的敏感度在神经网络中的每一网络层不一样,即某些网络层可以在较低比特下保持量化性能,而某些网络层需要较高比特才能保证量化精度,这是和神经网络学习到的参数与特征分布相关,本实施例中,为了实现最大程度的压缩比特位宽,同时保证压缩后的性能,提出一种高效的压缩与推理方法,能够采用目标权重量化位宽和目标权重量化超参构建定点化权重的解码网络,并采用目标特征值量化位宽和目标特征值量化超参生成定点化的输入特征,实现自适应解码加速,在保证解码质量的前提下,降低解码计算量。
实施例6:参见图6A所示,在图5A所示的解码网络(如概率超参解码网络、合成变换网络)的基础上增加了三个模块:码流提取模块、量化分析模块、解码网络量化模块;参见图6B所示,在图5B所示的解码网络(如均值预测网络、概率超参解码网络、合成变换网络)的基础上增加了三个模块:码流提取模块、量化分析模块、解码网络量化模块。
示例性的,在解码网络训练完成(采用浮点化权重训练得到解码网络)之后,解码网络的浮点化权重就固定,为了区分方便,将采用浮点化权重的解码网络称为样本解码网络,样本解码网络可以包括采用浮点型权重的多个网络层,多个网络层可以包括目标网络层,目标网络层是需要采用定点型权重的网络层(即需要将目标网络层的浮点型权重转换为定点型权重)。假设样本解码网络包括网络层1和网络层2,网络层1需要采用定点型权重,而网络层2不需要采用定点型权重,则网络层1为目标网络层,网络层2不为目标网络层。
在一种可能的实施方式中,可以将样本解码网络中的所有网络层均作为目标网络层,也可以将样本解码网络中的部分网络层作为目标网络层,还可以将样本解码网络中的所有卷积层作为目标网络层,当然,上述只是几个示例,对此不做限制,可以将样本解码网络中的任意一个或者多个网络层作为目标网络层,以将所有网络层均作为目标网络层为例。
示例性的,为了将样本解码网络转换为定点化权重的目标解码网络,可以采用如下步骤:
步骤S11、码流提取模块获取样本码流,并将样本码流输入给量化分析模块。
比如说,可以收集若干帧现实场景(如图像采集设备的应用场景)下的图像,如100帧图像、200帧图像等,采用图3所示流程对每帧图像进行处理,得到该帧图像对应的第一码流(Bitstream#1)和第二码流(Bitstream#2),可以将第一码流和第二码流称为样本码流,或者,可以将第一码流称为样本码流,或者,可以将第二码流称为样本码流。为了方便描述,在后续过程中,以将第一码流和第二码流称为样本码流为例进行说明。码流提取模块可以获取每帧图像对应的样本码流,并将这些样本码流输入给量化分析模块。
步骤S12、量化分析模块接收每帧图像对应的样本码流,存储每帧图像对应的样本码流。
步骤S13、量化分析模块从样本码流中解码样本特征,基于该样本特征确定样本解码网络对应的浮点型输入特征,基于该浮点型输入特征确定该样本特征对应的参考输出特征,该参考输出特征可以为样本解码网络中参考网络层的输出特征。其中,参考网络层可以是样本解码网络中的任一网络层,比如说,样本解码网络中的最后一个网络层,或,样本解码网络中的倒数第二个网络层,或,样本解码网络中的最后一个目标网络层,或,样本解码网络中的位于最后一个目标网络层后面的任意网络层,对此参考网络层的位置不做限制。
比如说,针对每个样本码流,可以对该样本码流进行解码得到样本特征,该过程参见实施例4中得到目标特征的过程,在此不再赘述。在得到样本特征之后,基于该样本特征确定样本解码网络对应的浮点型输入特征,该过程参见实施例4中基于目标特征确定解码网络的输入特征的过程,在此不再赘述。在得到样本解码网络对应的浮点型输入特征之后,将浮点型输入特征输入给样本解码网络,依次经过样本解码网络的每个网络层,在经过样本解码网络的参考网络层之后,将参考网络层的输出特征作为该样本特征对应的参考输出特征。
显然,针对每个样本码流,可以得到该样本码流对应的参考输出特征,基于此,量化分析模块可以存储所有样本码流对应的参考输出特征的平均值,也可以存储所有样本码流对应的参考输出特征的最大值,还可以存储所有样本码流对应的参考输出特征的最小值,以存储所有样本码流对应的参考输出特征的平均值为例,这个平均值作为参考输出特征进行存储。
步骤S14、针对样本解码网络中的每个目标网络层:量化分析模块获取该目标网络层对应的权重量化超参候选列表,该权重量化超参候选列表可以包括多个候选权重量化超参。
首先,量化分析模块基于该目标网络层的所有浮点型权重确定最大权重值;其中,每个浮点型权重包括多个权重值,且最大权重值是所有浮点型权重的所有权重值中的最大值。比如说,目标网络层可以包括多个浮点型权重,每个浮点型权重均包括多个权重值,针对每个浮点型权重,可以从该浮点型权重对应的所有权重值中选取出最大值,然后,可以从所有浮点型权重对应的最大值中选取出最大权重值。比如说,假设目标网络层为网络层l,最大权重值可以记为maxl=max(abs(w0_l),abs(w1_l),...,abs(wn_l)),abs(w0_l)表示网络层l的第1个浮点型权重对应的最大值,以此类推,maxl表示所有浮点型权重中的最大权重值。
目标网络层可以包括多个通道,若所有通道对应同一个目标权重量化超参,则最大权重值是所有通道的浮点型权重的所有权重值中的最大值。若每个通道单独对应目标权重量化超参,则每个通道对应一个最大权重值,即最大权重值是该通道的浮点型权重的所有权重值中的最大值。为了方便描述,后续以所有通道对应同一个目标权重量化超参为例进行说明,每个通道单独对应目标权重量化超参的实现方式类似,采用相同方式确定每个通道单独对应目标权重量化超参即可,确定方式与所有通道对应的目标权重量化超参的确定方式相同。
然后,量化分析模块基于最大权重值生成该目标网络层对应的初始权重量化超参。比如说,可以采用如下公式生成该目标网络层对应的初始权重量化超参:param=bw-1-ceil(log2(max));其中,param用于表示该目标网络层对应的初始权重量化超参,bw用于表示固定量化位宽,max用于表示最大权重值,ceil用于表示向上取整操作。
比如说,目标网络层对应的初始权重量化超参为param,param=get-param(bw,max),bw用于表示目标网络层对应的量化位宽,目标网络层对应的量化位宽可以为固定量化位宽,固定量化位宽可以根据经验进行配置,如4bit、8bit、16bit等,以固定量化位宽是8bit为例进行说明。param=get_param(bw,max)表示在bw量化位宽下,根据数据范围max计算得到的初始权重量化超参。由于在不同量化算法下,计算初始权重量化超参的方式不同,这里给出初始权重量化超参的一个示例:param=bw-1-ceil(log2(max))。
然后,量化分析模块基于初始权重量化超参构建权重量化超参候选列表,该权重量化超参候选列表可以包括多个候选权重量化超参,即目标网络层对应的多个候选权重量化超参。
比如说,考虑到神经网络的权重值中,通常会有outlier(异常权重值,异常权重值的数值范围通常特别大)的存在,这些outlier过大会影响到量化精度,因此,可以基于初始权重量化超参构建权重量化超参候选列表,比如说,该权重量化超参候选列表的一个示例可以为:paraml_list=[paraml-2,paraml-1,paraml,paraml+1,paraml+2];当然,上述只是权重量化超参候选列表的示例,对此权重量化超参候选列表内的候选权重量化超参不做限制。以目标网络层为网络层l为例,paraml表示网络层l对应初始权重量化超参,paraml-2,paraml-1,paraml,paraml+1,paraml+2是网络层l对应的5个候选权重量化超参。
步骤S15、针对每个候选权重量化超参,量化分析模块采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重。
示例性的,目标网络层对应的量化位宽可以为固定量化位宽,固定量化位宽可以根据经验进行配置,如4bit、8bit、16bit等,以固定量化位宽是8bit为例进行说明。
示例性的,依次遍历权重量化超参候选列表内的每个候选权重量化超参,针对当前遍历的候选权重量化超参,可以采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到该候选权重量化超参对应的候选仿真权重。比如说,可以采用如下公式对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重:quant=2-param×clip(round(data×2param),-2bw-1,2bw-1-1)。其中,quant用于表示该候选仿真权重,param用于表示该候选权重量化超参,data用于表示该目标网络层的浮点型权重,bw用于表示该固定量化位宽,clip用于表示截断函数,round用于表示四舍五入操作。由于在不同量化算法下,仿真量化的方式不同,上述公式只是给出仿真量化的一个示例。
综上所述,针对每个候选权重量化超参,在将该候选权重量化超参param代入上述公式之后,就可以得到该候选权重量化超参对应的候选仿真权重quant。
步骤S16、在得到候选仿真权重之后,量化分析模块基于该候选仿真权重对该目标网络层的浮点型输入特征进行处理,得到该目标网络层的浮点型输出特征。量化分析模块基于该目标网络层的浮点型输出特征确定该候选权重量化超参对应的量化误差。
首先,可以获取目标网络层的浮点型输入特征,比如说,若目标网络层是样本解码网络的第一个网络层,则样本解码网络的输入特征就是目标网络层的浮点型输入特征。或者,若目标网络层不是样本解码网络的第一个网络层,则目标网络层的前一个网络层的输出特征作为目标网络层的浮点型输入特征。针对目标网络层前面的网络层(记为网络层A),若网络层A不是需要采用定点型权重的网络层,则网络层A直接对输入特征进行处理得到浮点型输出特征,这个浮点型输出特征作为目标网络层的浮点型输入特征。若网络层A是需要采用定点型权重的网络层,在得到网络层A的目标权重量化超参和目标权重量化位宽之后,还可以采用该目标权重量化超参和该目标权重量化位宽对网络层A的浮点型权重进行仿真量化得到网络层A的伪权重,通过这个伪权重对网络层A的浮点型输入特征进行处理,得到网络层A的浮点型输出特征,这个浮点型输出特征作为目标网络层的浮点型输入特征。
然后,基于候选仿真权重对目标网络层的浮点型输入特征进行处理,得到目标网络层的浮点型输出特征。比如说,若目标网络层是卷积层,则基于候选仿真权重对目标网络层的浮点型输入特征进行卷积处理,得到目标网络层的浮点型输出特征。若目标网络层是池化层,则基于候选仿真权重对目标网络层的浮点型输入特征进行池化处理,得到目标网络层的浮点型输出特征。当然,上述只是示例,对此处理方式不做限制,与目标网络层支持的功能有关。
然后,基于该目标网络层的浮点型输出特征确定候选权重量化超参对应的量化误差。比如说,基于该目标网络层的浮点型输出特征确定样本输出特征,该样本输出特征可以为样本解码网络中参考网络层的输出特征,且该参考网络层为位于该目标网络层后面的任一网络层。
比如说,将该目标网络层的浮点型输出特征作为后一个网络层(后一个网络层仍然采用浮点型权重)的输入特征,由后一个网络层对输入特征进行处理,得到后一个网络层的浮点型输出特征,以此类推,一直到样本解码网络中参考网络层,由参考网络层对输入特征进行处理,得到参考网络层的输出特征,将参考网络层的输出特征作为样本输出特征。
然后,基于样本输出特征和参考输出特征确定候选权重量化超参对应的量化误差;比如说,基于样本输出特征和参考输出特征,可以采用误差损失函数确定量化误差,该误差损失函数可以包括但不限于mse、cosine similarity、KL散度等损失函数,对此不做限制。
其中,该样本输出特征可以是所有样本码流对应的样本输出特征的平均值,且该参考输出特征可以是所有样本码流对应的参考输出特征的平均值;或者,该样本输出特征可以是所有样本码流对应的样本输出特征的最大值,且该参考输出特征可以是所有样本码流对应的参考输出特征的最大值;或者,该样本输出特征可以是所有样本码流对应的样本输出特征的最小值,且该参考输出特征可以是所有样本码流对应的参考输出特征的最小值,对此不做限制。
步骤S17、基于每个候选权重量化超参对应的量化误差,量化分析模块将最小量化误差对应的候选权重量化超参确定为该目标网络层对应的目标权重量化超参,并将固定量化位宽确定为该目标网络层对应的目标权重量化位宽。至此,量化分析模块可以得到该目标网络层对应的目标权重量化超参和该目标网络层对应的目标权重量化位宽。
步骤S18、量化分析模块采用该目标网络层的目标权重量化超参和该目标网络层的目标权重量化位宽对该目标网络层的浮点型权重进行仿真量化得到该目标网络层的伪权重。
示例性的,在得到目标权重量化超参和目标权重量化位宽之后,还可以采用该目标权重量化超参和该目标权重量化位宽对目标网络层的浮点型权重进行仿真量化得到目标网络层的伪权重,即使用目标网络层的伪权重替换目标网络层的浮点型权重。针对目标网络层的浮点型输入特征,目标网络层是通过这个伪权重对目标网络层的浮点型输入特征进行处理,得到目标网络层的浮点型输出特征,这个浮点型输出特征作为后面网络层的浮点型输入特征。
比如说,基于目标权重量化超参和目标权重量化位宽,可以采用如下公式对浮点型权重进行仿真量化得到伪权重:quant=2-param×clip(round(data×2param),-2bw-1,2bw-1-1)。其中,quant用于表示该目标网络层的伪权重,param用于表示该目标网络层的目标权重量化超参,data用于表示该目标网络层的浮点型权重,bw用于表示该目标网络层的目标权重量化位宽,clip用于表示截断函数,round用于表示四舍五入操作。其中,由于在不同量化算法下,仿真量化的方式不同,上述公式只是给出仿真量化的一个示例。
示例性的,针对每个目标网络层,在得到该目标网络层的目标权重量化超参和目标权重量化位宽之后,还可以获取该目标网络层的目标特征值量化位宽和目标特征值量化超参,比如说,可以采用如下步骤获取该目标网络层的目标特征值量化位宽和目标特征值量化超参:
步骤S19、针对样本解码网络中的每个目标网络层:量化分析模块获取该目标网络层对应的特征值量化超参候选列表和量化位宽集合,该特征值量化超参候选列表可以包括多个候选特征值量化超参,该量化位宽集合可以包括至少两个量化位宽。
首先,量化分析模块可以基于该目标网络层的所有浮点型输入特征确定最大特征值;其中,每个浮点型输入特征包括多个特征值,且最大特征值是所有浮点型输入特征的所有特征值中的最大值。比如说,目标网络层可以对应多个浮点型输入特征(如100个样本码流会对应100个浮点型输入特征),每个浮点型输入特征均包括多个特征值,针对每个浮点型输入特征,可以从该浮点型输入特征对应的所有特征值中选取出最大值,然后,可以从所有浮点型输入特征对应的最大值中选取出最大特征值。比如说,假设目标网络层为网络层l,最大特征值可以记为maxl=max(abs(f0_l),abs(f1_l),…,abs(fn_l)),abs(f0_l)表示网络层l的第1个浮点型输入特征对应的最大值,以此类推,maxl表示所有浮点型输入特征中的最大特征值。
然后,量化分析模块基于最大特征值生成该目标网络层对应的初始特征值量化超参。比如说,可以采用如下公式生成该目标网络层对应的初始特征值量化超参:param=bw-1-ceil(log2(max));其中,param用于表示该目标网络层对应的初始特征值量化超参,bw用于表示当前量化位宽,max用于表示最大特征值,ceil用于表示向上取整操作。
例如,目标网络层对应的初始特征值量化超参为param,param=het_param(bw,max),bw用于表示目标网络层对应的量化位宽,目标网络层对应的量化位宽为当前量化位宽(即当前从量化位宽集合中遍历的量化位宽)。param=get_param(bw,max)表示在bw量化位宽下,根据数据范围max计算得到的初始特征值量化超参。由于在不同量化算法下,计算初始特征值量化超参的方式不同,这里只是给出初始特征值量化超参的一个示例,对此不做限制。
然后,量化分析模块基于初始特征值量化超参构建特征值量化超参候选列表,该特征值量化超参候选列表可以包括多个候选特征值量化超参,即目标网络层对应的多个候选特征值量化超参。比如说,考虑到神经网络的特征值中,通常会有outlier(异常特征值,异常特征值的数值范围通常特别大)的存在,这些outlier过大会影响到量化精度,因此,可以基于初始特征值量化超参构建特征值量化超参候选列表,比如说,该特征值量化超参候选列表的一个示例可以为:paraml_list=[paraml-2,paraml-1,paraml,paraml+1,paraml+2];当然,上述只是特征值量化超参候选列表的示例,对此特征值量化超参候选列表内的候选特征值量化超参不做限制。以目标网络层为网络层l为例,paraml表示网络层l对应初始特征值量化超参,该特征值量化超参候选列表中是网络层l对应的5个候选特征值量化超参。
量化分析模块还可以生成量化位宽集合,该量化位宽集合可以包括至少两个量化位宽,如该量化位宽集合可以包括两个量化位宽,如8bit、16bit,或者,8bit、32bit,或者,16bit、32bit,或者,4bit、8bit。又例如,该量化位宽集合可以包括三个量化位宽,如8bit、16bit、32bit,或者,4bit、8bit、16bit,或者,8bit、16bit、24bit。又例如,该量化位宽集合可以包括四个量化位宽。当然,上述只是量化位宽集合的几个示例,对此不做限制。
步骤S20、基于量化位宽从小到大的顺序,量化分析模块从量化位宽集合中遍历当前量化位宽。针对每个候选特征值量化超参,量化分析模块采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征。
示例性的,基于量化位宽从小到大的顺序,量化分析模块先遍历出第一个量化位宽作为当前量化位宽。比如说,假设量化位宽集合包括8bit、16bit等两个量化位宽,则量化分析模块先遍历出8bit的量化位宽作为当前量化位宽,基于当前量化位宽执行步骤S20。
示例性的,依次遍历特征值量化超参候选列表内的每个候选特征值量化超参,针对当前遍历的候选特征值量化超参,可以采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到该候选特征值量化超参对应的候选输入特征。比如说,可以采用如下公式对该目标网络层的浮点型输入特征进行仿真量化得到该候选输入特征:quant=2-param×clip(round(data×2param),-2bw-1,2bw-1-1);其中,quant用于表示该候选输入特征,param用于表示该候选特征值量化超参,data用于表示该浮点型输入特征,bw用于表示该当前量化位宽,clip用于表示截断函数,round用于表示四舍五入操作。由于在不同量化算法下,仿真量化的方式不同,上述公式只是给出仿真量化的一个示例。
综上所述,针对每个候选特征值量化超参,在将该候选特征值量化超参param代入上述公式之后,就可以得到该候选特征值量化超参对应的候选输入特征quant。
步骤S21、在得到候选输入特征之后,量化分析模块基于该目标网络层的伪权重对该目标网络层的该候选输入特征进行处理,得到该目标网络层的浮点型输出特征。量化分析模块基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差。
首先,针对目标网络层的浮点型输入特征(该浮点型输入特征的内容可以参见步骤S16),已经采用当前量化位宽和候选特征值量化超参对该浮点型输入特征进行仿真量化得到该候选特征值量化超参对应的候选输入特征,将这个候选输入特征作为目标网络层的输入特征。
然后,基于该目标网络层的伪权重对该候选输入特征进行处理,得到该目标网络层的浮点型输出特征。比如说,若目标网络层是卷积层,则基于该伪权重对该候选输入特征进行卷积处理,得到目标网络层的浮点型输出特征。若目标网络层是池化层,则基于该伪权重对该候选输入特征进行池化处理,得到目标网络层的浮点型输出特征。当然,上述只是示例,对此处理方式不做限制,与目标网络层支持的功能有关。其中,由于在得到目标网络层对应的目标权重量化超参和目标权重量化位宽之后,会对目标网络层的浮点型权重进行仿真量化得到伪权重,因此,是基于目标网络层的伪权重对候选输入特征进行处理得到浮点型输出特征。
然后,基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差。比如说,基于目标网络层的浮点型输出特征确定样本输出特征,该样本输出特征可以为样本解码网络中参考网络层的输出特征,且该参考网络层为位于该目标网络层后面的任一网络层。
比如说,将该目标网络层的浮点型输出特征作为后一个网络层(后一个网络层仍然采用浮点型权重)的输入特征,由后一个网络层对输入特征进行处理,得到后一个网络层的浮点型输出特征,以此类推,一直到样本解码网络中参考网络层,由参考网络层对输入特征进行处理,得到参考网络层的输出特征,将参考网络层的输出特征作为样本输出特征。
然后,基于样本输出特征和参考输出特征确定候选特征值量化超参对应的量化误差;比如说,基于样本输出特征和参考输出特征,可以采用误差损失函数确定量化误差,该误差损失函数可以包括但不限于mse、cosine similarity、KL散度等损失函数,对此不做限制。
其中,该样本输出特征可以是所有样本码流对应的样本输出特征的平均值,且该参考输出特征可以是所有样本码流对应的参考输出特征的平均值;或者,该样本输出特征可以是所有样本码流对应的样本输出特征的最大值,且该参考输出特征可以是所有样本码流对应的参考输出特征的最大值;或者,该样本输出特征可以是所有样本码流对应的样本输出特征的最小值,且该参考输出特征可以是所有样本码流对应的参考输出特征的最小值,对此不做限制。
步骤S22、基于每个候选特征值量化超参对应的量化误差,量化分析模块判断最小量化误差是否小于预设阈值(可以根据经验配置),若是,执行步骤S23,若否,执行步骤S24。
步骤S23、量化分析模块将最小量化误差对应的候选特征值量化超参确定为该目标网络层对应的目标特征值量化超参,并将当前量化位宽确定为该目标网络层对应的目标特征值量化位宽,并为该目标网络层记录目标特征值量化超参和目标特征值量化位宽。
至此,量化分析模块可以得到该目标网络层对应的目标特征值量化超参和目标特征值量化位宽,并为该目标网络层记录目标特征值量化超参和目标特征值量化位宽。
步骤S24、量化分析模块判断当前量化位宽是否为量化位宽集合的最后一个量化位宽。
若是,则将最小量化误差对应的候选特征值量化超参确定为该目标网络层对应的目标特征值量化超参,并将当前量化位宽确定为该目标网络层对应的目标特征值量化位宽,并为该目标网络层记录目标特征值量化超参和目标特征值量化位宽,该过程可以参见步骤S23。
若否,则遍历当前量化位宽的后一个量化位宽作为当前量化位宽,并返回步骤S20,基于当前量化位宽,针对每个候选特征值量化超参,量化分析模块采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征。
比如说,第一次遍历出8bit的量化位宽作为当前量化位宽,若最小量化误差不小于预设阈值,则第二次遍历出16bit的量化位宽作为当前量化位宽,重复上述步骤,以此类推。
示例性的,在为目标网络层记录目标特征值量化超参和目标特征值量化位宽之后,量化分析模块成功得到该目标网络层对应的目标权重量化超参、目标权重量化位宽、目标特征值量化超参和目标特征值量化位宽,至此,完成该目标网络层的处理过程,对该目标网络层的后一个目标网络层重复上述步骤,以此类推,一直到得到每个目标网络层对应的目标权重量化超参、目标权重量化位宽、目标特征值量化超参和目标特征值量化位宽。
步骤S25、在得到每个目标网络层对应的目标权重量化超参、目标权重量化位宽、目标特征值量化超参和目标特征值量化位宽之后,解码网络量化模块基于样本解码网络生成目标解码网络。比如说,针对样本解码网络中的每个目标网络层:解码网络量化模块基于该目标网络层对应的目标权重量化位宽和目标权重量化超参对该目标网络层的浮点型权重进行定点量化得到该目标网络层的定点型权重。在得到每个目标网络层的定点型权重之后,解码网络量化模块可以基于每个目标网络层的定点型权重生成目标解码网络。
比如说,针对每个目标网络层,量化分析模块可以将该目标网络层对应的目标权重量化位宽和目标权重量化超参输出给解码网络量化模块,由解码网络量化模块基于该目标网络层对应的目标权重量化位宽和目标权重量化超参对该目标网络层的浮点型权重进行定点量化,得到该目标网络层的定点型权重,对此浮点型权重的定点量化过程不做限制。
针对每个目标网络层,量化分析模块还可以将该目标网络层对应的目标特征值量化超参和目标特征值量化位宽输出给解码网络量化模块,由解码网络量化模块为该目标网络层记录目标特征值量化超参和目标特征值量化位宽,比如说,解码网络量化模块可以将该目标特征值量化超参和该目标特征值量化位宽记录到该目标网络层的配置信息中,在该目标网络层执行相关处理时,可以从该配置信息中读取该目标特征值量化超参和该目标特征值量化位宽,当然,也可以将该目标特征值量化超参和该目标特征值量化位宽记录到其它存储区域,只要该目标网络层可以得到该目标特征值量化超参和该目标特征值量化位宽即可。
在得到每个目标网络层的定点型权重之后,就可以使用定点型权重替换该目标网络层的浮点型权重,这样,可以将替换后的所有目标网络层组成目标解码网络。至此,成功得到目标解码网络,可以将目标解码网络部署到编码端或者解码端。比如说,目标解码网络可以包括概率超参解码网络、合成变换网络,或者,目标解码网络可以包括均值预测网络、概率超参解码网络、合成变换网络。通过将这些目标解码网络部署在编码端,编码端采用实施例2执行处理时,就是基于目标解码网络执行处理。此外,通过将这些目标解码网络部署在解码端,解码端采用实施例3执行处理时,就是基于目标解码网络执行处理。
实施例7:参见图6A所示,在图5A所示的解码网络的基础上增加了三个模块:码流提取模块、量化分析模块、解码网络量化模块;参见图6B所示,在图5B所示的解码网络的基础上增加了三个模块:码流提取模块、量化分析模块、解码网络量化模块。样本解码网络包括采用浮点型权重的多个网络层,多个网络层可以包括目标网络层,目标网络层是需要采用定点型权重的网络层(即需要将目标网络层的浮点型权重转换为定点型权重)。比如说,可以将样本解码网络中的所有网络层均作为目标网络层,也可以将样本解码网络中的部分网络层作为目标网络层,还可以将样本解码网络中的所有卷积层作为目标网络层。
示例性的,为了将样本解码网络转换为定点化权重的目标解码网络,可以采用如下步骤:
步骤S31、码流提取模块获取样本码流,并将样本码流输入给量化分析模块。
步骤S32、量化分析模块接收每帧图像对应的样本码流,存储每帧图像对应的样本码流。
步骤S33、量化分析模块从样本码流中解码样本特征,基于该样本特征确定样本解码网络对应的浮点型输入特征,基于该浮点型输入特征确定该样本特征对应的参考输出特征,该参考输出特征可以为样本解码网络中参考网络层的输出特征。其中,参考网络层可以是样本解码网络中的任一网络层,比如说,样本解码网络中的最后一个网络层,或,样本解码网络中的倒数第二个网络层,或,样本解码网络中的最后一个目标网络层,或,样本解码网络中的位于最后一个目标网络层后面的任意网络层,对此参考网络层的位置不做限制。
示例性的,步骤S31-步骤S33与步骤S11-步骤S13类似,在此不再重复赘述。
步骤S34、针对样本解码网络中的每个目标网络层:量化分析模块获取该目标网络层对应的权重量化超参候选列表,该权重量化超参候选列表可以包括多个候选权重量化超参。
首先,量化分析模块基于该目标网络层的所有浮点型权重确定最大权重值;其中,每个浮点型权重可以包括多个权重值,且最大权重值可以是所有浮点型权重的所有权重值中的最大值。比如说,目标网络层可以包括多个浮点型权重,每个浮点型权重均可以包括多个权重值,针对每个浮点型权重,可以从该浮点型权重对应的所有权重值中选取出最大值,然后,可以从所有浮点型权重对应的最大值中选取出最大权重值。
然后,量化分析模块基于最大权重值生成该目标网络层对应的初始权重量化超参。比如说,采用如下公式生成该目标网络层对应的初始权重量化超参:param=(max)/2bw -1;其中,param用于表示该目标网络层对应的初始权重量化超参,bw用于表示固定量化位宽,max用于表示最大权重值。其中,目标网络层对应的初始权重量化超参为param,param=get_param(bw,max),bw用于表示目标网络层对应的量化位宽,目标网络层对应的量化位宽可以为固定量化位宽,如4bit、8bit、16bit等。param=get_param(bw,max)表示在bw量化位宽下,根据数据范围max计算得到的初始权重量化超参。由于在不同量化算法下,计算初始权重量化超参的方式不同,这里只是给出初始权重量化超参的一个示例。
然后,量化分析模块基于初始权重量化超参构建权重量化超参候选列表,该权重量化超参候选列表可以包括多个候选权重量化超参,即目标网络层对应的多个候选权重量化超参。比如说,考虑到神经网络的权重值中,通常会有outlier(异常权重值)的存在,因此,可以基于初始权重量化超参构建权重量化超参候选列表,比如说,该权重量化超参候选列表的一个示例可以为:当然,上述只是权重量化超参候选列表的示例,对此权重量化超参候选列表内的候选权重量化超参不做限制。以目标网络层为网络层l为例,paraml表示网络层l对应初始权重量化超参,权重量化超参候选列表中示出了网络层l对应的7个候选权重量化超参。
步骤S35、针对每个候选权重量化超参,量化分析模块采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重。
示例性的,目标网络层对应的量化位宽可以为固定量化位宽,固定量化位宽可以根据经验进行配置,对此不做限制。可以依次遍历权重量化超参候选列表内的每个候选权重量化超参,针对当前遍历的候选权重量化超参,可以采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到该候选权重量化超参对应的候选仿真权重。比如说,可以采用如下公式对该目标网络层的浮点型权重进行仿真量化得到该候选仿真权重:quant=param×clip(round*data÷param),-2bw-1,2bw-1-1)。其中,quant用于表示该候选仿真权重,param用于表示该候选权重量化超参,data用于表示该目标网络层的浮点型权重,bw用于表示该固定量化位宽,clip用于表示截断函数,round用于表示四舍五入操作。由于在不同量化算法下,仿真量化的方式不同,上述公式只是给出仿真量化的一个示例。
综上所述,针对每个候选权重量化超参,在将该候选权重量化超参param代入上述公式之后,就可以得到该候选权重量化超参对应的候选仿真权重quant。
步骤S36、在得到候选仿真权重之后,量化分析模块基于该候选仿真权重对该目标网络层的浮点型输入特征进行处理,得到该目标网络层的浮点型输出特征。量化分析模块基于该目标网络层的浮点型输出特征确定该候选权重量化超参对应的量化误差。
步骤S37、基于每个候选权重量化超参对应的量化误差,量化分析模块将最小量化误差对应的候选权重量化超参确定为该目标网络层对应的目标权重量化超参,并将固定量化位宽确定为该目标网络层对应的目标权重量化位宽。至此,量化分析模块可以得到该目标网络层对应的目标权重量化超参和该目标网络层对应的目标权重量化位宽。
示例性的,步骤S36-步骤S37与步骤S16-步骤S17类似,在此不再重复赘述。
步骤S38、量化分析模块采用该目标网络层的目标权重量化超参和该目标网络层的目标权重量化位宽对该目标网络层的浮点型权重进行仿真量化得到该目标网络层的伪权重。
示例性的,在得到目标权重量化超参和目标权重量化位宽之后,还可以采用该目标权重量化超参和该目标权重量化位宽对目标网络层的浮点型权重进行仿真量化得到目标网络层的伪权重。针对目标网络层的浮点型输入特征,目标网络层是通过这个伪权重对目标网络层的浮点型输入特征进行处理,得到目标网络层的浮点型输出特征,这个浮点型输出特征作为后面网络层的浮点型输入特征。比如说,可以采用如下公式对浮点型权重进行仿真量化得到伪权重:quant=param×clip(round(data÷param),-2bw-1,2bw-1-1)。
其中,quant用于表示该目标网络层的伪权重,param用于表示该目标网络层的目标权重量化超参,data用于表示该目标网络层的浮点型权重,bw用于表示该目标网络层的目标权重量化位宽,clip用于表示截断函数,round用于表示四舍五入操作。其中,由于在不同量化算法下,仿真量化的方式不同,上述公式只是给出仿真量化的一个示例。
示例性的,针对每个目标网络层,在得到该目标网络层的目标权重量化超参和目标权重量化位宽之后,还可以获取该目标网络层的目标特征值量化位宽和目标特征值量化超参,比如说,可以采用如下步骤获取该目标网络层的目标特征值量化位宽和目标特征值量化超参:
步骤S39、针对样本解码网络中的每个目标网络层:量化分析模块获取该目标网络层对应的特征值量化超参候选列表和量化位宽集合,该特征值量化超参候选列表可以包括多个候选特征值量化超参,该量化位宽集合可以包括至少两个量化位宽。
首先,量化分析模块可以基于该目标网络层的所有浮点型输入特征确定最大特征值;其中,每个浮点型输入特征包括多个特征值,且最大特征值是所有浮点型输入特征的所有特征值中的最大值。比如说,目标网络层可以对应多个浮点型输入特征,每个浮点型输入特征均包括多个特征值,针对每个浮点型输入特征,可以从该浮点型输入特征对应的所有特征值中选取出最大值,然后,可以从所有浮点型输入特征对应的最大值中选取出最大特征值。
然后,量化分析模块基于最大特征值生成该目标网络层对应的初始特征值量化超参。比如说,采用如下公式生成目标网络层对应的初始特征值量化超参:param=(max)/2bw -1;其中,param用于表示该初始特征值量化超参,bw用于表示固定量化位宽,max用于表示最大特征值。初始特征值量化超参为param,param=get_param(bw,max),bw用于表示目标网络层对应的量化位宽,目标网络层对应的量化位宽为当前量化位宽(即当前从量化位宽集合中遍历的量化位宽)。param=get_param(bw,max)表示在bw量化位宽下,根据数据范围max计算得到的初始特征值量化超参。由于在不同量化算法下,计算初始特征值量化超参的方式不同,这里只是给出初始特征值量化超参的一个示例,对此不做限制。
然后,量化分析模块可以基于初始特征值量化超参构建特征值量化超参候选列表,该特征值量化超参候选列表可以包括多个候选特征值量化超参,即目标网络层对应的多个候选特征值量化超参。比如说,考虑到神经网络的特征值中,通常会有outlier的存在,这些outlier过大会影响到量化精度,因此,量化分析模块可以基于初始特征值量化超参构建特征值量化超参候选列表,比如说,该特征值量化超参候选列表的一个示例可以为: 当然,上述只是特征值量化超参候选列表的示例,对此特征值量化超参候选列表不做限制。
量化分析模块还可以生成量化位宽集合,该量化位宽集合可以包括至少两个量化位宽。
步骤S40、基于量化位宽从小到大的顺序,量化分析模块从量化位宽集合中遍历当前量化位宽。针对每个候选特征值量化超参,量化分析模块采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征。
示例性的,基于量化位宽从小到大的顺序,量化分析模块可以先遍历出第一个量化位宽作为当前量化位宽。依次遍历特征值量化超参候选列表内的每个候选特征值量化超参,针对当前遍历的候选特征值量化超参,可以采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到该候选特征值量化超参对应的候选输入特征。比如说,可以采用如下公式对该目标网络层的浮点型输入特征进行仿真量化得到该候选输入特征:quant=param×clip(round(data÷param),-2bw-1,2bw-1-1);其中,quant用于表示该候选输入特征,param用于表示该候选特征值量化超参,data用于表示该浮点型输入特征,bw用于表示该当前量化位宽,clip用于表示截断函数,round用于表示四舍五入操作。由于在不同量化算法下,仿真量化的方式不同,上述公式只是给出仿真量化的一个示例。
综上所述,针对每个候选特征值量化超参,在将该候选特征值量化超参param代入上述公式之后,就可以得到该候选特征值量化超参对应的候选输入特征quant。
步骤S41、在得到候选输入特征之后,量化分析模块基于该目标网络层的伪权重对该目标网络层的该候选输入特征进行处理,得到该目标网络层的浮点型输出特征。量化分析模块基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差。
步骤S42、基于每个候选特征值量化超参对应的量化误差,量化分析模块判断最小量化误差是否小于预设阈值(可以根据经验配置),若是,执行步骤S43,若否,执行步骤S44。
步骤S43、量化分析模块将最小量化误差对应的候选特征值量化超参确定为该目标网络层对应的目标特征值量化超参,并将当前量化位宽确定为该目标网络层对应的目标特征值量化位宽,并为该目标网络层记录目标特征值量化超参和目标特征值量化位宽。
步骤S44、量化分析模块判断当前量化位宽是否为量化位宽集合的最后一个量化位宽。
若是,则将最小量化误差对应的候选特征值量化超参确定为该目标网络层对应的目标特征值量化超参,并将当前量化位宽确定为该目标网络层对应的目标特征值量化位宽,并为该目标网络层记录目标特征值量化超参和目标特征值量化位宽,该过程可以参见步骤S43。
若否,则遍历当前量化位宽的后一个量化位宽作为当前量化位宽,并返回步骤S40,基于当前量化位宽,针对每个候选特征值量化超参,量化分析模块采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征。
步骤S45、在得到每个目标网络层对应的目标权重量化超参、目标权重量化位宽、目标特征值量化超参和目标特征值量化位宽之后,解码网络量化模块基于样本解码网络生成目标解码网络。比如说,针对样本解码网络中的每个目标网络层:解码网络量化模块基于该目标网络层对应的目标权重量化位宽和目标权重量化超参对该目标网络层的浮点型权重进行定点量化得到该目标网络层的定点型权重。在得到每个目标网络层的定点型权重之后,解码网络量化模块可以基于每个目标网络层的定点型权重生成目标解码网络。
示例性的,步骤S41-步骤S45与步骤S21-步骤S25类似,在此不再重复赘述。
在得到每个目标网络层的定点型权重之后,就可以使用定点型权重替换该目标网络层的浮点型权重,这样,可以将替换后的所有目标网络层组成目标解码网络。至此,成功得到目标解码网络,可以将目标解码网络部署到编码端或者解码端。比如说,目标解码网络可以包括概率超参解码网络、合成变换网络,或者,目标解码网络可以包括均值预测网络、概率超参解码网络、合成变换网络。通过将这些目标解码网络部署在编码端,编码端采用实施例2执行处理时,就是基于目标解码网络执行处理。此外,通过将这些目标解码网络部署在解码端,解码端采用实施例3执行处理时,就是基于目标解码网络执行处理。
实施例8:基于神经网络的解码器,在对码流进行解码时,对于量化的敏感度在神经网络中的每一网络层不一样,即某些网络层可以在较低比特下仍然保持量化性能,而某些网络层需要较高比特才能保证量化精度,这是和神经网络学习到的参数与特征分布相关,因此,在使用更友好的PTQ量化下,为了实现最大程度的压缩模型比特位宽,同时保证压缩后模型的性能,同时压缩后的模型又能够在绝大多数的设备上允许,本实施例中提出一种高效的解码器压缩与推理方法,主要包括以下步骤:1、收集若干帧(如100-200帧)现实场景(图像采集设备的应用场景)下的图像。2、将图像输入到编码网络中提取将要传输到解码网络的码流(即第一码流和第二码流),进行存储。3、将存储下来的码流传输给量化分析模块,用来获取解码网络每一网络层合适的量化位宽和量化参数(如量化超参)。4、根据量化分析模块得到的每一网络层的量化位宽和量化参数,对解码网络的每一网络层进行量化,得到最终量化模型,即对样本解码网络的每一网络层进行量化,得到目标解码网络。
可以在图5A或者图5B所示的解码网络的基础上增加码流提取模块、量化分析模块、解码网络量化模块,以下对码流提取模块、量化分析模块、解码网络量化模块的功能进行说明。
码流提取模块:用于收集若干帧(如100-200帧)现实场景(图像采集设备的应用场景)下的图像,将图像输入到编码网络中进行前向计算,并将编码网络的输出(即用于传输到解码网络的码流,即第一码流和第二码流)进行提取,将每帧图像对应的码流存储下来。
量化分析模块:码流提取模块提取到的码流信息会进入到量化分析模块,量化分析模块的作用是分析解码网络的每一网络层对于量化的敏感度,并得到在保证解码性能下,解码网络每一网络层应该分配的量化位宽,即得到解码网络每一网络层的量化位宽。
在量化分析模块中存储一份解码网络的前向计算结果。比如说,码流在进入到解码网络后,先执行一遍全浮点数据类型的解码前向,将浮点下的解码网络每一个网络层的输入特征(f,i表示第i个码流,l表示第l个网络层),以及最后一层的输出特征(fi_o,i表示第i个码流)存储下来,最后一层的输出特征为上述实施例的参考输出特征。
量化分析模块还支持将解码网络的每个网络层的权值和输入特征值进行仿真量化操作,且可以进行仿真量化计算,用来模拟解码网络的量化推理。其中,在解码网络中,网络层(如卷积层)的权值在8bit下对于量化并不敏感,而网络层(如卷积层)的输入特征值则对量化更加敏感,因此,在部分网络层使用8bit量化可以满足性能损失,但是部分网络层可能难以满足量化性能损失,因此,量化分析模块主要针对解码网络的网络层(如卷积层)的输入特征值的量化进行分析,为解码网络每一个网络层的输入选择合适的量化位宽与量化超参。
量化分析模块对解码网络每一网络层的输入特征值进行量化超参的初始化,量化超参的初始化依赖于浮点特征的数据范围,数据范围由浮点下解码网络每一网络层的输入特征(fi_l,i表示第i个码流,l表示第l个网络层)统计获得,即maxl=max(abs(f0_l),abs(f1_l),...,abs(fn_l))。初始化的量化超参由计算公式获得:paraml=get_param(bwl,maxl),bwl表示第l层输入特征的位宽,初始化为8,表示在bw量化位宽下,根据数据范围max计算得到的量化超参。由于在不同量化算法下,计算量化超参的方式略有不同,这里仅给出一个示例:param=bw-1-ceil(log2(max))。考虑到在神经网络的特征值中,通常会有outlier(异常特征值,数值范围通常特别大)的存在,这些outlier过大会影响到量化精度,因此,基于初始化的量化超参设置超参的候选列表,即paraml_list=[paraml-2,paraml-1,paraml,paraml+1,paraml+2]。此外,计算量化超参的另一个示例还可以为:param=(max)/2bw-1,基于初始化的量化超参设置超参的候选列表为:
量化分析模块会逐层对解码网络的量化进行分析,分析方式为逐层将输入特征值进行仿真量化(如初始进行8bit量化),将仿真量化后的特征输入给网络进行前向计算,将解码网络的输出进行保存,并与提前保存好的浮点输出特征fi_o进行误差分析,当误差大于某阈值时,将该层的量化位宽增加至16bit。仿真量化的计算公式可为:dataq=quant(dataf,bw,param),由于在不同量化算法下,仿真量化的计算公式并不不同,这里仅给出仿真量化方式的一个示例:quant(dataf,bw,param)=2-param×clip(round(dataf×2param),-2bw-1,2bw-1-1),clip用于表示截断函数。此外,针对仿真量化过程,仿真量化方式的另一个示例还可以为:quant(dataf,bw,param)=param×clip(round(dataf÷param),-2bw-1,2bw-1-1)。
在一种可能的实施方式中,可以采用如下步骤计算得到特征值的量化超参和量化位宽:
初始化量化位宽,如将量化位宽的初始值设置为8bit。
初始化量化超参,如采用如下公式确定量化超参的初始值:param=bw-1-ceil(log2(max)),量化超参的初始值即上述实施例的初始特征值量化超参。
初始化量化误差,如设置量化误差的预设阈值,该预设阈值可以根据经验设置。
获取量化超参候选列表,如基于量化超参的初始值,采用如下公式获取量化超参候选列表:paraml_list=[paraml-2,paraml-1,paraml,paraml+1,paraml+2]。
对输入特征值进行仿真量化,如基于量化位宽和量化超参,采用如下公式进行仿真量化:quant(dataf,bw,param)=2-param×clip(round(dataf×2param),-2bw-1,2bw-1-1)。
将仿真量化后的特征值输入给解码网络进行前向计算。
计算仿真量化后的解码网络输出与浮点解码网络输出的量化误差。
若量化误差小于预设阈值,则输出特征值的量化位宽为8bit,并输出特征值的量化超参为最小量化误差对应的量化超参(即量化超参候选列表中的某个量化超参)。
若量化误差不小于预设阈值,则将量化位宽增加至16bit。
重新获取量化超参的初始值,即在采用上述公式获取量化超参的初始值时,将量化位宽bw从8bit修改为16bit,在16bit的前提下获取量化超参的初始值。
重新获取量化超参候选列表,如基于量化超参的初始值获取量化超参候选列表。
对输入特征值进行仿真量化,如采用上述公式进行仿真量化。
将仿真量化后的特征值输入给解码网络进行前向计算。
计算仿真量化后的解码网络输出与浮点解码网络输出的量化误差。
输出特征值的量化位宽为16bit,输出特征值的量化超参为最小量化误差对应的量化超参。
在上述过程中,在计算量化误差时,可以采用误差损失函数计算量化误差,误差损失函数的计算方式可以包括但不限于mse、cosine similarity、KL散度等。经过上述流程计算,就可以得到解码网络的每一个网络层输入的量化位宽bwl和量化超参paraml
解码网络量化模块:根据量化分析模块输出的每一个网络层输入的量化位宽bwl和量化超参paraml,以及每一个网络层权值固定的8bit量化位宽,解码网络量化模块即可以对解码网络进行量化。比如说,解码网络的权值参数将会进行8bit量化,这可以极大程度的压缩模型的存储空间,同时,解码网络量化模块会将每一个网络层的输入进行位宽信息标记(8bit or16bit),并将对应的量化超参写入网络层的计算过程中(通常表示为移位),这样可以在保证解码网络的解码质量下,进一步压缩模型的计算量和吞吐带宽。
实施例9:在得到目标解码网络之后,可以将目标解码网络部署到编码端或解码端。比如说,目标解码网络包括概率超参解码网络、合成变换网络,或者,目标解码网络包括均值预测网络、概率超参解码网络、合成变换网络。通过将这些目标解码网络部署在编码端,编码端采用实施例2执行处理时,就是基于目标解码网络执行处理。通过将这些目标解码网络部署在解码端,解码端采用实施例3执行处理时,就是基于目标解码网络执行处理。
在一种可能的实施方式中,编码端或者解码端可以从当前图像块对应的码流(如第一码流和第二码流)中解码当前图像块对应的目标特征,基于该目标特征确定解码网络的输入特征,基于解码网络对该输入特征进行处理,得到解码网络的输出特征,在得到输出特征之后,可以基于该输出特征确定当前图像块对应的重建图像块,以下对此过程进行说明。
示例性的,编码端或者解码端从当前图像块对应的码流中解码当前图像块对应的目标特征,并基于该目标特征确定目标解码网络的第一输入特征。获取目标解码网络的目标特征值量化位宽和目标特征值量化超参(如从目标解码网络的配置信息中获取目标特征值量化位宽和目标特征值量化超参),并基于该目标特征值量化位宽和该目标特征值量化超参将该第一输入特征转换为第二输入特征。基于目标解码网络的定点型权重(定点型权重可以是基于目标权重量化位宽和目标权重量化超参确定)对第二输入特征进行处理,得到目标解码网络的输出特征。基于目标解码网络的输出特征确定当前图像块对应的重建图像块。
示例性的,目标解码网络包括至少一个目标网络层,目标网络层是采用定点型权重的网络层,针对目标解码网络中的每个目标网络层:可以基于该目标网络层的目标特征值量化位宽和目标特征值量化超参将该目标网络层的第一输入特征转换为第二输入特征;基于该目标网络层的定点型权重(该目标网络层的定点型权重是基于该目标网络层的目标权重量化位宽和该目标网络层的目标权重量化超参确定)对该第二输入特征进行处理,得到该目标网络层的输出特征。其中,不同目标网络层的目标特征值量化位宽可以相同或者不同,不同目标网络层的目标特征值量化超参可以相同或者不同,不同目标网络层的目标权重量化位宽可以均为固定量化位宽,不同目标网络层的目标权重量化超参可以相同或者不同。
示例性的,基于该目标网络层的目标特征值量化位宽和目标特征值量化超参将该目标网络层的第一输入特征转换为第二输入特征,包括但不限于:采用如下公式将该目标网络层的第一输入特征转换为第二输入特征:quant=clip(round(data×2param),-2bw-1,2bw-1-1);或者,quant=clip(round(data÷param),-2bw-1,2bw-1-1);其中,quant用于表示第二输入特征,data用于表示第一输入特征,param用于表示目标特征值量化超参,bw用于表示目标特征值量化位宽,clip用于表示截断函数,round用于表示四舍五入。
参见图5A所示,编码端或者解码端在得到当前图像块对应的Bitstream#1(即第一码流)之后,对Bitstream#1进行解码,得到超参量化特征(即当前图像块的目标特征),对超参量化特征进行反量化,得到系数超参特征z_hat(即基于目标特征确定概率超参解码网络的第一输入特征)。或者,可以对Bitstream#1进行解码,得到系数超参特征z_hat(即当前图像块的目标特征,可以将该目标特征直接作为概率超参解码网络的第一输入特征)。
在得到系数超参特征z_hat(即概率超参解码网络的第一输入特征)之后,将系数超参特征z_hat输入给概率超参解码网络(即目标解码网络)。概率超参解码网络可以采用目标特征值量化位宽和目标特征值量化超参将浮点型的系数超参特征z_hat(即第一输入特征)转换为定点型的系数超参特征z_hat(即第二输入特征),对定点型的系数超参特征z_hat进行系数超参特征反变换,得到当前图像块对应的概率分布参数p(即概率超参解码网络的输出特征)。在得到概率分布参数p之后,可以基于概率分布参数p生成概率分布模型。
比如说,针对概率超参解码网络中的每个目标网络层,该目标网络层在得到浮点型的第一输入特征之后,可以基于本目标网络层的目标特征值量化位宽和目标特征值量化超参将浮点型的第一输入特征转换为定点型的第二输入特征。又由于该目标网络层采用的是定点型权重,因此,可以基于该目标网络层的定点型权重对该定点型的第二输入特征进行处理,得到该目标网络层的输出特征。其中,该目标网络层的输出特征可以作为后一个网络层的输入特征,且该目标网络层的输出特征可以为浮点型的特征,以此类推。
参见图5A所示,编码端或者解码端在得到当前图像块对应的Bitstream#2(即第二码流)之后,对Bitstream#2进行解码,得到图像量化特征(即当前图像块的目标特征),对图像量化特征进行反量化,得到图像特征s’,对图像特征s’进行特征恢复,得到图像特征y_hat(即基于目标特征确定合成变换网络的第一输入特征)。或者,可以对Bitstream#2进行解码,得到图像特征s’(即当前图像块的目标特征),对图像特征s’进行特征恢复,得到图像特征y_hat(即基于该目标特征确定合成变换网络的第一输入特征)。编码端或者解码端在对Bitstream#2进行解码时,可以基于概率分布模型对Bitstream#2进行解码,对此过程不再赘述。
在得到图像特征y_hat(即合成变换网络的第一输入特征)之后,将图像特征y_hat输入给合成变换网络(即目标解码网络)。合成变换网络可以采用目标特征值量化位宽和目标特征值量化超参将浮点型的图像特征y_hat(即第一输入特征)转换为定点型的图像特征y_hat(即第二输入特征),对定点型的图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat(即合成变换网络的输出特征)。综上可以看出,可以基于合成变换网络对图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat。
比如说,针对合成变换网络中的每个目标网络层,该目标网络层在得到浮点型的第一输入特征之后,可以基于本目标网络层的目标特征值量化位宽和目标特征值量化超参将浮点型的第一输入特征转换为定点型的第二输入特征。又由于该目标网络层采用的是定点型权重,因此,可以基于该目标网络层的定点型权重对该定点型的第二输入特征进行处理,得到该目标网络层的输出特征。其中,该目标网络层的输出特征可以作为后一个网络层的输入特征,且该目标网络层的输出特征可以为浮点型的特征,以此类推。
在得到合成变换网络的输出特征之后,可以将合成变换网络的输出特征作为当前图像块x对应的重建图像块x_hat,即基于该输出特征确定当前图像块x对应的重建图像块x_hat。
参见图5B所示,编码端或者解码端在得到当前图像块对应的Bitstream#1之后,可以对Bitstream#1进行解码,得到超参量化特征(即当前图像块的目标特征),对超参量化特征进行反量化,得到系数超参特征z_hat(即基于该目标特征确定概率超参解码网络的第一输入特征)。或者,可以对Bitstream#1进行解码,得到系数超参特征z_hat(即当前图像块的目标特征,将该目标特征直接作为概率超参解码网络的第一输入特征)。
在得到系数超参特征z_hat(即概率超参解码网络的第一输入特征)后,将系数超参特征z_hat输入给概率超参解码网络(即目标解码网络)。概率超参解码网络可以采用目标特征值量化位宽和目标特征值量化超参将浮点型的系数超参特征z_hat(即第一输入特征)转换为定点型的系数超参特征z_hat(即第二输入特征),对定点型的系数超参特征z_hat进行系数超参特征反变换,得到当前图像块对应的概率分布参数p(即概率超参解码网络的输出特征)。
比如说,针对概率超参解码网络中的每个目标网络层,目标网络层在得到浮点型的第一输入特征之后,基于本目标网络层的目标特征值量化位宽和目标特征值量化超参将浮点型的第一输入特征转换为定点型的第二输入特征。该目标网络层采用的是定点型权重,基于该目标网络层的定点型权重对该定点型的第二输入特征进行处理,得到该目标网络层的输出特征。
在得到系数超参特征z_hat(即均值预测网络的第一输入特征)之后,将系数超参特征z_hat和前面图像块的图像特征y_hat输入给均值预测网络(即目标解码网络)。均值预测网络采用目标特征值量化位宽和目标特征值量化超参将浮点型的系数超参特征z_hat(第一输入特征)转换为定点型的系数超参特征z_hat(第二输入特征),采用目标特征值量化位宽和目标特征值量化超参将浮点型的图像特征y_hat(第一输入特征)转换为定点型的图像特征y_hat(第二输入特征)。均值预测网络基于定点型的系数超参特征z_hat和定点型的图像特征y_hat进行基于上下文的预测,得到当前图像块对应的预测值mu(即均值预测网络的输出特征)。
比如说,针对均值预测网络中的每个目标网络层,目标网络层在得到浮点型的第一输入特征之后,基于本目标网络层的目标特征值量化位宽和目标特征值量化超参将浮点型的第一输入特征转换为定点型的第二输入特征。该目标网络层采用的是定点型权重,基于该目标网络层的定点型权重对该定点型的第二输入特征进行处理,得到该目标网络层的输出特征。
编码端或者解码端得到当前图像块对应的Bitstream#2后,对Bitstream#2进行解码,得到图像量化特征(即当前图像块的目标特征),对图像量化特征进行反量化,得到图像特征s’,对图像特征s’进行特征恢复(即残差恢复),得到残差特征r_hat,基于残差特征r_hat和预测值mu确定图像特征y_hat,如将残差特征r_hat与预测值mu的和作为图像特征y_hat(即基于该目标特征确定合成变换网络的第一输入特征)。或者,对Bitstream#2进行解码,得到图像特征s’(即当前图像块的目标特征),对图像特征s’进行特征恢复,得到残差特征r_hat,基于残差特征r_hat和预测值mu确定图像特征y_hat,如将残差特征r_hat与预测值mu的和作为图像特征y_hat(即基于该目标特征确定合成变换网络的第一输入特征)。
在得到图像特征y_hat(即合成变换网络的第一输入特征)之后,将图像特征y_hat输入给合成变换网络(即目标解码网络)。合成变换网络可以采用目标特征值量化位宽和目标特征值量化超参将浮点型的图像特征y_hat(即第一输入特征)转换为定点型的图像特征y_hat(即第二输入特征),对定点型的图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat(即合成变换网络的输出特征)。综上可以看出,可以基于合成变换网络对图像特征y_hat进行合成变换,得到当前图像块x对应的重建图像块x_hat。
比如说,针对合成变换网络中的每个目标网络层,该目标网络层在得到浮点型的第一输入特征之后,可以基于本目标网络层的目标特征值量化位宽和目标特征值量化超参将浮点型的第一输入特征转换为定点型的第二输入特征。又由于该目标网络层采用的是定点型权重,因此,可以基于该目标网络层的定点型权重对该定点型的第二输入特征进行处理,得到该目标网络层的输出特征。其中,该目标网络层的输出特征可以作为后一个网络层的输入特征,且该目标网络层的输出特征可以为浮点型的特征,以此类推。
在得到合成变换网络的输出特征之后,可以将合成变换网络的输出特征作为当前图像块x对应的重建图像块x_hat,即基于该输出特征确定当前图像块x对应的重建图像块x_hat。
由以上技术方案可见,本申请实施例中,提出一种端到端的视频图像压缩方法,能够基于解码网络实现视频图像的解码,达到提升编码效率和解码效率的目的。采用目标权重量化位宽和目标权重量化超参构建定点化权重的解码网络,并采用目标特征值量化位宽和目标特征值量化超参生成定点化的输入特征,实现自适应解码加速,在保证解码质量的前提下,降低解码计算量。提出一种针对基于神经网络的图像编解码框架中的解码网络的压缩方式,通过分析解码网络在输入码流进行解码计算时每一层的量化损失来确定每一层的量化位宽和量化超参,根据得到的量化位宽与量化超参对解码网络进行量化,可以在保证解码网络的解码质量同时,极大程度的压缩解码网络的存储空间、计算量以及模型吞吐与带宽,从而让庞大的解码网络在计算资源有限的设备上运行成为可能。通过将解码网络的推理由浮点计算改为定点计算,有助于解码网络在不同设备间的解码一致性。
示例性的,上述各实施例可以单独实现,也可以组合实现,比如说,实施例1-实施例9中的每个实施例,可以单独实现,实施例1-实施例9中的至少两个实施例,可以组合实现。
示例性的,上述各实施例中,编码端的内容也可以应用到解码端,即解码端可以采用相同方式处理,解码端的内容也可以应用到编码端,即编码端可以采用相同方式处理。
基于与上述方法同样的申请构思,本申请实施例中还提出一种解码装置,所述装置应用于解码端,所述装置包括:存储器,其经配置以存储视频数据;解码器,其经配置以实现上述实施例1-实施例9中的解码方法,即解码端的处理流程。
比如说,在一种可能的实施方式中,解码器,其经配置以实现:
从当前图像块对应的码流中解码所述当前图像块对应的目标特征;
基于所述目标特征确定目标解码网络的第一输入特征;
获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于所述目标特征值量化位宽和所述目标特征值量化超参将所述第一输入特征转换为第二输入特征;
基于目标解码网络的定点型权重对所述第二输入特征进行处理,得到所述目标解码网络的输出特征;其中,所述定点型权重是基于目标权重量化位宽和目标权重量化超参确定;
基于所述目标解码网络的输出特征确定所述当前图像块对应的重建图像块。
基于与上述方法同样的申请构思,本申请实施例提供的解码端设备(也可以称为视频解码器),从硬件层面而言,其硬件架构示意图具体可以参见图7所示。包括:处理器701和机器可读存储介质702,机器可读存储介质702存储有能够被处理器701执行的机器可执行指令;处理器701用于执行机器可执行指令,以实现本申请上述实施例1-9的解码方法。
比如说,在一种可能的实施方式中,解码端设备用于实现:
从当前图像块对应的码流中解码所述当前图像块对应的目标特征;
基于所述目标特征确定目标解码网络的第一输入特征;
获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于所述目标特征值量化位宽和所述目标特征值量化超参将所述第一输入特征转换为第二输入特征;
基于目标解码网络的定点型权重对所述第二输入特征进行处理,得到所述目标解码网络的输出特征;其中,所述定点型权重是基于目标权重量化位宽和目标权重量化超参确定;
基于所述目标解码网络的输出特征确定所述当前图像块对应的重建图像块。
基于与上述方法同样的申请构思,本申请实施例提供一种电子设备。包括:处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令;处理器用于执行机器可执行指令,以实现本申请上述实施例1-9的解码方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法,如上述上述各实施例中的解码方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种计算机应用程序,所述计算机应用程序令被处理器执行时,能够实现本申请上述示例公开的解码方法。
本申请实施例中还提出一种解码装置,所述解码装置可以应用于解码端,所述解码装置可以包括:解码模块,用于从当前图像块对应的码流中解码所述当前图像块对应的目标特征;确定模块,用于基于所述目标特征确定目标解码网络的第一输入特征;处理模块,用于获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于所述目标特征值量化位宽和所述目标特征值量化超参将所述第一输入特征转换为第二输入特征;基于目标解码网络的定点型权重对所述第二输入特征进行处理,得到所述目标解码网络的输出特征;其中,所述定点型权重是基于目标权重量化位宽和目标权重量化超参确定;所述确定模块,用于基于目标解码网络的输出特征确定当前图像块对应的重建图像块。
示例性的,所述目标解码网络包括至少一个目标网络层,目标网络层是采用定点型权重的网络层,针对所述目标解码网络中的每个目标网络层:所述处理模块,还用于基于该目标网络层的目标特征值量化位宽和目标特征值量化超参将该目标网络层的第一输入特征转换为第二输入特征;基于该目标网络层的定点型权重对该第二输入特征进行处理,得到该目标网络层的输出特征;其中,该目标网络层的定点型权重是基于该目标网络层的目标权重量化位宽和目标权重量化超参确定;其中,不同目标网络层的目标特征值量化位宽相同或者不同,不同目标网络层的目标特征值量化超参相同或者不同,不同目标网络层的目标权重量化位宽均为固定量化位宽,不同目标网络层的目标权重量化超参相同或者不同。
示例性的,所述处理模块基于该目标网络层的目标特征值量化位宽和目标特征值量化超参将该目标网络层的第一输入特征转换为第二输入特征时具体用于:采用如下公式将第一输入特征转换为第二输入特征:quant=clip(round(data×2param),-2bw-1,2bw-1-1);或者,quant=clip(round(data÷param),-2bw-1,2bw-1-1);其中,quant用于表示第二输入特征,data用于表示第一输入特征,param用于表示目标特征值量化超参,bw用于表示目标特征值量化位宽,clip用于表示截断函数,round用于表示四舍五入。
示例性的,样本解码网络包括采用浮点型权重的多个网络层,所述多个网络层包括目标网络层,针对每个目标网络层:所述处理模块,还用于获取该目标网络层对应的权重量化超参候选列表,所述权重量化超参候选列表包括多个候选权重量化超参;针对每个候选权重量化超参,采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重;基于该候选仿真权重对该目标网络层的浮点型输入特征进行处理,得到该目标网络层的浮点型输出特征,基于该目标网络层的浮点型输出特征确定该候选权重量化超参对应的量化误差;基于每个候选权重量化超参对应的量化误差,将最小量化误差对应的候选权重量化超参确定为目标权重量化超参,将该固定量化位宽确定为目标权重量化位宽;基于该目标权重量化位宽和该目标权重量化超参对目标网络层的浮点型权重进行定点量化得到该目标网络层的定点型权重;基于每个目标网络层的定点型权重生成目标解码网络。
示例性的,所述处理模块获取该目标网络层对应的权重量化超参候选列表时具体用于:基于该目标网络层的所有浮点型权重确定最大权重值;每个浮点型权重包括多个权重值,所述最大权重值是所有浮点型权重的所有权重值中的最大值;基于所述最大权重值生成该目标网络层对应的初始权重量化超参;基于所述初始权重量化超参构建权重量化超参候选列表。
示例性的,所述处理模块基于最大权重值生成该目标网络层对应的初始权重量化超参时具体用于:采用如下公式生成初始权重量化超参:param=bw-1-ceil(log2(max));或者,param=(max)/2bw-1;其中,param表示该目标网络层对应的初始权重量化超参,bw表示所述固定量化位宽,max表示所述最大权重值,ceil表示向上取整操作。
示例性的,所述处理模块采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重时具体用于:采用如下公式对该浮点型权重进行仿真量化得到候选仿真权重:quant=2-param×clip(round(data×2param),-2bw-1,2bw -1-1);或者,quant=param×clip(round(data÷param),-2bw-1,2bw-1-1);其中,quant用于表示候选仿真权重,param用于表示该候选权重量化超参,data用于表示该目标网络层的浮点型权重,bw用于表示该固定量化位宽,clip表示截断函数,round表示四舍五入。
示例性的,所述处理模块基于该目标网络层的浮点型输出特征确定该候选权重量化超参对应的量化误差时具体用于:基于该目标网络层的浮点型输出特征确定样本输出特征,所述样本输出特征为样本解码网络中参考网络层的输出特征,所述参考网络层为位于该目标网络层后面的任一网络层;基于所述样本输出特征和参考输出特征确定该候选权重量化超参对应的量化误差;其中,所述参考输出特征的获取方式包括:从样本码流中解码样本特征,基于所述样本特征确定样本解码网络对应的浮点型输入特征,基于所述浮点型输入特征确定所述参考输出特征,所述参考输出特征为所述样本解码网络中参考网络层的输出特征。
示例性的,样本解码网络包括采用浮点型权重的目标网络层,针对每个目标网络层:所述处理模块,还用于获取该目标网络层对应的特征值量化超参候选列表和量化位宽集合,所述特征值量化超参候选列表包括多个候选特征值量化超参,所述量化位宽集合包括至少两个量化位宽;从量化位宽集合中遍历当前量化位宽,针对每个候选特征值量化超参,采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征;基于该目标网络层的伪权重对该候选输入特征进行处理,得到该目标网络层的浮点型输出特征,基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差;基于每个候选特征值量化超参对应的量化误差,若最小量化误差小于预设阈值,则将最小量化误差对应的候选特征值量化超参确定为目标特征值量化超参,将当前量化位宽确定为目标特征值量化位宽,为该目标网络层记录目标特征值量化超参和目标特征值量化位宽。基于每个候选特征值量化超参对应的量化误差,若最小量化误差不小于预设阈值,则判断当前量化位宽是否为所述量化位宽集合的最后一个量化位宽;若是,则将最小量化误差对应的候选特征值量化超参确定为目标特征值量化超参,将当前量化位宽确定为目标特征值量化位宽,为该目标网络层记录目标特征值量化超参和目标特征值量化位宽;若否,则遍历当前量化位宽的后一个量化位宽作为当前量化位宽,并返回执行采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征的操作。
示例性的,所述处理模块获取该目标网络层对应的特征值量化超参候选列表时具体用于:基于该目标网络层的所有浮点型输入特征确定最大特征值;每个浮点型输入特征包括多个特征值,且所述最大特征值是所有浮点型输入特征的所有特征值中的最大值;基于最大特征值生成该目标网络层对应的初始特征值量化超参;基于初始特征值量化超参构建特征值量化超参候选列表。所述处理模块基于最大特征值生成该目标网络层对应的初始特征值量化超参时具体用于:采用如下公式生成初始特征值量化超参:get_param=bw-1-ceil(log2(max));或,get_param=(max)/2bw-1;其中,get_param表示该目标网络层对应的初始特征值量化超参,bw表示所述当前量化位宽,max表示所述最大特征值,ceil表示向上取整操作。
所述处理模块采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征时具体用于:采用如下公式对浮点型输入特征进行仿真量化得到候选输入特征:quant=2-param×clip(round(data×2param),-2bw-1,2bw -1-1);或,quant=param×clip(round(dato÷param),-2bw-1,2bw-1-1);其中,quant表示该候选输入特征,param表示该候选特征值量化超参,data表示该浮点型输入特征,bw表示该当前量化位宽,clip表示截断函数,round表示四舍五入。
示例性的,所述处理模块,还用于采用该目标网络层的目标权重量化超参和该目标网络层的目标权重量化位宽对目标网络层的浮点型权重进行仿真量化得到该目标网络层的伪权重。
示例性的,所述处理模基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差时具体用于:基于该目标网络层的浮点型输出特征确定样本输出特征,所述样本输出特征为样本解码网络中参考网络层的输出特征,所述参考网络层为位于该目标网络层后面的任一网络层;基于所述样本输出特征和参考输出特征确定该候选特征值量化超参对应的量化误差;其中,所述参考输出特征的获取方式包括:从样本码流中解码样本特征,基于所述样本特征确定样本解码网络对应的浮点型输入特征,基于所述浮点型输入特征确定所述参考输出特征,所述参考输出特征为所述样本解码网络中参考网络层的输出特征。
本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。以上所述仅为本申请的实施例而已,并不用于限制本申请。
对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (18)

1.一种解码方法,其特征在于,所述方法包括:
从当前图像块对应的码流中解码所述当前图像块对应的目标特征;
基于所述目标特征确定目标解码网络的第一输入特征;
获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于所述目标特征值量化位宽和所述目标特征值量化超参将所述第一输入特征转换为第二输入特征;
基于目标解码网络的定点型权重对所述第二输入特征进行处理,得到所述目标解码网络的输出特征;其中,所述定点型权重是基于目标权重量化位宽和目标权重量化超参确定;
基于所述目标解码网络的输出特征确定所述当前图像块对应的重建图像块。
2.根据权利要求1所述的方法,其特征在于,所述目标解码网络包括至少一个目标网络层,目标网络层是采用定点型权重的网络层,针对所述目标解码网络中的每个目标网络层:
基于该目标网络层的目标特征值量化位宽和目标特征值量化超参将该目标网络层的第一输入特征转换为第二输入特征;基于该目标网络层的定点型权重对该第二输入特征进行处理,得到该目标网络层的输出特征;其中,该目标网络层的定点型权重是基于该目标网络层的目标权重量化位宽和目标权重量化超参确定;其中,不同目标网络层的目标特征值量化位宽相同或者不同,不同目标网络层的目标特征值量化超参相同或者不同,不同目标网络层的目标权重量化位宽均为固定量化位宽,不同目标网络层的目标权重量化超参相同或者不同。
3.根据权利要求2所述的方法,其特征在于,所述基于该目标网络层的目标特征值量化位宽和目标特征值量化超参将该目标网络层的第一输入特征转换为第二输入特征,包括:
采用如下公式将该目标网络层的第一输入特征转换为第二输入特征:
quant=clip(round(data×2param),-2bw-1,2bw-1-1);或者,
quant=clip(round(data÷param),-2bw-1,2bw-1-1);
其中,quant表示第二输入特征,data表示第一输入特征,param表示目标特征值量化超参,bw表示目标特征值量化位宽,clip表示截断函数,round表示四舍五入。
4.根据权利要求1-3任一项所述的方法,其特征在于,样本解码网络包括采用浮点型权重的多个网络层,所述多个网络层包括目标网络层,针对每个目标网络层:
获取该目标网络层对应的权重量化超参候选列表,所述权重量化超参候选列表包括多个候选权重量化超参;针对每个候选权重量化超参,采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重;基于该候选仿真权重对该目标网络层的浮点型输入特征进行处理,得到该目标网络层的浮点型输出特征,基于该目标网络层的浮点型输出特征确定该候选权重量化超参对应的量化误差;
基于每个候选权重量化超参对应的量化误差,将最小量化误差对应的候选权重量化超参确定为目标权重量化超参,将该固定量化位宽确定为目标权重量化位宽;
基于该目标权重量化位宽和该目标权重量化超参对目标网络层的浮点型权重进行定点量化得到该目标网络层的定点型权重;基于每个目标网络层的定点型权重生成目标解码网络。
5.根据权利要求4所述的方法,其特征在于,
所述获取该目标网络层对应的权重量化超参候选列表,包括:
基于该目标网络层的所有浮点型权重确定最大权重值;其中,每个浮点型权重包括多个权重值,且所述最大权重值是所有浮点型权重的所有权重值中的最大值;
基于所述最大权重值生成该目标网络层对应的初始权重量化超参;
基于所述初始权重量化超参构建所述权重量化超参候选列表。
6.根据权利要求5所述的方法,其特征在于,
所述基于所述最大权重值生成该目标网络层对应的初始权重量化超参,包括:
采用如下公式生成所述初始权重量化超参:
param=bw-1-ceil(log2(max));或者,
param=(max)/2bw-1
其中,param表示该目标网络层对应的初始权重量化超参,bw表示所述固定量化位宽,max表示所述最大权重值,ceil表示向上取整操作。
7.根据权利要求4所述的方法,其特征在于,所述采用固定量化位宽和该候选权重量化超参对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重,包括:
采用如下公式对该目标网络层的浮点型权重进行仿真量化得到候选仿真权重:
quant=2-param×clip(round(data×2param),-2bw-1,2bw-1-1);或者,
quant=param×clip(round(data÷param),-2bw-1,2bw-1-1);
其中,quant表示候选仿真权重,param表示该候选权重量化超参,data表示该目标网络层的浮点型权重,bw表示该固定量化位宽,clip表示截断函数,round表示四舍五入。
8.根据权利要求4所述的方法,其特征在于,所述基于该目标网络层的浮点型输出特征确定该候选权重量化超参对应的量化误差,包括:
基于该目标网络层的浮点型输出特征确定样本输出特征,所述样本输出特征为样本解码网络中参考网络层的输出特征,所述参考网络层为位于该目标网络层后面的任一网络层;
基于所述样本输出特征和参考输出特征确定该候选权重量化超参对应的量化误差;
其中,所述参考输出特征的获取方式包括:从样本码流中解码样本特征,基于所述样本特征确定样本解码网络对应的浮点型输入特征,基于所述浮点型输入特征确定所述参考输出特征,所述参考输出特征为所述样本解码网络中参考网络层的输出特征。
9.根据权利要求1-3任一项所述的方法,其特征在于,样本解码网络包括采用浮点型权重的多个网络层,所述多个网络层包括目标网络层,针对每个目标网络层:
获取该目标网络层对应的特征值量化超参候选列表和量化位宽集合,所述特征值量化超参候选列表包括多个候选特征值量化超参,所述量化位宽集合包括至少两个量化位宽;从所述量化位宽集合中遍历当前量化位宽,针对每个候选特征值量化超参,采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征;基于该目标网络层的伪权重对该候选输入特征进行处理,得到该目标网络层的浮点型输出特征,基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差;
基于每个候选特征值量化超参对应的量化误差,若最小量化误差小于预设阈值,则将最小量化误差对应的候选特征值量化超参确定为目标特征值量化超参,将当前量化位宽确定为目标特征值量化位宽,为该目标网络层记录目标特征值量化超参和目标特征值量化位宽。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
基于每个候选特征值量化超参对应的量化误差,若最小量化误差不小于预设阈值,则判断当前量化位宽是否为所述量化位宽集合的最后一个量化位宽;若是,则将最小量化误差对应的候选特征值量化超参确定为目标特征值量化超参,将当前量化位宽确定为目标特征值量化位宽,为该目标网络层记录目标特征值量化超参和目标特征值量化位宽;若否,则遍历当前量化位宽的后一个量化位宽作为当前量化位宽,并返回执行采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征的操作。
11.根据权利要求9所述的方法,其特征在于,
所述获取该目标网络层对应的特征值量化超参候选列表,包括:
基于该目标网络层的所有浮点型输入特征确定最大特征值;其中,每个浮点型输入特征包括多个特征值,且所述最大特征值是所有浮点型输入特征的所有特征值中的最大值;
基于所述最大特征值生成该目标网络层对应的初始特征值量化超参;
基于所述初始特征值量化超参构建所述特征值量化超参候选列表。
12.根据权利要求11所述的方法,其特征在于,
所述基于所述最大特征值生成该目标网络层对应的初始特征值量化超参,包括:
采用如下公式生成所述初始特征值量化超参:
param=bw-1-ceil(log2(max));或,
param=(max)/2bw-1
其中,param表示该目标网络层对应的初始特征值量化超参,bw表示所述当前量化位宽,max表示所述最大特征值,ceil表示向上取整操作。
13.根据权利要求9所述的方法,其特征在于,所述采用当前量化位宽和该候选特征值量化超参对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征,包括:
采用如下公式对该目标网络层的浮点型输入特征进行仿真量化得到候选输入特征:
quant=2-param×clip(round9data×2param),-2bw-1,2bw-1-1);或,
quant=param×clip(round(data÷param),-2bw-1,2bw-1-1);
其中,quant表示该候选输入特征,param表示该候选特征值量化超参,data表示该浮点型输入特征,bw表示该当前量化位宽,clip表示截断函数,round表示四舍五入。
14.根据权利要求9所述的方法,其特征在于,所述基于该目标网络层的伪权重对该候选输入特征进行处理,得到该目标网络层的浮点型输出特征之前,所述方法还包括:
采用该目标网络层的目标权重量化超参和该目标网络层的目标权重量化位宽对该目标网络层的浮点型权重进行仿真量化得到该目标网络层的伪权重。
15.根据权利要求9所述的方法,其特征在于,所述基于该目标网络层的浮点型输出特征确定该候选特征值量化超参对应的量化误差,包括:
基于该目标网络层的浮点型输出特征确定样本输出特征,所述样本输出特征为样本解码网络中参考网络层的输出特征,所述参考网络层为位于该目标网络层后面的任一网络层;
基于所述样本输出特征和参考输出特征确定该候选特征值量化超参对应的量化误差;
其中,所述参考输出特征的获取方式包括:从样本码流中解码样本特征,基于所述样本特征确定样本解码网络对应的浮点型输入特征,基于所述浮点型输入特征确定所述参考输出特征,所述参考输出特征为所述样本解码网络中参考网络层的输出特征。
16.一种解码装置,其特征在于,所述装置包括:
解码模块,用于从当前图像块对应的码流中解码所述当前图像块对应的目标特征;
确定模块,用于基于所述目标特征确定目标解码网络的第一输入特征;
处理模块,用于获取目标解码网络的目标特征值量化位宽和目标特征值量化超参,基于所述目标特征值量化位宽和所述目标特征值量化超参将所述第一输入特征转换为第二输入特征;基于目标解码网络的定点型权重对所述第二输入特征进行处理,得到所述目标解码网络的输出特征;其中,所述定点型权重是基于目标权重量化位宽和目标权重量化超参确定;
所述确定模块,用于基于目标解码网络的输出特征确定当前图像块对应的重建图像块。
17.一种解码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现权利要求1-15任一项所述的方法。
18.一种机器可读存储介质,其特征在于,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,实现权利要求1-15任一项所述的方法。
CN202310856767.3A 2023-07-12 2023-07-12 一种解码方法、装置及其设备 Active CN119316617B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN202411932643.XA CN119450084A (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备
CN202511483286.8A CN121078238A (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备
CN202310856767.3A CN119316617B (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备
TW113126212A TW202504315A (zh) 2023-07-12 2024-07-12 一種解碼方法、裝置及其設備
PCT/CN2024/105166 WO2025011638A1 (zh) 2023-07-12 2024-07-12 一种解码方法、装置及其设备
TW114115562A TW202533578A (zh) 2023-07-12 2024-07-12 一種解碼方法、裝置及其設備

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310856767.3A CN119316617B (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备

Related Child Applications (2)

Application Number Title Priority Date Filing Date
CN202411932643.XA Division CN119450084A (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备
CN202511483286.8A Division CN121078238A (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备

Publications (2)

Publication Number Publication Date
CN119316617A true CN119316617A (zh) 2025-01-14
CN119316617B CN119316617B (zh) 2025-11-07

Family

ID=94179715

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202511483286.8A Pending CN121078238A (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备
CN202310856767.3A Active CN119316617B (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备
CN202411932643.XA Pending CN119450084A (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202511483286.8A Pending CN121078238A (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202411932643.XA Pending CN119450084A (zh) 2023-07-12 2023-07-12 一种解码方法、装置及其设备

Country Status (3)

Country Link
CN (3) CN121078238A (zh)
TW (2) TW202504315A (zh)
WO (1) WO2025011638A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110062246A (zh) * 2018-01-19 2019-07-26 杭州海康威视数字技术股份有限公司 对视频帧数据进行处理的方法和装置
WO2021143686A1 (zh) * 2020-01-14 2021-07-22 杭州海康威视数字技术股份有限公司 神经网络定点化方法、装置、电子设备及可读存储介质
WO2022155923A1 (zh) * 2021-01-22 2022-07-28 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器以及电子设备
US20220279183A1 (en) * 2020-04-29 2022-09-01 Deep Render Ltd Image compression and decoding, video compression and decoding: methods and systems
CN115526310A (zh) * 2022-09-26 2022-12-27 杭州海康威视数字技术股份有限公司 一种网络模型的量化方法、装置及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110062246A (zh) * 2018-01-19 2019-07-26 杭州海康威视数字技术股份有限公司 对视频帧数据进行处理的方法和装置
WO2021143686A1 (zh) * 2020-01-14 2021-07-22 杭州海康威视数字技术股份有限公司 神经网络定点化方法、装置、电子设备及可读存储介质
US20220279183A1 (en) * 2020-04-29 2022-09-01 Deep Render Ltd Image compression and decoding, video compression and decoding: methods and systems
WO2022155923A1 (zh) * 2021-01-22 2022-07-28 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器以及电子设备
CN115526310A (zh) * 2022-09-26 2022-12-27 杭州海康威视数字技术股份有限公司 一种网络模型的量化方法、装置及设备

Also Published As

Publication number Publication date
CN119450084A (zh) 2025-02-14
CN121078238A (zh) 2025-12-05
TW202533578A (zh) 2025-08-16
CN119316617B (zh) 2025-11-07
WO2025011638A1 (zh) 2025-01-16
TW202504315A (zh) 2025-01-16

Similar Documents

Publication Publication Date Title
CN119653095B (zh) 一种解码、编码方法、装置及其设备
CN119316617B (zh) 一种解码方法、装置及其设备
TW202444097A (zh) 一種解碼、編碼方法、裝置及其設備
CN119299708B (zh) 一种解码、编码方法、装置及其设备
CN119450065B (zh) 一种解码、编码方法、装置及其设备
CN119316618A (zh) 一种解码、编码方法、装置及其设备
CN118354084A (zh) 一种解码、编码方法、装置及其设备
CN118972621B (zh) 图像解码和编码方法、装置、设备及存储介质
CN119766997B (zh) 一种解码、编码方法、装置及其设备
CN118590650A (zh) 一种解码、编码方法、装置及其设备
CN120343278A (zh) 一种解码方法、装置及其设备
CN119232942A (zh) 基于多步上下文预测的解码、编码方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40117867

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant