CN118158425A - 图像压缩系统、图像处理方法和编解码方法及电子设备 - Google Patents

图像压缩系统、图像处理方法和编解码方法及电子设备 Download PDF

Info

Publication number
CN118158425A
CN118158425A CN202211514199.0A CN202211514199A CN118158425A CN 118158425 A CN118158425 A CN 118158425A CN 202211514199 A CN202211514199 A CN 202211514199A CN 118158425 A CN118158425 A CN 118158425A
Authority
CN
China
Prior art keywords
network
coding
image
encoding
decoding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211514199.0A
Other languages
English (en)
Inventor
崔泽
王晶
张恋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202211514199.0A priority Critical patent/CN118158425A/zh
Publication of CN118158425A publication Critical patent/CN118158425A/zh
Pending legal-status Critical Current

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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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

Landscapes

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

Abstract

本申请提供一种图像压缩系统、图像处理方法、编解码方法及电子设备;图像压缩系统包括第一选择模块、熵编码模块、熵解码模块、量化模块、N个编码网络和1个解码网络,N个编码网络的编码损失不同;第一选择模块,用于基于待编码图像的已编码次数,从N个编码网络中选取目标编码网络;目标编码网络,用于对待编码图像进行特征变换,以得到第一特征图;量化模块,用于对第一特征图进行量化,以得到第二特征图;熵编码模块,用于对第二特征图进行熵编码,以得到码流;熵解码模块,用于对码流进行熵解码,以得到第三特征图;解码网络,用于基于第三特征图进行特征变换,以得到重建图像。这样,能够有效降低图像在多次编解码后的损失幅度比。

Description

图像压缩系统、图像处理方法和编解码方法及电子设备
技术领域
本申请实施例涉及图像处理领域,尤其涉及一种图像压缩系统、图像处理方法、编解码方法及电子设备。
背景技术
随着神经网络在图像压缩领域的发展,以及超越传统压缩方法的表现,基于深度学习的人工智能(Artificial Intelligence,AI)图像压缩算法逐渐被广泛应用;其中,AI图像压缩算法包括多种,例如基于变分自编码器(Variational Autoencoder,VAE)框架的AI图像压缩算法等。
很多场景(如软件编辑)需要对图像进行多次编解码,这会造成极大的率失真性能的下降,无法保证图像在多次编解码后的质量,影响着端到端图像压缩方案的应用。
发明内容
为了解决上述技术问题,本申请提供一种图像压缩系统、图像处理方法、编解码方法及电子设备。该编解码方法和图像处理方法基于该图像压缩系统实现,能够降低图像在多次编解码后的损失幅度比(其中,最后一次编解码的率失真损失减去第一次编解码的率失真损失,得到损失差值;损失差值与第一次编解码的率失真损失的比值,即为损失幅度比)。
需要说明的是,本申请可以应用于AI压缩场景,本申请的图像压缩系统可以是指AI压缩系统,基于图像压缩系统所实现的编解码方法和图像处理方法可以是指AI压缩算法;本申请的图像压缩系统可以用于多次编解码。
示例性的,本申请的一种应用场景可以是:图像/视频在多个电子设备之间转发以及显示的场景;其中,图像/视频在多个电子设备之间转发以及显示的场景中,进行了多次编解码。
示例性的,本申请的一种应用场景可以是:图像/视频多次编辑的场景;其中,在图像/视频多次编辑的场景中,进行了多次编解码。
第一方面,本申请实施例提供一种图像压缩系统,该图像压缩系统可以包括:第一选择模块、熵编码模块、熵解码模块、量化模块、N个编码网络和1个解码网络,N个编码网络的编码损失不同,N为大于1的整数,其中:
第一选择模块,用于基于待编码图像的已编码次数,从N个编码网络中选取目标编码网络,其中,待编码图像为未经过编码的图像或重建图像;
目标编码网络,用于对待编码图像进行特征变换,以得到第一特征图;
量化模块,用于对第一特征图进行量化,以得到第二特征图;
熵编码模块,用于对第二特征图进行熵编码,以得到码流;
熵解码模块,用于对码流进行熵解码,以得到第三特征图;
解码网络,用于基于第三特征图进行特征变换,以得到重建图像。
应该理解的是,N个编码网络均为训练后的编码网络,解码网络为训练后的解码网络;其中,N个编码网络和1个解码网络是联合训练得到的,N个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络;进而,训练后,N个编码网络的编码损失不同;具体的训练过程在后续说明。其中,对N个编码网络和解码网络联合训练后,对于N个编码网络中的每一个编码网络,基于该编码网络对图像进行编码并基于解码网络对编码结果进行解码后,图像的率失真损失小于预设率失真损失(预设率失真损失可以按照需求设置);因此,训练后,解码网络就能够很好的兼容编码损失不同的N个编码网络。进而相对于现有技术对应单编码网络的解码网络而言,本申请的解码网络重建能力更高。从而在多次编解码过程中,每次基于其中一个编码网络进行编码以及基于该解码网络进行解码,能够有效降低图像在多次编解码后的损失幅度比。
需要说明的是,熵编码模块的数量可以是Y(Y为正整数)。示例性的,Y可以等于1,这样,N个编码网络对应一个熵编码模块。示例性的,Y可以等于N,这样,N个编码网络与N个熵编码网络分别对应。示例性的,Y可以大于1且小于N,这样,N个编码网络中的一个或多个编码网络对应一个熵编码模块。
需要说明的是,熵解码模块的数量可以是Y(Y为正整数);也就是说,熵解码模块的数量和熵编码模块的数量相同,Y个熵解码模块与Y个熵编码模块一一对应。本申请以Y等于1为例进行说明。
示例性的,第一特征图可以是指图2a中的特征图1;第二特征图可以是指图2a中的特征图2,第三特征图可以是指图2a中的特征图3。
示例性的,待编码图像可以是指图2a中的图像1;重建图像可以是指图2a中的图像2。
应该理解的是,图像压缩系统还可以包括其他模块,例如熵估计模块等等,本申请对此不作限制。示例性的,熵估计模块,可以用于熵估计,输出熵估计信息,熵估计信息可以用于熵编码模块的熵编码过程,以及用于熵解码模块的熵解码过程。
示例性的,编码网络可以是卷积神经网络。
示例性的,解码网络可以是卷积神经网络。
示例性的,当图像进行了一次编码和一次解码后,其已编码次数为1。
示例性的,解码网络也可以是多个,一个解码网络可以对应N个编码网络中的多个编码网络。这样,在选取目标编码网络后,可以从多个解码网络中,选取与目标编码网络对应的一个解码网络对第三特征图进行特征变换,以得到重建图像。
示例性的,第二特征图与第三特征图可以相同,也可以不同,本申请对此不作限制。
根据第一方面,N个编码网络的网络结构相同,但网络参数不同;或者,N个编码网络的网络结构不同。
示例性的,N个编码网络中的每个编码网络均可使用现有的任意神经网络来实现,本申请对此不作限制。例如,当N个编码网络的网络结构相同时,每个编码网络均可以由四个卷积层与三个激活层穿插级联构成。其中,当N个编码网络的网络结构相同时,能够节省设计编码网络的成本。
示例性的,N个编码网络中每个编码网络可以对应一组网络参数;进而,可以得到N组网络参数。其中,对于N个编码网络的网络结构相同,但网络参数不同的情况,图像压缩系统包括N个编码网络还可以理解为:仅包括与N个编码网络中任一编码网络结构相同的1个编码网络,该编码网络对应N组网络参数。这种情况下,从N个编码网络中选取目标编码网络,还可以理解成,从N组网络参数中选取目标网络参数;将该编码网络的网络参数配置为目标网络参数,进而可以得到目标编码网络。
示例性的,编码网络的网络结构可以是指编码网络包括的网络层和网络层之间的连接关系。其中,编码网络可以包括多种类型(例如,卷积、激活等)的网络层,每种类型的网络层可以是一个或多个。
示例性的,编码网络的网络参数可以是指编码网络包括的多个网络层对应的权重矩阵和偏置矩阵;其中,权重矩阵由多个网络层的权重向量组成,偏置矩阵由多个网络层的偏置向量组成。其中,每个网络层可以由一个或多个神经元构成,该网络层的权重向量中的一个值表示该网络层中一个神经元的权重值,该网络层的偏置向量中的一个值表示该网络层中一个神经元的偏置值。
根据第一方面,或者以上第一方面的任意一种实现方式,N个编码网络共用第一编码网络;N个编码网络中每个编码网络均由第一编码网络和第一增益向量构成,N个编码网络中每个编码网络的第一增益向量不同;
目标编码网络,具体用于调用第一编码网络对待编码图像进行特征变换,以得到第四特征图;以及基于目标编码网络的第一增益向量对第四特征图进行缩放,以得到第一特征图。
这样,能够节省设计编码网络的成本。且相对于N个编码网络相互独立的情况,可以节省编码网络的存储内存。
示例性的,第一编码网络可使用现有的任意神经网络来实现,本申请对此不作限制。例如第一编码网络可以由四个卷积层与三个激活层穿插级联构成。
示例性的,第一增益向量(GainVector)的维度数与第一编码网络的输出通道数相同。
示例性的,第四特征图可以如图4b中的特征图4,第一特征图可以如图4b中的特征图1。
根据第一方面,或者以上第一方面的任意一种实现方式,图像压缩系统还包括第二选择模块和N个第二增益向量,N个第二增益向量与N个第一增益向量一一对应;
第二选择模块,用于基于已编码次数,从N个第二增益向量中选取目标增益向量;以及基于目标增益向量对第三特征图进行缩放,以得到第五特征图;解码网络,具体用于对第五特征图进行特征变换,以得到重建图像。这样,能够恢复在编码过程中基于第一增益向量缩放后的特征图。
示例性的,第二增益向量的维度数与第一增益向量的维度数相同。一种可能的方式中,当基于第一增益向量对特征图进行放大时,基于第二增益向量对特征图进行缩小;当基于第一增益向量对特征图进行缩小时,基于第二增益向量对特征图进行放大。
一种可能的方式中,第二增益向量中每个维度的元素,是对应第一增益向量中对应维度的元素的倒数。应该理解的是,第二增益向量中每个维度的元素,可以不是对应第一增益向量中对应维度的元素的倒数;本申请对第二增益向量中每个维度的元素,与对应第一增益向量中对应维度的元素的数值关系不作限定。
这样,通过第一增益向量和第二增益向量对特征图的放缩,能够降低相邻两次编解码过程中,经过量化模块量化得到的量化值之间的差异;进而能够降低图像在相邻两次编解码后的损失幅度比;从而能够降低图像在多次编解码后的损失幅度比。
示例性的,第三特征图可以如图4b中的特征图3,第五特征图可以如图4b中的特征图5。
根据第一方面,或者以上第一方面的任意一种实现方式,当N等于2时,N个编码网络包括第二编码网络和第三编码网络,第二编码网络为非可逆神经网络,第三编码网络为按照第一预设方向映射的可逆神经网络,解码网络为按照第二预设方向映射的可逆神经网络。
示例性的,可逆神经网络可以是指既可以用于编码,又可以用于解码的网络。非可逆神经网络可以是指仅可以用于编码或解码的网络;其中,第二编码网络是仅可以用于编码的非可逆神经网络。
示例性的,第一预设方向可以是指以待编码图像为输入,以特征图为输出的方向;第二预测方式可以是指以特征图为输入,以重建图像为输出的方向。或者可以说,可逆神经网络可以包括R(R为大于1的整数)个网络层,第一预设方向可以是指以第1个网络层为输入层,以第R个网络层为输出层的方向;第二预设方向可以是指以第R个网络层为输入层,以第1个网络层为输出层的方向。
后续,可以选用第二编码网络进行首次编解码,以及选用第三编码网络进行后续的多次编码。
由于可逆神经网络中编码与解码共享网络参数,会使得可逆神经网络约束较多,导致可逆神经网络的表达能力低于非可逆神经网络;因此在同等图像质量的前提下,基于可逆神经网络编码产生的码流的码率,大于基于非可逆神经网络编码产生的码流的码率;也就是说,基于可逆神经网络进行编解码的率失真损失,大于基于非可逆神经网络以及解码网络进行编解码的率失真损失。因此选用第二编码网络进行首次编解码,可以减少首次编解码的率失真损失,而首次编解码的率失真损失决定该图像在后续编解码中的率失真性能(其中,率失真损失越大,率失真性能越差)上限,进而可以提高图像在后续多次编解码后的率失真性能。
此外,可逆神经网络是可逆的,非可逆神经网络是不可逆的,相对于使用非可逆神经网络进行多次编解码而言,使用可逆神经网络进行多次编解码,图像的率失真性能下降的较慢,因此使用第三编码网络进行后续多次编解码,能够减缓图像在多次编解码后的率失真性能的下降速度,从而能够有效降低图像在多次编解码后的损失幅度比。
示例性的,率失真损失是指图像经过编码过程和解码过程之后的损失,包括码率损失和图像失真损失。编码损失是指图像经过编码网络的特征变换之后的损失。编码网络的编码损失,影响着图像的率失真损失;其中,可以采用率失真损失来衡量编码损失。
示例性的,第二编码网络可使用现有的任意神经网络来实现,本申请对此不作限制。例如,第二编码网络可以由四个卷积层与三个激活层穿插级联构成。
示例性的,可逆神经网络可以包括4个块(Block)、平均(Average)层和复制(Repeat)层。示例性的,每个Block可以包括3个层:像素置换层(PixelShuffling层,用于将空间信息转移到通道上)、可逆卷积层(InvertibleConv层,用于卷积)和耦合层(CouplingLayers层,用于元素的重新排列)。示例性的,Average层,用于通道平均;Repeat层,用于通道复制。其中,Block1的PixelShuffling层,可以是指可逆神经网络的第1个网络层;Average层和Repeat层是可以是指可逆神经网络的第R个网络层。
需要说明的是,当可逆神经网络按照第一预设方向映射时,即Block1的PixelShuffling层为输入层,Average层为输出层时,可逆神经网络为第三编码网络;当可逆神经网络按照第二预设方向映射时,即Block1的PixelShuffling层为输出层,Repeat层为输入层时,可逆神经网络为解码网络。
根据第一方面,或者以上第一方面的任意一种实现方式,解码网络与N个编码网络是联合训练得到的,联合训练包括对N个编码网络和1个解码网络进行M个批次;其中,一个批次训练是基于第i个编码网络对应的损失权重系数,对第i个编码网络和解码网络进行的训练,N个编码网络中每个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络,M为大于N的正整数,i为1~N之间的整数。这样,基于不同的损失权重系数,对N个编码网络进行训练,可以得到编码损失不同的N个编码网络。
第二方面,本申请实施例提供一种编码方法,该方法包括:首先,获取待编码图像,其中,待编码图像为未经过编码的图像或重建图像;以及获取待编码图像的已编码次数;接着,基于待编码图像的已编码次数,从N个编码网络中选取目标编码网络,N为大于1的整数;随后,将待编码图像输入至目标编码网络,以得到目标编码网络输出的第一特征图;之后,对第一特征图进行量化,以得到第二特征图;以及对第二特征图进行熵编码,以得到码流。之后,可以由解码端基于解码网络对码流进行解码。其中,解码网络与N个编码网络是联合训练得到的,N个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络;训练后,解码网络就能够很好的兼容编码损失不同的N个编码网络,相对于现有技术对应单编码网络的解码网络而言,本申请的解码网络重建能力更高。这样,在对待编码图像进行一次编码时,基于N个编码网络中的一个编码网络对待编码图像编码后,再基于重建能力比现有技术的解码网络的重建能力高的解码网络解码,能够降低待编码图像在本次编解码后与上一次编解码后的损失幅度比;进而,能够有效降低图像在多次编解码后的损失幅度比。
示例性的,当图像进行了一次编码和一次解码后,其已编码次数为1。
根据第二方面,基于待编码图像的已编码次数,从N个编码网络中选取目标编码网络,包括:获取预设网络选取条件;基于待编码图像的已编码次数和预设网络选取条件,从N个编码网络中选取目标编码网络。
示例性的,预设网络选取条件可以按照需求设置,具体可以根据N个编码网络的网络结构设置,本申请对此不作限制。
示例性的,可以从N个编码网络中选取一个编码网络,作为目标编码网络。
根据第二方面,或者以上第二方面的任意一种实现方式,预设网络选取条件包括:当已编码次数为0时,选取压缩码率与目标压缩码率的差值最小的编码网络;其中,压缩码率与编码损失相关。
示例性的,针对任意一个编码网络,该编码网络的压缩码率与该编码网络的编码损失负相关,即该编码网络的编码损失越大时,该编码网络的压缩码率越小;该编码网络的编码损失越小时,该编码网络的压缩码率越大。
也就是说,本申请对待编码图像进行首次编码时,基于压缩码率与目标压缩码率最接近的编码网络进行编码;后续基于重建能力比现有技术解码网络高的解码网络进行解码,能够保证在同等码率(现有技术单编码网络的场景中,单编码网络的压缩码率就是目标压缩码率;也就是说本申请首次编码对应的压缩码率与现有技术首次编码对应的压缩码率相近或相同)的前提下,图像失真小(此时,图像的率失真损失也小)。而首次编解码的率失真损失决定该图像在后续编解码中的率失真性能上限,进而还可以进一步提高后续图像在多次编解码的率失真性能。
根据第二方面,或者以上第二方面的任意一种实现方式,预设网络选取条件包括:当已编码次数不为0时,选取编码损失小于历史编码损失的编码网络,历史编码损失是指待编码图像上一次编码所选取的编码网络的编码损失。也就是说,在后续多次压缩过程中,每次都选择比上一次编码损失小的编码网络,这样,能够有效降低图像在多次编解码后的损失幅度比。
根据第二方面,或者以上第二方面的任意一种实现方式,N个编码网络共用第一编码网络;N个编码网络中每个编码网络均由第一编码网络和第一增益向量构成,N个编码网络中每个编码网络的第一增益向量不同;将待编码图像输入至目标编码网络,以得到目标编码网络输出的第一特征图,包括:将待编码图像输入至第一编码网络,以得到第四特征图;基于目标编码网络的第一增益向量对第四特征图进行缩放,以得到第一特征图。
根据第二方面,或者以上第二方面的任意一种实现方式,当N等于2时,N个编码网络包括第二编码网络和第三编码网络,第二编码网络为非可逆神经网络,第三编码网络为按照第一预设方向映射的可逆神经网络;预设网络选取条件包括:当已编码次数为0时,选取第二编码网络;当已编码次数不为0时,选取第三编码网络。
由于可逆神经网络中编码与解码共享网络参数,会使得可逆神经网络约束较多,导致可逆神经网络的表达能力低于非可逆神经网络;因此在同等图像质量的前提下,基于可逆神经网络编码产生的码流的码率,大于基于非可逆神经网络编码产生的码流的码率;也就是说,基于可逆神经网络进行编解码的率失真损失,大于基于非可逆神经网络以及解码网络进行编解码的率失真损失。因此选用第二编码网络进行首次编解码,可以减少首次编解码的率失真损失,而首次编解码的率失真损失决定该图像在后续编解码中的率失真性能上限,进而可以提高图像在后续多次编解码后的率失真性能。
此外,可逆神经网络是可逆的,非可逆神经网络是不可逆的,相对于使用非可逆神经网络进行多次编解码而言,使用可逆神经网络进行多次编解码,图像的率失真性能下降的较慢,因此使用第三编码网络进行后续多次编解码,能够减缓图像在多次编解码后的率失真性能的下降速度,从而能够有效降低图像在多次编解码后的损失幅度比。
根据第二方面,或者以上第二方面的任意一种实现方式,该方法还包括:将已编码次数封装至码流中。
示例性的,在码流中,可以采用已有的语法元素来表示已编码次数,也可以采用新的语法元素来表示已编码次数,本申请对此不作限制。
第二方面以及第二方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第二方面以及第二方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第三方面,本申请实施例提供一种解码方法,该方法包括:首先,获取码流,码流由编码端基于N个编码网络中的目标编码网络对待编码图像进行编码得到的,N为大于1的整数;接着,对码流进行熵解码,以得到第三特征图;之后,将第三特征图输入至解码网络,以得到解码网络输出的重建图像。其中,解码网络与N个编码网络是联合训练得到的,N个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络;训练后,解码网络就能够很好的兼容编码损失不同的N个编码网络,相对于现有技术对应单编码网络的解码网络而言,本申请的解码网络重建能力更高。从而基于该解码网络进行解码,能够有效降低图像在多次编解码后的损失幅度比。
根据第三方面,在得到解码网络输出的重建图像之后,该方法还包括:更新熵解码所得到的已编码次数。这样,在下一次编码过程中,能够选取匹配的编码网络。
示例性的,更新熵解码所得到的已编码次数,可以是指将熵解码所得到的已编码次数加1。
根据第三方面,或者以上第三方面的任意一种实现方式,该方法还包括:根据熵解码所得到的已编码次数,从N个第二增益向量中选取目标增益向量;基于目标增益向量对第三特征图进行缩放,以得到第五特征图;将第三特征图输入至解码网络,以得到解码网络输出的重建图像,包括:将第五特征图输入至解码网络,以得到解码网络输出的重建图像。这样,能够选取出与编码侧的第一增益向量对应的第二增益向量,来对编码过程中缩放后的特征图进行恢复。
这样,通过第一增益向量和第二增益向量对特征图的放缩,能够降低相邻两次编解码过程中,经过量化模块量化得到的量化值之间的差异;进而能够降低图像在相邻两次编解码后损失幅度比;从而能够降低图像在多次编解码后的损失幅度比。
第四方面,本申请实施例提供一种预设网络训练,该预设网络包括N个编码网络和1个解码网络,N为大于1的整数,该方法包括:首先,获取训练图像;接着,基于训练图像对预设网络进行M个批次训练,M为大于N的整数;其中,针对预设网络的进行一个批次训练包括:基于训练图像、重建图像和第i个编码网络对应的损失权重系数,确定率失真损失;其中,重建图像是基于第i个编码网络对训练图像进行编码后再基于解码网络对编码结果进行解码得到的;基于率失真损失,对第i个编码网络和解码网络进行训练。其中,N个编码网络中每个编码网络对应的损失权重系数不同,不同损失权重系数可以用于训练出编码损失不同的编码网络;因此完成对预设网络的M个批次训练后,N个编码网络的的编码损失也不同。
需要说明的是,N个编码网络是共用同一个解码网络的,在对预设网络进行一个批次训练的过程中,前向计算的过程(也就是基于训练图像得到重建图像的过程),解码网络的网络参数是经过在先H-1个批次训练所得到的网络参数(其中,H为1~M之间的整数(H的取值包括1和M);当前进行的是第H个批次训练);以及反向传播的过程中,调整的解码网络的网络参数,也是经过在先H-1个批次训练所得到的网络参数。对预设网络进行M个批次训练后,对于N个编码网络中的每一个编码网络,基于该编码网络对图像进行编码并基于解码网络对编码结果进行解码后,图像的率失真损失小于预设率失真损失。这样,训练后的解码网络就能够很好的兼容多种不同编码损失的编码网络,其重建能力相较于现有技术对应单编码网络的解码网络的重建能力高;进而后续基于包含该预设网络的图像压缩系统进行多次编解码,能够有效降低图像在多次编解码后的损失幅度比。
需要说明的是,每对预设网络进行一个批次训练过程中,可以从N个编码网络中,选取一个用于训练的编码网络,然后基于一个批次的训练图像,对选取出的编码网络和解码网络进行训练。为了便于说明,可以将从N个编码网络中选取出的用于训练的编码网络,称为第i个编码网络。i为1~N之间的整数(包括1和N)。
根据第四方面,基于训练图像、重建图像和第i个编码网络对应的损失权重系数,确定率失真损失,包括:获取基于第i个编码网络对训练图像进行编码对应的码率损失;基于训练图像和重建图像,确定图像失真损失;基于第i个编码网络对应的损失权重系数,对码率损失和图像失真损失进行加权计算,以得到率失真损失。这样,能够准确的计算出图像经过编解码后的率失真损失,进而可以提高预设网络的训练效率。
示例性的,每个编码网络对应的损失权重系数可以包括第一权重系数和第二权重系数,其中,第一权重系数与码率损失对应,第二权重系数与图像失真损失对应。
一种可能的方式中,N个编码网络对应的第一权重系数不同,且第二权重系数不同。
一种可能的方式中,N个编码网络对应的第一权重系数相同,且第二权重系数不同。
一种可能的方式中,N个编码网络对应的第一权重系数不同,且第二权重系数相同。例如,N个编码网络对应的第一权重系数均为数值不同的拉格朗日系数β,第二权重系数均为1。
第五方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第二方面或第二方面的任意可能的实现方式中的编码方法。
第五方面以及第五方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第五方面以及第五方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第六方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第三方面或第三方面的任意可能的实现方式中的解码方法。
第六方面以及第六方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第六方面以及第六方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第七方面,本申请实施例提供一种电子设备,包括:存储器和处理器,存储器与处理器耦合;存储器存储有程序指令,当程序指令由处理器执行时,使得电子设备执行第四方面或第四方面的任意可能的实现方式中的预设网络训练方法。
第七方面以及第七方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第七方面以及第七方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第八方面,本申请实施例提供一种图像处理装置,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第二方面或第二方面的任意可能的实现方式中的编码方法。
第八方面以及第八方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第八方面以及第八方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第九方面,本申请实施例提供一种图像处理装置,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第三方面或第三方面的任意可能的实现方式中的解码方法。
第九方面以及第九方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第九方面以及第九方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十方面,本申请实施例提供一种图像处理装置,包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行第四方面或第四方面的任意可能的实现方式中的预设网络训练方法。
第十方面以及第十方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第十方面以及第十方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十一方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第二方面或第二方面的任意可能的实现方式中的编码方法。
第十一方面以及第十一方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十一方面以及第十一方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十二方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第三方面或第三方面的任意可能的实现方式中的解码方法。
第十二方面以及第十二方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第十二方面以及第十二方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十三方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序运行在计算机或处理器上时,使得计算机或处理器执行第四方面或第四方面的任意可能的实现方式中的预设网络训练方法。
第十三方面以及第十三方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第十三方面以及第十三方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十四方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括软件程序,当软件程序被计算机或处理器执行时,使得计算机或处理器执行第二方面或第二方面的任意可能的实现方式中的编码方法。
第十四方面以及第十四方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十四方面以及第十四方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十五方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括软件程序,当软件程序被计算机或处理器执行时,使得计算机或处理器执行第三方面或第三方面的任意可能的实现方式中的解码方法。
第十五方面以及第十五方面的任意一种实现方式分别与第三方面以及第三方面的任意一种实现方式相对应。第十五方面以及第十五方面的任意一种实现方式所对应的技术效果可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十六方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括软件程序,当软件程序被计算机或处理器执行时,使得计算机或处理器执行第四方面或第四方面的任意可能的实现方式中的预设网络训练方法。
第十六方面以及第十六方面的任意一种实现方式分别与第四方面以及第四方面的任意一种实现方式相对应。第十六方面以及第十六方面的任意一种实现方式所对应的技术效果可参见上述第四方面以及第四方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十七方面,本申请实施例提供一种存储码流的装置,该装置包括:接收器和至少一个存储介质,接收器用于接收码流;至少一个存储介质用于存储码流;码流是根据第二方面以及第二方面的任意一种实现方式生成的。
第十七方面以及第十七方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十七方面以及第十七方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十八方面,本申请实施例提供一种传输码流的装置,该装置包括:发送器和至少一个存储介质,至少一个存储介质用于存储码流,码流是根据第二方面以及第二方面的任意一种实现方式生成的;发送器用于从存储介质中获取码流并将码流通过传输介质发送给端侧设备。
第十八方面以及第十八方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十八方面以及第十八方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第十九方面,本申请实施例提供一种分发码流的系统,该系统包括:至少一个存储介质,用于存储至少一个码流,至少一个码流是根据第二方面以及第二方面的任意一种实现方式生成的,流媒体设备,用于从至少一个存储介质中获取目标码流,并将目标码流发送给端侧设备,其中,流媒体设备包括内容服务器或内容分发服务器。
第十九方面以及第十九方面的任意一种实现方式分别与第二方面以及第二方面的任意一种实现方式相对应。第十九方面以及第十九方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第二十方面,本申请实施例提供一种图像处理方法,该方法包括:首先,获取待编码图像和待编码图像的已编码次数,其中,待编码图像为未经过编码的图像或重建图像;以及基于待编码图像的已编码次数,从N个编码网络中选取目标编码网络,N个编码网络的编码损失不同,N为大于1的整数;接着,将待编码图像输入至目标编码网络,以得到目标编码网络输出的第一特征图;之后,对第一特征图进行量化,以得到第二特征图;以及对第二特征图进行熵编码,以得到码流;然后,对码流进行熵解码,以得到第三特征图;随后,将第三特征图输入至解码网络,以得到解码网络输出的重建图像。
根据第二十方面,基于待编码图像的已编码次数,从N个编码网络中选取目标编码网络,包括:获取预设网络选取条件;基于待编码图像的已编码次数和预设网络选取条件,从N个编码网络中选取目标编码网络。
根据第二十方面,或者以上第二十方面的任意一种实现方式,预设网络选取条件包括:当已编码次数为0时,选取压缩码率与目标压缩码率的差值最小的编码网络;其中,压缩码率与编码损失相关。
根据第二十方面,或者以上第二十方面的任意一种实现方式,预设网络选取条件包括:当已编码次数不为0时,选取编码损失小于历史编码损失的编码网络,历史编码损失是指待编码图像上一次编码所选取的编码网络的编码损失。
根据第二十方面,或者以上第二十方面的任意一种实现方式,N个编码网络共用第一编码网络;N个编码网络中每个编码网络均由第一编码网络和第一增益向量构成,N个编码网络中每个编码网络的第一增益向量不同;将待编码图像输入至目标编码网络,以得到目标编码网络输出的第一特征图,包括:将待编码图像输入至第一编码网络,以得到第四特征图;基于目标编码网络的第一增益向量对第四特征图进行缩放,以得到第一特征图。
根据第二十方面,或者以上第二十方面的任意一种实现方式,当N等于2时,N个编码网络包括第二编码网络和第三编码网络,第二编码网络为非可逆神经网络,第三编码网络为按照第一预设方向映射的可逆神经网络,解码网络为按照第二预设方向映射的可逆神经网络;预设网络选取条件包括:当已编码次数为0时,选取第二编码网络;当已编码次数不为0时,选取第三编码网络。
根据第二十方面,或者以上第二十方面的任意一种实现方式,该方法还包括:将已编码次数封装至码流中。
根据第二十方面,或者以上第二十方面的任意一种实现方式,在得到解码网络输出的重建图像之后,该方法还包括:更新熵解码所得到的已编码次数。
根据第二十方面,或者以上第二十方面的任意一种实现方式,该方法还包括:根据熵解码所得到的已编码次数,从N个第二增益向量中选取目标增益向量,N个第二增益向量与N个第一增益向量一一对应;基于目标增益向量对第三特征图进行缩放,以得到第五特征图;将第三特征图输入至解码网络,以得到解码网络输出的重建图像,包括:将第五特征图输入至解码网络,以得到解码网络输出的重建图像。
根据第二十方面,或者以上第二十方面的任意一种实现方式,解码网络与N个编码网络是联合训练得到的,联合训练包括对N个编码网络和解码网络进行M个批次训练;其中,一个批次训练是基于第i个编码网络对应的损失权重系数,对第i个编码网络和解码网络进行的训练,N个编码网络中每个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络,M为大于N的正整数,i为1~N之间的整数。
第二十方面以及第二十方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应,或者分别与第二方面以及第二方面的任意一种实现方式相对应,或者分别与第三方面以及第三方面的任意一种实现方式相对应。第二十方面以及第二十方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,或者,可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,或者,可参见上述第三方面以及第三方面的任意一种实现方式所对应的技术效果,此处不再赘述。
附图说明
图1a为示例性示出的人工智能主体框架示意图;
图1b为示例性示出的应用场景示意图;
图1c为示例性示出的应用场景示意图;
图2a为示例性示出的图像压缩系统框架示意图;
图2b为示例性示出的预设网络训练过程示意图;
图3a为示例性示出的编码网络的网络结构示意图;
图3b为示例性示出的图像压缩系统框架示意图;
图4a为示例性示出的编码网络的网络结构示意图;
图4b为示例性示出的图像压缩系统框架示意图;
图5a为示例性示出的编码网络的网络结构示意图;
图5b为示例性示出的图像压缩系统框架示意图;
图6为示例性示出的编码过程示意图;
图7为示例性示出的解码过程示意图;
图8为示例性示出的编码过程示意图;
图9为示例性示出的解码过程示意图;
图10为示例性示出的编码过程示意图;
图11为示例性示出的解码过程示意图;
图12为示例性示出的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
图1a为示例性示出的人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人工智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(CPU、NPU、GPU、ASIC、FPGA等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别,材质贴图生成等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶、智能终端等。
本申请涉及的预设网络,可以用于实现机器学习,深度学习,搜索,推理,决策等。本申请提及的预设网络可以包括多种类型的神经网络,如深度神经网络(deep neuralnetworks,DNN)、卷积神经网络(convolutional neural networks,CNN)、循环神经网络(recurrent neural networks,RNN)、残差网络、采用transformer模型的神经网络或其他神经网络等,本申请对此不作限制。
示例性的,神经网络可以包括多个网络层,其中,神经网络中的每一网络层的工作可以用数学表达式来描述:从物理层面神经网络中的每一网络层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由/>完成,4的操作由+b完成,5的操作则由a来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,W是权重向量,该向量中的每一个值表示该网络层中的一个神经元的权重值。b是偏置向量,该向量中的每一个值表示该网络层中的一个神经元的偏置值。该向量W和向量b决定着上文的输入空间到输出空间的空间变换,即每一层的权重W控制着如何变换空间。
训练神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多网络层的向量W形成的权重矩阵和很多网络层的向量b形成的偏置矩阵;权重矩阵和偏置矩阵可以称为网络参数)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵和偏置矩阵。
示例性的,本申请可以应用于AI压缩场景,本申请的图像压缩系统可以是指AI压缩系统,基于图像压缩系统所实现的编解码方法和图像处理方法可以是指AI压缩算法;本申请的图像压缩系统可以用于多次编解码。
图1b为示例性示出的应用场景示意图。
图1b示出的是视频在多个电子设备之间转发以及显示的场景;例如,一种具体的应用场景可以是:用户1使用电子设备1拍摄了一段视频后,将该段视频分享给用户2;用户2使用电子设备2播放该段视频后,将该段视频转发给用户3;用户3使用电子设备3播放该段视频。其中,视频在多个电子设备之间转发以及显示的过程中,进行了多次编解码,具体过程可以如下:
参照图1b,示例性的,电子设备1的视频采集模块进行视频采集,采集到视频数据1后,可以将采集的视频数据1输出至视频编码模块;其中,视频数据1也就是未进行编解码的原始视频数据。接着,视频编码模块可以对视频数据1进行视频编码,得到码流1并将码流1输出至发送模块。随后,发送模块将码流1发送至电子设备2。
继续参照图1b,示例性的,电子设备2的接收模块接收到码流1后,可以将码流1输出至视频解码模块。接着,视频解码模块对码流1进行解码,得到视频数据2并将视频数据2输出至显示模块显示。然后,显示模块在显示视频数据2后,可以将视频数据2输出至视频编码模块;之后,视频编码模块可以对视频数据2进行视频编码,得到码流2并将码流2输出至发送模块。随后,发送模块将码流2发送至电子设备3。
继续参照图1b,示例性的,电子设备3的接收模块接收到码流2后,可以将码流2输出至视频解码模块。接着,视频解码模块对码流2进行解码,得到视频数据3并视频数据3输出至显示模块显示。
应该理解的是,图1b中的电子设备仅是本申请的一个示例,本申请的电子设备可以包括比图1b示出的更多或更少的模块,本申请对此不作限制。
应该理解的是,电子设备3还可以将视频数据3编码成码流后转发给电子设备4,由电子设备4进行解码播放,以此类推;本申请不限制对视频数据的转发次数,即不限制对视频数据的编解码次数。
图1c为示例性示出的应用场景示意图。图1c示出的是视频多次编辑的场景;在视频多次编辑的场景中,进行了多次编解码。
参照图1c,示例性的,可以采用视频编辑软件对视频数据1(未进行编解码的原始视频数据)进行视频编辑,得到视频数据2;接着,视频编辑软件可以将视频数据2进行视频编码后存储;其中,对视频数据2进行视频编码,可以得到码流1并存储码流1。
继续参照图1c,示例性的,当需要对视频数据2进行视频编辑时,可以对码流1进行视频解码,得到视频数据3;接着,可以采用视频编辑软件对视频数据3进行视频编辑,得到视频数据4。随后,视频编辑软件可以将视频数据4进行视频编码后存储;其中,对视频数据4进行视频编码,可以得到码流2并存储码流2。
继续参照图1c,示例性的,当需要对视频数据4进行视频编辑时,可以对码流2进行视频解码,得到视频数据5;接着,可以采用视频编辑软件对视频数据5进行视频编辑,得到视频数据6。随后,视频编辑软件可以将视频数据6进行视频编码后存储;其中,对视频数据6进行视频编码,可以得到码流3并存储码流3。
应该理解的是,还可以继续对解码码流3得到的视频数据进行视频编辑,然后对编辑后的视频数据进行视频编码后存储,以此类推;本申请不限制对视频数据的编辑次数,即不限制对视频数据的编解码次数。
应该理解的,图1b和图1c中的电子设备可以包括多种,包括但不限于:个人计算机、计算机工作站、智能手机、平板电脑、服务器、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
图2a为示例性示出的图像压缩系统的框架示意图。
参照图2a,示例性的,图像压缩系统包括:第一选择模块、N个编码网络、量化模块、熵编码模块、熵估计模块、熵解码模块和解码网络。
需要说明的是,熵编码模块的数量可以是Y(Y为正整数)。示例性的,Y可以等于1,这样,N个编码网络对应一个熵编码模块。示例性的,Y可以等于N,这样,N个编码网络与N个熵编码网络分别对应。示例性的,Y可以大于1且小于N,这样,N个编码网络中的一个或多个编码网络对应一个熵编码模块。
需要说明的是,熵解码模块的数量可以是Y(Y为正整数);也就是说,熵解码模块的数量和熵编码模块的数量相同,Y个熵解码模块与Y个熵编码模块一一对应。本申请以Y等于1为例进行说明。
应该理解的是,图2a仅是本申请的一个示例,本申请的图像压缩系统可以包括比图2a所示的更多或更少的模块/网络,本申请对此不作限制。
参照图2a,示例性的,N个编码网络可以分别为:编码网络G1、编码网络G2、......、编码网络G2、......、编码网络GN。其中,i为1~N之间的整数(包括1和N)。
示例性的,编码网络(包括编码网络G1~编码网络GN),可以用于对图像进行特征变换,将图像变化到另一空间;其输入是图像,输出是特征图。示例性的,编码网络可以是卷积神经网络。
示例性的,输入至编码网络的图像,可以是RAW(未加工)图像、RGB(Red GreenBlue,红绿蓝)图像和YUV(“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度、浓度(Chrominance、Chroma))图像中的任意一种,本申请对此不作限制。
示例性的,量化模块,可以用于进行量化处理。
示例性的,熵估计模块,可以用于熵估计,输出熵估计信息。
示例性的,熵编码模块,可以用于根据熵估计信息进行熵编码;其输入是特征图,输出的码流。
示例性的,熵编码是指编码过程中按熵原理不丢失任何信息的编码,熵编码包括多种,如香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)等,本申请对此不作限制。
示例性的,熵解码模块,可以用于根据熵估计信息进行熵解码;其输入是码流,输出是特征图。
示例性的,解码网络,可以用于对熵解码得到的特征图进行特征变换(与编码网络的特征变换过程相反);其输入是特征图,输出是重建图像。示例性的,解码网络可以是卷积神经网络。
示例性的,可以预先对N个编码网络和1个解码网络进行联合训练,以使该解码网络能够很好的兼容N个编码网络(即对于N个编码网络中的每一个编码网络,基于该编码网络对图像进行编码并基于解码网络对编码结果进行解码后,图像的率失真损失小于预设率失真损失。其中,预设率失真损失可以按照需求设置,本申请对此不作限制。)
以下在图2a示出的图像压缩系统框架的基础上,对预设网络(预设网络包括N个编码网络和1个解码网络,图像压缩系统包括预设网络)的训练过程进行说明。
图2b为示例性示出的预设网络训练过程示意图。图2b描述是以图2a为基础的预设网络的训练过程。
S201,获取训练图像。
一种可能的方式中,可以将图像采集模块采集的图像或从图像服务器下载的图像,作为训练图像。
一种可能的方式中,可以进行视频采集的视频数据或从视频服务器下载视频数据;接着,将采集的视频数据或下载的视频数据所包括的图像序列,作为训练图像。
示例性的,训练图像可以包括多张,本申请不限制获取的训练的图像的数量以及获取方式。
S202,基于训练图像对预设网络进行M个批次训练。
示例性的,M为大于N的整数。其中,对预设网络进行M个批次训练后,对于N个编码网络中的每一个编码网络,基于该编码网络对图像进行编码并基于解码网络对编码结果进行解码后,图像的率失真损失小于预设率失真损失。
示例性的,可以将训练图像划分为M个批次(batch),其中,一个批次的训练图像可以包括一张或多张图像。接着,采用一个批次的训练图像,对预设网络进行一个批次训练。
示例性的,每对预设网络进行一个批次训练过程中,可以将一个批次的训练图像输入至第一选择模块,由第一选择模块从N个编码网络中,选取一个用于训练的编码网络;然后基于这一个批次的训练图像,对选取出的编码网络和解码网络进行训练。
示例性的,第一选择模块可以按照预设训练规则,从N个编码网络中,选取一个用于训练的编码网络。其中,预设训练规则可以按照需求设置,例如,轮流选取;又例如,随机选取;等等,本申请对此不作限制。
为了便于说明,可以将从N个编码网络中选取出的用于训练的编码网络,称为第i(i为1~N之间的整数,包括1和N)个编码网络(如图2a中的编码网络Gi)。以下以对第i个编码网络(即编码网络Gi)和解码网络的训练,来对针对预设网络进行一个批次训练的过程进行说明,可以参照S2021~S2022:
S2021,基于训练图像、重建图像和第i个编码网络对应的损失权重系数,确定率失真损失;其中,重建图像是基于第i个编码网络对训练图像进行编码后再基于解码网络对编码结果进行解码得到的。
以下基于一个批次的训练图像中一张训练图像为例进行说明。
再次参照图2a,示例性的,第一选择模块可以将训练图像(也就是图2a中的图像1)输入至编码网络Gi,由编码网络Gi对训练图像进行特征变换,输出特征图1至量化模块和熵估计模块。接着,量化模块可以对特征图1进行量化,得到特征图2;以及熵估计模块可以进行熵估计,输出特征图1包含的特征点的熵估计信息至熵编码模块和熵解码模块(需要说明的是,特征图1和特征图2的尺寸相同,特征图2中位于(x,y)位置特征点的特征值,是特征图1中位于(x,y)位置特征点的特征值的量化结果;因此特征图1包含的特征点的熵估计信息,也就是特征图2包含的特征点的熵估计信息)。示例性的,量化模块可以将特征图2输入至熵编码模块,由熵编码模块根据特征图1包含的特征点的熵估计信息,对特征图2包含的特征点进行熵编码,可以得到码流;然后将码流输出至熵解码模块。接着,熵解码模块可以根据特征图1包含的所有特征点的熵估计信息,对码流进行熵解码,输出特征图3至解码网络(解码网络为经过在先H-1个批次训练的解码网络,其中,H为1~M之间的整数(H的取值包括1和M);当前进行的是第H个批次训练)。之后,解码网络可以对特征图3进行特征变换,得到图像2(也就是重建图像)。
应该理解的是,也可以采用量化模块输出的特征图2,替换特征图1输入至熵估计模块,由熵估计模块确定特征图2包含的特征点的熵估计信息,并将特征图2包含的特征点的熵估计信息输出至熵编码模块和熵解码模块;本申请对此不作限制。
示例性的,可以预先针对N个编码网络中每个编码网络,设置对应的损失权重系数;其中,N个编码网络中每个编码网络对应的损失权重系数不同;其中,不同损失权重系数可以用于训练出编码损失不同的编码网络。进而,在得到解码网络输出的重建图像后,可以基于训练图像、重建图像和第i个编码网络对应的损失权重系数,确定率失真损失。
一种可能的方式中,可以获取基于第i个编码网络对训练图像进行编码对应的码率损失;以及基于训练图像和重建图像,确定图像失真损失;接着,基于第i个编码网络对应的损失权重系数,对码率损失和图像失真损失进行加权计算,以得到率失真损失。
示例性的,可以由熵估计模块在得到熵估计信息后,基于熵估计信息确定码率损失,可以采用Loss1表示。
示例性的,Loss1的计算公式可以如下公式(1)所示:
其中,Si1为特征图2(或特征图1)中第i1个特征点的熵估计信息,H1为特征图2(或特征图1)的总特征点数。H1为正整数,i1为1~H1之间的整数(包括1和H1)。
示例性的,熵估计模块可以是概率估计网络,概率估计网络可以使用基于深度学习的卷积神经网络等,本申请不作限定。示例性的,概率估计网络可以包括多种,例如单高斯模型(Gaussiansinglemodel,GSM)或者混合高斯模型(Gaussianmixturemodel,GMM),对应的熵估计信息(也可以称为是概率分布信息)包括均值μ和方差σ等。还可以是拉普拉斯分布模型(Laplacedistribution),此时对应的熵估计信息(也可以称为是概率分布信息)包括位置参数μ和尺度参数b。本申请以高斯模型为例,对于特征图2或特征图1,其概率分布函数如公式2所示。
其中,为特征图2(或特征图1)。
示例性的,可以基于训练图像和重建图像,计算重建图像相对于训练图像的图像失真度,可以得到图像失真损失,可以采用Loss2表示。
一种可能的方式中,Loss2的计算公式可以如下公式(3)所示:
其中,H2为重建图像或训练图像包含的像素点数;Y2i是指重建图像中第i2个位置的像素(也就是重建图像中第i2个位置像素点的像素值);是指训练图像中第i2个位置的像素(也就是训练图像中第i2个位置像素点的像素值);H2为正整数,i2为1~H2之间的整数(包括1和H2)。
一种可能的方式中,Loss2也可以是训练图像和重建图像之间的峰值信噪比(PeakSignaltoNoiseRatio,PSNR)。
应该理解的是,本申请对Loss2的计算方式不作限定。
示例性的,每个编码网络对应的损失权重系数可以包括第一权重系数和第二权重系数,其中,第一权重系数与码率损失对应,第二权重系数与图像失真损失对应。
一种可能的方式中,N个编码网络对应的第一权重系数不同,且第二权重系数不同。
一种可能的方式中,N个编码网络对应的第一权重系数相同,且第二权重系数不同。
一种可能的方式中,N个编码网络对应的第一权重系数不同,且第二权重系数相同。例如,N个编码网络对应的第一权重系数均为数值不同的拉格朗日系数β,第二权重系数为1。
例如,可以参照如下公式(4),基于码率损失Loss1和图像失真损失Loss2,来计算损失:
Li=β*Loss1+Loss2(4)
其中,Li是指第i批次训练对应的损失。
S2022,基于率失真损失,对第i个编码网络和解码网络进行训练。
示例性的,在确定率失真损失之后,可以基于率失真损失进行反向传播,来对第i个编码网络和经过在先H-1个批次训练的解码网络的网络参数进行调整,实现对第i个编码网络和经过在先H-1个批次训练的解码网络进行训练。
应该理解的是,N个编码网络对应的损失权重系数不同,针对每个编码网络和解码网络训练过程中,确定的率失真损失也不同;率失真损失与编码网络的编码损失相关联(例如,训练过程中率失真损失越大,训练得到的编码网络的编码损失也就越大);因此完成N个编码网络的训练后(也就是完成M个批次的训练后),这N个编码网络的编码损失也不同。
示例性的,编码网络对应的β越大,损失Li就越大,编码网络对应的编码损失也越大。
需要说明的是,N个编码网络是共用同一个解码网络的,在对预设网络进行一批次训练的过程中,前向计算的过程(也就是上述基于训练图像得到重建图像的过程),解码网络的网络参数是经过在先H-1个批次训练所得到的网络参数;以及反向传播的过程中,调整的解码网络的网络参数,也是经过在先H-1个批次训练所得到的网络参数。
这样,对预设网络进行M个批次训练后,对于N个编码网络中的每一个编码网络,基于该编码网络对图像进行编码并基于解码网络对编码结果进行解码后,图像的率失真损失小于预设率失真损失;也就是说,训练后的解码网络能够很好的兼容多个编码损失不同的编码网络;因此其重建能力相较于现有技术对应单编码网络的解码网络的重建能力高。从而,后续基于包含该预设网络的图像压缩系统进行多次编解码,能够有效降低图像在多次编解码后的损失幅度比。
一种可能的方式中,N个编码网络的网络结构相同,但训练后的N个编码网络的网络参数不同。以下以一个编码网络的结构为例进行说明。
图3a为示例性示出的编码网络的网络结构示意图。应该理解的是,图3a仅是本申请的一个示例,本申请的编码网络可使用现有的任意神经网络来实现,本申请对此不作限制。
示例性的,编码网络可以由四个卷积层与三个激活层穿插级联构成。参照图3a,示例性的,激活层可以是广义分裂标准化层(Generalized Divisive Normalization,GDN);图3a中“Conv”是卷积的意思,“192×5×5/2↓”表示卷积层的卷积核大小均为5x5,输出特征图的通道数为192,且每个卷积层宽高均进行2倍下采样(即卷积步长为2)。
应该理解的是,图3a中卷积层的参数仅是本申请的一个示例,本申请不限制编码网络中卷积层的卷积核大小、通道数、下采样倍数、下采样次数等;此外,本申请也不限制编码网络中的卷积层数、激活层数等等。
需要说明的是,在图3a实施例的场景中,训练后的N个编码网络的网络参数不同可以是指:训练后的N个编码网络的部分/全部网络参数不同,例如,卷积层的卷积核的权重以及偏置不同,和/或,激活层的参数不同等等。
图3b为示例性示出的图像压缩系统框架示意图。其中,图3b是在图3a和图2a的基础上,示出的图像压缩系统框架。
示例性的,图3b中N个编码网络(编码网络G1、编码网络G2、......、编码网络Gi、......、编码网络GN)的网络结构相同,网络参数不同。
这样,N个编码网络的结构都相同,能够节省设计编码网络的成本。
图4a为示例性示出的编码网络的网络结构示意图。在图4a中,N个编码网络共用第一编码网络,N个编码网络中每个编码网络均由该第一编码网络和一个第一增益向量(GainVector)构成,N个编码网络中每个编码网络的第一增益向量不同。示例性的,每个第一增益向量的维度数与第一编码网络的输出通道数相同。
参照图4a,示例性的,N个第一增益向量分别为:Gain Vector_A1、Gain Vector_A2、......、Gain Vector_Ai、......、Gain Vector_AN。其中,Gain Vector_A1、GainVector_A2、......、Gain Vector_Ai、......、Gain Vector_AN,这N个第一增益向量不同,但维度数相同。
继续参照图4a,示例性的,第一编码网络和Gain Vector_A1,构成编码网络G1,第一编码网络和Gain Vector_A2,构成编码网络G2;......;第一编码网络和Gain Vector_Ai,构成编码网络Gi;......;第一编码网络和Gain Vector_AN,构成编码网络GN。
示例性的,图4a实施例中第一编码网络的网络结构可以参照图3a,当然,也可以是其他的神经网络,本申请对此不作限制。
应该理解的是,在图4a实施例的场景中,训练后的N个编码网络的网络参数不同可以是指:训练后的N个编码网络中部分网络参数不同,部分网络参数相同。
示例性的,当编码网络为图4a所示的结构的情况下,预设网络还可以包括N个第二增益向量,N个第二增益向量与第一增益向量一一对应。一种可能的方式中,当基于第一增益向量对特征图进行放大时,基于第二增益向量对特征图进行缩小;当基于第一增益向量对特征图进行缩小时,基于第二增益向量对特征图进行放大。
一种可能的方式中,第二增益向量中每个维度的元素,是对应第一增益向量中对应维度元素的倒数。应该理解的是,第二增益向量中每个维度的元素,可以不是第一增益向量中对应维度的元素的倒数;本申请对第二增益向量中每个维度的元素,与第一增益向量中对应维度的元素的数值关系不作限定。
图4b为示例性示出的图像压缩系统框架示意图。其中,图4b是在图4a和图2a的基础上,示出的图像压缩系统框架。其中,在图4b中,图像压缩系统还可以包括第二选择模块。
在图4b中,N个第二增益向量分别为:GainVector_B1、GainVector_B2、......、Gain Vector_Bi、......、GainVector_BN。其中,GainVector_B1、GainVector_B2、......、Gain Vector_Bi、......、GainVector_BN,这N个第二增益向量不同,但是维度数相同。
参照图4b,示例性的,在预设网络的一个批次训练过程中,确定重建图像的过程可以如下:第一选择模块可以将训练图像(即图4b中的图像1)输入至第一编码网络,由第一编码网络对训练图像进行变换,输出特征图4;接着,基于第一选择模块选取的Gain Vector_Ai对特征图4进行逐通道缩放,得到特征图1并将特征图1输出至量化模块和熵估计模块。其中,第一编码网络包括多个输出通道,对应的,可以得到多个通道的特征图4,GainVector_Ai的维度数与第一编码网络的输出通道数相同;进而,针对第k(k为1~P之间的整数,P为第一编码网络的输出通道数)个通道,采用GainVector_Ai中第k个维度的元素,与第k个通道的特征图4相乘,可以得到第k个通道的特征图1。按照这种方式,可以得到P个通道的特征图1。接着,量化模块可以对特征图1(包括P个通道)进行量化,得到特征图2(也包括P个通道);以及熵估计模块进行熵估计,输出特征图1包含的特征点的熵估计信息至熵编码模块和熵解码模块。示例性的,量化模块可以将特征图2输出至熵编码模块,由熵编码模块根据特征图1包含的特征点的熵估计信息,对特征图2包含的特征点进行熵编码,可以得到码流;然后将码流输出至熵解码模块。接着,熵解码模块可以根据特征图1包含的所有特征点的熵估计信息,对码流进行熵解码,得到特征图3并将特征图3输出至第二选择模块。之后,第二选择模块可以从N个第二增益向量中选取一个用于训练的第二增益向量(GainVector_Bi)。示例性的,第二选择模块可以根据预设训练规则,从N个第二增益向量中选取一个用于训练的第二增益向量(如GainVector_Bi)。随后,第二选择模块可以基于GainVector_Bi对特征图3进行缩放(与上述基于GainVector_Ai对特征图4进行缩放的过程类似,在此不再赘述),以得到特征图5并将特征图5输出至解码网络(解码网络为经过在先H-1个批次训练的解码网络)。之后,解码网络可以对特征图5进行变换,以得到重建图像(即图4b中的图像2)。
这样,N个编码网络的结构都相同,能够节省设计编码网络的成本。此外,相对于N个编码网络的网络参数不同但结构相同的情况,可以节省编码网络的存储内存。
一种可能的方式中,N个编码网络的网络结构不同。
一种可能的方式中,N=2,此时,N个编码网络包括第二编码网络和第三编码网络,第二编码网络为非可逆编码网络,第三编码网络为按照第一预设方向映射的可逆神经网络。
图5a为示例性示出的编码网络的结构示意图。
参照图5a(1),图5a(1)为第二编码网络;第二编码网络的网络结构的描述可以参照图3a中的描述,在此不再赘述。应该理解的是,第二编码网络也可以采用其他神经网络,本申请对此不作限制。
参照图5a(2),图5a(2)为可逆神经网络。其中,可逆神经网络可以包括4个块(Block)(如:Block1、Block2、Block3和Block4)、平均(Average)层和复制(Repeat)层。示例性的,每个Block可以包括3个层:像素置换层(PixelShuffling层,用于将空间信息转移到通道上)、可逆卷积层(InvertibleConv层,用于卷积)和耦合层(Coupling Layers层,用于元素的重新排列)。示例性的,Average层,用于通道平均;Repeat层,用于通道复制。其中,Block1的PixelShuffling层,可以称为可逆神经网络的第1个网络层;Average层和Repeat层是可以称为可逆神经网络的第R个网络层。
需要说明的是,图5a(2)的可逆神经网络既是第三编码网络,也是解码网络;当可逆神经网络按照第一预设方向映射(第一预测方向可以是指以待编码图像为输入,以特征图为输出的方向,如图5a(2)的可逆神经网络中右侧箭头的方向)时,即以可逆神经网络的第1个网络层(即Block1的PixelShuffling层)为输入层,以可逆神经网络的第R个网络层(即Average层)为输出层时,可逆神经网络为第三编码网络。当可逆神经网络按照第二预设方向映射(第二预测方式是指以特征图为输入,以重建图像为输出的方向,如图5a(2)的可逆神经网络中左侧箭头的方向)时,即以可逆神经网络的第1个网络层(即Block1的PixelShuffling层)为输出层,以可逆神经网络的第R个网络层(即Repeat层)为输入层时,可逆神经网络为解码网络。
应该理解的是,图5a的可逆神经网络仅是一个示例,本申请的可逆神经网络可以包括比图5a示出的更多或更少的Block;每个Block可以包括比图5a示出的更多或更少的层数,或者,每个Block可以包括与图5a示出的不同的网络层等等,本申请对此不作限制。
图5b为示例性示出的图像压缩系统框架示意图。其中,图5b是在图5a和图2a的基础上,示出的图像压缩系统框架。
参照图5b,示例性的,当对第二编码网络和解码网络进行一个批次训练时,该批次训练过程可以如下:可以将训练图像(即图5b中的图像1)输入至第二编码网络,由第二编码网络对训练图像进行变换,输出特征图1至量化模块和熵估计模块。接着,量化模块可以对特征图1进行量化,得到特征图2;以及熵估计模块进行熵估计,输出特征图1包含的特征点的熵估计信息至熵编码模块和熵解码模块。示例性的,量化模块可以将特征图2输出至熵编码模块,由熵编码模块根据特征图1包含的特征点的熵估计信息,对特征图2包含的特征点进行熵编码,可以得到码流;然后将码流输出至熵解码模块。接着,熵解码模块可以根据特征图1包含的所有特征点的熵估计信息,对码流进行熵解码,输出特征图3至按照第二预测方向映射的可逆神经网络(即解码网络),即将特征图3输出至可逆神经网络的Repeat层,依次经过Repeat层、Block4、Block3、Block2和Block1的处理后,由Block1的PixelShuffling层输出重建图像(即图5b中的图像2)。
参照图5b,示例性的,当对第三编码网络和解码网络进行一个批次训练时,该批次训练过程可以如下:可以将训练图像(即图5b中的图像1)输入至按照第一预测方向映射的可逆神经网络(即第三编码网络),即将训练图像输入至可逆神经网络的Block1的PixelShuffling层,依次经过Block1、Block2、Block3、Block4和Average层的处理,由Average层输出特征图1至量化模块和熵估计模块。接着,量化模块可以对特征图1进行量化,得到特征图2;以及熵估计模块进行熵估计,输出特征图1包含的特征点的熵估计信息至熵编码模块和熵解码模块。示例性的,量化模块可以将特征图2输出至熵编码模块,由熵编码模块根据特征图1包含的特征点的熵估计信息,对特征图2包含的特征点进行熵编码,可以得到码流;然后将码流输入至熵解码模块。接着,熵解码模块可以根据特征图1包含的所有特征点的熵估计信息,对码流进行熵解码,输出特征图3至按照第二预测方向映射的可逆神经网络(即解码网络),即将特征图3输出至可逆神经网络的Repeat层,依次经过Repeat层、Block4、Block3、Block2和Block1的处理后,由Block1的PixelShuffling层输出重建图像(即图5b中的图像2)。
以下对基于图像压缩系统进行编解码的过程进行说明。
图6为示例性示出的编码过程示意图。其中,图6是以图2a实施例中图像压缩系统框架为基础的编码过程。
S601,获取待编码图像;其中,待编码图像为未经过编码的图像或重建图像。
示例性的,待编码图像可以是RAW图像、RGB图像和YUV图像中的任意一种,本申请对此不作限制。
示例性的,待编码图像可以是未经过编解码的图像(也就是原始图像),也可以是已编码一次或多次的图像(也就是重建图像),本申请对此不作限制。其中,对图像进行一次编码和一次解码后,该图像的已编码次数为1。
S602,获取待编码图像的已编码次数。
一种可能的方式中,待编码图像的图像名称中,可以设置有用于标识待编码图像的已编码次数的字段;进而,可以从待编码图像的图像名称中,获取待编码图像的已编码次数。
一种可能的方式中,待编码图像的已编码次数,可以存储在与待编码图像关联的文件中,进而可以获取与待编码图像关联的文件,从与待编码图像关联的文件中获取待编码图像的已编码次数。
S603,基于待编码图像的已编码次数,从N个编码网络中选取目标编码网络。
示例性的,预设网络包括了N个编码网络,每一次编码可以从N个编码网络中选取一个编码网络,作为目标编码网络;然后基于目标编码网络对待编码图像进行编码。
示例性的,由于这N个编码网络的编码损失不同,因此为了满足图像失真需求和码率需求,可以根据待编码图像的已编码次数,来从N个编码网络中选取目标编码网络。
示例性的,可以预先设置预设网络选取条件,这样,可以基于待编码图像的已编码次数和预设网络选取条件,从N个编码网络中选取目标编码网络。其中,针对图3a、图4a和图5a的不同场景,可以分别设置对应的预设网络选取条件;具体在后续说明。
示例性的,在编码过程中,可以将待编码图像和待编码图像的已编码次数输入至第一选择模块中,以及由第一选择模块获取预设网络选取条件;接着,第一选择模块可以基于待编码图像的已编码次数和预设网络选取条件,从N个编码网络中选取目标编码网络。
需要说明的是,第一选择模块在预设网络的训练过程和实际应用编码过程中,从N个编码网络中选取一个编码网络所依据的条件不同;第一选择模块在预设网络的训练过程中,依据预设训练规则从N个编码网络中选取一个编码网络,在实际应用编码过程中依据预设网络选取条件从N个编码网络中选取一个编码网络。
示例性的,上述训练得到的N个编码网络中每个编码网络对应一组网络参数;进而,可以得到N组网络参数。示例性的,对于N个编码网络的网络结构相同,但网络参数不同的情况,图像压缩系统包括N个编码网络,还可以理解为仅包括与N个编码网络中任一编码网络结构相同的1个编码网络,该编码网络对应N组网络参数。这种情况下,S603还可以理解成:基于待编码图像的已编码次数,从N组网络参数中选取目标网络参数;将该编码网络的网络参数配置为目标网络参数,进而可以得到目标编码网络。
S604,将待编码图像输入至目标编码网络,以得到目标编码网络输出的第一特征图。
示例性的,待选取目标编码网络后,第一选择模块可以将待编码图像输入至目标编码网络,以得到目标编码网络输出的第一特征图。参照图2a,待编码图像可以是指图像1,目标编码网络可以是指编码网络Gi,第一特征图也就是图2a中的特征图1。
S605,对第一特征图进行量化,以得到第二特征图。
S606,对第二特征图进行熵编码,以得到码流。
接着,编码网络Gi可以将第一特征图输出至量化模块和熵估计模块。之后,量化模块可以对第一特征图进行量化,得到第二特征图(即图2a中的特征图2);以及熵估计模块进行熵估计,输出第一特征图包含的特征点的熵估计信息至熵编码模块。示例性的,量化模块可以将第二特征图输出至熵编码模块,由熵编码模块根据第一特征图包含的特征点的熵估计信息,对第二特征图包含的特征点进行熵编码,可以得到码流。
图7为示例性示出的解码过程示意图。图7是以图2a实施例中图像压缩系统框架为基础的解码过程,与图6的编码过程对应。
S701,获取码流。
S702,对码流进行熵解码,以得到第三特征图。
示例性的,熵解码模块获取到码流后,可以指示熵估计模块基于已解码特征点的特征值进行熵估计,确定待解码特征点的熵估计信息;然后从熵估计模块获取待解码特征点的熵估计信息。接着,熵解码模块可以根据待解码特征点的熵估计信息对待解码特征点进行熵解码,得到待解码特征的特征值。这样,得到熵解码出所有特征点的特征值后,即可得到第三特征图,也就是图2a中的特征图3。
应该理解的是,熵解码得到的第三特征与熵编码的第二特征图可以相同,也可以不同,本申请对此不作限制。
S703,将第三特征图输入至解码网络,以得到解码网络输出的重建图像。
示例性的,在得到第三特征图后,可以将第三特征图输入至解码网络,由解码网络进行特征变换,输出重建图像。
由于本申请的解码网络能够很好的兼容多种不同编码损失的编码网络,其重建能力相较于现有技术对应单编码网络的解码网络的重建能力高;进而基于该解码网络进行解码,能够有效降低图像在多次编解码后的损失幅度比。
以下分别基于图3b、图4b和图5b中的图像压缩系统框架,描述本申请的编解码过程。
图8为示例性示出的编码过程示意图。其中,图8以图3b中的图像压缩系统框架为基础,描述了对待编码图像的编码过程。此外,在图8的实施例中,N=2。
S801,获取待编码图像。
S802,获取待编码图像的已编码次数。
示例性的,S801~S802可以参照上述S601~S602的描述,在此不再赘述。
S803,获取预设网络选取条件。
示例性的,在预设网络中的编码网络如图3a所示的场景中,设置的预设网络选取条件可以包括:当已编码次数为0时,选取压缩码率与目标压缩码率的差值最小的编码网络;当已编码次数不为0时,选取编码损失小于历史编码损失的编码网络,历史编码损失是指待编码图像上一次编码所选取的编码网络的编码损失。
例如,N=2时,此时编码网络包括编码网络G1和编码网络G2;假设编码网络G2的编码损失,小于编码网络G1的编码损失;编码网络G1的压缩码率与目标压缩码率的差值最小;则预设网络选取条件可以为:当已编码次数为0时,选取编码网络G1;当已编码次数不为0时,选取编码网络G2。
应该理解的是,当N大于2时,预设网络选取条件中的“当已编码次数不为0时,选取编码损失小于历史编码损失的编码网络”这一项,还可以细分设置,本申请对此不作限制。
例如,N=3时,此时编码网络包括编码网络G1、编码网络G2和编码网络G3;假设编码网络G2的编码损失小于编码网络G1的编码损失,以及编码网络G3的编码损失小于编码网络G2的编码损失;编码网络G1的压缩码率与目标压缩码率的差值最小。则预设网络选取条件可以为:当已编码次数为0时,选取编码网络G1;当已编码次数为1时,选取编码网络G2;当已编码次数大于1时,选取编码网络G3。
例如,N=10时,此时编码网络包括编码网络G1~编码网络G10;假设编码网络G1~编码网络G10的编码损失依次减小,编码网络G1的压缩码率与目标压缩码率的差值最小;则预设网络选取条件可以为:当已编码次数为0时,选取编码网络G1;当已编码次数为1~4之间时,选取编码网络G2;当已编码次数为5~8之间时,选取编码网络G3;以此类推,当已编码次数为大于33时,选取编码网络G10。
这样,第一选择模块可以获取到待编码图像、待编码图像的已编码次数和预设网络选取条件;然后可以按照预设网络选取条件,选取目标编码网络;可以参照如下S804~S805:
S804,当已编码次数为0时,从N个编码网络中选取压缩码率与目标压缩码率的差值最小的编码网络,作为目标编码网络。
示例性的,压缩码率与编码损失相关。具体地,针对任意一个编码网络,该编码网络的压缩码率与该编码网络的编码损失负相关,即该编码网络的编码损失越大时,该编码网络的压缩码率越小;该编码网络的编码损失越小时,该编码网络的压缩码率越大。一种可能的方式中,针对N个编码网络中的一个编码网络,可以按照如下方式预估该编码网络的压缩码率:将待编码图像依次输入该编码网络、量化模块和熵估计模块,由熵估计模块来确定该编码网络的压缩码率。
示例性的,第一选择模块确定待编码图像的已编码次数为0时,可以从N个编码网络中选取压缩码率与目标压缩码率的差值最小的编码网络,作为目标编码网络
S805,当已编码次数不为0时,从N个编码网络中选取编码损失小于历史编码损失的编码网络,作为目标编码网络,历史编码损失是指待编码图像上一次编码所选取的编码网络的编码损失。
示例性的,本申请中N个编码网络的编码损失与训练这N个编码网络过程中得到率失真损失成正比,因此可以基于这N个编码网络训练过程中,每个编码网络对应最后一个批次训练时的率失真损失,对这N个编码网络进行排序。这样,当第一选择模块确定待编码图像的已编码次数不为0时,可以按照N个编码网络的排列顺序,从N个编码网络中选取编码损失,小于待编码图像上一次编码所选取的编码网络的编码损失的编码网络,作为目标编码网络。
S806,将待编码图像输入至目标编码网络,以得到目标编码网络输出的第一特征图。
示例性的,S806可以参照上述S604的描述,在此不再赘述。
S807,对第一特征图进行量化,以得到第二特征图。
S808,对第二特征图进行熵编码,以得到码流。
示例性的,待量化模块对第一特征图进行量化,得到第二特征图后,可以将第二特征图输出至熵编码模块。接着,熵编码模块对第二特征图进行熵编码,可以得到第二特征图的编码数据;然后可以将编码数据封装至网络提取层单元(Network Abstraction LayerUnit,NALU)。其中,NALU可以包括NALU Header(数据头)和NALU主体,NALU Header包含了对与之对应的数据体(即NALU主体)的详细描述,例如,NALU的类型信息(如包括但不限于:视频参数集(Video Parameter Set,VPS)、序列参数集(Sequence Parameter Set,SPS)、图像参数集(Picture Paramater Set,PPS)、补充增强信息(Supplemental EnhancementInformation,SEI)、I帧和P帧等)。熵编码模块可以将第二特征图的编码数据封装至NALU主体中,例如可以将第二特征图的编码数据封装至I帧/P帧类型的NALU主体中,进而可以得到码流。
S809,将已编码次数封装至码流中。
示例性的,还可以将已编码次数封装至码流后,以便于后续解码过程中对已编码次数进行更新。
示例性的,可以由熵编码模块将已编码次数封装至NALU主体中。例如,可以把已编码次数封装至SEI类型NALU的NALU主体中。
示例性的,可以采用已有的语法元素来表示已编码次数,也可以采用新的语法元素来表示已编码次数,本申请对此不作限制。
图9为示例性示出的解码过程示意图。图9以图3b中的图像压缩系统框架为基础,描述了与图8的编码过程对应的解码过程。
S901,获取码流。
S902,对码流进行熵解码,以得到第三特征图和已编码次数。
示例性的,熵解码模块接收到码流后,可以对码流进行解封装(或者解析),进而可以从NALU中从获取到编码数据(图8实施例中第三特征图的编码数据)和已编码次数。接着,熵解码模块可以根据熵估计模块确定的熵估计信息,对编码数据进行熵解码,可以得到第三特征图。
需要说明的是,熵解码模块对码流进行解封装步骤和熵解码的步骤,都是熵解码过程中的步骤。
S903,将第三特征图输入至解码网络,以得到解码网络输出的重建图像。
S904,更新已编码次数。
示例性的,可以将已编码次数加1。
一种可能的方式中,可以将重建图像的图像名称中用于标识重建图像的已编码次数的字段中的数值,替换为更新后的已编码次数。
一种可能的方式中,可以将重建图像关联的文件中的已编码次数,替换为更新后的已编码次数。
示例性的,图像压缩系统还可以包括更新模块(图3b未示出),由更新模块将已编码次数加1。
也就是说,本申请对待编码图像进行首次编码时,基于压缩码率与目标压缩码率最接近的编码网络进行编码;后续基于重建能力比现有技术解码网络高的解码网络进行解码,能够保证在同等码率(现有技术单编码网络的场景中,单编码网络的压缩码率就是目标压缩码率;也就是说本申请首次编码对应的压缩码率与现有技术首次编码对应的压缩码率相近或相同)的前提下,图像失真小(此时,图像的率失真损失也小)。而首次编解码的率失真损失决定该图像在后续编解码中的率失真性能上限,进而还可以进一步提高后续图像在多次编解码的率失真性能。
此外,在后续多次压缩过程中,每次都选择比上一次编码损失小的编码网络,能够能够有效降低图像在多次编解码后的损失幅度比。
通过测试表明,本申请的编解码方法(即以图3b中的图像压缩系统框架为基础的编解码方法)在BD-rate(BD-rate是评价视频编码算法性能的主要参数之一)优于现有技术的编解码方法1.41%的情况下,十次编解码的损失幅度比(其中,第十次编解码的率失真损失减去第一次编解码的率失真损失,得到损失差值;损失差值与第一次编解码的率失真损失的比值,即为损失幅度比)相较于现有技术平均缩小了8.62%。
示例性的,当图像压缩系统框架如图5b所示时,N可以等于2,N个编码网络可以包括第二编码网络和第三编码网络;第二编码网络为非可逆神经网络,第三编码网络为按照第一预设方向映射的可逆神经网络。此时,设置的预设网络选取条件可以包括:当已编码次数为0时,选取第二编码网络;当已编码次数不为0时,选取第三编码网络。
示例性的,在图像压缩系统框架如图5b所示的场景中,编码过程中,S804可以替换为:当已编码次数为0时,选取第二编码网络,作为目标编码网络;S805可以替换为:当已编码次数不为0时,选取第三编码网络,作为目标编码网络。
示例性的,在图像压缩系统框架如图5b所示的场景中,当将第二编码网络作为目标编码网络时,基于图5b的编码过程可以如图8实施例所示,在此不再赘述。
示例性的,在图像压缩系统框架如图5b所示的场景中,当将第三编码网络作为目标编码网络时,基于图5b的编码方法也可以如图8实施例所示。其中,S805,将待编码图像输入至目标编码网络,以得到目标编码网络输出的第一特征图的具体实现过程可以如下:将待编码图像输入至可逆神经网络的Block1的PixelShuffling层,依次经过Block1、Block2、Block3、Block4和Average层的处理,由Average层输出第一特征图。
示例性的,在图像压缩系统框架如图5b所示的场景中,无论是将第二编码网络作为目标编码网络,还是将第三编码网络作为目标编码网络,基于图5b的解码方法也可以如图9实施例所示。其中,S903,将第三特征图输入至解码网络,以得到解码网络输出的重建图像的具体过程可以如下:可以将第三特征图输入至可逆神经网络的Repeat层,依次经过Repeat层、Block4、Block3、Block2和Block1的处理后,由Block1的PixelShuffling层输出重建图像。
示例性的,图像压缩系统框架如图5b所示的场景对应的编解码方法,相对于现有技术仅使用可逆神经网络进行编解码而言,由于可逆神经网络中编码与解码共享网络参数,会使得可逆神经网络约束较多,导致可逆神经网络的表达能力低于非可逆神经网络;因此在同等图像质量的前提下,基于可逆神经网络编码产生的码流的码率,大于基于非可逆神经网络编码产生的码流的码率;也就是说,基于可逆神经网络进行编解码的率失真损失,大于基于非可逆神经网络以及解码网络进行编解码的率失真损失。因此选用第二编码网络进行首次编解码,可以减少首次编解码的率失真损失,而首次编解码的率失真损失决定该图像在后续编解码中的率失真性能上限,进而可以提高图像在后续多次编解码后的率失真性能。
此外,可逆神经网络是可逆的,非可逆神经网络是不可逆的,相对于使用非可逆神经网络网络进行多次编解码而言,使用可逆神经网络进行多次编解码,图像的率失真性能下降的较慢,因此使用第三编码网络进行后续多次编解码,能够减缓图像在多次编解码后的率失真性能的下降速度,从而能够有效降低图像在多次编解码后的损失幅度比。
在图像压缩系统框架如图5b所示的场景中,通过测试表明,本申请的编解码方法(即基于图5b的图像压缩系统框架进行编解码方法)在BD-rate优于现有技术的编解码方法0.56%的情况下,十次编解码的损失幅度比缩小为现有技术的10倍。
图10为示例性示出的编码过程示意图。图10以图4b中的图像压缩系统框架的结构为基础,描述了对待编码图像的编码过程。
S1001,获取待编码图像。
S1002,获取待编码图像的已编码次数。
示例性的,S1001~S1002可以参照上述S601~S602的描述,在此不再赘述。
S1003,获取预设网络选取条件。
示例性的,在图10的实施例中,每个编码网络由第一编码网络和第一增益向量构成;其中,第一增益向量的作用是对第一编码网络输出的特征图进行缩放的。
示例性的,在图10的实施例中,按照实际需求设置预设网络选取条件即可,本申请不对如何设置预设网络选取条件进行限制。
例如,预设网络选取条件可以包括:当已编码次数为偶数时,选择序号为偶数的编码网络(其中,N个编码网络可以按照编码损失进行升序或降序排序);当已编码次数为奇数时,选择序号为奇数的编码网络。
例如,预设网络选取条件可以包括:当已编码次数为0时,选择序号为1的编码网络;当已编码次数不为0时,选择序号与已编码次数相同的编码网络。
例如,预设网络选取条件可以包括:当已编码次数为0时,选取率失真性能最差的编码网络;当已编码次数不为0时,选取除率失真性能最差的编码网络之外的其他编码网络。
S1004,基于待编码图像的已编码次数和预设网络选取条件,从N个编码网络中选取目标编码网络。
S1005,将待编码图像输入至N个编码网络共用的第一编码网络,以得到第四特征图。
S1006,基于目标编码网络包括的第一增益向量对第四特征图进行缩放,以得到第一特征图。
参照图4b,示例性的,在选取目标编码网络后,可以将待编码图像输入至N个编码网络共用的第一编码网络,由第一编码网络对待编码图像进行变换,输出第四特征图(也就是图4b中的特征图4)。接着,基于目标编码网络包括的第一增益向量(如图4b中的GainVector_Ai)对第四特征图进行逐通道缩放,得到第一特征图(也就是图4b中的特征图1);具体缩放过程可以参照上述的描述,在此不再赘述。
S1007,对第一特征图进行量化,以得到第二特征图。
S1008,对第二特征图进行熵编码,以得到码流。
S1009,将已编码次数封装至码流中。
示例性的,S1007~S1009,可以参照上述S807~S809的描述,在此不再赘述。
图11为示例性示出的解码过程示意图。图11以图4b中的图像压缩系统框架为基础,描述了与图10的编码过程对应的解码过程。
S1101,获取码流。
S1102,对码流进行熵解码,以得到第三特征图和已编码次数。
示例性的,S1101~S1102可以参照上述S901~S902的描述,在此不再赘述。
S1103,获取预设网络选取条件。
S1104,基于预设网络选取条件和已编码次数,从N个第二增益向量中选取目标增益向量。
S1105,基于目标增益向量对第三特征图进行缩放,以得到第五特征图。
示例性的,第二选择模块可以获取第三特征图、已编码次数和预设网络选取条件;然后基于预设网络选取条件和已编码次数,从N个第二增益向量中选取目标增益向量;接着,基于目标增益向量对第三特征图进行缩放,以得到第五特征图。
需要说明的是,第二选择模块在预设网络的训练过程和实际应用编码过程中,从N个第二增益向量中选取目标增益向量所依据的条件不同;第二选择模块在预设网络的训练过程中,依据预设训练规则从N个第二增益向量中选取目标增益向量,在实际应用编码过程中依据预设网络选取条件从N个第二增益向量中选取目标增益向量。
示例性的,第二增益向量与第一增益向量是一一对应的,第一增益向量与编码网络也是一一对应的;因此基于预设网络选取条件和已编码次数,选取目标编码网络后,也可以基于目标编码网络从N个第二增益向量中选取目标增益向量。
例如,参照图4b,GainVector_Bi与GainVector_Ai对应,GainVector_Ai对应的编码网络是编码网络Gi。假设,编码侧根据已编码次数和预设网络选取条件,从N个编码网络中选取编码网络G5作为目标编码网络,则可以从N个第二增益向量中选取Gain Vector_B5,作为目标增益向量。
示例性的,S1105与上述S1005类似,在此不再赘述。
S1106,将第五特征图输入至解码网络,以得到解码网络输出的重建图像。
S1107,更新已编码次数。
通过第一增益向量和第二增益向量对特征图的放缩,能够降低相邻两次编解码过程中,经过量化模块量化得到的量化值之间的差异;进而能够降低图像在相邻两次编解码后损失幅度比;从而能够降低图像在多次编解码后的损失幅度比。
通过测试表明,本申请的编解码方法(即基于图4b的图像压缩系统框架进行编解码方法)现对于现有技术而言,在低码率(码率小于预设码率阈值)区域,十次编解码的损失幅度比相较于现有技术平均缩小了6%。
一个示例中,图12示出了本申请实施例的一种装置1200的示意性框图,装置1200可包括:处理器1201和收发器/收发管脚1202,可选地,还包括存储器1203。
装置1200的各个组件通过总线1204耦合在一起,其中总线1204除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线1204。
可选地,存储器1203可以用于存储前述方法实施例中的指令。该处理器1201可用于执行存储器1203中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置1200可以是上述方法实施例中的电子设备或电子设备的芯片。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的方法。
本实施例还提供了一种图像处理装置,该图像处理装置可以包括一个或多个接口电路和一个或多个处理器;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,使得电子设备执行上述实施例的步骤。其中,接口电路可以是指图12中的收发器1202。
本实施例还提供了一种存储码流的装置,该装置包括:接收器和至少一个存储介质,接收器用于接收码流;至少一个存储介质用于存储码流;码流是根据上述实施例的编码方法生成的。
本实施例还提供了一种传输码流的装置,该装置包括:发送器和至少一个存储介质,至少一个存储介质用于存储码流,码流是根据上述实施例的编码方法生成的;发送器用于从存储介质中获取码流并将码流通过传输介质发送给端侧设备。
本实施例还提供了一种分发码流的系统,该系统包括:至少一个存储介质,用于存储至少一个码流,至少一个码流是根据上述实施例的编码方法生成的,流媒体设备,用于从至少一个存储介质中获取目标码流,并将目标码流发送给端侧设备,其中,流媒体设备包括内容服务器或内容分发服务器。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (35)

1.一种图像压缩系统,其特征在于,所述图像压缩系统包括第一选择模块、熵编码模块、熵解码模块、量化模块、N个编码网络和1个解码网络,所述N个编码网络的编码损失不同,N为大于1的整数,其中:
所述第一选择模块,用于基于待编码图像的已编码次数,从所述N个编码网络中选取目标编码网络,其中,所述待编码图像为未经过编码的图像或重建图像;
所述目标编码网络,用于对所述待编码图像进行特征变换,以得到第一特征图;
所述量化模块,用于对所述第一特征图进行量化,以得到第二特征图;
所述熵编码模块,用于对所述第二特征图进行熵编码,以得到码流;
所述熵解码模块,用于对所述码流进行熵解码,以得到第三特征图;
所述解码网络,用于基于所述第三特征图进行特征变换,以得到重建图像。
2.根据权利要求1所述的系统,其特征在于,
所述N个编码网络的网络结构相同,但网络参数不同;或者,
所述N个编码网络的网络结构不同。
3.根据权利要求1或2所述的系统,其特征在于,所述N个编码网络共用第一编码网络;所述N个编码网络中每个编码网络均由所述第一编码网络和第一增益向量构成,所述N个编码网络中每个编码网络的第一增益向量不同;
所述目标编码网络,具体用于调用所述第一编码网络对所述待编码图像进行特征变换,以得到第四特征图;以及基于所述目标编码网络的第一增益向量对所述第四特征图进行缩放,以得到所述第一特征图。
4.根据权利要求3所述的系统,其特征在于,所述图像压缩系统还包括第二选择模块和N个第二增益向量,所述N个第二增益向量与N个第一增益向量一一对应;
所述第二选择模块,用于基于所述已编码次数,从所述N个第二增益向量中选取目标增益向量;以及基于所述目标增益向量对所述第三特征图进行缩放,以得到第五特征图;
所述解码网络,具体用于对所述第五特征图进行特征变换,以得到所述重建图像。
5.根据权利要求1或2所述的系统,其特征在于,
当N等于2时,所述N个编码网络包括第二编码网络和第三编码网络,所述第二编码网络为非可逆神经网络,第三编码网络为按照第一预设方向映射的可逆神经网络,所述解码网络为按照第二预设方向映射的所述可逆神经网络。
6.根据权利要求1至5任一项所述的系统,其特征在于,
所述解码网络与所述N个编码网络是联合训练得到的,所述联合训练包括对所述N个编码网络和所述解码网络进行M个批次训练;其中,一个批次训练是基于第i个编码网络对应的损失权重系数,对所述第i个编码网络和所述解码网络进行的训练,所述N个编码网络中每个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络,M为大于N的正整数,i为1~N之间的整数。
7.一种图像处理方法,其特征在于,所述方法包括:
获取待编码图像和所述待编码图像的已编码次数,所述待编码图像为未经过编码的图像或重建图像;
基于所述待编码图像的已编码次数,从N个编码网络中选取目标编码网络,所述N个编码网络的编码损失不同,N为大于1的整数;
将所述待编码图像输入至所述目标编码网络,以得到所述目标编码网络输出的第一特征图;
对所述第一特征图进行量化,以得到第二特征图;
对所述第二特征图进行熵编码,以得到码流;
对所述码流进行熵解码,以得到第三特征图;
将所述第三特征图输入至解码网络,以得到所述解码网络输出的重建图像。
8.根据权利要求7所述的方法,其特征在于,所述基于所述待编码图像的已编码次数,从N个编码网络中选取目标编码网络,包括:
获取预设网络选取条件;
基于所述待编码图像的已编码次数和所述预设网络选取条件,从所述N个编码网络中选取所述目标编码网络。
9.根据权利要求8所述的方法,其特征在于,所述预设网络选取条件包括:当已编码次数为0时,选取压缩码率与目标压缩码率的差值最小的编码网络;其中,压缩码率与编码损失相关。
10.根据权利要求8所述的方法,其特征在于,所述预设网络选取条件包括:当已编码次数不为0时,选取编码损失小于历史编码损失的编码网络,所述历史编码损失是指所述待编码图像上一次编码所选取的编码网络的编码损失。
11.根据权利要求7至10任一项所述的方法,其特征在于,所述N个编码网络共用第一编码网络;所述N个编码网络中每个编码网络均由所述第一编码网络和第一增益向量构成,所述N个编码网络中每个编码网络的第一增益向量不同;
所述将所述待编码图像输入至所述目标编码网络,以得到所述目标编码网络输出的第一特征图,包括:
将所述待编码图像输入至所述第一编码网络,以得到第四特征图;
基于所述目标编码网络的第一增益向量对所述第四特征图进行缩放,以得到所述第一特征图。
12.根据权利要求8所述的方法,其特征在于,当N等于2时,所述N个编码网络包括第二编码网络和第三编码网络,所述第二编码网络为非可逆神经网络,所述第三编码网络为按照第一预设方向映射的可逆神经网络,所述解码网络为按照第二预设方向映射的所述可逆神经网络;
所述预设网络选取条件包括:
当已编码次数为0时,选取所述第二编码网络;
当已编码次数不为0时,选取所述第三编码网络。
13.根据权利要求7至12任一项所述的方法,其特征在于,所述方法还包括:
将所述已编码次数封装至所述码流中。
14.根据权利要求13所述的方法,其特征在于,在得到所述解码网络输出的重建图像之后,所述方法还包括:
更新所述熵解码所得到的所述已编码次数。
15.根据权利要求11所述的方法,其特征在于,所述方法还包括:
根据所述熵解码所得到的所述已编码次数,从N个第二增益向量中选取目标增益向量,所述N个第二增益向量与N个第一增益向量一一对应;
基于所述目标增益向量对所述第三特征图进行缩放,以得到第五特征图;
所述将所述第三特征图输入至解码网络,以得到所述解码网络输出的重建图像,包括:
将所述第五特征图输入至所述解码网络,以得到所述解码网络输出的重建图像。
16.根据权利要求7至15任一项所述的方法,其特征在于,
所述解码网络与所述N个编码网络是联合训练得到的,所述联合训练包括对所述N个编码网络和所述解码网络进行M个批次训练;其中,一个批次训练是基于第i个编码网络对应的损失权重系数,对所述第i个编码网络和所述解码网络进行的训练,所述N个编码网络中每个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络,M为大于N的正整数,i为1~N之间的整数。
17.一种编码方法,其特征在于,所述方法包括:
获取待编码图像,所述待编码图像为未经过编码的图像或重建图像;
获取所述待编码图像的已编码次数;
基于所述待编码图像的已编码次数,从N个编码网络中选取目标编码网络,N为大于1的整数;
将所述待编码图像输入至所述目标编码网络,以得到所述目标编码网络输出的第一特征图;
对所述第一特征图进行量化,以得到第二特征图;
对所述第二特征图进行熵编码,得到码流;以由解码端基于解码网络对所述码流进行解码,所述解码网络与所述N个编码网络是联合训练得到的,所述N个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络。
18.根据权利要求17所述的方法,其特征在于,所述基于所述待编码图像的已编码次数,从N个编码网络中选取目标编码网络,包括:
获取预设网络选取条件;
基于所述待编码图像的已编码次数和所述预设网络选取条件,从所述N个编码网络中选取所述目标编码网络。
19.根据权利要求18所述的方法,其特征在于,
所述预设网络选取条件包括:当已编码次数为0时,选取压缩码率与目标压缩码率的差值最小的编码网络;其中,压缩码率与编码损失相关。
20.根据权利要求18所述的方法,其特征在于,
所述预设网络选取条件包括:当已编码次数不为0时,选取编码损失小于历史编码损失的编码网络,所述历史编码损失是指所述待编码图像上一次编码所选取的编码网络的编码损失。
21.根据权利要求17至20任一项所述的方法,其特征在于,所述N个编码网络共用第一编码网络;所述N个编码网络中每个编码网络均由所述第一编码网络和第一增益向量构成,所述N个编码网络中每个编码网络的第一增益向量不同;
所述将所述待编码图像输入至所述目标编码网络,以得到所述目标编码网络输出的第一特征图,包括:
将所述待编码图像输入至所述第一编码网络,以得到第四特征图;
基于所述目标编码网络的第一增益向量对所述第四特征图进行缩放,以得到所述第一特征图。
22.根据权利要求18所述的方法,其特征在于,当N等于2时,所述N个编码网络包括第二编码网络和第三编码网络,所述第二编码网络为非可逆神经网络,所述第三编码网络为按照第一预设方向映射的可逆神经网络;
所述预设网络选取条件包括:
当已编码次数为0时,选取所述第二编码网络;
当已编码次数不为0时,选取所述第三编码网络。
23.根据权利要求17至22任一项所述的方法,其特征在于,所述方法还包括:
将所述已编码次数封装至所述码流中。
24.一种解码方法,其特征在于,所述方法包括:
获取码流,所述码流由编码端基于N个编码网络中的目标编码网络对待编码图像进行编码得到的,N为大于1的整数;
对所述码流进行熵解码,以得到第三特征图;
将所述第三特征图输入至解码网络,以得到所述解码网络输出的重建图像;
其中,所述解码网络与所述N个编码网络是联合训练得到的,所述N个编码网络对应的损失权重系数不同,不同损失权重系数用于训练出编码损失不同的编码网络。
25.根据权利要求24所述的方法,其特征在于,在得到所述解码网络输出的重建图像之后,所述方法还包括:
更新所述熵解码所得到的已编码次数。
26.根据权利要求24或25所述的方法,其特征在于,所述方法还包括:
根据所述熵解码所得到的已编码次数,从N个第二增益向量中选取目标增益向量;
基于所述目标增益向量对所述第三特征图进行缩放,以得到第五特征图;
所述将所述第三特征图输入至解码网络,以得到所述解码网络输出的重建图像,包括:
将所述第五特征图输入至所述解码网络,以得到所述解码网络输出的重建图像。
27.一种预设网络训练方法,其特征在于,所述预设网络包括N个编码网络和1个解码网络,N为大于1的整数,所述方法包括:
获取训练图像;
基于所述训练图像对所述预设网络进行M个批次训练,M为大于N的正整数;其中,针对所述预设网络进行一个批次训练包括:
基于所述训练图像、重建图像和第i个编码网络对应的损失权重系数,确定率失真损失;其中,所述重建图像是基于所述第i个编码网络对所述训练图像进行编码后再基于所述解码网络对编码结果进行解码得到的,i为1~N之间的整数;
基于所述率失真损失,对所述第i个编码网络和所述解码网络进行训练;
其中,所述N个编码网络中每个编码网络对应的损失权重系数不同。
28.根据权利要求27所述的方法,其特征在于,所述基于所述训练图像、重建图像和第i个编码网络对应的损失权重系数,确定率失真损失,包括:
获取所述基于所述第i个编码网络对所述训练图像进行编码对应的码率损失;
基于所述训练图像和所述重建图像,确定图像失真损失;
基于所述第i个编码网络对应的损失权重系数,对所述码率损失和所述图像失真损失进行加权计算,以得到所述率失真损失。
29.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行如权利要求7至权利要求28中任一项所述的方法。
30.一种图像处理装置,其特征在于,包括一个或多个接口电路和一个或多个处理器;所述接口电路用于从电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,使得所述电子设备执行如权利要求7至权利要求28中任一项所述的方法。
31.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序运行在计算机或处理器上时,使得所述计算机或所述处理器执行如权利要求7至权利要求28中任一项所述的方法。
32.一种计算机程序产品,其特征在于,所述计算机程序产品包含软件程序,当所述软件程序被计算机或处理器执行时,使得如权利要求7至权利要求28中任一项所述的方法的步骤被执行。
33.一种存储码流的装置,其特征在于,所述装置包括:接收器和至少一个存储介质,
所述接收器用于接收码流;
所述至少一个存储介质用于存储所述码流;
所述码流是根据如权利要求17至权利要求23任一项所述的编码方法生成的。
34.一种传输码流的装置,其特征在于,所述装置包括:发送器和至少一个存储介质,
所述至少一个存储介质用于存储码流,所述码流是根据如权利要求17至权利要求23任一项所述的编码方法生成的;
所述发送器用于从所述存储介质中获取所述码流并将所述码流通过传输介质发送给端侧设备。
35.一种分发码流的系统,其特征在于,所述系统包括:
至少一个存储介质,用于存储至少一个码流,所述至少一个码流是根据如权利要求17至权利要求23任一项编码方法生成的,
流媒体设备,用于从所述至少一个存储介质中获取目标码流,并将所述目标码流发送给端侧设备,其中,所述流媒体设备包括内容服务器或内容分发服务器。
CN202211514199.0A 2022-11-30 2022-11-30 图像压缩系统、图像处理方法和编解码方法及电子设备 Pending CN118158425A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211514199.0A CN118158425A (zh) 2022-11-30 2022-11-30 图像压缩系统、图像处理方法和编解码方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211514199.0A CN118158425A (zh) 2022-11-30 2022-11-30 图像压缩系统、图像处理方法和编解码方法及电子设备

Publications (1)

Publication Number Publication Date
CN118158425A true CN118158425A (zh) 2024-06-07

Family

ID=91300496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211514199.0A Pending CN118158425A (zh) 2022-11-30 2022-11-30 图像压缩系统、图像处理方法和编解码方法及电子设备

Country Status (1)

Country Link
CN (1) CN118158425A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118524216A (zh) * 2024-07-04 2024-08-20 深圳市欧冶半导体有限公司 基于变换和量化的图像编码方法、装置和计算机设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118524216A (zh) * 2024-07-04 2024-08-20 深圳市欧冶半导体有限公司 基于变换和量化的图像编码方法、装置和计算机设备

Similar Documents

Publication Publication Date Title
JP7571363B2 (ja) ニューラルネットワーク・ベースのビットストリームのデコードとエンコード
US12058348B2 (en) Parallelized rate-distortion optimized quantization using deep learning
US20230362378A1 (en) Video coding method and apparatus
EP4300958A1 (en) Video image encoding method, video image decoding method and related devices
US12052443B2 (en) Loop filtering method and apparatus
US20240105193A1 (en) Feature Data Encoding and Decoding Method and Apparatus
CN117501696A (zh) 使用在分块之间共享的信息进行并行上下文建模
US20240323441A1 (en) Image encoding and decoding method and apparatus
US20230281881A1 (en) Video Frame Compression Method, Video Frame Decompression Method, and Apparatus
CN115604485A (zh) 视频图像的解码方法及装置
CN118158425A (zh) 图像压缩系统、图像处理方法和编解码方法及电子设备
CN116508320A (zh) 基于机器学习的图像译码中的色度子采样格式处理方法
WO2022063267A1 (zh) 帧内预测方法及装置
US20240221230A1 (en) Feature map encoding and decoding method and apparatus
CN118872266A (zh) 基于多模态处理的视频译码方法
US20230396810A1 (en) Hierarchical audio/video or picture compression method and apparatus
CN114584776A (zh) 帧内预测模式的译码方法和装置
CN116170596A (zh) 编解码方法及电子设备
CN116939218A (zh) 区域增强层的编解码方法和装置
CN117409091A (zh) 编解码方法及电子设备
US20240296594A1 (en) Generalized Difference Coder for Residual Coding in Video Compression
CN116743993A (zh) 特征域光流确定方法及相关设备
Ponlatha et al. An Artificial Neural Network Based Lossless Video Compression using Multi-Level Snapshots and Wavelet Transform using Intensity measures
CN116781897A (zh) 编解码方法及电子设备
CN117574994A (zh) 图像处理网络的训练、编解码方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication