CN116797674A - 图像编解码方法和装置 - Google Patents
图像编解码方法和装置 Download PDFInfo
- Publication number
- CN116797674A CN116797674A CN202210224695.6A CN202210224695A CN116797674A CN 116797674 A CN116797674 A CN 116797674A CN 202210224695 A CN202210224695 A CN 202210224695A CN 116797674 A CN116797674 A CN 116797674A
- Authority
- CN
- China
- Prior art keywords
- feature
- image
- characteristic
- feature map
- region
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 146
- 238000013139 quantization Methods 0.000 claims abstract description 91
- 238000010586 diagram Methods 0.000 claims abstract description 68
- 230000006870 function Effects 0.000 claims description 100
- 230000004913 activation Effects 0.000 claims description 53
- 238000009826 distribution Methods 0.000 claims description 52
- 238000012549 training Methods 0.000 claims description 51
- 230000008569 process Effects 0.000 claims description 42
- 230000001965 increasing effect Effects 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 15
- 230000002708 enhancing effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000007906 compression Methods 0.000 abstract description 50
- 230000006835 compression Effects 0.000 abstract description 48
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000013473 artificial intelligence Methods 0.000 abstract 2
- 238000013528 artificial neural network Methods 0.000 description 48
- 238000012545 processing Methods 0.000 description 45
- 238000013461 design Methods 0.000 description 31
- 238000004891 communication Methods 0.000 description 25
- 238000013527 convolutional neural network Methods 0.000 description 21
- 238000005457 optimization Methods 0.000 description 21
- 239000011159 matrix material Substances 0.000 description 19
- 238000011176 pooling Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 18
- 230000000007 visual effect Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 238000013135 deep learning Methods 0.000 description 9
- 230000001537 neural effect Effects 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 210000002569 neuron Anatomy 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 230000008447 perception Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 230000000306 recurrent effect Effects 0.000 description 5
- 230000008485 antagonism Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 2
- 241000282412 Homo Species 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000003384 imaging method Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Abstract
本申请涉及基于人工智能(Artificial Intelligence,AI)的视频或图像压缩领域,具体的,本申请提供一种图像编解码方法和装置。本申请的图像编码方法,包括:将待编码图像输入编码网络,获取编码网络输出的三维特征图;根据三维特征图的多个通道各自的特征值,在所述多个通道中确定至少一个边缘通道;根据至少一个边缘通道和区域描述信息,确定至少一个边缘通道的非感兴趣区域;区域描述信息用于表示感兴趣区域的位置;根据至少一个边缘通道的非感兴趣区域,对三维特征图进行量化,以得到第一量化特征图;至少一个边缘通道的非感兴趣区域的量化步长大于感兴趣区域的量化步长;对第一量化特征图进行算术编码,以生成码流。本申请实施例有益于提升图像压缩率。
Description
技术领域
本申请涉及图像压缩技术领域,尤其涉及一种图像编解码方法和装置。
背景技术
图像压缩是指一种利用空间冗余度、视觉冗余度和统计冗余度等图像数据特性,以较少的比特有损或无损地表示原本的图像像素矩阵的技术,实现图像信息的有效传输和存储,对当前图像传输信息的种类和数据量越来越大的媒体时代起着重要作用。图像压缩分为有损压缩和无损压缩两种。有损压缩以一定程度的图像质量降低为代价实现较大的压缩比,无损压缩则不会造成图像细节的损失。对于图像有损压缩,在传统的图像有损压缩算法中,很多技术被用于去除图像数据的冗余信息。例如,量化技术被用于消除由图像中相邻像素间的相关性引起的空间冗余度和由人眼视觉系统感知决定的视觉冗余度。熵编码和转换技术被用于消除图像数据的统计冗余性。传统的有损图像压缩技术已形成了诸如JPEG、BPG等有损图像压缩标准。
由于在图像识别、目标检测等诸多领域远超传统的图像压缩算法的表现,深度学习也被应用于实现端到端的图像压缩任务。区别于传统的图像压缩算法通过人工设计来对图间变换、量化、熵编码等,分别进行优化,基于深度学习的图像压缩算法的各模块(例如,包括但不限于编码网络、熵估计网络、解码网络等)是作为一个整体共同进行优化,因此基于深度学习的图像压缩算法的压缩效果更好。基于深度学习的图像压缩算法,在峰值信噪比(Peak Signal to Noise Ratio,PSNR)和多尺度结构化相似性(Multi-scalestructural similarity index,MS-SSIM)两项图像评价指标上的压缩效果均远超JPEG等传统的图像有损压缩算法。
基于深度学习的图像压缩算法可以通过不同的优化方式,使得重构图在客观指标、人眼主观质量感受、边缘部分与原图更加相似等方面具有较好的性能。其中,基于边缘增强的图像感知重建,采用多种损失函数综合的方式,除了率失真损失函数外,还引入了感知损失、对抗损失以及边缘损失,使得边缘部分与原图更加相似。例如,使得文字扭曲的现象得到改善。
然而,基于边缘增强的图像感知重建,由于在压缩过程中会对所提取的边缘进行增强,这会较大地增加码率,影响图像压缩率。
发明内容
本申请提供一种图像编解码方法和装置,有益于提升图像压缩率。
第一方面,本申请实施例提供一种图像编码方法,该方法可以包括:获取待编码图像;将待编码图像输入编码网络,获取编码网络输出的三维特征图;编码网络具有增强该待编码图像的边缘的功能;根据三维特征图的多个通道各自的特征值,在多个通道中确定至少一个边缘通道;根据至少一个边缘通道和区域描述信息,确定至少一个边缘通道的非感兴趣区域;区域描述信息用于表示待编码图像的感兴趣区域的位置;根据至少一个边缘通道的非感兴趣区域,对三维特征图进行量化,以得到第一量化特征图;三维特征图的至少一个边缘通道的非感兴趣区域的量化步长大于感兴趣区域的量化步长;对第一量化特征图进行算术编码,以生成码流。
由此,在上述第一方面的实现方式中,通过三维特征图的多个通道各自的特征值,在多个通道中确定至少一个边缘通道,根据至少一个边缘通道和区域描述信息,确定至少一个边缘通道的非感兴趣区域,根据至少一个边缘通道的非感兴趣区域,通过增大至少一个边缘通道的非感兴趣区域的量化步长,可以降低码率,以提升图像压缩率,并保证感兴趣区域的视觉效果。
并且通过三维特征图确定边缘通道,可以实现基于待编码图像的个性化边缘码率调节。
需要说明的是,本申请的图像编码方法在原有端到端图像编解码框架的基础上,无需重新训练,可以在不增加训练成本的基础上,提升压缩率。
一种可能的设计中,根据至少一个边缘通道的非感兴趣区域,对三维特征图进行量化,包括:根据至少一个边缘通道的非感兴趣区域,缩小三维特征图中的非感兴趣区域的特征值,以得到调整后的三维特征图;对调整后的三维特征图进行量化。
由此,通过缩小三维特征图中的非感兴趣区域的特征值,以增大至少一个边缘通道的非感兴趣区域的量化步长,可以降低码率,以提升图像压缩率,并保证感兴趣区域的视觉效果。
一种可能的设计中,缩小三维特征图中的非感兴趣区域的特征值,包括:根据缩放系数,缩小三维特征图中的非感兴趣区域的特征值;
其中,scale表示缩放系数,0≤scale<1。
由此,通过缩放系数,灵活缩小三维特征图中的非感兴趣区域的特征值,以减少至少一个缘通道的非感兴趣区域的所占用的码率,从而提升图像压缩率,并保证感兴趣区域的视觉效果。
一种可能的设计中,该方法还包括:根据至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定缩放系数。
由此,通过至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,动态确定缩放系数,从而灵活缩小不同置信度的边缘通道的非感兴趣区域的特征值,可以降低码率,以提升图像压缩率,并保证非感兴趣区域和感兴趣区域的视觉效果。
一种可能的设计中,根据至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定缩放系数,包括:根据公式scale=1-exp(-p*soft_factor),确定缩放系数。
其中,p表示特征激活点数、特征能量或特征均值,soft_factor表示预设斜率。
一种可能的设计中,对第一量化特征图进行算术编码,包括:对三维特征图进行量化,以得到第二量化特征图;将三维特征图输入超先验编码网络,获取超先验编码网络输出的第一超先验特征信息;将第一超先验特征信息输入超先验解码网络,获取超先验解码网络输出的第二量化特征图的概率分布;对第一超先验特征信息进行算术编码,并根据第二量化特征图的概率分布,对第一量化特征图进行算术编码,并将区域描述信息写入码流。
一种可能的设计中,对第一量化特征图进行算术编码,包括:将调整后的三维特征图输入超先验编码网络,获取超先验编码网络输出的第二超先验特征信息;将第二超先验特征信息输入超先验解码网络,获取超先验解码网络输出的第一量化特征图的概率分布;对第二超先验特征信息进行算术编码,并根据第一量化特征图的概率分布,对第一量化特征图进行算术编码。
一种可能的设计中,根据三维特征图的多个通道各自的特征值,在多个通道中确定至少一个边缘通道,包括:根据三维特征图的多个通道各自的特征激活点数、特征能量或特征均值,确定三维特征图的至少一个边缘通道。
一种可能的设计中,三维特征图的任一边缘通道满足以下任一项:边缘通道的特征激活点数小于第一阈值;或者,边缘通道的特征能量小于第二阈值;或者,边缘通道的特征均值小于第三阈值。
一种可能的设计中,方法还包括:使用至少一个训练图像,对编码网络进行训练。
三维特征图的多个通道可以包括多个第一通道和多个第二通道。
其中,训练过程中对三维特征图的多个第一通道采用第一损失函数和第二损失函数进行优化,对三维特征图的多个第二通道采用第三损失函数进行优化,对三维特征图的优化后的多个第一通道和优化后的多个第二通道采用第一损失函数、第二损失函数和第三损失函数进行优化。
一种可能的设计中,第一损失函数、第二损失函数和第三损失函数分别为率失真损失函数、感知损失函数、边缘增强损失函数中一项,且第一损失函数、第二损失函数和第三损失函数互不相同。
由此,通过使用不同的损失函数,分别进行优化训练,可以使得边缘特征与图像整体特征深度解耦,以提升图像编解码效果。
第二方面,本申请实施例提供一种图像解码方法,该方法可以包括:获取码流;码流包括第一量化特征图的编码数据、第一超先验特征信息和区域描述信息;区域描述信息用于表示待编码图像的感兴趣区域的位置。根据第一超先验特征信息和区域描述信息,对第一量化特征图的编码数据进行解码,以得到重建图像。
一种可能的设计中,根据第一超先验特征信息和区域描述信息,对第一量化特征图的编码数据进行解码,包括:根据第一超先验特征信息和第一量化特征图的编码数据,确定至少一个边缘通道;根据至少一个边缘通道和区域描述信息,确定至少一个边缘通道的非感兴趣区域;根据至少一个边缘通道的非感兴趣区域和第一超先验特征信息,对第一量化特征图的编码数据进行解码。
一种可能的设计中,根据至少一个边缘通道的非感兴趣区域和第一超先验特征信息,对第一量化特征图的编码数据进行解码,包括:根据第一超先验特征信息,对第一量化特征图的编码数据进行算术解码,以得到第一量化特征图;根据至少一个边缘通道的非感兴趣区域,增大第一量化特征图中的该非感兴趣区域的特征值,以得到三维特征图;将三维特征图输入解码网络,获取解码网络输出的重建图像。
一种可能的设计中,增大第一量化特征图中的该非感兴趣区域的特征值,包括:根据缩放系数,增大第一量化特征图中的该非感兴趣区域的特征值。
其中,scale表示缩放系数,0≤scale<1。
一种可能的设计中,该方法还包括:根据至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定缩放系数。
一种可能的设计中,根据至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定缩放系数,包括:根据公式scale=1-exp(-p*soft_factor),确定缩放系数;
其中,p表示特征激活点数、特征能量或特征均值,soft_factor表示预设斜率。
第三方面,本申请实施例提供一种图像编码装置,该装置可以为电子设备或者服务器,例如电子设备或者服务器中的芯片或者片上系统,例如可以为电子设备或者服务器中用于实现第一方面或第一方面的任一可能的实施方式的功能模块。举例来说,该图像编码装置,包括:
获取模块,用于获取待编码图像。编码模块,用于将该待编码图像输入编码网络,获取该编码网络输出的三维特征图;该编码网络具有增强该待编码图像的边缘的功能。该编码模块,还用于根据该三维特征图的多个通道各自的特征值,在该多个通道中确定至少一个边缘通道。该编码模块,还用于根据该至少一个边缘通道和区域描述信息,确定该至少一个边缘通道的非感兴趣区域;该区域描述信息用于表示该待编码图像的感兴趣区域的位置。该编码模块,还用于根据该至少一个边缘通道的非感兴趣区域,对该三维特征图进行量化,以得到第一量化特征图;该三维特征图的至少一个边缘通道的非感兴趣区域的量化步长大于感兴趣区域的量化步长。对该第一量化特征图进行算术编码,以生成码流。
一种可能的设计中,该编码模块用于:根据该至少一个边缘通道的非感兴趣区域,缩小该三维特征图中的该非感兴趣区域的特征值,以得到调整后的三维特征图;对该调整后的三维特征图进行量化。
一种可能的设计中,该编码模块用于:根据缩放系数,缩小该三维特征图中的该非感兴趣区域的特征值。
其中,scale表示该缩放系数,0≤scale<1。
一种可能的设计中,该编码模块还用于:根据该至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定该缩放系数。
一种可能的设计中,该编码模块用于:
根据公式scale=1-exp(-p*soft_factor),确定该缩放系数。
其中,p表示该特征激活点数、该特征能量或该特征均值,soft_factor表示该预设斜率。
一种可能的设计中,该编码模块,用于:对该三维特征图进行量化,以得到第二量化特征图;将该三维特征图输入超先验编码网络,获取该超先验编码网络输出的第一超先验特征信息;将该第一超先验特征信息输入超先验解码网络,获取该超先验解码网络输出的该第二量化特征图的概率分布;对该第一超先验特征信息进行算术编码,并根据该第二量化特征图的概率分布,对该第一量化特征图进行算术编码,并将该区域描述信息写入该码流。
一种可能的设计中,该编码模块,用于:将该调整后的三维特征图输入超先验编码网络,获取该超先验编码网络输出的第二超先验特征信息;将该第二超先验特征信息输入超先验解码网络,获取该超先验解码网络输出的该第一量化特征图的概率分布;对该第二超先验特征信息进行算术编码,并根据该第一量化特征图的概率分布,对该第一量化特征图进行算术编码。
一种可能的设计中,该编码模块用于:根据该三维特征图的多个通道各自的特征激活点数、特征能量或特征均值,确定该三维特征图的至少一个边缘通道。
一种可能的设计中,该三维特征图的任一边缘通道满足以下任一项:该边缘通道的特征激活点数小于第一阈值;或者,该边缘通道的特征能量小于第二阈值;或者,该边缘通道的特征均值小于第三阈值。
一种可能的设计中,该装置还包括:训练模块;训练模块,用于使用至少一个训练图像,对该编码网络进行训练;三维特征图的多个通道包括多个第一通道和多个第二通道;其中,训练过程中对三维特征图的多个第一通道采用第一损失函数和第二损失函数进行优化,对三维特征图的多个第二通道采用第三损失函数进行优化,对三维特征图的优化后的多个第一通道和优化后的多个第二通道采用该第一损失函数、该第二损失函数和该第三损失函数进行优化。
一种可能的设计中,该第一损失函数、该第二损失函数和所述第三损失函数分别为率失真损失函数、感知损失函数、边缘增强损失函数中一项,且所述第一损失函数、所述第二损失函数和所述第三损失函数互不相同。
第四方面,本申请实施例提供一种图像解码装置,该装置可以为电子设备或者服务器,例如电子设备或者服务器中的芯片或者片上系统,例如可以为电子设备或者服务器中用于实现第二方面或第二方面的任一可能的实施方式的功能模块。举例来说,该图像解码装置,包括:
获取模块,用于获取码流;该码流包括第一量化特征图的编码数据、第一超先验特征信息和区域描述信息;该区域描述信息用于表示该待编码图像的感兴趣区域的位置;解码模块,用于根据该第一超先验特征信息和该区域描述信息,对该第一量化特征图的编码数据进行解码,以得到重建图像。
一种可能的设计中,该解码模块用于:根据该第一超先验特征信息和该第一量化特征图的编码数据,确定至少一个边缘通道;根据该至少一个边缘通道和该区域描述信息,确定该至少一个边缘通道的非感兴趣区域;根据该至少一个边缘通道的非感兴趣区域和该第一超先验特征信息,对该第一量化特征图的编码数据进行解码。
一种可能的设计中,该解码模块用于:根据该第一超先验特征信息,对该第一量化特征图的编码数据进行算术解码,以得到第一量化特征图;根据该至少一个边缘通道的非感兴趣区域,增大该第一量化特征图中的该非感兴趣区域的特征值,以得到三维特征图;将该三维特征图输入解码网络,获取该解码网络输出的该重建图像。
一种可能的设计中,该解码模块用于:根据缩放系数,增大该第一量化特征图中的该非感兴趣区域的特征值;
其中,scale表示该缩放系数,0≤scale<1。
一种可能的设计中,该解码模块还用于:根据该至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定该缩放系数。
一种可能的设计中,该解码模块用于:
根据公式scale=1-exp(-p*soft_factor),确定该缩放系数。
其中,p表示该特征激活点数、该特征能量或该特征均值,soft_factor表示该预设斜率。
第五方面,本申请实施例提供一种图像编码装置,包括:一个或多个处理器。存储器,用于存储一个或多个程序。当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面或第一方面任一项所述的方法。
第六方面,本申请实施例提供一种图像解码装置,包括:一个或多个处理器。存储器,用于存储一个或多个程序。当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第二方面或第二方面任一项所述的方法。
第七方面,本申请实施例提供一种计算机可读存储介质,包括根据第一方面或第一方面任一项所述的方法获得的码流。
第八方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第一方面任一项所述的方法,或者,如第二方面或第二方面任一项所述的方法。
第九方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在计算机上运行时,使得计算机执行如第一方面或第一方面任一项所述的方法,或者,如第二方面或第二方面任一项所述的方法。
应当理解的是,本申请的第三至第八方面与本申请的第一至第二方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
下面对本申请实施例用到的附图进行介绍。
图1A为本申请实施例的译码系统10的示例性框图;
图1B为本申请实施例的视频译码系统40的示例性框图;
图2为本申请实施例的端到端图像压缩的示例性框图;
图3为本申请实施例的视频译码设备400的示例性框图;
图4为本申请实施例的装置500的示例性框图;
图5为本申请实施例提供的一种图像编码方法的流程图;
图6为本申请实施例的一种编码网络的示例性结构图;
图7为本申请实施例提供的一种缩放系数和特征激活点数的示意图;
图8A为本申请实施例提供的一种图像编解码方法的流程图;
图8B为本申请实施例提供的一种图像编解码方法的示意图
图9为本申请实施例提供的一种超先验编码网络的示意图;
图10为本申请实施例提供的另一种超先验解码网络的示意图;
图11为本申请实施例提供的一种图像解码方法的流程图;
图12A为本申请实施例提供的一种图像编解码方法的流程图;
图12B为本申请实施例提供的一种图像编解码方法的示意图;
图13为本申请实施例提供的一种图像编码装置的示意图;
图14为本申请实施例提供的一种图像解码装置的示意图。
具体实施方式
本申请实施例所涉及的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
本申请实施例提供一种基于AI的图像编解码技术,尤其是提供一种基于神经网络的图像编解码技术,以改进传统的混合视频编解码系统。
视频编码通常是指处理形成视频或视频序列的图像序列。在视频编码领域,术语“图像(picture)”、“帧(frame)”或“图片(image)”可以用作同义词。视频编码(或通常称为编码)包括视频编码和视频解码两部分。视频编码在源侧执行,通常包括处理(例如,压缩)原始视频图像以减少表示该视频图像所需的数据量(从而更高效存储和/或传输)。视频解码在目的地侧执行,通常包括相对于编码器作逆处理,以重建视频图像。实施例涉及的视频图像(或通常称为图像)的“编码”应理解为视频图像或视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码(编码和解码,CODEC)。
在无损视频编码情况下,可以重建原始视频图像,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据丢失)。在有损视频编码情况下,通过量化等执行进一步压缩,来减少表示视频图像所需的数据量,而解码器侧无法完全重建视频图像,即重建的视频图像的质量比原始视频图像的质量较低或较差。
几个视频编码标准属于“有损混合型视频编解码”(即,将像素域中的空间和时间预测与变换域中用于应用量化的2D变换编码结合)。视频序列中的每个图像通常分割成不重叠的块集合,通常在块级上进行编码。换句话说,编码器通常在块(视频块)级处理即编码视频,例如,通过空间(帧内)预测和时间(帧间)预测来产生预测块;从当前块(当前处理/待处理的块)中减去预测块,得到残差块;在变换域中变换残差块并量化残差块,以减少待传输(压缩)的数据量,而解码器侧将相对于编码器的逆处理部分应用于编码或压缩的块,以重建用于表示的当前块。另外,编码器需要重复解码器的处理步骤,使得编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建像素,用于处理,即编码后续块。
在以下译码系统10的实施例中,编码器20和解码器30根据图1A至图2进行描述。
图1A为示例性译码系统10的示意性框图,例如可以利用本申请技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)代表可用于根据本申请中描述的各种示例执行各技术的设备等。
如图1A所示,译码系统10包括源设备12,源设备12用于将编码图像等编码图像数据21提供给用于对编码图像数据21进行解码的目的设备14。
源设备12包括编码器20,另外即可选地,可包括图像源16、图像预处理器等预处理器(或预处理单元)18、通信接口(或通信单元)22。
图像源16可包括或可以为任意类型的用于捕获现实世界图像等的图像捕获设备,和/或任意类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器或任意类型的用于获取和/或提供现实世界图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtual reality,VR)图像和/或其任意组合(例如增强现实(augmented reality,AR)图像)的设备。所述图像源可以为存储上述图像中的任意图像的任意类型的内存或存储器。
为了区分预处理器(或预处理单元)18执行的处理,图像(或图像数据)17也可称为原始图像(或原始图像数据)17。
预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,得到预处理图像(或预处理图像数据)19。例如,预处理器18执行的预处理可包括修剪、颜色格式转换(例如从RGB转换为YCbCr)、调色或去噪。可以理解的是,预处理单元18可以为可选组件。
视频编码器(或编码器)20用于接收预处理图像数据19并提供编码图像数据21(下面将根据图2等进一步描述)。
源设备12中的通信接口22可用于:接收编码图像数据21并通过通信信道13向目的设备14等另一设备或任何其它设备发送编码图像数据21(或其它任意处理后的版本),以便存储或直接重建。
目的设备14包括解码器30,另外即可选地,可包括通信接口(或通信单元)28、后处理器(或后处理单元)32和显示设备34。
目的设备14中的通信接口28用于直接从源设备12或从存储设备等任意其它源设备接收编码图像数据21(或其它任意处理后的版本),例如,存储设备为编码图像数据存储设备,并将编码图像数据21提供给解码器30。
通信接口22和通信接口28可用于通过源设备12与目的设备14之间的直连通信链路,例如直接有线或无线连接等,或者通过任意类型的网络,例如有线网络、无线网络或其任意组合、任意类型的私网和公网或其任意类型的组合,发送或接收编码图像数据(或编码数据)21。
例如,通信接口22可用于将编码图像数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理所述编码后的图像数据,以便在通信链路或通信网络上进行传输。
通信接口28与通信接口22对应,例如,可用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装对传输数据进行处理,得到编码图像数据21。
通信接口22和通信接口28均可配置为如图1A中从源设备12指向目的设备14的对应通信信道13的箭头所指示的单向通信接口,或双向通信接口,并且可用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如编码后的图像数据传输等数据传输相关的任何其它信息,等等。
视频解码器(或解码器)30用于接收编码图像数据21并提供解码图像数据(或解码图像数据)31(下面将根据图2等进一步描述)。
后处理器32用于对解码后的图像等解码图像数据31(也称为重建后的图像数据)进行后处理,得到后处理后的图像等后处理图像数据33。后处理单元32执行的后处理可以包括例如颜色格式转换(例如从YCbCr转换为RGB)、调色、修剪或重采样,或者用于产生供显示设备34等显示的解码图像数据31等任何其它处理。
显示设备34用于接收后处理图像数据33,以向用户或观看者等显示图像。显示设备34可以为或包括任意类型的用于表示重建后图像的显示器,例如,集成或外部显示屏或显示器。例如,显示屏可包括液晶显示器(liquid crystal display,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶显示器(liquid crystal on silicon,LCoS)、数字光处理器(digital lightprocessor,DLP)或任意类型的其它显示屏。
译码系统10还包括训练引擎25,训练引擎25用于训练编码器20(尤其是如图2所示的编码器20中的各个模块,包括但不限于编码模块201、量化模块202、熵估计模块203和算术编码模块204)和解码器30(尤其是如图2所示解码器30中的各个模块,包括但不限于算术解码模块301、解码模块302和熵估计模块203)以处理输入图像以生成输入图像的预测值。
本申请实施例采用如图2所示的基于深度学习的端到端图像压缩框架(也称端到端图像编解码框架)。如图2所示,基于深度学习的端到端图像压缩框架沿用了自编码器的结构,并在此基础上引入了量化和算术编码,以高效编码提取到的特征。其中,编码模块201用于提取输入图像x的关键特征,以得到三维特征图y,量化模块202用于对三维特征图y进行量化,以得到量化后的三维特征图熵估计模块203用于得到对应的概率分布,算术编码模块204用于利用对应的概率分布对量化后的三维特征图/>进行算术编码,以生成码流。算术解码模块301用于利用熵估计模块203的概率分布,进行算术解码,以得到三维特征图/>解码模块302用于利用三维特征图/>得到重建图像/>
本申请实施例中训练数据包括:训练图像,例如,如图2所示的输入图像x;
训练数据可以存入数据库(未示意)中,训练引擎25基于训练数据训练得到端到端图像压缩的目标模型(例如:可以是包括用于图像特征提取和熵估计的神经网络的端到端图像压缩框架)。需要说明的是,本申请实施例对于训练数据的来源不做限定,例如可以是从云端或其他地方获取训练数据进行模型训练。
下面将结合图2详细地描述训练引擎25如何基于训练数据得到目标模型,该目标模型能够用于实现本申请实施例提供的图像编解码方法,也称为图像压缩和解压缩方法,即,将输入图像通过相关预处理后输入该目标模型,即以得到码流,将码流输入该目标模型,即以得到重建图像。本申请实施例中的端到端图像压缩的目标模型具体可以为基于循环神经网络的端到端图像压缩,或基于卷积神经网络的端到端图像压缩。
训练引擎25训练得到的目标模型可以应用于译码系统10,40中,例如,应用于图1A所示的源设备12(例如编码器20)或目的设备14(例如解码器30)。训练引擎25可以在云端训练得到目标模型,然后译码系统10从云端下载并使用该目标模型;或者,训练引擎25可以在云端训练得到目标模型并使用该目标模型,译码系统10从云端直接获取处理结果。
尽管图1A示出了源设备12和目的设备14作为独立的设备,但设备实施例也可以同时包括源设备12和目的设备14或同时包括源设备12和目的设备14的功能,即同时包括源设备12或对应功能和目的设备14或对应功能。在这些实施例中,源设备12或对应功能和目的设备14或对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
根据描述,图1A所示的源设备12和/或目的设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用而有所不同,这对技术人员来说是显而易见的。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或两者都可通过如图1B所示的处理电路实现,例如一个或多个微处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频编码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以包含参照图2编码器20论述的各种模块和/或本文描述的任何其它编码器系统或子系统。解码器30可以通过处理电路46实现,以包含参照图2解码器30论述的各种模块和/或本文描述的任何其它解码器系统或子系统。所述处理电路46可用于执行下文论述的各种操作。如图4所示,如果部分技术在软件中实施,则设备可以将软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且使用一个或多个处理器在硬件中执行指令,从而执行本发明技术。视频编码器20和视频解码器30中的其中一个可作为组合编解码器(encoder/decoder,CODEC)的一部分集成在单个设备中,如图1B所示。
源设备12和目的设备14可包括各种设备中的任一种,包括任意类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、相机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(例如,内容业务服务器或内容分发服务器)、广播接收设备、广播发射设备,等等,并可以不使用或使用任意类型的操作系统。在一些情况下,源设备12和目的设备14可配备用于无线通信的组件。因此,源设备12和目的设备14可以是无线通信设备。
在一些情况下,图1A所示的视频译码系统10仅仅是示例性的,本申请提供的技术可适用于视频编码设置(例如,视频编码或视频解码),这些设置不一定包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器中检索,通过网络发送,等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,编码和解码由相互不通信而只是编码数据到存储器和/或从存储器中检索并解码数据的设备来执行。
图1B是根据一示例性实施例的包含图2的视频编码器20和/或视频解码器30的视频译码系统40的实例的说明图。视频译码系统40可以包含成像设备41、视频编码器20、视频解码器30(和/或藉由处理电路46实施的视频编/解码器)、天线42、一个或多个处理器43、一个或多个内存存储器44和/或显示设备45。
如图1B所示,成像设备41、天线42、处理电路46、视频编码器20、视频解码器30、处理器43、内存存储器44和/或显示设备45能够互相通信。在不同实例中,视频译码系统40可以只包含视频编码器20或只包含视频解码器30。
在一些实例中,天线42可以用于传输或接收视频数据的经编码比特流。另外,在一些实例中,显示设备45可以用于呈现视频数据。处理电路46可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。视频译码系统40也可以包含可选的处理器43,该可选处理器43类似地可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。另外,内存存储器44可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(static random access memory,SRAM)、动态随机存储器(dynamic random accessmemory,DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性实例中,内存存储器44可以由超速缓存内存实施。在其它实例中,处理电路46可以包含存储器(例如,缓存等)用于实施图像缓冲器等。
在一些实例中,通过逻辑电路实施的视频编码器20可以包含(例如,通过处理电路46或内存存储器44实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实施的视频编码器20,以实施参照图2和/或本文中所描述的任何其它编码器系统或子系统所论述的各种模块。逻辑电路可以用于执行本文所论述的各种操作。
在一些实例中,视频解码器30可以以类似方式通过处理电路46实施,以实施参照图3的视频解码器30和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。在一些实例中,逻辑电路实施的视频解码器30可以包含(通过处理电路46或内存存储器44实施的)图像缓冲器和(例如,通过处理电路46实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过处理电路46实施的视频解码器30,以实施参照图2和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。
在一些实例中,天线42可以用于接收视频数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的与编码视频帧相关的数据、指示符、索引值、模式选择数据等,例如与编码分割相关的数据(例如,变换系数或经量化变换系数,(如所论述的)可选指示符,和/或定义编码分割的数据)。视频译码系统40还可包含耦合至天线42并用于解码经编码比特流的视频解码器30。显示设备45用于呈现视频帧。
应理解,本申请实施例中对于参考视频编码器20所描述的实例,视频解码器30可以用于执行相反过程。关于信令语法元素,视频解码器30可以用于接收并解析这种语法元素,相应地解码相关视频数据。在一些例子中,视频编码器20可以将语法元素熵编码成经编码视频比特流。在此类实例中,视频解码器30可以解析这种语法元素,并相应地解码相关视频数据。
为便于描述,参考通用视频编码(Versatile video coding,VVC)参考软件或由ITU-T视频编码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频编码联合工作组(Joint CollaborationTeam on Video Coding,JCT-VC)开发的高性能视频编码(High-Efficiency VideoCoding,HEVC)描述本发明实施例。本领域普通技术人员理解本发明实施例不限于HEVC或VVC。
图3为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频译码设备400可以是解码器,例如图1A中的视频解码器30,也可以是编码器,例如图1A中的视频编码器20。
视频译码设备400包括:用于接收数据的入端口410(或输入端口410)和接收单元(receiver unit,Rx)420;用于处理数据的处理器、逻辑单元或中央处理器(centralprocessing unit,CPU)430;例如,这里的处理器430可以是神经网络处理器430;用于传输数据的发送单元(transmitter unit,Tx)440和出端口450(或输出端口450);用于存储数据的存储器460。视频译码设备400还可包括耦合到入端口410、接收单元420、发送单元440和出端口450的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用于光信号或电信号的出口或入口。
处理器430通过硬件和软件实现。处理器430可实现为一个或多个处理器芯片、核(例如,多核处理器)、FPGA、ASIC和DSP。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470(例如,基于神经网络NN的译码模块470)。译码模块470实施上文所公开的实施例。例如,译码模块470执行、处理、准备或提供各种编码操作。因此,通过译码模块470为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的切换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
存储器460包括一个或多个磁盘、磁带机和固态硬盘,可以用作溢出数据存储设备,用于在选择执行程序时存储此类程序,并且存储在程序执行过程中读取的指令和数据。存储器460可以是易失性和/或非易失性的,可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(static random-access memory,SRAM)。
图4为示例性实施例提供的装置500的简化框图,装置500可用作图1A中的源设备12和目的设备14中的任一个或两个。
装置500中的处理器502可以是中央处理器。或者,处理器502可以是现有的或今后将研发出的能够操控或处理信息的任何其它类型设备或多个设备。虽然可以使用如图4所示的处理器502等单个处理器来实施已公开的实现方式,但使用一个以上的处理器速度更快和效率更高。
在一种实现方式中,装置500中的存储器504可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可包括操作系统508和应用程序510,应用程序510包括允许处理器502执行本文所述方法的至少一个程序。例如,应用程序510可以包括应用1至N,还包括执行本文所述方法的视频译码应用。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与可用于感测触摸输入的触敏元件组合的触敏显示器。显示器518可以通过总线512耦合到处理器502。
虽然装置500中的总线512在本文中描述为单个总线,但是总线512可以包括多个总线。此外,辅助储存器可以直接耦合到装置500的其它组件或通过网络访问,并且可以包括存储卡等单个集成单元或多个存储卡等多个单元。因此,装置500可以具有各种各样的配置。
由于本申请实施例涉及神经网络的应用,为了便于理解,下面先对本申请实施例所使用到的一些名词或术语进行解释说明,该名词或术语也作为发明内容的一部分。
(1)神经网络
神经网络(Neural Network,NN)是机器学习模型,神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式: 其中,/>是输入向量,/>是输出向量,/>是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量/>经过如此简单的操作得到输出向量/>由于DNN层数多,则系数W和偏移向量/>的数量也就很多了。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为/>上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个神经元的系数定义为/>需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。卷积神经网络包含了一个由卷积层和池化层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。
卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。卷积层可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络进行正确的预测。当卷积神经网络有多个卷积层的时候,初始的卷积层往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络深度的加深,越往后的卷积层提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
在经过卷积层/池化层的处理后,卷积神经网络还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络需要利用神经网络层来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层中可以包括多层隐含层,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
可选的,在神经网络层中的多层隐含层之后,还包括整个卷积神经网络的输出层,该输出层具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络的前向传播完成,反向传播就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络的损失,及卷积神经网络通过输出层输出的结果和理想结果之间的误差。
(4)循环神经网络
循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将RNN进行网络展开,那么其中的参数,如W,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法(Back propagation Through Time,BPTT)。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(6)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(7)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
(8)生成式对抗网络
生成式对抗网络(generative adversarial networks,GAN)是一种深度学习模型。该模型中至少包括两个模块:一个模块是生成模型(Generative Model),另一个模块是判别模型(Discriminative Model),通过这两个模块互相博弈学习,从而产生更好的输出。生成模型和判别模型都可以是神经网络,具体可以是深度神经网络,或者卷积神经网络。GAN的基本原理如下:以生成图片的GAN为例,假设有两个网络,G(Generator)和D(Discriminator),其中G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z);D是一个判别网络,用于判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,如果为0,就代表不可能是真实的图片。在对该生成式对抗网络进行训练的过程中,生成网络G的目标就是尽可能生成真实的图片去欺骗判别网络D,而判别网络D的目标就是尽量把G生成的图片和真实的图片区分开来。这样,G和D就构成了一个动态的“博弈”过程,也即“生成式对抗网络”中的“对抗”。最后博弈的结果,在理想的状态下,G可以生成足以“以假乱真”的图片G(z),而D难以判定G生成的图片究竟是不是真实的,即D(G(z))=0.5。这样就得到了一个优异的生成模型G,它可以用来生成图片。
本申请的图像编解码方法涉及边缘通道。边缘通道是指三维特征图的携带边缘信息的通道。即本申请将三维特征图的多个通道划分为边缘通道和非边缘通道。非边缘通道是指三维特征图的携带正常纹理信息的通道。本申请的图像编码方法,通过确定三维特征图的至少一个边缘通道,调整至少一个边缘通道的非感兴趣区域的特征值,以降低码率,提升压缩率,并保证感兴趣区域的视觉效果。
图5为本申请实施例提供的一种图像编码方法的流程图。本实施例可由编码器20执行。本实施例描述为一系列的步骤或操作,应当理解的是,本实施例可以以各种顺序执行和/或同时发生,不限于图5所示的执行顺序。本实施例为端到端图像压缩框架的压缩过程。如图5所示,本实施例可以包括:
S501、获取待编码图像。
该待编码图像也可以称为待压缩图像,其具体可以是任意一张图像或任意一帧视频图像。
S502、将待编码图像输入编码网络,获取编码网络输出的三维特征图。
其中,编码网络具有增强待编码图像的边缘的功能。该编码网络可以是如图2所示的编码模块中的神经网络。该编码网络用于提取待编码图像的特征,以输出三维特征图。
示例性,编码网络可以包括卷积层、激活层等基础模块。例如,图6为本申请实施例的一种编码网络的示例性结构图。如图6所示,该编码网络包括4个卷积层(例如,图6所示的Conv)和3个激活层(例如,图6所示的GDN)。GDN为适合图像重建的归一化层。举例而言,待编码图像为16W×16H×3,W和H分别为正整数。W和H的取值可以是任意正整数,W的取值和H取值可以相同,也可以不同。经过编码网络处理后,编码网络输出三维特征图y,三维特征图y的大小为W×H×M。M为通道数,例如,M=192。需要说明的是,图6所示的编码网络仅为一种示意性举例说明,本申请实施例对编码网络的具体形式不作具体限定。例如,编码网络的卷积核大小、特征图通道数、下采样次数、卷积层数、激活层数等均可以根据需求进行灵活设置。
S503、根据三维特征图的多个通道各自的特征值,在多个通道中确定至少一个边缘通道。
示例性的,三维特征图y的通道数为M,即三维图特征图有M个通道。可以根据M个通道各自的特征值,在M个通道中确定一个或多个边缘通道。其中,每个通道有W×H个特征值。
示例性的,可以根据三维特征图的多个通道(例如,M个通道)各自的特征激活点数、特征能量或特征均值,确定三维特征图的一个或多个边缘通道。其中,特征激活点数是指一个通道的非0特征值的个数。特征能量和特征均值均可以根据一个通道的W×H个特征值确定。例如,特征能量可以通过一个通道的所有特征值的平方和确定。特征均值可以是一个通道的所有特征值的平均值。
本申请实施例的三维特征图的任一边缘通道满足以下任一项:边缘通道的特征激活点数小于第一阈值;或者,边缘通道的特征能量小于第二阈值;或者,边缘通道的特征均值小于第三阈值。其中,第一阈值、第二阈值和第三阈值的具体取值可以根据需求进行合理设置。由此,本申请实施例可以根据三维特征图的各个通道的特征激活点数、特征能量或特征均值,确定各个通道是否为边缘通道,从而确定一个或多个边缘通道。
S504、根据至少一个边缘通道和区域描述信息,确定至少一个边缘通道的非感兴趣区域。
其中,区域描述信息用于表示待编码图像的感兴趣区域(Region of Interest,ROI)的位置。例如,对于人脸图像,则ROI为人脸区域。对于建筑图像,则ROI为建筑区域。本申请实施例并不限定提取ROI的具体实现方式,其可以根据需求进行合理设置。例如,使用神经网络提取ROI等。一种可实现方式,区域描述信息可以包括ROI在待编码图像中的坐标。待编码图像中除ROI之外的其他区域为非感兴趣区域(即非ROI)。另一种可实现方式,区域描述信息可以是二值化图像,该二值化图像的大小可以为W×H。二值化图像中数值0表示ROI的像素点,数值1表示非感兴趣区域(即非ROI)的像素点。或者,二值化图像中数值1表示ROI的像素点,数值0表示非感兴趣区域(即非ROI)的像素点。
本实施例可以基于三维特征图和区域描述信息,确定一个或多个边缘通道的非感兴趣区域。具体的,可以根据三维特征图,确定一个或多个边缘通道,再根据一个或多个边缘通道和区域描述信息,确定一个或多个边缘通道的非感兴趣区域。
根据区域描述信息,确定三维特征图的ROI。根据三维特征图的一个或多个边缘通道和ROI,确定一个或多个边缘通道的非ROI。
S505、根据至少一个边缘通道的非感兴趣区域,对三维特征图进行量化,以得到第一量化特征图。
其中,三维特征图的至少一个边缘通道的非感兴趣区域的量化步长大于感兴趣区域的量化步长。
示例性的,可以通过缩小三维特征图的一个或多个边缘通道的非ROI的特征值,实现增大一个或多个边缘通道的非ROI的量化步长,从而减少边缘通道的非感兴趣区域所占用的码率,提升压缩率。
具体的,可以根据一个或多个边缘通道的非ROI,缩小三维特征图y中的非ROI的特征值,并保持ROI的特征值不变,以得到调整后的三维特征图y’。对调整后的三维特征图y’进行量化,以得到第一量化特征图
一种可实现方式,缩小三维特征图y中的非ROI的特征值,可以包括:根据缩放系数,缩小三维特征图y中的非ROI的特征值。其中,scale表示缩放系数,0≤scale<1。例如,对三维特征图y中的非ROI的特征值均乘以该缩放系数。
缩放系数可以是预先设置的硬阈值,也可以是自适应变化的(即软阈值)。例如,可以根据一个或多个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,动态确定缩放系数。
在确定边缘通道时选用硬阈值,实际上,一个通道内的激活点数越多(能量越大/均值越大),该通道属于边缘通道的概率越小,边缘特征与图像整体特征很难完全分离,因此,本实施例还提供一种利用软阈值对边缘进行调节的方法。对于不同边缘置信度的通道乘以不同的缩放系数。
示例性的,可以根据公式(1)确定缩放系数。
scale=1-exp(-p*soft_factor) (1)
其中,p表示特征激活点数、特征能量或特征均值,soft_factor表示预设斜率。
例如,以p表示特征激活点数为例,图7为本申请实施例提供的一种缩放系数和特征激活点数的示意图,如图7所示,横轴为特征激活点数,纵轴为缩放系数。
soft_factor用于控制图7中曲线的斜率。特征激活点数越多,缩放系数越接近1。不同的特征激活点数,对应的soft_factor不同。
S506、对第一量化特征图进行算术编码,以生成码流。
其中,算法编码包括但不限于熵编码。码流可以存储或传输。
一种可实现方式,对三维特征图进行量化,以得到第二量化特征图将三维特征图输入超先验编码网络,获取超先验编码网络输出的第一超先验特征信息/>将第一超先验特征信息输入超先验解码网络,获取超先验解码网络输出的第二量化特征图的概率分布,对第一超先验特征信息进行算术编码,并根据第二量化特征图的概率分布,对第一量化特征图/>第二量进行算术编码,并将上述区域描述信息写入码流,以生成码流。具体实施方式可以参见下述图12A和图12B所示实施例的解释说明。
另一种可实现方式,将调整后的三维特征图输入超先验编码网络,获取超先验编码网络输出的第二超先验特征信息将第二超先验特征信息输入超先验解码网络,获取超先验解码网络输出的第一量化特征图的概率分布,对第二超先验特征信息进行算术编码,并根据第一量化特征图的概率分布,对第一量化特征图/>第二量进行算术编码,以生成码流。具体实施方式可以参见下述图8A和图8B所示实施例的解释说明。
本实施例,通过将待编码图像输入编码网络,获取编码网络输出的三维特征图,根据三维特征图的多个通道各自的特征值,在多个通道中确定至少一个边缘通道,根据至少一个边缘通道和区域描述信息,确定至少一个边缘通道的非感兴趣区域,根据至少一个边缘通道的非感兴趣区域,对三维特征图进行量化,以得到第一量化特征图,其中,三维特征图的至少一个边缘通道的非感兴趣区域的量化步长大于感兴趣区域的量化步长,对第一量化特征图进行算术编码,以生成码流。由此,通过增大边缘通道的非感兴趣区域的量化步长,可以降低码率,并保证感兴趣区域的视觉效果。
上述图5的图像编码方法可以包括如下两种图像编码方式,两种图像编码方式分别对应一种图像解码方式。
图像编码和解码方式一
图8A为本申请实施例提供的一种图像编码和解码方法的流程图,图8B为本申请实施例提供的一种图像编码和解码方法的示意图。本实施例的图像编码过程可由编码器20执行。本实施例的图像解码过程可由解码器30执行。本实施例描述为一系列的步骤或操作,应当理解的是,本实施例可以以各种顺序执行和/或同时发生,不限于图8A所示的执行顺序。本实施例为端到端图像压缩框架。如图8A所示,本实施例可以包括:
S801、获取待编码图像。
S802、将待编码图像输入编码网络,获取编码网络输出的三维特征图。
其中,S801和S802的解释说明,可以参见图5所示实施例的S501和S502,此处不再赘述。
S803、根据三维特征图的多个通道各自的特征值,确定三维特征图的至少一个边缘通道,根据区域描述信息确定三维特征图的感兴趣区域,根据三维特征图的至少一个边缘通道和感兴趣区域,确定至少一个边缘通道的非感兴趣区域。
示例性的,结合图8B所示,可以通过判断三维特征图的各个通道的特征激活点数是否小于第一阈值,这里用th表示第一阈值。若是,则该通道为边缘通道,若否,则该通道为非边缘通道。三维特征图的一个或多个边缘通道用ye表示,一个或多个非边缘通道用yne表示。针对一个或多个边缘通道ye,可以结合区域描述信息,确定一个或多个边缘通道ye的非感兴趣区域,并利用缩放系数增大一个或多个边缘通道的非感兴趣区域的量化步长。
S804、根据缩放系数,缩小至少一个边缘通道的非感兴趣区域的特征值,以得到调整后的三维特征图。
结合图8B所示,对于一个或多个边缘通道ye,对一个或多个边缘通道ye的非感兴趣区域的特征值乘以缩放系数,对于一个或多个非边缘通道yne,不调整一个或多个非边缘通道yne的特征值,由此得到调整后的三维特征图y’。
三维特征图y的大小为W×H×M,调整后的三维特征图y’的大小为W×H×M。
S805、对调整后的三维特征图进行量化,以得到第一量化特征图。
对调整后的三维特征图y’进行量化,以得到第一量化特征图
S806、将调整后的三维特征图输入熵估计网络,获取熵估计网络输出的第一量化特征图的概率分布。
其中,熵估计网络可以包括超先验编码网络和超先验解码网络。将调整后的三维特征图y’输入超先验编码网络,得到第二超先验特征信息将/>输入超先验解码网络,得到/>的概率分布,其均值与方差分别为μ′和δ′。由此,/>的概率分布的大小为W×H×2M。
示例性的,图9为本申请实施例提供的一种超先验编码网络的示意图。图10为本申请实施例提供的一种超先验解码网络的示意图。
S807、对第二超先验特征信息进行算术编码,并根据第一量化特征图的概率分布,对第一量化特征图进行算术编码,以生成码流。
以上S801至S807为图像编码过程,本实施例中,码流无需携带上述区域描述信息。以下S808至S810为图像解码过程。
码流包括第一量化特征图的编码数据和第二超先验特征信息。
S808、解析码流,获取第一量化特征图的概率分布,根据第一量化特征图的概率分布对第一量化特征图的编码数据进行算术解码,得到第一量化特征图,根据第一量化特征图得到重建图像。
解析码流,获取第一量化特征图的编码数据和第二超先验特征信息,将第二超先验特征信息输入熵估计网络(例如,超先验解码网络),获取熵估计网络输出的第一量化特征图的概率分布。
本实施例,通过将待编码图像输入编码网络,获取编码网络输出的三维特征图,根据三维特征图的多个通道各自的特征值,确定三维特征图的至少一个边缘通道,根据至少一个边缘通道和区域描述信息,确定至少一个边缘通道的非感兴趣区域,根据缩放系数,缩小至少一个边缘通道的非感兴趣区域的特征值,以得到调整后的三维特征图,对调整后的三维特征图进行量化,以得到第一量化特征图,根据第一量化特征图的概率分布,对第一量化特征图进行算术编码,以生成码流。由此,通过缩放系数缩小边缘通道的非感兴趣区域的特征值,以增大边缘通道的非感兴趣区域的量化步长,可以降低码率,并保证感兴趣区域的视觉效果。并且通过三维特征图确定边缘通道,可以实现基于待编码图像的个性化边缘码率调节。
图11为本申请实施例提供的一种图像解码方法的流程图。本实施例可由解码器30执行。本实施例描述为一系列的步骤或操作,应当理解的是,本实施例可以以各种顺序执行和/或同时发生,不限于图11所示的执行顺序。本实施例为端到端图像压缩框架的解压缩过程。如图11所示,本实施例可以包括:
本实施例的解码过程对应于图5所示实施例的编码过程,其中,S505采用第一种可实现方式具体实施。
S1001、获取码流,码流包括第一量化特征图的编码数据、第一超先验特征信息和区域描述信息,该区域描述信息用于表示待编码图像的感兴趣区域的位置。
其中,区域描述信息的具体解释说明,可以参见S504的相关解释说明,此处不再赘述。第一超先验特征信息的具体解释说明,可以参见S505的相关解释说明,此处不再赘述。
S1002、根据第一超先验特征信息和区域描述信息,对第一量化特征图的编码数据进行解码,以得到重建图像。
示例性的,可以根据第一超先验特征信息和第一量化特征图的编码数据,确定一个或多个边缘通道。根据一个或多个边缘通道和区域描述信息,确定一个或多个边缘通道的非感兴趣区域。根据一个或多个边缘通道的非感兴趣区域和第一超先验特征信息,对第一量化特征图的编码数据进行解码,以得到重建图像。
其中,可以根据一个或多个边缘通道的非感兴趣区域和第一超先验特征信息对第一量化特征图/>的编码数据进行算术解码,以得到第一量化特征图/>根据一个或多个边缘通道的非感兴趣区域,增大第一量化特征图中的非感兴趣区域的特征值,以得到三维特征图。将三维特征图输入解码网络,获取解码网络输出的重建图像。
增大第一量化特征图中的非感兴趣区域的特征值,包括:根据缩放系数,增大第一量化特征图中的非感兴趣区域的特征值。其中,scale表示缩放系数,0≤scale<1。
解码过程中调整第一量化特征图中的非感兴趣区域的特征值,是编码过程中调整三维特征图中的非感兴趣区域的特征值的逆过程。例如,缩放系数不等于0时,编码过程中,对三维特征图y中的非ROI的特征值均乘以该缩放系数,那么,解码过程中,对解码得到的第一量化特征图的非ROI的特征值均除以该缩放系数。
其中,缩放系数的具体解释说明可以参见S505的相关解释说明,此处不再赘述。
根据一个或多个边缘通道的非感兴趣区域和第一超先验特征信息对第一量化特征图/>的编码数据进行算术解码,以得到第一量化特征图/>的具体实现方式可以为,将第一超先验特征信息/>输入超先验解码网络,获取超先验解码网络输出第二量化特征图/>的概率分布,根据缩放系数、一个或多个边缘通道的非感兴趣区域和第二量化特征图/>的概率分布,得到第一量化特征图/>的概率分布。利用第一量化特征图/>的概率分布,对第一量化特征图/>的编码数据进行算术解码,以得到第一量化特征图/>
其中,根据缩放系数、一个或多个边缘通道的非感兴趣区域和第二量化特征图的概率分布,得到第一量化特征图/>的概率分布,具体实施方式可以为,根据缩放系数,对第二量化特征图/>的概率分布中一个或多个边缘通道的非感兴趣区域的均值和方差进行调整。例如,μ′=μ×sacle,δ′=δ×sacle2,μ′为调整后的均值,δ′为调整后的方差,即第一量化特征图/>的概率分布。
解码过程中确定一个或多个边缘通道的可实现方式可以为,将第一超先验特征信息输入超先验解码网络,获取超先验解码网络输出的第二量化特征图的概率分布,根据第二量化特征图/>的概率分布,对第一量化特征图/>的编码数据进行算术解码,得到第二量化特征图/>之后,根据第二量化特征图/>的多个通道的特征值,确定至少一个边缘通道。
本实施例,获取码流,码流包括第一量化特征图的编码数据、第一超先验特征信息和区域描述信息,该区域描述信息用于表示待编码图像的感兴趣区域的位置。根据第一超先验特征信息和区域描述信息,对第一量化特征图的编码数据进行解码,以得到重建图像。由此,在编码过程中通过增大边缘通道的非感兴趣区域的量化步长,可以降低码率,并保证感兴趣区域的视觉效果。并且通过三维特征图确定边缘通道,可以实现基于待编码图像的个性化边缘码率调节。在解码过程中,可以根据码流的第一超先验特征信息和区域描述信息进行解码,以得到较高还原度的重建图像,在保证重建图像的质量的同时降低码率。
图像编码和解码方式二
图12A为本申请实施例提供的一种图像编码和解码方法的流程图,图12B为本申请实施例提供的一种图像编码和解码方法的示意图。本实施例的图像编码过程可由编码器20执行。本实施例的图像解码过程可由解码器30执行。本实施例描述为一系列的步骤或操作,应当理解的是,本实施例可以以各种顺序执行和/或同时发生,不限于图12A所示的执行顺序。本实施例为端到端图像压缩框架。如图12A所示,本实施例可以包括:
S1101、获取待编码图像。
S1102、将待编码图像输入编码网络,获取编码网络输出的三维特征图。
其中,S1101和S1102的解释说明,可以参见图5所示实施例的S501和S502,此处不再赘述。
S1103、根据三维特征图的多个通道各自的特征值,确定三维特征图的至少一个边缘通道,根据区域描述信息确定三维特征图的感兴趣区域,根据三维特征图的至少一个边缘通道和感兴趣区域,确定至少一个边缘通道的非感兴趣区域。
S1104、根据缩放系数,缩小至少一个边缘通道的非感兴趣区域的特征值,以得到调整后的三维特征图。
S1105、对调整后的三维特征图进行量化,以得到第一量化特征图。
S1106、将三维特征图输入熵估计网络,获取熵估计网络输出的第二量化特征图的概率分布。
其中,第二量化特征图为对三维特征图y进行量化得到的。
其中,熵估计网络可以包括超先验编码网络和超先验解码网络。将三维特征图y输入超先验编码网络,得到第一超先验特征信息将/>输入超先验解码网络,得到/>的概率分布,其均值与方差分别为μ和δ。由此,/>的概率分布的大小为W×H×2M。
S1107、对第一超先验特征信息进行算术编码,并根据第二量化特征图的概率分布,对第一量化特征图进行算术编码,并将区域描述信息写入码流,以生成码流。
码流包括第一量化特征图的编码数据、第一超先验特征信息和区域描述信息。
以上S1101至S1107为图像编码过程,本实施例中,码流需要携带上述区域描述信息。以下S1108至S1110为图像解码过程。
S1108、解析码流,获取第二量化特征图的概率分布,根据第二量化特征图的概率分布对第一量化特征图的编码数据进行算术解码,得到第二量化特征图,根据第二量化特征图确定一个或多个边缘通道。
解析码流,获取第一量化特征图的编码数据和第一超先验特征信息,将第一超先验特信息输入熵估计网络,获取熵估计网络输出的第二量化特征图的概率分布。例如,将第一超先验特信息输入超先验解码网络,获取超先验解码网络输出的第二量化特征图/>的概率分布。
其中,可以根据第二量化特征图确定一个或多个边缘通道。例如,可以统计第二量化特征图/>的各个通道的特征激活点数,当特征激活点数小于第一阈值时,则确定该通道为边缘通道。
S1109、解析码流的区域描述信息,并对一个或多个边缘通道的非感兴趣区域的概率分布参数进行调整,利用调整后的概率分布参数,对第一量化特征图的编码数据进行算术解码,得到第一量化特征图。
具体的,调整一个或多个边缘通道的非感兴趣区域的均值μ和方差δ。例如,μ′=μ×t2,δ′=δ×t2 2,μ′为调整后的均值,δ′为调整后的方差。利用调整后的概率分布参数,对第一量化特征图的编码数据进行算术解码,得到第一量化特征图
S1110、根据第一量化特征图,得到三维特征图。
结合图12B所示,当缩放系数不等于0时,将第一量化特征图中边缘通道内非ROI区域内的特征值除以缩放系数,得到三维特征图/>
S1111、根据三维特征图,得到重构图像。scale≠0scale=0
结合图12B所示,将三维特征图送入解码网络,得到重建图像/>该解码网络可以采用任一结构,例如全连接网络、卷积神经网络、循环神经网络等。该神经网络可以采用多层的结构深度神经网络结构来达到更好的估计效果。
本实施例,通过将待编码图像输入编码网络,获取编码网络输出的三维特征图,根据三维特征图的多个通道各自的特征值,确定三维特征图的至少一个边缘通道,根据至少一个边缘通道和区域描述信息,确定至少一个边缘通道的非感兴趣区域,根据缩放系数,缩小至少一个边缘通道的非感兴趣区域的特征值,以得到调整后的三维特征图,对调整后的三维特征图进行量化,以得到第一量化特征图,根据第一量化特征图的概率分布,对第一量化特征图进行算术编码,以生成码流。由此,通过缩放系数增大边缘通道的非感兴趣区域的量化步长,可以降低码率,并保证感兴趣区域的视觉效果。并且通过三维特征图确定边缘通道,可以实现基于待编码图像的个性化边缘码率调节。
本申请实施例提供的端到端图像编解码方法可以采用如下所述的优化方式进行优化,其中,端到端图像编解码方法的各个模块(例如,图8B或图12B所涉及的各个模块)可以联合调优。
优化方式一、使用率-失真损失函数Lfg优化:
Lfg=Lrate+α*L1 (2)
优化方式二、使用率-失真-感知损失函数Lsg优化,来改善主观感受
Lsg=Lrate+α*L1+β*(Lpercep+γLGAN) (3)
其中,Lpercep表示感知损失,LGAN表示对抗损失。
优化方式三、在优化方式二基础上,增强边缘,边缘增强损失函数Ltg优化
Ltg=Lrate+α*L1+β*(Lpercep+γLGAN)+δLedge (4)
其中,Ledge表示边缘损失。
优化方式一是针对客观指标的优化方式。使用均方差(Mean Square Error,MSE)等作为优化损失函数可以让模型在PSNR指标上达到最好。优化方式二是针对人眼主观质量的优化方式。除了使用优化方式一中的率-失真损失之外,还额外引入和感知损失和GAN损失。通过此种优化方式得到的重构图在客观指标上往往不如优化方式一性能好,但是可以得到非常接近人眼主观质量的重构图,但容易出现文字扭曲等现象。优化方式三加入了边缘增强,引入边缘损失,使得边缘部分与原图更加相似,改善了文字扭曲的缺陷。
其中,优化方式二的感知重建的实现主要是通过生成对抗训练(GenerativeAdversarial Training)的方式,为了实现这种训练方法,额外引入了辨别器(Discrim)模块,在GAN领域,除了辨别器之外,通常还有生成器(Generator)模块。对应到压缩框架中,生成器就等同于解码模块(例如,解码网络)。优化方式三的基于边缘增强的图像感知重建,采用了多种损失函数综合的方式,除了率失真损失函数外,还引入了感知损失、对抗损失以及边缘损失,即上述公式(4),使得文字扭曲的现象得到改善,能得到更好的视觉效果。
基于此,本申请实施例可以使用至少一个训练图像,对本申请实施例的端到端图像编解码方法的各个模块(例如,图8B或图12B所涉及的各个模块)进行联合调优,以对端到端图像编解码方法所涉及的神经网络(例如,编码网络、熵估计网络、解码网络)进行训练。
三维特征图的多个通道包括多个第一通道和多个第二通道。
其中,训练过程中对三维特征图的多个第一通道采用第一损失函数和第二损失函数进行优化,对三维特征图的多个第二通道采用第三损失函数进行优化,对三维特征图的优化后的多个第一通道和优化后的多个第二通道采用第一损失函数、第二损失函数和第三损失函数进行优化。
第一损失函数、第二损失函数和第三损失函数分别为率-失真损失函数、率-失真-感知损失函数、边缘增强损失函数中一项,且第一损失函数、第二损失函数和第三损失函数互不相同。
示例性的,在训练过程中,每次优化分三个阶段:(1)采用率-失真-感知损失函数和率-失真损失函数,对三维特征图的多个通道中前96个通道(即96个第一通道)进行优化,其余不变;(2)采用边缘增强损失函数,对三维特征图的多个通道中后96个通道(即96个第二通道)进行优化,其余不变;(3)采用所有损失函数,对三维特征图的优化后的96个第一通道和优化后的96个第二通道整体优化;对上述过程进行循环,可使得边缘特征与图像整体特征深度解耦。
上文结合附图对本申请实施例的图像编解码方法进行了详细的介绍,下面结合图13对本申请实施例的图像编码装置进行介绍。应理解,图像编码装置能够执行本申请实施例的图像编码方法。为了避免不必要的重复,下面在介绍本申请实施例的图像编码装置时适当省略重复的描述。
参见图13,图13为本申请实施例提供的一种图像编码装置的结构示意图。如图13所示,该图像编码装置1300可以包括:获取模块1301和编码模块1302。
获取模块1301,用于获取待编码图像。
编码模块1302,用于将该待编码图像输入编码网络,获取该编码网络输出的三维特征图;该编码网络具有增强该待编码图像的边缘的功能。该编码模块,还用于根据该三维特征图的多个通道各自的特征值,在该多个通道中确定至少一个边缘通道。该编码模块,还用于根据该至少一个边缘通道和区域描述信息,确定该至少一个边缘通道的非感兴趣区域;该区域描述信息用于表示该待编码图像的感兴趣区域的位置。该编码模块,还用于根据该至少一个边缘通道的非感兴趣区域,对该三维特征图进行量化,以得到第一量化特征图;该三维特征图的至少一个边缘通道的非感兴趣区域的量化步长大于感兴趣区域的量化步长。对该第一量化特征图进行算术编码,以生成码流。
在一些实施例中,该编码模块1302用于:根据该至少一个边缘通道的非感兴趣区域,缩小该三维特征图中的该非感兴趣区域的特征值,以得到调整后的三维特征图;对该调整后的三维特征图进行量化。
在一些实施例中,该编码模块1302用于:根据缩放系数,缩小该三维特征图中的该非感兴趣区域的特征值。
其中,scale表示该缩放系数,0≤scale<1。
在一些实施例中,该编码模块1302还用于:根据该至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定该缩放系数。
在一些实施例中,该编码模块1302用于:
根据公式scale=1-exp(-p*soft_factor),确定该缩放系数。
其中,p表示该特征激活点数、该特征能量或该特征均值,soft_factor表示该预设斜率。
在一些实施例中,该编码模块1302,用于:对该三维特征图进行量化,以得到第二量化特征图;将该三维特征图输入超先验编码网络,获取该超先验编码网络输出的第一超先验特征信息;将该第一超先验特征信息输入超先验解码网络,获取该超先验解码网络输出的该第二量化特征图的概率分布;对该第一超先验特征信息进行算术编码,并根据该第二量化特征图的概率分布,对该第一量化特征图进行算术编码,并将该区域描述信息写入该码流。
在一些实施例中,该编码模块1302,用于:将该调整后的三维特征图输入超先验编码网络,获取该超先验编码网络输出的第二超先验特征信息;将该第二超先验特征信息输入超先验解码网络,获取该超先验解码网络输出的该第一量化特征图的概率分布;对该第二超先验特征信息进行算术编码,并根据该第一量化特征图的概率分布,对该第一量化特征图进行算术编码。
在一些实施例中,该编码模块1302用于:根据该三维特征图的多个通道各自的特征激活点数、特征能量或特征均值,确定该三维特征图的至少一个边缘通道。
在一些实施例中,该三维特征图的任一边缘通道满足以下任一项:该边缘通道的特征激活点数小于第一阈值;或者,该边缘通道的特征能量小于第二阈值;或者,该边缘通道的特征均值小于第三阈值。
在一些实施例中,该装置还包括:训练模块1303;训练模块,用于使用至少一个训练图像,对该编码网络进行训练;三维特征图的多个通道包括多个第一通道和多个第二通道其中,训练过程中对三维特征图的多个第一通道采用第一损失函数和第二损失函数进行优化,对三维特征图的多个第二通道采用第三损失函数进行优化,对三维特征图的优化后的多个第一通道和优化后的多个第二通道采用该第一损失函数、该第二损失函数和该第三损失函数进行优化。
在一些实施例中,该第一损失函数、该第二损失函数和所述第三损失函数分别为率失真损失函数、感知损失函数、边缘增强损失函数中一项,且第一损失函数、第二损失函数和第三损失函数互不相同。
需要说明的是,图像编码装置1300可以执行图5或图8A或图12A任一所示实施例的编码方法。具体的实现原理和技术效果可以参考上述方法实施例的具体解释说明,此处不再赘述。
下面结合图14对本申请实施例的图像解码装置进行介绍。应理解,图像解码装置能够执行本申请实施例的图像解码方法。为了避免不必要的重复,下面在介绍本申请实施例的图像解码装置时适当省略重复的描述。
参见图14,图14为本申请实施例提供的一种图像解码装置的结构示意图。如图14所示,该图像编码装置1400可以包括:获取模块1401和解码模块1402。
获取模块1401,用于获取码流;该码流包括第一量化特征图的编码数据、第一超先验特征信息和区域描述信息;该区域描述信息用于表示该待编码图像的感兴趣区域的位置。
解码模块1402,用于根据该第一超先验特征信息和该区域描述信息,对该第一量化特征图的编码数据进行解码,以得到重建图像。
在一些实施例中,该解码模块1402用于:根据该第一超先验特征信息和该第一量化特征图的编码数据,确定至少一个边缘通道;根据该至少一个边缘通道和该区域描述信息,确定该至少一个边缘通道的非感兴趣区域;根据该至少一个边缘通道的非感兴趣区域和该第一超先验特征信息,对该第一量化特征图的编码数据进行解码。
在一些实施例中,该解码模块1402用于:根据该第一超先验特征信息,对该第一量化特征图的编码数据进行算术解码,以得到第一量化特征图;根据该至少一个边缘通道的非感兴趣区域,增大该第一量化特征图中的该非感兴趣区域的特征值,以得到三维特征图;将该三维特征图输入解码网络,获取该解码网络输出的该重建图像。
在一些实施例中,该解码模块1402用于:根据缩放系数,增大该第一量化特征图中的该非感兴趣区域的特征值;
其中,scale表示该缩放系数,0≤scale<1。
在一些实施例中,该解码模块1402还用于:根据该至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定该缩放系数。
在一些实施例中,该解码模块1402用于:
根据公式sclae=1-exp(-p*soft_factor),确定该缩放系数。
其中,p表示该特征激活点数、该特征能量或该特征均值,soft_factor表示该预设斜率。
需要说明的是,图像编码装置1300可以执行图11或图12A任一所示实施例的解码方法。具体的实现原理和技术效果可以参考上述方法实施例的具体解释说明,此处不再赘述。
以上各实施例中提及的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (32)
1.一种图像编码方法,其特征在于,包括:
获取待编码图像;
将所述待编码图像输入编码网络,获取所述编码网络输出的三维特征图,所述编码网络具有增强所述待编码图像的边缘的功能;
根据所述三维特征图的多个通道各自的特征值,在所述多个通道中确定至少一个边缘通道;
根据所述至少一个边缘通道和区域描述信息,确定所述至少一个边缘通道的非感兴趣区域,所述区域描述信息用于表示所述待编码图像的感兴趣区域的位置;
根据所述至少一个边缘通道的非感兴趣区域,对所述三维特征图进行量化,以得到第一量化特征图,所述至少一个边缘通道的非感兴趣区域的量化步长大于所述感兴趣区域的量化步长;
对所述第一量化特征图进行算术编码,以生成码流。
2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个边缘通道的非感兴趣区域,对所述三维特征图进行量化,包括:
根据所述至少一个边缘通道的非感兴趣区域,缩小所述三维特征图中的所述非感兴趣区域的特征值,以得到调整后的三维特征图;
对所述调整后的三维特征图进行量化。
3.根据权利要求2所述的方法,其特征在于,所述缩小所述三维特征图中的所述非感兴趣区域的特征值,包括:
根据缩放系数,缩小所述三维特征图中的所述非感兴趣区域的特征值;
其中,scale表示所述缩放系数,0≤scale<1。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定所述缩放系数。
5.根据权利要求4所述的方法,其特征在于,所述根据所述至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定所述缩放系数,包括:
根据公式scale=1-exp(-p*soft_factor),确定所述缩放系数;
其中,p表示所述特征激活点数、所述特征能量或所述特征均值,soft_factor表示所述预设斜率。
6.根据权利要求2至5任一项所述的方法,其特征在于,所述对所述第一量化特征图进行算术编码,包括:
对所述三维特征图进行量化,以得到第二量化特征图;
将所述三维特征图输入超先验编码网络,获取所述超先验编码网络输出的第一超先验特征信息;
将所述第一超先验特征信息输入超先验解码网络,获取所述超先验解码网络输出的所述第二量化特征图的概率分布;
对所述第一超先验特征信息进行算术编码,并根据所述第二量化特征图的概率分布,对所述第一量化特征图进行算术编码,并将所述区域描述信息写入所述码流。
7.根据权利要求2至5任一项所述的方法,其特征在于,所述对所述第一量化特征图进行算术编码,包括:
将所述调整后的三维特征图输入超先验编码网络,获取所述超先验编码网络输出的第二超先验特征信息;
将所述第二超先验特征信息输入超先验解码网络,获取所述超先验解码网络输出的所述第一量化特征图的概率分布;
对所述第二超先验特征信息进行算术编码,并根据所述第一量化特征图的概率分布,对所述第一量化特征图进行算术编码。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述根据所述三维特征图的多个通道各自的特征值,在所述多个通道中确定至少一个边缘通道,包括:
根据所述三维特征图的多个通道各自的特征激活点数、特征能量或特征均值,确定所述三维特征图的至少一个边缘通道。
9.根据权利要求8所述的方法,其特征在于,所述三维特征图的任一边缘通道满足以下任一项:
所述边缘通道的特征激活点数小于第一阈值;或者,
所述边缘通道的特征能量小于第二阈值;或者,
所述边缘通道的特征均值小于第三阈值。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述方法还包括:
使用至少一个训练图像,对所述编码网络进行训练;
所述三维特征图的多个通道包括多个第一通道和多个第二通道;
其中,训练过程中对所述三维特征图的多个第一通道采用第一损失函数和第二损失函数进行优化,对所述三维特征图的多个第二通道采用第三损失函数进行优化,对三维特征图的优化后的所述多个第一通道和优化后的所述多个第二通道采用所述第一损失函数、所述第二损失函数和所述第三损失函数进行优化。
11.根据权利要求10所述的方法,其特征在于,所述第一损失函数、所述第二损失函数和所述第三损失函数分别为率失真损失函数、感知损失函数、边缘增强损失函数中一项,且所述第一损失函数、所述第二损失函数和所述第三损失函数互不相同。
12.一种图像解码方法,其特征在于,包括:
获取码流;所述码流包括第一量化特征图的编码数据、第一超先验特征信息和区域描述信息,所述区域描述信息用于表示所述待编码图像的感兴趣区域的位置;
根据所述第一超先验特征信息和所述区域描述信息,对所述第一量化特征图的编码数据进行解码,以得到重建图像。
13.根据权利要求12所述的方法,其特征在于,所述根据所述第一超先验特征信息和所述区域描述信息,对所述第一量化特征图的编码数据进行解码,包括:
根据所述第一超先验特征信息和所述第一量化特征图的编码数据,确定至少一个边缘通道;
根据所述至少一个边缘通道和所述区域描述信息,确定所述至少一个边缘通道的非感兴趣区域;
根据所述至少一个边缘通道的非感兴趣区域和所述第一超先验特征信息,对所述第一量化特征图的编码数据进行解码。
14.根据权利要求13所述的方法,其特征在于,所述根据所述至少一个边缘通道的非感兴趣区域和所述第一超先验特征信息,对所述第一量化特征图的编码数据进行解码,包括:
根据所述第一超先验特征信息,对所述第一量化特征图的编码数据进行算术解码,以得到所述第一量化特征图;
根据所述至少一个边缘通道的非感兴趣区域,增大所述第一量化特征图中的所述非感兴趣区域的特征值,以得到三维特征图;
将所述三维特征图输入解码网络,获取所述解码网络输出的所述重建图像。
15.根据权利要求14所述的方法,其特征在于,所述增大所述第一量化特征图中的所述非感兴趣区域的特征值,包括:
根据缩放系数,增大所述第一量化特征图中的所述非感兴趣区域的特征值;
其中,scale表示所述缩放系数,0≤scale<1。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
根据所述至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定所述缩放系数。
17.根据权利要求16所述的方法,其特征在于,所述根据所述至少一个边缘通道的特征激活点数、特征能量或特征均值中任意一项,以及预设斜率,确定所述缩放系数,包括:
根据公式scale=1-exp(-p*soft_factor),确定所述缩放系数;
其中,p表示所述特征激活点数、所述特征能量或所述特征均值,soft_factor表示所述预设斜率。
18.一种图像编码装置,其特征在于,包括:
获取模块,用于获取待编码图像;
编码模块,用于将所述待编码图像输入编码网络,获取所述编码网络输出的三维特征图,所述编码网络具有增强所述待编码图像的边缘的功能;
所述编码模块,还用于根据所述三维特征图的多个通道各自的特征值,在所述多个通道中确定至少一个边缘通道;
所述编码模块,还用于根据所述至少一个边缘通道和区域描述信息,确定所述至少一个边缘通道的非感兴趣区域,所述区域描述信息用于表示所述待编码图像的感兴趣区域的位置;
所述编码模块,还用于根据所述至少一个边缘通道的非感兴趣区域,对所述三维特征图进行量化,以得到第一量化特征图,所述三维特征图的至少一个边缘通道的非感兴趣区域的量化步长大于所述感兴趣区域的量化步长;以及对所述第一量化特征图进行算术编码,以生成码流。
19.根据权利要求18所述的装置,其特征在于,所述编码模块用于:
根据所述至少一个边缘通道的非感兴趣区域,缩小所述三维特征图中的所述非感兴趣区域的特征值,以得到调整后的三维特征图;
对所述调整后的三维特征图进行量化。
20.根据权利要求19所述的装置,其特征在于,所述编码模块,用于:
对所述三维特征图进行量化,以得到第二量化特征图;
将所述三维特征图输入超先验编码网络,获取所述超先验编码网络输出的第一超先验特征信息;
将所述第一超先验特征信息输入超先验解码网络,获取所述超先验解码网络输出的所述第二量化特征图的概率分布;
对所述第一超先验特征信息进行算术编码,并根据所述第二量化特征图的概率分布,对所述第一量化特征图进行算术编码,并将所述区域描述信息写入所述码流。
21.根据权利要求19所述的装置,其特征在于,所述编码模块,用于:
将所述调整后的三维特征图输入超先验编码网络,获取所述超先验编码网络输出的第二超先验特征信息;
将所述第二超先验特征信息输入超先验解码网络,获取所述超先验解码网络输出的所述第一量化特征图的概率分布;
对所述第二超先验特征信息进行算术编码,并根据所述第一量化特征图的概率分布,对所述第一量化特征图进行算术编码。
22.根据权利要求18至21任一项所述的装置,其特征在于,所述编码模块用于:
根据所述三维特征图的多个通道各自的特征激活点数、特征能量或特征均值,确定所述三维特征图的至少一个边缘通道,其中,所述三维特征图的任一边缘通道满足以下任一项:
所述边缘通道的特征激活点数小于第一阈值;或者,
所述边缘通道的特征能量小于第二阈值;或者,
所述边缘通道的特征均值小于第三阈值。
23.根据权利要求18至22任一项所述的装置,其特征在于,所述装置还包括:训练模块;
训练模块,用于使用至少一个训练图像,对所述编码网络进行训练;
所述三维特征图的多个通道包括多个第一通道和多个第二通道;
其中,训练过程中对所述三维特征图的多个第一通道采用第一损失函数和第二损失函数进行优化,对所述三维特征图的多个第二通道采用第三损失函数进行优化,对三维特征图的优化后的所述多个第一通道和优化后的所述多个第二通道采用所述第一损失函数、所述第二损失函数和所述第三损失函数进行优化。
24.一种图像解码装置,其特征在于,包括:
获取模块,用于获取码流;所述码流包括第一量化特征图的编码数据、第一超先验特征信息和区域描述信息,所述区域描述信息用于表示所述待编码图像的感兴趣区域的位置;
解码模块,用于根据所述第一超先验特征信息和所述区域描述信息,对所述第一量化特征图的编码数据进行解码,以得到重建图像。
25.根据权利要求24所述的装置,其特征在于,所述解码模块用于:
根据所述第一超先验特征信息和所述第一量化特征图的编码数据,确定至少一个边缘通道;
根据所述至少一个边缘通道和所述区域描述信息,确定所述至少一个边缘通道的非感兴趣区域;
根据所述至少一个边缘通道的非感兴趣区域和所述第一超先验特征信息,对所述第一量化特征图的编码数据进行解码。
26.根据权利要求25所述的装置,其特征在于,所述解码模块用于:
根据所述第一超先验特征信息,对所述第一量化特征图的编码数据进行算术解码,以得到所述第一量化特征图;
根据所述至少一个边缘通道的非感兴趣区域,增大所述第一量化特征图中的所述非感兴趣区域的特征值,以得到三维特征图;
将所述三维特征图输入解码网络,获取所述解码网络输出的所述重建图像。
27.根据权利要求26所述的装置,其特征在于,所述解码模块用于:
根据缩放系数,增大所述第一量化特征图中的所述非感兴趣区域的特征值;
其中,scale表示所述缩放系数,0≤scale<1;
scale=1-exp(-p*soft_factor);
其中,p表示所述至少一个边缘通道的特征激活点数、特征能量或特征均值,soft_factor表示预设斜率。
28.一种图像编码装置,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11中任一项所述的方法。
29.一种图像解码装置,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求12-17中任一项所述的方法。
30.一种计算机可读存储介质,其特征在于,包括根据权利要求1-11中任一项所述的方法获得的码流。
31.一种计算机程序产品,其特征在于,当计算机程序产品在计算机上运行时,使得计算机执行如权利要求1-11中任一项所述的图像编码方法或执行如权利要求12-17中任一项所述的图像解码方法。
32.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如权利要求1-11中任一项所述的图像编码方法或执行如权利要求12-17中任一项所述的图像解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210224695.6A CN116797674A (zh) | 2022-03-07 | 2022-03-07 | 图像编解码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210224695.6A CN116797674A (zh) | 2022-03-07 | 2022-03-07 | 图像编解码方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116797674A true CN116797674A (zh) | 2023-09-22 |
Family
ID=88042408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210224695.6A Pending CN116797674A (zh) | 2022-03-07 | 2022-03-07 | 图像编解码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116797674A (zh) |
-
2022
- 2022-03-07 CN CN202210224695.6A patent/CN116797674A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230209096A1 (en) | Loop filtering method and apparatus | |
US20230336776A1 (en) | Method for chroma subsampled formats handling in machine-learning-based picture coding | |
JP2023548507A (ja) | セグメンテーション情報のシグナリングを用いた復号化 | |
US20230336736A1 (en) | Method for chroma subsampled formats handling in machine-learning-based picture coding | |
WO2023279961A1 (zh) | 视频图像的编解码方法及装置 | |
US20240037802A1 (en) | Configurable positions for auxiliary information input into a picture data processing neural network | |
CN114915783A (zh) | 编码方法和装置 | |
WO2023193629A1 (zh) | 区域增强层的编解码方法和装置 | |
TWI826160B (zh) | 圖像編解碼方法和裝置 | |
WO2022063267A1 (zh) | 帧内预测方法及装置 | |
CN117321989A (zh) | 基于神经网络的图像处理中的辅助信息的独立定位 | |
CN116797674A (zh) | 图像编解码方法和装置 | |
CN115118972A (zh) | 视频图像的编解码方法及相关设备 | |
US20240161488A1 (en) | Independent positioning of auxiliary information in neural network based picture processing | |
CN114979711B (zh) | 音视频或图像分层压缩方法和装置 | |
WO2023279968A1 (zh) | 视频图像的编解码方法及装置 | |
US20240015314A1 (en) | Method and apparatus for encoding or decoding a picture using a neural network | |
WO2023172153A1 (en) | Method of video coding by multi-modal processing | |
CN118020306A (zh) | 视频编解码方法、编码器、解码器及存储介质 | |
WO2024083405A1 (en) | Neural network with a variable number of channels and method of operating the same | |
WO2024002496A1 (en) | Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq | |
CN117478902A (zh) | 应用于电子设备的图像显示方法、编码方法及相关装置 | |
WO2024002497A1 (en) | Parallel processing of image regions with neural networks – decoding, post filtering, and rdoq | |
CN117501696A (zh) | 使用在分块之间共享的信息进行并行上下文建模 | |
CN115834888A (zh) | 特征图编解码方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |