CN112715029A - Ai编码设备及其操作方法和ai解码设备及其操作方法 - Google Patents
Ai编码设备及其操作方法和ai解码设备及其操作方法 Download PDFInfo
- Publication number
- CN112715029A CN112715029A CN201980060231.2A CN201980060231A CN112715029A CN 112715029 A CN112715029 A CN 112715029A CN 201980060231 A CN201980060231 A CN 201980060231A CN 112715029 A CN112715029 A CN 112715029A
- Authority
- CN
- China
- Prior art keywords
- image
- value
- dnn
- layer
- result
- 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
- 238000011017 operating method Methods 0.000 title description 8
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 489
- 230000015654 memory Effects 0.000 claims abstract description 52
- 238000010606 normalization Methods 0.000 claims abstract description 33
- 230000001131 transforming effect Effects 0.000 claims abstract description 33
- 238000012549 training Methods 0.000 claims description 226
- 238000000034 method Methods 0.000 claims description 98
- 230000004913 activation Effects 0.000 claims description 92
- 230000006870 function Effects 0.000 claims description 82
- 238000009826 distribution Methods 0.000 claims description 27
- 238000013528 artificial neural network Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 description 65
- 230000009467 reduction Effects 0.000 description 41
- 238000010586 diagram Methods 0.000 description 38
- 238000003199 nucleic acid amplification method Methods 0.000 description 34
- 230000003321 amplification Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 22
- 230000009466 transformation Effects 0.000 description 21
- 239000003638 chemical reducing agent Substances 0.000 description 17
- 238000007906 compression Methods 0.000 description 16
- 230000006835 compression Effects 0.000 description 16
- 239000006185 dispersion Substances 0.000 description 16
- 238000013139 quantization Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 238000003672 processing method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 210000003792 cranial nerve Anatomy 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4046—Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
- H04N19/423—Methods 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 characterised by memory arrangements
- H04N19/426—Methods 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 characterised by memory arrangements using memory downsizing methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Neurology (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Abstract
提供一种人工智能(AI)解码设备,所述AI解码设备包括:存储器,存储一个或更多个指令;以及处理器,被配置为执行所述一个或更多个指令以进行以下操作:当图像被输入到包括多个层的第二DNN,从所述多个层中的包括第一滤波器核和第二滤波器核的第一层,基于所述图像与第一滤波器核之间的运算获得第一结果值并且基于第二图像与第二滤波器核之间的运算获得第二结果值,通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化,将第一值和第二值变换为包括在预设范围内的整数值。
Description
技术领域
本公开涉及一种包括用于对图像进行人工智能(AI)缩小的深度神经网络(DNN)的AI编码设备和AI编码设备的操作方法以及涉及一种包括用于对图像进行AI放大的DNN的AI解码设备和AI解码设备的操作方法,更具体地,涉及一种用于减少在DNN中包括的多个卷积层中执行卷积运算所需的存储器的量和计算量的AI编码设备和AI编码设备的操作方法以及用于减少在DNN中包括的多个卷积层中执行卷积运算所需的存储器的量和计算量的AI解码设备和AI解码设备的操作方法。
背景技术
图像数据由符合指定的数据压缩标准(例如,运动图像专家组(MPEG)压缩标准)的编解码器编码,然后存储在记录介质中或经由通信信道以比特流的形式发送。
随着用于再现和存储高分辨率/高质量图像的硬件的开发和供应,对能够有效地对高分辨率/高质量图像进行编码和解码的编解码器的需求正在增加。
卷积神经网络(CNN)可包括一个或更多个卷积层,在每个卷积层中,可对输入数据和核中包括的权重执行卷积运算。
CNN需要大量存储器来存储在卷积层之间输出的中间结果值。在CNN中,可执行低精度变换以减少所需的存储器的量。当执行低精度变换时,可能出现变换误差,因此,需要一种使该变换误差最小化的方法。
发明内容
技术方案
提供了一种能够在以低精度表示在AI解码设备中包括的第二DNN中生成的中间结果值时使变换误差最小化的AI解码设备和AI解码设备的操作方法。
有益效果
根据本公开的实施例的AI编码设备可通过以低精度表示在通过使用第一DNN对图像进行缩小期间生成的中间结果值来减少必要的存储器的量,并且可通过在将中间结果值变换为低精度值期间使变换误差最小化来改善第一DNN的性能。
根据本公开实施例的AI编码设备还可通过将可训练的激活函数应用于第一DNN来改善第一DNN的性能。
根据本公开的实施例的AI解码设备可通过以低精度表示在通过使用第二DNN对图像进行放大期间生成的中间结果值来减少必要的存储器的量,并且可通过在将中间结果值变换为低精度值期间使变换误差最小化来改善第二DNN的性能。
在AI编码设备包括提供经AI缩小的图像的服务器并且AI解码设备包括接收经AI缩小的图像的终端的系统中,可减少用于存储在对从终端接收的图像进行AI放大期间生成的中间结果值所需的存储器的量,从而提高系统的效率。
根据本公开的实施例的AI解码设备可通过将可训练的激活函数应用于第二DNN来改善第二DNN的性能。
附图说明
从结合附图的以下描述,本公开的特定实施例的以上和其他方面、特征和优点将更加显而易见,其中:
图1是用于描述根据实施例的人工智能(AI)编码处理和AI解码处理的示图;
图2是根据实施例的AI解码设备的配置的框图;
图3是示出用于对第二图像执行AI放大的第二深度神经网络(DNN)的示图;
图4是用于描述由卷积层的卷积运算的示图;
图5是示出若干条图像相关信息与若干条DNN设置信息之间的映射关系的表;
图6是示出包括多个帧的第二图像的示图;
图7是根据实施例的AI编码设备的配置的框图;
图8是示出用于对原始图像执行AI缩小的第一DNN的示图;
图9是用于描述训练第一DNN和第二DNN的方法的示图。
图10是用于描述由训练设备对第一DNN和第二DNN的训练处理的示图。
图11是用于对原始图像执行AI缩小的设备和用于对第二图像执行AI放大的设备的示图。
图12是示出根据本公开的实施例的DNN的结构的框图;
图13是用于描述图12的第一层中的数据处理方法的示图;
图14是根据本公开的实施例的低精度变换单元的结构的框图;
图15是用于描述根据本公开的实施例的由低精度变换单元执行的数据处理方法的示图;
图16是用于描述根据本公开的实施例的确定缩放因子的方法的示图;
图17示出根据本公开的实施例的激活函数;
图18是根据本公开的实施例的AI编码设备的操作方法的流程图;
图19是根据本公开的实施例的AI解码设备的操作方法的流程图;
图20是根据本公开的实施例的AI编码设备的结构的框图;以及
图21是根据本公开的实施例的AI解码设备的结构的框图。
最佳模式
提供了一种能够在以低精度表示在AI解码设备中包括的第二DNN中生成的中间结果值时使变换误差最小化的AI解码设备和AI解码设备的操作方法。
另外的方面将部分地在下面的描述中阐述,并且部分地将从描述中显而易见,或者可以通过实践本公开的所呈现的实施例来学习。
根据本公开的实施例,一种AI解码设备,包括:存储器,存储一个或更多个指令;以及处理器,被配置为执行存储的所述一个或更多个指令以进行以下操作:获得通过使用第一深度神经网络(DNN)对原始图像进行缩小获得的第一图像图像数据;基于所述图像数据获得作为第一图像的重建图像的第二图像;将第二图像输入到包括多个层的第二DNN,其中,所述多个层包括第一层和第二层,第一层包括第一滤波器核和第二滤波器核;基于第二图像与第一滤波器核之间的运算获得第一结果值,并且基于第二图像与第二滤波器核之间的运算获得第二结果值;通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化;将第一值和第二值变换为包括在预设范围内的整数值;将所述整数值输入到第二层,在第二层中基于所述整数值获得第三结果值,并且通过基于第三结果值对第二图像进行放大来获得第三图像,其中,第一缩放因子和第二缩放因子与第一DNN的缩放因子相关联地被设置。
第二DNN可以是基于在第一DNN的训练期间获得的图像结合第一DNN被训练出的网络,并且第一缩放因子和第二缩放因子可经由对第二DNN和第一DNN的训练被设置。
第一缩放因子和第二缩放因子可被训练使得第一值的正态分布变得等于第二值的正态分布。
处理器还可被配置为将第一值和第二值裁剪到所述预设范围并且将经裁剪的第一值和第二值变换为所述整数值。
处理器还可被配置为通过对经裁剪的第一值和第二值进行舍入来将经裁剪的第一值和第二值变换为所述整数值。
处理器还可被配置为将所述整数值存储在存储器中。
存储所述整数值的存储器的大小可基于所述预设范围被确定。
处理器还可被配置为:通过执行第二图像与第一滤波器核之间的卷积运算来生成第一特征图,并且通过将第一激活函数应用于第一特征图来获得第一结果值。处理器还可被配置为:通过执行第二图像与第二滤波器核之间的卷积运算来生成第二特征图,并且通过将第二激活函数应用于第二特征图来获得第二结果值。
第一激活函数中的b的值可不同于第二激活函数中的b的值。
根据本公开的实施例,一种AI编码设备,包括:存储器,存储一个或更多个指令;以及处理器,被配置为执行存储的所述一个或更多个指令以进行以下操作:将原始图像输入到包括多个层的第一深度神经网络(DNN),其中,所述多个层包括第一层和第二层,第一层包括第一滤波器核和第二滤波器核;基于所述原始图像与第一滤波器核之间的运算获得第一结果值,并且基于所述原始图像与第二滤波器核之间的运算获得第二结果值;通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化;将第一值和第二值变换为包括在预设范围内的整数值;将所述整数值输入到第二层,在第二层中基于所述整数值获得第三结果值,通过基于第三结果值对所述原始图像进行缩小来获得第一图像,并且对第一图像进行编码,其中,第一缩放因子和第二缩放因子与被配置为对第一图像进行放大的第二DNN的缩放因子相关联地被设置。
第一DNN可以是基于在第二DNN的训练期间获得的损失信息结合第二DNN被训练出的网络。第一缩放因子和第二缩放因子可经由对第二DNN和第一DNN的训练被设置。
第一DNN可以是基于在第一DNN的训练期间通过进行AI缩小生成的第一损失信息和在第二DNN的训练期间通过进行AI放大生成的第二损失信息被训练出的网络。
第一缩放因子和第二缩放因子可被训练使得第一值的正态分布变得等于第二值的正态分布。
处理器还可被配置为将第一值和第二值裁剪到所述预设范围并且将经裁剪的第一值和第二值变换为所述整数值。
处理器还可被配置为通过对经裁剪的第一值和第二值进行舍入来将经裁剪的第一值和第二值变换为所述整数值。
处理器还可被配置为将所述整数值存储在存储器中。
存储所述整数值的存储器的大小可基于所述预设范围被确定。
根据本公开的实施例,一种AI解码设备的操作方法可包括:获得与通过使用第一深度神经网络(DNN)对原始图像进行缩小获得的第一图像相应的图像数据;基于所述图像数据获得作为第一图像的重建图像的第二图像;将第二图像输入到包括多个层的第二DNN,其中,所述多个层包括第一层和第二层,第一层包括第一滤波器核和第二滤波器核;基于第二图像与第一滤波器核之间的运算获得第一结果值,并且基于第二图像与第二滤波器核之间的运算获得第二结果值;通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化;将第一值和第二值变换为包括在预设范围内的整数值;将所述整数值输入到第二层,并在第二层中基于所述整数值获得第三结果值;并且通过基于第三结果值对第二图像进行放大来获得第三图像,其中,第一缩放因子和第二缩放因子与第一DNN的缩放因子相关联地被设置。
根据本公开的实施例,一种AI编码设备的操作方法可包括:将原始图像输入到包括多个层的第一深度神经网络(DNN),其中,所述多个层包括第一层和第二层,第一层包括第一滤波器核和第二滤波器核;基于所述原始图像与第一滤波器核之间的运算获得第一结果值,并且基于所述原始图像与第二滤波器核之间的运算获得第二结果值;通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化;将第一值和第二值变换为包括在预设范围内的整数值;将所述整数值输入到第二层,并且在第二层中基于所述整数值获得第三结果值;通过基于第三结果值对所述原始图像进行缩小来获得第一图像;并且对第一图像进行编码,其中,第一缩放因子和第二缩放因子与被配置为对第一图像进行放大的第二DNN的缩放因子相关联地被设置。
根据本公开的实施例,一种人工智能(AI)解码设备可包括:存储器,存储一个或更多个指令;以及处理器,被配置为执行存储的所述一个或更多个指令以进行以下操作:接收由第一深度神经网络(DNN)缩小的经缩小的图像,将经缩小的图像输入到第二深度神经网络的第一层,从第二DNN的第一层获得第一值和第二值,其中,第一值和第二值分别表示经缩小的图像的第一特征图和第二特征图;通过分别基于第一缩放因子和第二缩放因子对第一值和第二值进行归一化并且将经归一化的第一值和经归一化的第二值变换为当前范围内的整数值来对第一值和第二值执行变换运算,将所述整数值输入到第二DNN的第二层,并且从第二DNN的第二层获得与经缩小的图像相应的经放大的图像,其中,第一缩放因子和第二缩放因子与第一DNN的缩放因子相关联地被设置。
根据本公开的实施例,一种人工智能(AI)编码设备可包括:存储器,存储一个或更多个指令;以及处理器,被配置为执行存储的所述一个或更多个指令以进行以下操作:将原始图像输入到第一深度神经网络(DNN)的第一层,从第一DNN的第一层获得第一值和第二值,其中,第一值和第二值分别表示原始图像的第一特征图和第二特征图;通过分别基于第一缩放因子和第二缩放因子对第一值和第二值进行归一化并将经归一化的第一值和经归一化的第二值变换为当前范围内的整数值来对第一值和第二值执行变换运算,将所述整数值输入到第一DNN的第二层以获得经缩小的图像,并且将经缩小的图像发送到被配置为对经缩小的图像进行放大的第二DNN,其中,第一缩放因子和第二缩放因子与第二DNN的缩放因子相关联地被设置。
具体实施方式
本公开的实施例提供了用于对图像执行人工智能(AI)编码和AI解码的设备和方法,其中,基于AI对图像进行编码和解码以实现低比特率并且使低精度变换误差最小化。
由于本公开允许各种改变和许多示例,因此将在附图中示出并在书面描述中详细描述实施例。然而,这并不旨在将本公开限制于实践的模式,并且将理解,不脱离本公开的精神和技术范围的全部改变、等同和替代都被包含在本公开中。
在实施例的描述中,当认为对相关技术的详细解释可能不必要地使本公开的本质模糊时,省略对相关技术的详细解释。此外,在说明书的描述中使用的数字(例如,第一、第二等)是用于将一个元素与另一元素区分开的标识符代码。
此外,在本说明书中,将理解,当元件彼此“连接”或“耦接”时,所述元件可彼此直接连接或耦接,但是可以可选地,在所述元件之间有中间元件的情况下彼此连接或耦接,除非另有指定。
在本说明书中,对于被表示为“单元”或“模块”的元件,可将两个或更多个元件组合为一个元件,或者可根据细分的功能将一个元件划分为两个或更多个元件。此外,在下文中描述的每个元件除了其主要功能之外,还可另外执行由另一元件执行的一些或全部功能,并且每个元件的一些主要功能可完全由另一组件来执行。
此外,在本说明书中,“图像”或“画面”可表示静止图像、包括多个连续静止图像(或帧)的运动图像或者视频。
此外,在本说明书中,深度神经网络(DNN)是一种模拟脑神经的人工神经网络模型的代表性示例,并且不限于使用算法的人工神经网络模型。
此外,在本说明书中,“参数”是在形成神经网络的每一层的运算处理中使用的值,并且例如,“参数”可包括在将输入值应用于运算表达式时使用的权重。这里,参数可以以矩阵形式来表示。参数是作为训练的结果而设置的值,并且可通过单独的训练数据被更新。
此外,在本说明书中,“第一DNN”指示用于对图像进行人工智能(AI)缩小的DNN,“第二DNN”指示用于对图像进行AI放大的DNN。
此外,在本说明书中,“DNN设置信息”包括与构成DNN的元素相关的信息。“DNN设置信息”包括上述作为与构成DNN的元素相关的信息的参数。可通过使用DNN设置信息来设置第一DNN或第二DNN。
此外,在本说明书中,“原始图像”表示作为AI编码的对象的图像,并且“第一图像”表示作为在AI编码处理期间对原始图像执行AI缩小的结果而获得的图像。此外,“第二图像”表示在AI解码处理期间经由第一解码而获得的图像,并且“第三图像”表示在AI解码处理期间通过对第二图像进行AI放大而获得的图像。
此外,在本说明书中,“AI缩小”表示基于AI降低图像的分辨率的处理,并且“第一编码”表示根据基于频率变换的图像压缩方法的编码处理。此外,“第一解码”表示根据基于频率变换的图像重建方法的解码处理,“AI放大”表示基于AI增大图像的分辨率的处理。
诸如“……中的至少一个”的表述在元素列表之后时修饰整个元素列表,而非修饰列表的各个元素。例如,表述“a、b或c中的至少一个”指示仅a、仅b、仅c、a和b两者、a和c两者、b和c两者、a、b和c全部或其变体。
图1是用于描述根据实施例的AI编码处理和AI解码处理的示图。
如上所述,当图像的分辨率显著增大时,用于对图像进行编码和解码的信息的吞吐量增加,因此,需要一种用于提高图像的编码和解码效率的方法。
如图1中所示,根据本公开的实施例,通过对具有高分辨率的原始图像105执行AI缩小110来获得第一图像115。然后,对具有相对低分辨率的第一图像115执行第一编码120和第一解码130,因此与对原始图像105执行第一编码120和第一解码130时相比,比特率可大大降低。
在图1中,根据实施例,通过对原始图像105执行AI缩小110来获得第一图像115,并且在AI编码处理期间对第一图像115执行第一编码120。在AI解码处理期间,接收作为AI编码的结果而获得的包括AI数据和图像数据的AI编码数据,经由第一解码130获得第二图像135,并且通过对第二图像135执行AI放大140来获得第三图像145。
详细参照AI编码处理,当接收到原始图像105时,对原始图像105执行AI缩小110以获得特定分辨率或特定质量的第一图像115。这里,基于AI来执行AI缩小110,并且用于AI缩小110的AI与用于对第二图像135的AI放大140的AI联合训练。这是因为,AI缩小110和AI放大120具有对图像进行缩小和放大的两个竞争目标,因此,当用于AI缩小110的AI和用于AI放大140的AI被单独训练时,作为AI编码的对象的原始图像105与通过AI解码重建的第三图像145之间的差异会增大。
在本公开的实施例中,AI数据可被用于在AI编码处理和AI解码处理期间保持这样的联合关系。因此,通过AI编码处理获得的AI数据可包括指示放大目标的信息,并且在AI解码处理期间,根据基于AI数据验证的放大目标对第二图像135执行AI放大140。
用于AI缩小110的AI和用于AI放大140的AI可被实施为DNN。如稍后将参照图9描述的,因为通过在目标下共享损失信息来联合训练第一DNN和第二DNN,所以AI编码设备可将在第一DNN和第二DNN的联合训练期间使用的目标信息提供给AI解码设备,并且AI解码设备可基于所提供的目标信息对第二图像135执行AI放大140以达到目标分辨率。
关于图1的第一编码120和第一解码130,可通过第一编码120来减少通过对原始图像105执行AI缩小110而获得的第一图像115的信息量。第一编码120可包括通过对第一图像115进行预测来生成预测数据的处理、生成与第一图像115与预测数据之间的差对应的残差数据的处理、将空间域分量的残差数据变换为频域分量的处理、对变换为频域分量的残差数据进行量化的处理、以及对量化的残差数据进行熵编码的处理。这样的第一编码120可经由使用频率变换的图像压缩方法(诸如MPEG-2、H.264高级视频编码(AVC)、MPEG-4、高效视频编码(HEVC)、VC-1、VP8、VP9和AOMedia Video1(AV1))中的一种来执行。
可通过对图像数据执行第一解码130来重建与第一图像115对应的第二图像135。第一解码130可包括通过对图像数据进行熵解码来生成量化的残差数据的处理、对量化的残差数据进行反量化的处理、将频域分量的残差数据变换为空间域分量的处理、生成预测数据的处理、以及通过使用预测数据和残差数据来重建第二图像135的处理。这样的第一解码130可经由与在第一编码120中使用的使用频率变换的图像压缩方法(诸如MPEG-2、H.264AVC、MPEG-4、HEVC、VC-1、VP8、VP9和AV1)之一对应的图像重建方法来执行。
通过AI编码处理获得的AI编码数据可包括作为对第一图像115执行第一编码120的结果而获得的图像数据以及与原始图像105的AI缩小110相关的AI数据。可在第一解码130期间使用图像数据,并且可在AI放大140期间使用AI数据。
可以以比特流的形式发送图像数据。图像数据可包括基于第一图像115中的像素值而获得的数据,例如,作为第一图像115与第一图像115的预测数据之间的差的残差数据。此外,图像数据包括在对第一图像115执行的第一编码120期间使用的信息。例如,图像数据可包括预测模式信息、运动信息和与在第一编码120期间使用的量化参数相关的信息。可根据MPEG-2、H.264AVC、MPEG-4、HEVC、VC-1、VP8、VP9和AV1中的在第一编码120期间使用的图像压缩方法的规则(例如,根据语法)来生成图像数据。
在AI放大140中基于第二DNN使用AI数据。如上所述,因为第一DNN和第二DNN被联合训练,所以AI数据包括使得能够通过第二DNN对第二图像135准确地执行AI放大140的信息。在AI解码处理期间,可基于AI数据对第二图像135执行AI放大140以具有目标分辨率和/或质量。
AI数据可与图像数据一起以比特流的形式被发送。可选地,根据实施例,AI数据可与图像数据单独以帧或包的形式被发送。可通过相同的网络或通过不同的网络发送作为AI编码的结果而获得的AI数据和图像数据。
图2是根据实施例的AI解码设备100的配置的框图。
参照图2,根据实施例的AI解码设备200可包括接收器210和AI解码器230。接收器210可包括通信接口212、解析器214和输出接口216。AI解码器230可包括第一解码器232和AI放大器234。
接收器210接收并解析作为AI编码的结果而获得的AI编码数据,并且将图像数据和AI数据可区分地输出到AI解码器230。
通信接口212通过网络接收作为AI编码的结果而获得的AI编码数据。作为执行AI编码的结果而获得的AI编码数据包括图像数据和AI数据。可通过相同类型的网络或不同类型的网络接收图像数据和AI数据。
解析器214接收通过通信接口212接收到的AI编码数据,并对AI编码数据进行解析以将图像数据和AI数据区分开。例如,解析器214可通过读取从通信接口212获得的数据的头来将图像数据和AI数据区分开。根据实施例,解析器214经由通过通信接口212接收到的数据的头将图像数据和AI数据可区分地发送到输出接口216,并且输出接口216将区分开的图像数据和AI数据分别发送到第一解码器232和AI放大器234。此时,可验证包括在AI编码数据中的图像数据是经由编解码器(例如,MPEG-2、H.264AVC、MPEG-4、HEVC、VC-1、VP8、VP9或AV1)生成的图像数据。在这种情况下,可通过输出接口216将对应信息发送到第一解码器232,使得经由验证的编解码器对图像数据进行处理。
根据实施例,可从数据存储介质获得由解析器214解析的AI编码数据,其中,数据存储介质包括诸如硬盘、软盘或磁带的磁介质、诸如CD-ROM或DVD的光学记录介质或者诸如软光盘的磁光介质。
第一解码器232基于图像数据重建与第一图像115对应的第二图像135。由第一解码器232获得的第二图像135被提供给AI放大器234。根据实施例,还可将图像数据中包括的第一解码相关信息(诸如预测模式信息、运动信息、量化参数信息等)提供给AI放大器234。
在接收到AI数据时,AI放大器234基于AI数据对第二图像135执行AI放大。根据实施例,还可通过使用包括在图像数据中的第一解码相关信息(诸如预测模式信息、量化参数信息等)来执行AI放大。
根据实施例的接收器210和AI解码器230被描述为单独的装置,但是可通过一个处理器来实现。在这种情况下,接收器210和AI解码器230可通过专用处理器来实现或者通过软件和通用处理器(诸如应用处理器(AP)、中央处理器(CPU)或图形处理单元(GPU))的组合来实现。可通过包括用于实现本公开的实施例的存储器或者通过包括用于使用外部存储器的存储器处理器来实现专用处理器。
此外,接收器210和AI解码器230可通过多个处理器来配置。在这种情况下,接收器210和AI解码器230可通过专用处理器的组合来实现或者通过软件和通用处理器(诸如AP、CPU或GPU)的组合来实现。类似地,AI放大器234和第一解码器232可通过不同处理器来实现。
提供给AI放大器234的AI数据包括使第二图像135能够经由AI放大被处理的信息。这里,放大目标对应于第一DNN的缩小。因此,AI数据包括用于验证第一DNN的缩小目标的信息。
AI数据中包括的信息的示例包括原始图像105的分辨率与第一图像115的分辨率之间的差异信息、以及与第一图像115相关的信息。
差异信息可被表示为关于第一图像115相比于原始图像105的分辨率转换程度的信息(例如,分辨率转换率信息)。此外,因为通过重建的第二图像135的分辨率来验证第一图像115的分辨率并且相应地验证分辨率转换程度,所以差异信息可仅被表示为原始图像105的分辨率信息。这里,分辨率信息可被表示为垂直尺寸/水平尺寸、或者比率(16:9、4:3等)和一个轴的尺寸。此外,当存在预先设置的分辨率信息时,可以以索引或标志的形式来表示分辨率信息。
与第一图像115相关的信息可包括关于作为对第一图像115执行第一编码的结果而获得的图像数据的比特率或在第一图像115的第一编码期间使用的编解码器类型中的任意一个或任意组合的信息。
AI放大器234可基于包括在AI数据中的差异信息和与第一图像115相关的信息中的任意一个或两者来确定第二图像135的放大目标。放大目标可指示例如将针对第二图像135使分辨率放大到什么程度。当放大目标被确定时,AI放大器234通过第二DNN对第二图像135执行AI放大,以获得与放大目标对应的第三图像145。
在描述由AI放大器234执行的根据放大目标对第二图像135执行AI放大的方法之前,将参照图3和图4描述通过第二DNN的AI放大处理。
图3是示出用于对第二图像135执行AI放大的第二DNN 300的示图,并且图4是用于描述图3的第一卷积层310中的卷积运算的示图。
如图3中所示,第二图像135被输入到第一卷积层310。图3中所示的第一卷积层310中指示的3×3×4指示通过使用尺寸为3×3的四个滤波器核对一个输入图像执行卷积处理。由四个滤波器核生成四个特征图作为卷积处理的结果。每个特征图指示第二图像135的固有特性。例如,每个特征图可表示第二图像135的垂直方向特性、水平方向特性或边缘特性等。
将参照图4详细描述第一卷积层310中的卷积运算。
可通过第一卷积层310中使用的尺寸为3×3的滤波器核430的参数与第二图像135中的对应像素值之间的相乘并相加来生成一个特征图450。在第一卷积层310中使用四个滤波器核,并且可使用四个滤波器核通过卷积运算来生成四个特征图。
图4中的第二图像135中指示的I1至I49指示第二图像135中的像素,并且滤波器核430中指示的F1至F9指示滤波器核430的参数。此外,特征图450中指示的M1至M9指示特征图450的样点。
在图4中,第二图像135包括49个像素,但是像素的数量仅是示例,并且当第二图像135具有4K的分辨率时,第二图像135可包括例如3840×2160个像素。
在卷积运算处理期间,将第二图像135的I1、I2、I3、I8、I9、I10、I15、I16和I17的像素值与滤波器核430的F1至F9分别相乘,并且可将相乘的结果值的组合(例如,相加)的值分配为特征图450的M1的值。当卷积运算的步幅为2时,将第二图像135的I3、I4、I5、I10、I11、I12、I17、I18和I19的像素值分别与滤波器核430的F1至F9相乘,并且相乘的结果值的组合的值可被分配为特征图450的M2的值。
当滤波器核430沿着步幅移动到第二图像135的最后像素时,在第二图像135中的像素值与滤波器核430的参数之间执行卷积运算,并且因此可生成具有特定尺寸的特征图450。
根据本公开,可通过第一DNN和第二DNN的联合训练来优化第二DNN的参数的值,例如,在第二DNN的卷积层中使用的滤波器核的参数的值(例如,滤波器核430的F1至F9)。如上所述,AI放大器234可基于AI数据确定与第一DNN的缩小目标对应的放大目标,并且将与所确定的放大目标对应的参数确定为在第二DNN的卷积层中使用的滤波器核的参数。
包括在第一DNN和第二DNN中的卷积层可根据参照图4描述的卷积运算处理来执行处理,但是参照图4描述的卷积运算处理仅是示例,并且不限于此。
返回参照图3,从第一卷积层310输出的特征图可被输入到第一激活层320。
第一激活层320可将非线性特征分配给每个特征图。第一激活层320可包括sigmoid函数、Tanh函数、修正线性单元(ReLU)函数等,但不限于此。
分配非线性特征的第一激活层320指示作为第一卷积层310的输出的特征图的至少一个样点值被改变。这里,通过应用非线性特征来执行改变。
第一激活层320确定是否将从第一卷积层310输出的特征图的样点值发送到第二卷积层330。例如,特征图的一些样点值由第一激活层320激活并被发送到第二卷积层330,并且一些样点值由第一激活层320去激活并且不被发送到第二卷积层330。由特征图表示的第二图像135的固有特性通过第一激活层320被强调。
从第一激活层320输出的特征图325被输入到第二卷积层330。图3中所示的特征图325中的一个特征图是在第一激活层320中对参照图4描述的特征图450进行处理的结果。
第二卷积层330中指示的3×3×4指示通过使用尺寸为3×3的四个滤波器核对特征图325执行卷积处理。第二卷积层330的输出被输入到第二激活层340。第二激活层340可将非线性特征分配给输入数据。
从第二激活层340输出的特征图345被输入到第三卷积层350。图3中所示的第三卷积层350中指示的3×3×1指示通过使用尺寸为3×3的一个滤波器核执行卷积处理以生成一个输出图像。第三卷积层350是用于输出最终图像的层,并且通过使用一个滤波器核来生成一个输出。根据本公开的实施例,第三卷积层350可输出第三图像145作为卷积运算的结果。
如稍后将描述的,可存在指示第二DNN 300的第一卷积层310、第二卷积层330和第三卷积层350的滤波器核的数量、第二DNN 300的第一卷积层310、第二卷积层330和第三卷积层350的滤波器核的参数等的多条DNN设置信息,并且所述多条DNN设置信息可与第一DNN的多条DNN设置信息相关联。可经由第一DNN和第二DNN的联合训练来实现第二DNN的多条DNN设置信息与第一DNN的多条DNN设置信息之间的关联。
在图3中,第二DNN 300包括三个卷积层(第一卷积层310、第二卷积层330和第三卷积层350)以及两个激活层(第一激活层320和第二激活层340),但这仅是示例,并且卷积层和激活层的数量可根据实施例而变化。此外,根据实施例,第二DNN 300可被实现为递归神经网络(RNN)。在这种情况下,将根据本公开的实施例的第二DNN 300的卷积神经网络(CNN)结构改变为RNN结构。
根据实施例,AI放大器234可包括用于上述卷积运算和激活层的运算的至少一个算术逻辑单元(ALU)。ALU可被实现为处理器。对于卷积运算,ALU可包括乘法器和加法器,其中,所述乘法器执行第二图像135或从前一层输出的特征图的样点值与滤波器核的样点值之间的相乘,所述加法器将相乘的结果值相加。此外,对于激活层的运算,ALU可包括乘法器和比较器,其中,所述乘法器将输入样点值乘以在预定的sigmoid函数、Tanh函数或ReLU函数中使用的权重,所述比较器将相乘结果与特定值进行比较以确定是否将输入样点值发送到下一层。
在下文中,将描述由AI放大器234执行的根据放大目标对第二图像135执行AI放大的方法。
根据实施例,AI放大器234可存储在第二DNN中可设置的多条DNN设置信息。
这里,DNN设置信息可包括关于第二DNN中包括的卷积层的数量、每个卷积层的滤波器核的数量和每个滤波器核的参数中的任意一个或任意组合的信息。多条DNN设置信息可分别对应于各种放大目标,并且第二DNN可基于与放大目标对应的DNN设置信息进行运算。第二DNN可基于DNN设置信息具有不同的结构。例如,第二DNN可基于任意一条DNN设置信息包括三个卷积层,并且可基于另一条DNN设置信息包括四个卷积层。
根据实施例,DNN设置信息可仅包括在第二DNN中使用的滤波器核的参数。在这种情况下,第二DNN的结构不改变,而是仅内部滤波器核的参数可基于DNN设置信息而改变。
AI放大器234可获得多条DNN设置信息中的用于对第二图像135执行AI放大的DNN设置信息。此时使用的多条DNN设置信息中的每条DNN设置信息是用于获得预定分辨率和/或预定质量的第三图像145的信息,并且被与第一DNN联合训练。
例如,多条DNN设置信息中的一条DNN设置信息可包括用于获得分辨率是第二图像135的分辨率两倍高的第三图像145(例如,是第二图像135的2K(2048×1080)两倍高的4K(4096×2160)的第三图像145)的信息,并且另一条DNN设置信息可包括用于获得分辨率是第二图像135的分辨率四倍高的第三图像145(例如,是第二图像135的2K(2048×1080)四倍高的8K(8192×4320)的第三图像145)的信息。
与图6的AI编码设备600的第一DNN的DNN设置信息联合获得多条DNN设置信息中的每一条,并且AI放大器234根据与第一DNN的DNN设置信息的缩小比率对应的放大比率来获得多条DNN设置信息中的一条DNN设置信息。就此而言,AI放大器234可验证第一DNN的信息。为了使AI放大器234验证第一DNN的信息,根据实施例的AI解码设备200从AI编码设备600接收包括第一DNN的信息的AI数据。
换句话说,AI放大器234可通过使用从AI编码设备600接收到的信息来验证用于获得第一图像115的第一DNN的DNN设置信息所针对的信息,并获得与第一DNN的DNN设置信息联合训练的第二DNN的DNN设置信息。
当从多条DNN设置信息中获得了用于对第二图像135执行AI放大的DNN设置信息时,可基于根据所获得的DNN设置信息进行运算的第二DNN来对输入数据进行处理。
例如,当获得了任意一条DNN设置信息时,图3的第二DNN 300的第一卷积层310、第二卷积层330和第三卷积层350中的每一个中包括的滤波器核的数量以及滤波器核的参数被设置为包括在所获得的DNN设置信息中的值。
图4的第二DNN的任意一个卷积层中使用的3×3的滤波器核的参数被设置为{1,1,1,1,1,1,1,1},并且当DNN设置信息随后被改变时,所述参数被作为改变后的DNN设置信息中包括的参数的{2,2,2,2,2,2,2,2,2}替换。
AI放大器234可基于AI数据中包括的信息从多条DNN设置信息中获得用于AI放大的DNN设置信息,并且现在将描述用于获得DNN设置信息的AI数据。
根据实施例,AI放大器234可基于AI数据中包括的差异信息从多条DNN设置信息中获得用于AI放大的DNN设置信息。例如,当基于差异信息验证了原始图像105的分辨率(例如,4K(4096×2160))是第一图像115的分辨率(例如,2K(2048×1080))的两倍高时,AI放大器234可获得用于将第二图像135的分辨率增加两倍的DNN设置信息。
根据另一实施例,AI放大器234可基于AI数据中包括的与第一图像115相关的信息从多条DNN设置信息中获得用于对第二图像135进行AI放大的DNN设置信息。AI放大器234可预先确定图像相关信息与DNN设置信息之间的映射关系,并且获得被映射到与第一图像115相关的信息的DNN设置信息。
图5是示出若干条图像相关信息与若干条DNN设置信息之间的映射关系的表。
通过根据图5的实施例,将确定根据本公开的实施例的AI编码和AI解码处理不仅考虑分辨率的改变。如图5中所示,可单独或共同考虑诸如标清(SD)、高清(HD)或全HD的分辨率、诸如10Mbps、15Mbps或20Mbps的比特率以及诸如AV1、H.264或HEVC的编解码器信息来选择DNN设置信息。出于对分辨率、比特率和编解码器信息的这样的考虑,考虑每个元素的训练可在AI训练处理期间与编码和解码处理联合执行(参见图9)。
因此,当根据训练如图5中所示基于包括编解码器类型、图像的分辨率等的图像相关信息提供了多条DNN设置信息时,可基于在AI解码处理期间接收到的与第一图像115相关的信息来获得用于对第二图像135进行AI放大的DNN设置信息。
换句话说,AI放大器234能够通过对图5的表的左侧的图像相关信息和表的右侧的DNN设置信息进行匹配来使用根据图像相关信息的DNN设置信息。
如图5中所示,当从与第一图像115相关的信息验证第一图像115的分辨率是SD,作为对第一图像115执行第一编码的结果而获得的图像数据的比特率是10Mbps,并且经由AV1编解码器对第一图像115执行第一编码时,AI放大器234可使用多条DNN设置信息中的A DNN设置信息。
此外,当从与第一图像115相关的信息验证第一图像115的分辨率是HD,作为执行第一编码的结果而获得的图像数据的比特率是15Mbps,并且经由H.264编解码器执行第一编码时,AI放大器234可使用多条DNN设置信息中的B DNN设置信息。
此外,当从与第一图像115相关的信息验证第一图像115的分辨率是全HD,作为执行第一编码的结果而获得的图像数据的比特率是20Mbps,并且经由HEVC编解码器执行第一编码时,AI放大器234可使用多条DNN设置信息中的C DNN设置信息,并且当验证第一图像115的分辨率是全HD,作为执行第一编码的结果而获得的图像数据的比特率是15Mbps,并且经由HEVC编解码器执行第一编码时,AI放大器234可使用多条DNN设置信息中的D DNN设置信息。基于作为对第一图像115执行第一编码的结果而获得的图像数据的比特率是20Mbps还是15Mbps来选择C DNN设置信息和D DNN设置信息中的一个。在经由相同编解码器对相同分辨率的第一图像115执行第一编码时获得的图像数据的不同比特率指示重建图像的不同质量。因此,可基于图像质量联合训练第一DNN和第二DNN,并且因此,AI放大器234可根据指示第二图像135的质量的图像数据的比特率来获得DNN设置信息。
根据另一实施例,AI放大器234可考虑从第一解码器232提供的信息(预测模式信息、运动信息、量化参数信息等)和AI数据中包括的与第一图像115相关的信息两者从多条DNN设置信息中获得用于对第二图像135执行AI放大的DNN设置信息。例如,AI放大器234可从第一解码器232接收在第一图像115的第一编码处理期间使用的量化参数信息,验证从AI数据获得的作为第一图像115的编码结果的图像数据的比特率,并且获得与量化参数信息和比特率对应的DNN设置信息。即使当比特率相同时,重建图像的质量也可根据图像的复杂度而变化。比特率是表示对其执行第一编码的整个第一图像115的值,并且即使在第一图像115内,每个帧的质量也可变化。因此,与仅使用AI数据时相比,当一起考虑可从第一解码器232针对每个帧获得的预测模式信息、运动信息和/或量化参数时,可获得更适合于第二图像135的DNN设置信息。
此外,根据实施例,AI数据可包括相互约定的DNN设置信息的标识符。DNN设置信息的标识符是用于将在第一DNN与第二DNN之间联合训练的一对DNN设置信息区分开的信息,使得对第二图像135执行AI放大至与第一DNN的缩小目标对应的放大目标。在获得AI数据中包括的DNN设置信息的标识符之后,AI放大器234可通过使用与DNN设置信息的标识符对应的DNN设置信息对第二图像135执行AI放大。例如,可预先指定指示在第一DNN中可设置的多条DNN设置信息中的每条DNN设置信息的标识符和指示在第二DNN中可设置的多条DNN设置信息中的每条DNN设置信息的标识符。在这种情况下,可针对在第一DNN和第二DNN中的每一个中可设置的一对DNN设置信息指定相同的标识符。AI数据可包括在用于原始图像105的AI缩小的第一DNN中设置的DNN设置信息的标识符。接收AI数据的AI放大器234可通过使用多条DNN设置信息中的由AI数据中包括的标识符指示的DNN设置信息来对第二图像135执行AI放大。
此外,根据实施例,AI数据可包括DNN设置信息。AI放大器234可在获得AI数据中包括的DNN设置信息之后通过使用该DNN设置信息对第二图像135执行AI放大。
根据实施例,当构成DNN设置信息的多条信息(例如,卷积层的数量、每个卷积层的滤波器核的数量、每个滤波器核的参数等)以查找表的形式被存储时,AI放大器234可通过基于AI数据中包括的信息对从查找表中的值选择的一些值进行组合来获得DNN设置信息,并且通过使用获得的DNN设置信息对第二图像135执行AI放大。
根据实施例,当与放大目标对应的DNN的结构被确定时,AI放大器234可获得与所确定的DNN的结构对应的DNN设置信息,例如,滤波器核的参数。
AI放大器234通过包括与第一DNN相关的信息的AI数据获得第二DNN的DNN设置信息,并且通过基于所获得的DNN设置信息设置的第二DNN对第二图像135执行AI放大,并且在这种情况下,与直接分析第二图像135的特征以进行放大时相比,可降低存储器使用和吞吐量。
根据实施例,当第二图像135包括多个帧时,AI放大器234可独立地获得针对特定数量的帧的DNN设置信息,或者可获得针对全部帧的共同的DNN设置信息。
图6是示出包括多个帧的第二图像135的示图。
如图6中所示,第二图像135可包括帧t0至帧tn。
根据实施例,AI放大器234可通过AI数据获得第二DNN的DNN设置信息,并且基于所获得的DNN设置信息对帧t0至帧tn执行AI放大。换句话说,可基于共同的DNN设置信息经由AI放大来对帧t0至帧tn进行处理。
根据另一实施例,AI放大器234可通过使用从AI数据获得的“A”DNN设置信息对帧t0至帧tn中的一些帧(例如,帧t0至帧ta)执行AI放大,并且通过使用从AI数据获得的“B”DNN设置信息对帧ta+1至帧tb执行AI放大。此外,AI放大器234可通过使用从AI数据获得的“C”DNN设置信息来对帧tb+1至帧tn执行AI放大。换句话说,AI放大器234可独立地获得针对包括多个帧中的若干帧的每一组的DNN设置信息,并且通过使用独立地获得的DNN设置信息对每一组中包括的帧执行AI放大。
根据另一实施例,AI放大器234可独立地获得针对形成第二图像135的每个帧的DNN设置信息。换句话说,当第二图像135包括三个帧时,AI放大器234可通过使用与第一帧有关地获得的DNN设置信息对第一帧执行AI放大,通过使用与第二帧有关地获得的DNN设置信息对第二帧执行AI放大,并且通过使用与第三帧有关地获得的DNN设置信息对第三帧执行AI放大。根据如上所述的基于从第一解码器232提供的信息(预测模式信息、运动信息、量化参数信息等)和包括在AI数据中的与第一图像115相关的信息来获得DNN设置信息的方法,可针对包括在第二图像135中的每个帧独立地获得DNN设置信息。这是因为可针对包括在第二图像135中的每个帧独立地确定模式信息、量化参数信息等。
根据另一实施例,AI数据可包括关于基于AI数据获得的DNN设置信息对哪个帧有效的信息。例如,当AI数据包括指示DNN设置信息直到帧ta有效的信息时,AI放大器234通过使用基于AI数据获得的DNN设置信息对帧t0至帧ta执行AI放大。此外,当另一条AI数据包括指示DNN设置信息直到帧tn有效的信息时,AI放大器234通过使用基于所述另一条AI数据获得的DNN设置信息对帧ta+1至帧tn执行AI放大。
在下文中,将参照图7描述用于对原始图像105执行AI编码的AI编码设备600。
图7是根据实施例的AI编码设备600的配置的框图。
参照图7,AI编码设备600可包括AI编码器610和发送器630。AI编码器610可包括AI缩小器612和第一编码器614。发送器630可包括数据处理器632和通信接口634。
在图7中,AI编码器610和发送器630被示出为独立的装置,但是AI编码器610和发送器630可通过一个处理器来实现。在这种情况下,AI编码器610和发送器630可通过专用处理器或者通过软件和通用处理器(诸如AP、CPU或图形处理单元GPU)的组合来实现。可通过包括用于实现本公开的实施例的存储器或者通过包括用于使用外部存储器的存储器处理器来实现专用处理器。
此外,AI编码器610和发送器630可通过多个处理器来配置。在这种情况下,AI编码器610和发送器630可通过专用处理器的组合或者通过软件和多个通用处理器(诸如AP、CPU或GPU)的组合来实现。AI缩小器612和第一编码器614可通过不同处理器来实现。
AI编码器610对原始图像105执行AI缩小并对第一图像115执行第一编码,并且将AI数据和图像数据发送到发送器630。发送器630将AI数据和图像数据发送到AI解码设备200。
图像数据包括作为对第一图像115执行第一编码的结果而获得的数据。图像数据可包括基于第一图像115中的像素值而获得的数据,例如,作为第一图像115与第一图像115的预测数据之间的差的残差数据。此外,图像数据包括在第一图像115的第一编码处理期间使用的信息。例如,图像数据可包括用于对第一图像115执行第一编码的预测模式信息、运动信息、量化参数信息等。
AI数据包括使得能够对第二图像135执行AI放大至与第一DNN的缩小目标对应的放大目标的信息。根据实施例,AI数据可包括原始图像105与第一图像115之间的差异信息。此外,AI数据可包括与第一图像115相关的信息。与第一图像115相关的信息可包括关于第一图像115的分辨率、作为对第一图像115执行第一编码的结果而获得的图像数据的比特率、或在第一图像115的第一编码期间使用的编解码器类型中的任意一个或任意组合的信息。
根据实施例,AI数据可包括相互约定的DNN设置信息的标识符,使得对第二图像135执行AI放大至与第一DNN的缩小目标对应的放大目标。
此外,根据实施例,AI数据可包括可在第二DNN中设置的DNN设置信息。
AI缩小器612可获得通过经由第一DNN对原始图像105执行AI缩小而获得第一图像115。AI缩小器1212可基于预定标准确定原始图像105的缩小目标。
为了获得与缩小目标匹配的第一图像115,AI缩小器612可存储在第一DNN中可设置的多条DNN设置信息。AI缩小器1212从所述多条DNN设置信息中获得与缩小目标对应的DNN设置信息,并且通过按照所获得的DNN设置信息设置的第一DNN对原始图像105执行AI缩小。
可训练多条DNN设置信息中的每条DNN设置信息以获得预定分辨率和/或预定质量的第一图像115。例如,多条DNN设置信息中的任意一条DNN设置信息可包括用于获得分辨率是原始图像105的分辨率一半的第一图像115(例如,是原始图像105的4K(4096×2160)一半的2K(2048×1080)的第一图像115)的信息,并且另一条DNN设置信息可包括用于获得分辨率是原始图像105的分辨率四分之一的第一图像115(例如,是原始图像105的8K(8192×4320)四分之一的2K(2048×1080)的第一图像115)的信息。
根据实施例,当构成DNN设置信息的多条信息(例如,卷积层的数量、每个卷积层的滤波器核的数量、每个滤波器核的参数等)以查找表的形式被存储时,AI缩小器612可通过基于缩小目标对从查找表中的值选择的一些值进行组合来获得DNN设置信息,并且通过使用所获得的DNN设置信息对原始图像105执行AI缩小。
根据实施例,AI缩小器612可确定与缩小目标对应的DNN的结构,并且获得与所确定的DNN的结构对应的DNN设置信息,例如,获得滤波器核的参数。
由于第一DNN和第二DNN被联合训练,因此用于对原始图像105执行AI缩小的多条DNN设置信息可具有最优值。这里,每条DNN设置信息包括第一DNN中包括的卷积层的数量、每个卷积层的滤波器核的数量和每个滤波器核的参数中的任意一个或任意组合。
AI缩小器612可利用用于对原始图像105执行AI缩小而获得的DNN设置信息来设置第一DNN,以通过第一DNN获得特定分辨率和/或特定质量的第一图像115。当从多条DNN设置信息获得了用于对原始图像105执行AI缩小的DNN设置信息时,第一DNN中的每一层可基于DNN设置信息中包括的信息来对输入数据进行处理。
在下文中,将描述由AI缩小器612执行的确定缩小目标的方法。缩小目标可指示例如从原始图像105将分辨率降低多少以获得第一图像115。
根据实施例,AI缩小器612可基于原始图像105的压缩比率(例如,原始图像105与第一图像115之间的分辨率差异、目标比特率等)、压缩质量(例如,比特率的类型)、压缩历史信息和类型中的任意一个或任意组合来确定缩小目标。
例如,AI缩小器612可基于预设的或从用户输入的压缩比、压缩质量等确定缩小目标。
作为另一示例,AI缩小器612可通过使用存储在AI编码设备600中的压缩历史信息来确定缩小目标。例如,根据可由AI编码设备600使用的压缩历史信息,可确定用户偏好的编码质量、压缩比等,并且可根据基于压缩历史信息确定的编码质量来确定缩小目标。例如,可基于根据压缩历史信息最常使用的编码质量来确定第一图像115的分辨率、质量等。
作为另一示例,AI缩小器612可基于根据压缩历史信息比阈值更频繁使用的编码质量(例如,比阈值更频繁使用的编码质量的平均质量)来确定缩小目标。
作为另一示例,AI缩小器612可基于原始图像105的分辨率、类型(例如,文件格式)等来确定缩小目标。
根据实施例,当原始图像105包括多个帧时,AI缩小器612可独立地确定针对特定数量的帧的缩小目标,或者可确定针对全部帧的缩小目标。
根据实施例,AI缩小器612可将包括在原始图像105中的帧划分为特定数量的组,并且独立地确定针对每个组的缩小目标。可针对每个组确定相同或不同的缩小目标。根据每个组,组中包括的帧的数量可相同或不同。
根据另一实施例,AI缩小器612可独立地确定针对包括在原始图像105中的每个帧的缩小目标。可针对每个帧确定相同或不同的缩小目标。
在下文中,将描述AI缩小所基于的第一DNN 700的结构的示例。
图8是示出用于对原始图像105执行AI缩小的第一DNN 700的示图。
如图8中所示,原始图像105被输入到第一卷积层710。第一卷积层710通过使用尺寸为5×5的32个滤波器核对原始图像105执行卷积处理。作为卷积处理的结果而生成的32个特征图被输入到第一激活层720。第一激活层720可将非线性特征分配给32个特征图。
第一激活层720确定是否将从第一卷积层710输出的特征图的样点值发送到第二卷积层730。例如,特征图的一些样点值被第一激活层720激活并且被发送到第二卷积层730,并且一些样点值被第一激活层720去激活并且不被发送到第二卷积层730。由从第一卷积层710输出的特征图表示的信息通过第一激活层720被强调。
第一激活层720的输出725被输入到第二卷积层730。第二卷积层730通过使用尺寸为5×5的32个滤波器核对输入数据执行卷积处理。作为卷积处理的结果而输出的32个特征图被输入到第二激活层740,并且第二激活层740可将非线性特征分配给32个特征图。
第二激活层740的输出745被输入到第三卷积层750。第三卷积层750通过使用尺寸为5×5的一个滤波器核对输入数据执行卷积处理。作为卷积处理的结果,可从第三卷积层750输出一个图像。第三卷积层750通过使用所述一个滤波器核作为用于输出最终图像的层来生成一个输出。根据本公开的实施例,第三卷积层750可输出第一图像115作为卷积运算的结果。
可存在指示第一DNN 700的第一卷积层710、第二卷积层730和第三卷积层750的滤波器核的数量、第一DNN 700的第一卷积层710、第二卷积层730和第三卷积层750的每个滤波器核的参数等的多条DNN设置信息,并且所述多条DNN设置信息可与第二DNN的多条DNN设置信息相关联。可经由第一DNN和第二DNN的联合训练来实现第一DNN的多条DNN设置信息与第二DNN的多条DNN设置信息之间的关联。
在图8中,第一DNN 700包括三个卷积层(第一卷积层710、第二卷积层730和第三卷积层750)以及两个激活层(第一激活层720和第二激活层740),但这仅是示例,并且卷积层和激活层的数量可根据实施例而变化。此外,根据实施例,第一DNN 700可被实现为RNN。在这种情况下,将根据本公开的实施例的第一DNN 700的CNN结构改变为RNN结构。
根据实施例,AI缩小器712可包括用于上述卷积运算和激活层的运算的至少一个ALU。ALU可被实现为处理器。对于卷积运算,ALU可包括乘法器和加法器,其中,所述乘法器执行原始图像105或从前一层输出的特征图的样点值与滤波器核的样点值之间的相乘,所述加法器将相乘的结果值相加。此外,对于激活层的运算,ALU可包括乘法器和比较器,其中,所述乘法器将输入样点值乘以在预定的sigmoid函数、Tanh函数或ReLU函数中使用的权重,所述比较器将相乘结果与特定值进行比较以确定是否将输入样点值发送到下一层。
返回参照图7,在从AI缩小器612接收到第一图像115时,第一编码器614可通过对第一图像115执行第一编码来减少第一图像115的信息量。可获得与第一图像115对应的图像数据,作为由第一编码器614执行第一编码的结果。
数据处理器632对AI数据和图像数据中的一个或两者进行处理以被以特定形式发送。例如,当将以比特流的形式发送AI数据和图像数据时,数据处理器632可将AI数据处理为被以比特流的形式表示,并且通过通信接口634以一个比特流的形式发送图像数据和AI数据。作为另一示例,数据处理器632可将AI数据处理为被比特流的形式表示,并且通过通信接口634发送与AI数据对应的比特流和与图像数据对应的比特流中的每个比特流。作为另一示例,数据处理器632可将AI数据处理为被以帧或包的形式表示,并且通过通信接口634以比特流的形式发送图像数据并且以帧或包的形式发送AI数据。
通信接口634通过网络发送作为执行AI编码的结果而获得的AI编码数据。作为执行AI编码的结果而获得的AI编码数据包括图像数据和AI数据。图像数据和AI数据可通过相同类型的网络或不同类型的网络被发送。
根据实施例,作为数据处理器632的处理结果而获得的AI编码数据可被存储在数据存储介质中,其中,所述数据存储介质包括诸如硬盘、软盘或磁带的磁介质、诸如CD-ROM或DVD的光学记录介质、或者诸如软光盘的磁光介质。
在下文中,将参照图9描述联合训练第一DNN 700和第二DNN 300的方法。
图9是用于描述训练第一DNN 700和第二DNN 300的方法的示图。
在实施例中,经由AI解码处理将对其执行AI编码的原始图像105重建为第三图像145,并且为了保持原始图像105与作为AI解码的结果而获得的第三图像145之间的相似性,在AI编码处理与AI解码处理之间建立关联性。换句话说,在AI解码处理期间重建在AI编码处理中损失的信息,并且就此而言,对第一DNN 700和第二DNN 300进行联合训练。
为了进行准确的AI解码,最终,可减少与将图9中所示的第三训练图像804和原始训练图像801进行比较的结果对应的质量损失信息830。因此,质量损失信息830被用于训练第一DNN 700和第二DNN 300两者。
首先,将描述图9中所示的训练处理。
在图9中,原始训练图像801是将被执行AI缩小的图像,并且第一训练图像802是通过对原始训练图像801执行AI缩小而获得的图像。此外,第三训练图像804是通过对第一训练图像802执行AI放大而获得的图像。
原始训练图像801包括静止图像或包括多个帧的运动图像。根据实施例,原始训练图像801可包括从静止图像或包括多个帧的运动图像提取的亮度图像。此外,根据实施例,原始训练图像801可包括从静止图像或包括多个帧的运动图像提取的分块图像。当原始训练图像801包括多个帧时,第一训练图像802、第二训练图像和第三训练图像804也各自包括多个帧。当原始训练图像801的多个帧被依次输入到第一DNN 700时,可通过第一DNN 700和第二DNN 300依次获得第一训练图像802、第二训练图像和第三训练图像804的多个帧。
对于第一DNN 700和第二DNN 300的联合训练,原始训练图像801被输入到第一DNN700。输入到第一DNN 700的原始训练图像801经由AI缩小被输出为第一训练图像802,并且第一训练图像1702被输入到第二DNN 300。第三训练图像804被输出,作为对第一训练图像802执行AI放大的结果。
参照图9,第一训练图像802被输入到第二DNN 300,并且根据实施例,在对第一训练图像802执行第一编码和第一解码时获得的第二训练图像可被输入到第二DNN 300。为了将第二训练图像输入到第二DNN 300,可使用MPEG-2、H.264、MPEG-4、HEVC、VC-1、VP8、VP9和AV1中的任意一种编解码器。MPEG-2、H.264、MPEG-4、HEVC、VC-1、VP8、VP9和AV1中的任意一种编解码器可被用于对第一训练图像802执行第一编码并对与第一训练图像802对应的图像数据执行第一解码。
参照图9,与通过第一DNN 700输出的第一训练图像802分开地,获得通过对原始训练图像801执行传统缩小而获得的缩减训练图像803。这里,传统缩小可包括双线性缩放、双三次缩放、lanczos缩放或阶梯缩放中的任意一个或任意组合。
为了防止第一图像115的结构特征极大地偏离原始图像105的结构特征,获得缩减训练图像803以保留原始训练图像801的结构特征。
在执行训练之前,第一DNN 700和第二DNN 300可被设置为预定DNN设置信息。当执行训练时,可确定结构损失信息810、复杂度损失信息820和质量损失信息830。
可基于将缩减训练图像803和第一训练图像802进行比较的结果来确定结构损失信息810。例如,结构损失信息810可对应于缩减训练图像803的结构信息与第一训练图像802的结构信息之间的差。结构信息可包括可从图像提取的各种特征,诸如图像的亮度、对比度、直方图等。结构损失信息810指示原始训练图像801的多少结构信息被保留在第一训练图像802中。当结构损失信息810小时,第一训练图像802的结构信息与原始训练图像801的结构信息相似。
可基于第一训练图像802的空间复杂度来确定复杂度损失信息820。例如,第一训练图像802的总方差值可被用作空间复杂度。复杂度损失信息820与通过对第一训练图像802执行第一编码而获得的图像数据的比特率相关。定义的是:当复杂度损失信息820小时,图像数据的比特率低。
可基于将原始训练图像801和第三训练图像804进行比较的结果来确定质量损失信息830。质量损失信息830可包括关于原始训练图像801与第三训练图像804之间的差的L1范数值、L2范数值、结构相似度(SSIM)值、峰值信噪比-人类视觉系统(PSNR-HVS)值、多尺度SSIM(MS-SSIM)值、方差膨胀因子(VIF)值和视频多方法评估融合(VMAF)值中的任意一个或任意组合。质量损失信息830指示第三训练图像804与原始训练图像801有多相似。当质量损失信息830小时,第三训练图像804与原始训练图像801更相似。
参照图9,结构损失信息810、复杂度损失信息820和质量损失信息830被用于训练第一DNN 700,并且质量损失信息830被用于训练第二DNN 3000。换句话说,质量损失信息830被用于训练第一DNN 700和第二DNN 300两者。
第一DNN 700可更新参数,使得基于损失信息810至830确定的最终损失信息被减少或最小化。此外,第二DNN 300可更新参数,使得质量损失信息830被减少或最小化。
用于训练第一DNN 700和第二DNN 300的最终损失信息可被确定为下面的等式1。
[等式1]
LossDS=a×结构损失信息+b×复杂度损失信息+c×质量损失信息
LossUS=d×质量损失信息
在等式1中,LossDS指示将被减小或最小化以训练第一DNN 700的最终损失信息,并且LossUS指示将被减小或最小化以训练第二DNN 300的最终损失信息。此外,a、b、c和d可以是预定权重。
换句话说,第一DNN 700沿等式1的LossDS减小的方向更新参数,并且第二DNN 300沿LossUS减小的方向更新参数。当根据在训练期间推导出的LossDS来更新第一DNN 700的参数时,基于更新的参数获得的第一训练图像802变得与基于未更新的参数获得的先前的第一训练图像802不同,并且因此,第三训练图像804也变得与先前的第三训练图像804不同。当第三训练图像804变得与先前的第三训练图像804不同时,质量损失信息830也被重新确定,并且第二DNN 300相应地更新参数。当重新确定质量损失信息830时,LossDS也被重新确定,并且第一DNN 700根据重新确定的LossDS来更新参数。换句话说,第一DNN 700的参数的更新导致第二DNN 300的参数的更新,并且第二DNN 300的参数的更新导致第一DNN 700的参数的更新。换句话说,因为通过共享质量损失信息830来联合训练第一DNN 700和第二DNN 300,所以可联合优化第一DNN 700的参数和第二DNN 300的参数。
参照等式1,验证了根据质量损失信息830来确定LossUS,但这仅是示例,并且可基于结构损失信息810和复杂度损失信息820中的一个或两者以及质量损失信息800来确定LossUS。
在上文中,已经描述了AI解码设备200的AI放大器234和AI编码设备600的AI减小器612存储多条DNN设置信息,并且现在将描述训练存储在AI放大器234和AI减小器612中的多条DNN设置信息中的每条DNN设置信息的方法。
如参照等式1所述,第一DNN 700考虑第一训练图像802的结构信息与原始训练图像801的结构信息之间的相似性(结构损失信息810)、作为对第一训练图像802执行第一编码的结果而获得的图像数据的比特率(复杂度损失信息820)、以及第三训练图像804与原始训练图像801之间的差(质量损失信息830)来更新参数。
可更新第一DNN 700的参数,使得:获得与原始训练图像801具有相似结构信息的第一训练图像802并且当对第一训练图像802执行第一编码时获得具有小比特率的图像数据,并且同时,对第一训练图像802执行AI放大的第二DNN 300获得与原始训练图像801相似的第三训练图像804。
对第一DNN 700的参数进行优化的方向可通过调整等式1的权重a、b和c而变化。例如,当权重b被确定为高时,可通过使低比特率优先于第三训练图像804的高质量来更新第一DNN 700的参数。此外,当权重c被确定为高时,可通过使第三训练图像804的高质量优先于高比特率或者保持原始训练图像801的结构信息来更新第一DNN 700的参数。
此外,对第一DNN 700的参数进行优化的方向可根据用于对第一训练图像802执行第一编码的编解码器的类型而变化。这是因为将被输入到第二DNN 300的第二训练图像可根据编解码器的类型而变化。
换句话说,可基于权重a、b和c以及用于对第一训练图像802执行第一编码的编解码器的类型来联合更新第一DNN 700的参数和第二DNN 300的参数。因此,当在将权重a、b和c各自确定为特定值并将编解码器的类型确定为特定类型之后训练第一DNN 700和第二DNN300时,可确定彼此关联和优化的第一DNN 700的参数和第二DNN 300的参数。
此外,当在改变权重a、b和c以及编解码器的类型之后训练第一DNN 700和第二DNN300时,可确定彼此关联和优化的第一DNN 700的参数和第二DNN 300的参数。换句话说,当在改变权重a、b和c的值以及编解码器的类型的情况下训练第一DNN 700和第二DNN 300时,可在第一DNN 700和第二DNN 300中确定彼此联合训练的多条DNN设置信息。
如上面参照图5所述,第一DNN 700和第二DNN 300的多条DNN设置信息可被映射到与第一图像相关的信息。为了设置这样的映射关系,可根据特定比特率经由特定编解码器对从第一DNN 700输出的第一训练图像802执行第一编码,并且可将通过对作为执行第一编码的结果而获得的比特流执行第一解码而获得的第二训练图像输入到第二DNN 300。换句话说,通过在设置环境使得根据特定比特率经由特定编解码器对特定分辨率的第一训练图像802执行第一编码之后训练第一DNN 700和第二DNN 300,可确定映射到以下项的DNN设置信息对:第一训练图像802的所述分辨率、用于对第一训练图像802执行第一编码的编解码器的类型、以及作为对第一训练图像802执行第一编码的结果而获得的比特流的比特率。通过不同地改变第一训练图像802的分辨率、用于对第一训练图像802执行第一编码的编解码器的类型、以及根据第一训练图像802的第一编码获得的比特流的比特率,可确定第一DNN700和第二DNN 300的多条DNN设置信息和与第一图像相关的多条信息之间的映射关系。
图10是用于描述由训练设备1000对第一DNN 700和第二DNN的训练处理的示图。
参照图9描述的第一DNN 700和第二DNN 300的训练可由训练设备1000来执行。训练设备1000包括第一DNN 700和第二DNN 300。训练设备1000可以是例如AI编码设备600或单独的服务器。作为训练结果而获得的第二DNN 300的DNN设置信息被存储在AI解码设备200中。
参照图10,在操作S840和操作S845,训练设备1000初始设置第一DNN 700和第二DNN 300的DNN设置信息。因此,第一DNN 700和第二DNN 300可根据预定DNN设置信息进行操作。DNN设置信息可包括关于第一DNN700和第二DNN 300中包括的卷积层的数量、每个卷积层的滤波器核的数量、每个卷积层的滤波器核的尺寸和每个滤波器核的参数中的任意一个或任意组合的信息。
在操作S850,训练设备1000将原始训练图像801输入到第一DNN 700中。原始训练图像801可包括静止图像或运动图像中包括的至少一个帧。
在操作S855,第一DNN 700根据初始设置的DNN设置信息对原始训练图像801进行处理,并输出通过对原始训练图像801执行AI缩小而获得的第一训练图像802。在图10中,从第一DNN 700输出的第一训练图像802被直接输入到第二DNN 300,但是从第一DNN 700输出的第一训练图像802可由训练设备1000输入到第二DNN 300。此外,训练设备1000可经由特定编解码器对第一训练图像802执行第一编码和第一解码,然后将第二训练图像输入到第二DNN 300。
在操作S860,第二DNN 300根据初始设置的DNN设置信息对第一训练图像802或第二训练图像进行处理,并输出通过对第一训练图像802或第二训练图像执行AI放大而获得的第三训练图像804。
在操作S865,训练设备1000基于第一训练图像802计算复杂度损失信息820。
在操作S870,训练设备1000通过将缩减训练图像803和第一训练图像802进行比较来计算结构损失信息810。
在操作S875,训练设备1000通过将原始训练图像801和第三训练图像804进行比较来计算质量损失信息830。
在操作S880,基于最终损失信息经由反向传播处理来更新初始设置的DNN设置信息。训练设备1000可基于复杂度损失信息820、结构损失信息810和质量损失信息830来计算用于训练第一DNN 700的最终损失信息。
在操作S885,第二DNN 300基于质量损失信息830或最终损失信息经由反向传播处理来更新初始设置的DNN设置信息。训练设备1000可基于质量损失信息830来计算用于训练第二DNN 300的最终损失信息。
然后,训练设备1000、第一DNN 700和第二DNN 300可重复操作S850至S885,直到最终损失信息被最小化为止,以更新DNN设置信息。此时,在每次重复期间,第一DNN 700和第二DNN 300根据在先前操作中更新的DNN设置信息进行操作。
下面的表1示出当根据本公开的实施例对原始图像105执行AI编码和AI解码时以及当经由HEVC对原始图像105执行编码和解码时的效果。
【表1】
如表1中所示,尽管根据本公开的实施例在对包括8K分辨率的300帧的内容执行AI编码和AI解码时的主观图像质量高于在经由HEVC执行编码和解码时的主观图像质量,但是比特率降低了至少50%。
图11是用于对原始图像105执行AI缩小的第一设备20和用于对第二图像135执行AI放大的第二设备40的示图。
第一设备20接收原始图像105,并通过使用AI缩小器1124和基于变换的编码器1126将图像数据25和AI数据30提供给第二设备40。根据实施例,图像数据25对应于图1的图像数据,并且AI数据30对应于图1的AI数据。此外,根据实施例,基于变换的编码器1126对应于图7的第一编码器614,并且AI缩小器1124对应于图7的AI缩小器612。
第二设备40接收AI数据30和图像数据25,并且通过使用基于变换的解码器1146和AI放大器1144来获得第三图像145。根据实施例,基于变换的解码器1146对应于图2的第一解码器232,并且AI放大器1144对应于图2的AI放大器234。
根据实施例,第一设备20包括CPU、存储器和包括指令的计算机程序。计算机程序被存储在存储器中。根据实施例,第一设备20根据由CPU对计算机程序的执行来执行将参照图11描述的功能。根据实施例,将参照图11描述的功能由专用硬件芯片和/或CPU来执行。
根据实施例,第二设备40包括CPU、存储器和包括指令的计算机程序。计算机程序被存储在存储器中。根据实施例,第二设备40根据由CPU对计算机程序的执行来执行将参照图11描述的功能。根据实施例,将参照图11描述的功能由专用硬件芯片和/或CPU来执行。
在图11中,第一设备20的配置控制器1122接收至少一个输入值10。根据实施例,至少一个输入值10可包括针对AI缩小器1124和AI放大器1144的目标分辨率差异、针对基于变换的编码器1126的图像数据25的比特率、图像数据25的比特率类型(例如,可变比特率类型、恒定比特率类型或平均比特率类型)和编解码器类型中的任意一个或任意组合。至少一个输入值10可包括被预先存储在第一设备20中的值或从用户输入的值。
配置控制器1122基于接收到的输入值10来控制AI缩小器1124和基于变换的编码器1126的操作。根据实施例,配置控制器1122根据接收到的输入值10获得用于AI缩小器1124的DNN设置信息,并且利用所获得的DNN设置信息来设置AI缩小器1124。根据实施例,配置控制器1122可将接收到的输入值10发送到AI缩小器1124,并且AI缩小器1124可基于接收到的输入值10获得用于对原始图像105执行AI缩小的DNN设置信息。根据实施例,配置控制器1122可将附加信息(例如,应用AI缩小的颜色格式(亮度分量、色度分量、红色分量、绿色分量或蓝色分量)信息和高动态范围(HDR)的色调映射信息)连同输入值10一起提供给AI缩小器1124,并且AI缩小器1124可考虑输入值10和附加信息来获得DNN设置信息。根据实施例,配置控制器1122将接收到的输入值10的至少一部分发送到基于变换的编码器1126,并且基于变换的编码器1126经由特定值的比特率、特定类型的比特率和特定编解码器对第一图像115执行第一编码。
AI缩小器1124接收原始图像105并执行参照图1、图7、图8、图9和图10中的任意一个或任意组合描述的操作以获得第一图像115。
根据实施例,AI数据30被提供给第二设备40。AI数据30可包括原始图像105与第一图像115之间的分辨率差异信息以及与第一图像115相关的信息中的一个或两者。可基于输入值10的目标分辨率差异来确定分辨率差异信息,并且可基于目标比特率、比特率类型和编解码器类型中的任意一个或任意组合来确定与第一图像115相关的信息。根据实施例,AI数据30可包括在AI放大期间使用的参数。可从AI缩小器1124将AI数据30提供给第二设备40。
图像数据25在由基于变换的编码器1126对原始图像105进行处理时被获得,并被发送到第二设备40。基于变换的编码器1126可根据MPEG-2、H.264AVC、MPEG-4、HEVC、VC-1、VP8、VP9或VA1对第一图像115进行处理。
第二设备40的配置控制器1142基于AI数据30控制AI放大器1144的操作。根据实施例,配置控制器1142根据接收到的AI数据30获得用于AI放大器1144的DNN设置信息,并且利用所获得的DNN设置信息设置AI放大器1144。根据实施例,配置控制器1142可将接收到的AI数据30发送到AI放大器1144,并且AI放大器1144可基于AI数据30获得用于对第二图像135执行AI放大的DNN设置信息。根据实施例,配置控制器1142可将附加信息(例如,应用AI放大的颜色格式(亮度分量、色度分量、红色分量、绿色分量或蓝色分量)信息和HDR的色调映射信息)连同AI数据30一起提供给AI放大器1144,并且AI放大器1144可考虑AI数据30和附加信息来获得DNN设置信息。根据实施例,AI放大器1144可从配置控制器1142接收AI数据30,从基于变换的解码器1146接收预测模式信息、运动信息和量化参数信息中的任意一个或任意组合,并且基于AI数据30以及预测模式信息、运动信息和量化参数信息中的任意一个或任意组合来获得DNN设置信息。
基于变换的解码器1146可对图像数据25进行处理以重建第二图像135。基于变换的解码器1146可根据MPEG-2、H.264AVC、MPEG-4、HEVC、VC-1、VP8、VP9或AV1对图像数据25进行处理。
AI放大器1144可通过基于所设置的DNN设置信息对从基于变换的解码器1146提供的第二图像135执行AI放大来获得第三图像145。
AI缩小器1124可包括第一DNN,并且AI放大器1144可包括第二DNN,并且根据实施例,根据参照图9和图10描述的训练方法来训练第一DNN和第二DNN的DNN设置信息。
图12是示出根据本公开的实施例的DNN 900的结构的框图。
参照图12,DNN 900可包括多个层,并且还可包括在多个层之间的低精度变换单元。
现在将多个层描述为包括第一层910和第二层920,并且现在将第二层920描述为与第一层910相邻的层。DNN 900可包括在第一层910与第二层920之间的低精度变换单元950。
图12仅示出了两个层,但是本公开不限于此。DNN 900可包括比两个层更多的层。例如,DNN 900还可包括与第二层920相邻的第三层,并且还可包括在第二层920与第三层之间的低精度变换单元。
第一层910和第二层920可分别包括第一卷积层911和第二卷积层921,并且分别包括第一激活层912和第二激活层922。第一卷积层911和第二卷积层921可执行输入数据(图像)与滤波器核之间的卷积运算以生成特征图,并且第一激活层912和第二激活层922可将激活函数应用于所生成的特征图。
图12的DNN 900可以是包括在AI编码设备600中的第一DNN 700或者是包括在AI解码设备200中的第二DNN 300的示例。例如,第一卷积层(Conv1)911可对应于图3的第一卷积层310和图8的第一卷积层710。第二卷积层(Conv2)921可对应于图3的第二卷积层330和图8的第二卷积层730。第一激活层912可对应于图3的第一激活层320和图8的第一激活层720。第二激活层922可对应于图3的第二激活层340和图8的第二激活层740。
现在将参照图11描述根据本公开的实施例的由DNN 900执行的数据处理方法。
将集中并描述包括在第一层910中的第一卷积层911和第一激活层912。
现在将描述根据本公开的实施例的DNN 900是包括在AI编码设备600中的第一DNN700的情况。
图13是用于描述图12的第一层910中的数据处理方法的示图。
参照图13,根据本公开的实施例的第一卷积层911可包括多个滤波器核,即,第一滤波器核K1.1、第二滤波器核K1.2、…和第N滤波器核K1.N。根据本公开的实施例的第一卷积层911可通过执行输入到第一卷积层911的数据与多个滤波器核中的每一个之间的卷积运算来生成与多个滤波器核中的每一个相应的特征图。
例如,当输入原始图像105时,第一卷积层911可通过执行多个滤波器核中的第一滤波器核K1.1与原始图像105之间的卷积运算来生成第一特征图F1.1。当输入原始图像105时,第一卷积层911还可通过执行多个滤波器核中的第二滤波器核K1.2与原始图像105之间的卷积运算来生成第二特征图F1.2。
第一激活层912可将激活函数应用于由第一卷积层911输出的多个特征图(即,第一特征图F1.1、第二特征图F1.2、…和第N特征图F1.N)中的每一个。激活函数用于将通过执行卷积运算提取的特征图的值改变为诸如“具有特性或不具有特性”的非线性值。
第一激活层912可将不同的激活函数A1、A2、…和AN分别应用于由第一卷积层911输出的多个特征图F1.1、F1.2、…和F1.N。这将在下面参照图15更详细地描述。
第一激活层912可通过将激活函数应用于第一特征图F1.1来获得第一结果值1010。第一激活层912可通过将激活函数应用于第二特征图F1.2来获得第二结果值1020。
在第一层910中获得的结果值(例如,第一结果值1010和第二结果值1020)被存储在存储器中,并且存储在存储器中的结果值被输入到与第一层910相邻的层(例如,第二层920)。在第一层910中获得的结果值可被表示为实数(具有高精度的值),并且为了减少存储结果值的存储器的量,低精度变换单元950可将在第一层910中获得的结果值变换为具有预设范围的整数值(具有低精度的值)。整数值具有变换误差。
图13的第一曲线图1035示出了第一结果值的分布,并且第二曲线图1045示出了第二结果值的分布。将第一曲线图1035与第二曲线图1045进行比较,与第一滤波器核K1.1对应的第一结果值1010和与第二滤波器核K1.2对应的第二结果值1020可具有不同的分布。当具有不同分布的第一结果值1010和第二结果值1020通过在相同范围内被执行裁剪而被变换为整数值时,变换误差增大。
因此,为了减小变换误差,可执行归一化,其中,将不同的缩放因子应用于具有不同分布的第一结果值1010和第二结果值1020,使得已经应用了不同缩放因子的第一结果值1010和第二结果值1020分别具有相同或相似的分布。
图14是示出根据本公开的实施例的低精度变换单元950的结构的框图,并且图15是用于描述根据本公开的实施例的低精度变换单元950中的数据处理方法的示图。
参照图14,根据本公开的实施例的低精度变换单元950可包括归一化单元1110、裁剪单元1120和舍入单元1130。
归一化单元1110可对由第一层910获得的结果值进行归一化。例如,参照图15,归一化单元1110可通过将第一缩放因子(Scale factor 1)应用于第一结果值1035来执行归一化,并且可通过将第二缩放因子(Scale factor 2)应用于第二结果值1045来执行归一化,使得第一结果值1035和第二结果值1045具有相同或相似的分布。
例如,归一化单元1110可通过将与第一滤波器核F1.1对应的第一结果值1035乘以第一缩放因子来将第一结果值1035变换为第一值1210,并且可通过将与第二滤波器核F1.2对应的第二结果值1045乘以第二缩放因子来将第二结果值1045变换为第二值1220。
根据本公开的实施例的第一缩放因子和第二缩放因子是经由根据本公开的实施例的第一DNN的训练而确定的值,并且当根据本公开的实施例的第一DNN和第二DNN被联合训练时,第一DNN的第一缩放因子和第二缩放因子被确定为与第二DNN的第一缩放因子和第二缩放因子相关联的值。例如,在第一DNN和第二DNN的训练期间,当包括在第一DNN中的滤波器核的第一参数被更新时,在包括在第一DNN中的多个层中的每个层中获得的结果值被改变,并且当在多个层中的每个层中获得的结果值被改变时,第一DNN的缩放因子被更新,使得结果值已改变为的值具有相同或相似的分布。例如,可更新第一DNN的第一缩放因子和第二缩放因子,使得经由通过应用第一缩放因子和第二缩放因子的变换获得的第一值和第二值具有相同的正态分布。可选地,可基于在多个层中的每个层中获得的结果值的统计分布来更新第一DNN的第一缩放因子和第二缩放因子。这将稍后参照图16更详细地描述。
当第一DNN的第一参数和缩放因子被更新时,由第一DNN输出的第一训练图像被改变。当输入到第二DNN的第一训练图像被改变时,由第二DNN输出的第三训练图像也被改变。当第三训练图像被改变时,用于训练第二DNN的质量损失信息被重新确定。
因此,在使新确定的质量损失信息最小化的方向上更新包括在第二DNN中的滤波器核的第二参数。当第二DNN的第二参数被更新时,在包括在第二DNN中的多个层中的每个层中获得的结果值被改变,并且当在多个层中的每个层中获得的结果值被改变时,被应用使得结果值已改变为的值具有相似的分布的第二DNN的缩放因子也被更新。
当重新确定了质量损失信息时,用于训练第一DNN的最终损失信息也被重新确定,并且在使新确定的用于训练第一DNN的最终损失信息最小化的方向上更新第一DNN的第一参数和缩放因子。这样,第一DNN的第一参数和缩放因子以及第二DNN的第二参数和缩放因子被联合更新,并且因此完成训练的第一DNN的缩放因子和完成训练的第二DNN的缩放因子具有相关联的值。
因此,在训练完成之后确定的第一DNN的DNN设置信息(例如,第一DNN中包括的第一参数和滤波器核的数量)、第一DNN的缩放因子、第二DNN的DNN设置信息(例如,第二DNN中包括的第二参数和滤波器核的数量)和第二DNN的缩放因子彼此相关联。因此,当从第一DNN的多条DNN设置信息中确定了第一DNN的DNN设置信息时,还可确定与所确定的第一DNN的DNN设置信息相应的第一DNN的缩放因子,并且可确定与所确定的第一DNN的DNN设置信息相应的第二DNN的DNN设置信息和缩放因子。
返回参照图14和图15,根据本公开的实施例的裁剪单元1120可将第一值1210和第二值1220裁剪到预设范围。例如,预设范围可被表示为[最小值,最大值]。可基于用于表示输出值的比特数或基于整数范围来确定第一值1210和第二值1220被裁剪到的范围。例如,当输出值以8个比特表示时,8个比特可表示256个整数值,并且因此,可将裁剪范围确定为[-127,128]。然而,这是示例,并且当输出值被期望表示为8个比特时,可将裁剪范围确定为包括256个整数值的各种范围。
裁剪单元1120可将第一值和第二值中的小于最小值的值变换为最小值,并且可将第一值和第二值中的大于最大值的值变换为最大值。
例如,如图13所示,当最小值为-127并且最大值为128时,裁剪单元1120可将小于-127的值变换为-127,并且可将大于128的值变换为128。因此,经裁剪的值可被表示为等于或大于-127且小于或等于128的实数。
根据本公开的实施例的舍入单元1130可将经裁剪的(实数)值变换为预设范围内的整数值。例如,舍入单元1130可通过对经裁剪的(实数)值进行舍入来将经裁剪的(实数)值变换为整数值。可选地,舍入单元1130可通过向上或向下舍入经裁剪的值来将经裁剪的值变换成整数值。然而,本公开不限于此。
可将在预设范围内变换的整数值输入到与第一层910相邻的第二层920。在第二层920中,如在第一层910中,可执行卷积运算,因此可在第二卷积层921中生成特征图,并且可在第二激活层922中将激活函数应用于在第二卷积层921中生成的特征图。
尽管在图13至图15中根据本公开实施例的DNN 900是第一DNN,但是参照图13至图15描述的由DNN 900执行的数据处理方法可同样应用于AI解码设备200中包括的第二DNN。
图16是根据本公开的实施例的用于描述确定缩放因子的方法的示图。
参照图16,根据本公开的实施例的DNN 900可以是第一DNN 700或第二DNN 300的示例。
可基于多个训练图像(训练数据)来训练DNN 900。在正基于多个训练图像训练DNN900时,可确定将被包括在DNN 900中的缩放因子。例如,当多个训练图像(训练数据1310)中的第一训练图像1311被输入到DNN 900时,DNN 900中包括的多个层中的每个层可获得分别与多个滤波器核对应的多条训练结果数据。例如,在第一层910中,可通过执行第一训练图像1311与第一滤波器核K1.1之间的卷积运算来生成第一特征图,并且可通过将激活函数A1应用于第一特征图来获得第一训练结果数据1321。
在第一层910中,可通过执行第一训练图像1311与第二滤波器核K1.2之间的卷积运算来生成第二特征图,并且可通过将激活函数A2应用于第二特征图来获得第二训练结果数据1331。
当基于多个训练图像训练DNN 900并且改变输入的训练图像时,与第一层910的第一滤波器核K1.1相应的第一训练结果数据1321被改变,并且与第一层910的第二滤波器核K1.2相应的第二训练结果数据1331被改变。因此,在第一层910中,可获得与多个训练图像对应的多条第一训练结果数据1320和多条第二训练结果数据1330。
包括在第一训练结果数据1321中的值相对于第一训练图像1311的离差可被确定为与第一滤波器核K1.1相应的第一离差的初始值,并且包括在第二训练结果数据1331中的值相对于第一训练图像1311的离差可被确定为与第二滤波器核K1.2相应的第二离差的初始值。
当第一训练结果数据1321和第二训练结果数据1331随着输入的训练图像的改变而改变时,可获得包括在改变后的第一训练结果数据中的值的离差,并且可使用所获得的离差来更新与第一滤波器核相应的第一离差。另外,可获得包括在改变后的第二训练结果数据中的值的离差,并且可使用所获得的离差来更新与第二滤波器核相应的第二离差。
可使用参数σ、参数A和参数B来计算缩放因子。可使用离差σ1 2和离差σ2 2之和来获得参数σ的平方值。例如,基于下式计算参数σ:
[等式2]
在等式2中,σ1 2指示在通过使用先前训练图像训练DNN 900期间更新的与第一滤波器核K1.1相应的第一离差,并且σ2 2指示在当前训练图像被输入到DNN 900之后在第一层910中获得的与第一滤波器核K1.1相应的第一训练结果数据1321中包括的值的离差。系数0.99或系数0.01是示例,并且可使用各种其他常数值。
类似地,可更新与第一层910的第二滤波器核K1.2相应的离差,并且可更新与多个层中除第一层910之外的每个层中包括的多个滤波器核中的每个滤波器核相应的离差。
如在下面的等式3中,可基于与多个滤波器核中的每一个相应的离差值来确定与DNN 900中包括的多个滤波器核中的每一个相应的缩放因子。
[等式3]
在等式3中,参数A是基于预设范围确定的值。例如,当预设范围等于或大于-127且小于或等于128时,可将参数A确定为128。假设包括在与多个滤波器核中的每一个对应的训练结果数据中的值遵循高斯分布,当包括在训练结果数据中的值被包括在预设范围中的概率被确定时,可根据所确定的概率来确定参数B。例如,当包括在训练结果数据中的值被包括在预设范围中的概率被确定为99.7%时,参数B可被确定为3。当包括在训练结果数据中的值被包括在预设范围中的概率被确定为95.4%时,参数B可被确定为2。参数B的值可随着包括在训练结果数据中的值在预设范围内的概率增大而增大。然而,本公开不限于此。
图17示出根据本公开的实施例的激活函数。
参照图17,根据本公开的实施例的激活函数1410可被表示为等式4。
[等式4]
在等式4中,x指示作为卷积运算的结果而生成的特征图。根据本公开的实施例,x是正数的区间中的斜率b可经由训练第一DNN 700和第二DNN 300被确定,并且斜率b可针对第一DNN 700和第二DNN 300中包括的不同层和不同滤波器核具有不同的值。例如,应用于由第一层的第一滤波器核生成的第一特征图的第一激活函数的斜率b和应用于由第一层的第二滤波器核生成的第二特征图的第二激活函数的斜率b可具有不同的值。
根据本公开的另一实施例的激活函数1420可被表示为等式5。
[等式5]
在等式5中,根据本公开的实施例,x是负数的区间中的斜率α可经由第一DNN 700和第二DNN 300的训练被确定,或者可具有固定值。根据本公开的实施例,x是正数的区间中的斜率b可经由训练第一DNN 700和第二DNN 300被确定。因此,斜率b可针对第一DNN 700和第二DNN 300中包括的不同层和不同滤波器核具有不同的值。例如,应用于由第一层的第一滤波器核生成的第一特征图的第一激活函数的斜率b和应用于由第一层的第二滤波器核生成的第二特征图的第二激活函数的斜率b可具有不同的值。
斜率a和斜率b可具有不同的值(非线性),并且斜率a可小于1。然而,本公开不限于此。
图18是根据本公开的实施例的AI编码设备的操作方法的流程图。
参照图18,在操作S1510,当原始图像被输入到包括多个层的第一DNN700时,根据本公开实施例的AI编码设备600可从多个层中的第一层,基于原始图像与第一滤波器核之间的运算的结果获得第一结果值并且可基于原始图像与第二滤波器核之间的运算的结果获得第二结果值。
根据本公开的实施例的第一DNN 700是对图像进行AI缩小的网络,并且因此可以是与对图像进行AI放大的第二DNN 300相应并且结合第二DNN 300进行训练的网络。第一DNN 700可包括多个层。例如,第一DNN 700可包括第一层和第二层。根据本公开的实施例,多个层中的每一层可包括卷积层和激活层。一个卷积层可包括多个滤波器核。例如,包括在第一层中的第一卷积层可包括第一滤波器核和第二滤波器核。
当原始图像被输入到第一DNN 700时,在第一层的第一卷积层中,可经由原始图像和第一滤波器核之间的卷积运算生成第一特征图,并且可经由原始图像和第二滤波器核之间的卷积运算生成第二特征图。
在第一层的第一卷积层中生成的第一特征图和第二特征图可被输入到第一层的第一激活层。在第一层的第一激活层中,可将激活函数应用于第一特征图并且因此可输出第一结果值,并且可将激活函数应用于第二特征图并且因此可输出第二结果值。因此,AI编码设备600可从第一层获得与第一滤波器核对应的第一结果值,并且可从第一层获得与第二滤波器核对应的第二结果值。
在操作S1520,AI编码设备600可对第一结果值和第二结果值进行归一化。例如,AI编码设备600可通过将第一缩放因子应用于第一结果值来执行归一化,并且可通过将第二缩放因子应用于第二结果值来执行归一化。例如,AI编码设备600可通过将第一结果值乘以第一缩放因子来将第一结果值变换为第一值,并且可通过将第二结果值乘以第二缩放因子来将第二结果值变换为第二值。
根据本公开的实施例的第一缩放因子和第二缩放因子是通过训练第一DNN确定的值,并且当根据本公开的实施例的第一DNN和第二DNN彼此结合训练时,第一DNN的第一缩放因子和第二缩放因子被确定为与第二DNN的缩放因子相关联的值。例如,在第一DNN和第二DNN的训练期间,当包括在第一DNN中的滤波器核的第一参数被更新时,在包括在第一DNN中的多个层中的每个层中获得的结果值被改变,并且当在多个层中的每个层中获得的结果值被改变时,第一DNN的缩放因子被更新,使得结果值已改变为的值具有相同或相似的分布。例如,可更新第一DNN的第一缩放因子和第二缩放因子,使得经由通过应用第一缩放因子和第二缩放因子的变换获得的第一值和第二值具有相同的正态分布。可选地,可基于在多个层中的每个层中获得的结果值的统计分布来更新第一DNN的第一缩放因子和第二缩放因子。
当第一DNN的第一参数和缩放因子被更新时,由第一DNN输出的第一训练图像被改变。当输入到第二DNN的第一训练图像被改变时,由第二DNN输出的第三训练图像也被改变。当第三训练图像被改变时,用于训练第二DNN的质量损失信息被重新确定。
因此,在使新确定的第三损失信息最小化的方向上更新包括在第二DNN中的滤波器核的第二参数。当第二DNN的第二参数被更新时,在包括在第二DNN中的多个层中的每个层中获得的结果值被改变,并且当在多个层中的每个层中获得的结果值被改变时,被应用使得结果值已改变为的值具有相似分布的第二DNN的缩放因子被改变。
当质量损失信息被重新确定时,用于训练第一DNN的最终损失信息也被重新确定,并且在使新确定的用于训练第一DNN的最终损失信息最小化的方向上更新第一DNN的第一参数和缩放因子。因此,第一DNN的第一参数和缩放因子以及第二DNN的第二参数和缩放因子彼此相关地更新,并且因此完成训练的第一DNN的缩放因子和完成训练的第二DNN的缩放因子具有相关联的值。
因此,在训练完成之后确定的第一DNN的DNN设置信息(例如,第一DNN中包括的第一参数和滤波器核的数量)、第一DNN的缩放因子、第二DNN的DNN设置信息(例如,第二DNN中包括的第二参数和滤波器核的数量)和第二DNN的缩放因子彼此相关联。因此,当从第一DNN的多条DNN设置信息中确定了第一DNN的DNN设置信息时,还可确定与所确定的第一DNN的DNN设置信息相应的第一DNN的缩放因子,并且可确定与所确定的第一DNN的DNN设置信息相应的第二DNN的DNN设置信息和缩放因子。
在操作S1530,AI编码设备600可将归一化的第一值和归一化的第二值变换为包括在预设范围内的整数值。
例如,AI编码设备600可将第一值和第二值裁剪到预设范围。可基于用于表示输出值的比特数或基于整数范围来确定第一值和第二值被裁剪到的范围。当裁剪范围是[最小值,最大值]时,AI编码设备600可将第一值和第二值中的小于最小值的值变换为最小值,并且可将第一值和第二值中的大于最大值的值变换为最大值。
AI编码设备600可通过对经裁剪的值进行舍入来将经裁剪的值变换为整数值。可选地,AI编码设备600可通过对经裁剪的值进行向上舍入或向下舍入来将经裁剪的值变换为整数值。整数值可被输入到与第一层相邻的第二层。
在操作S1540,当以与第一层中相同的方式将整数值输入到第二层时,在第二层的第二卷积层中,可经由输入的整数值与多个滤波器核之间的卷积运算来生成多个特征图,并且在第二层的第二激活层中,可通过将激活函数应用于多个特征图中的每一个来获得第三结果值。AI编码设备600可通过针对第三结果值执行归一化和裁剪来执行低精度变换以将第三结果值变换为预设范围内的整数值,并且可将整数值输入到下一层。
这样,可重复执行以下处理:原始图像在通过第一DNN 700中包括的多个层时利用多个层中的每个层中的滤波器核被执行卷积运算和激活函数运算,因此输出结果值,并且对每个层输出的结果值执行低精度变换,并且将低精度变换的结果输入到下一层。因此,在操作S1550,AI编码设备600可通过使用第一DNN 700对原始图像进行AI缩小来获得第一图像115。此时,经由对由第一DNN的每一层输出的结果值进行低精度变换而获得的整数值可在被输入到下一层之前被存储在存储器中,因此可减少用于存储在通过使用第一DNN 700获得第一图像(通过对原始图像进行AI缩小而获得的图像)时生成的中间结果值所需的存储器的量。
在操作S1560,AI编码设备600可对第一图像进行编码。
图19是根据本公开的实施例的AI解码设备的操作方法的流程图。
参照图19,在操作S1610,AI解码设备200可获得与第一图像对应的图像数据。
第一图像可以是通过使用第一DNN700对原始图像进行AI缩小而获得的图像,并且图像数据可包括通过对第一图像进行AI编码而生成的图像数据。
在操作S1620,AI解码设备200可基于图像数据恢复与第一图像对应的第二图像。
在操作S1630,当第二图像被输入到包括多个层的第二DNN 300时,AI解码设备200可从多个层中的第一层,基于第二图像与第一滤波器核之间的运算的结果获得第一结果值并且可基于第二图像与第二滤波器核之间的运算的结果获得第二结果值。
根据本公开的实施例的第二DNN 300是对图像进行AI放大的网络,因此可以是与对图像进行AI缩小的第一DNN 700对应并且结合第一DNN 700进行训练的网络。第二DNN300可以包括多个层。例如,第二DNN 300可包括第一层和第二层。根据本公开的实施方式,多个层中的每一层可包括卷积层和激活层。一个卷积层可包括多个滤波器核。例如,包括在第一层中的第一卷积层可包括第一滤波器核和第二滤波器核。
当第二图像被输入到第二DNN 300时,在第一层的第一卷积层中,可经由第二图像与第一滤波器核之间的卷积运算生成第一特征图,并且可经由第二图像与第二滤波器核之间的卷积运算生成第二特征图。
在第一层的第一卷积层中生成的第一特征图和第二特征图可被输入到第一层的第一激活层。在第一层的第一激活层中,可将激活函数应用于第一特征图并且因此可输出第一结果值,并且可将激活函数应用于第二特征图并且因此可输出第二结果值。因此,AI解码设备200可从第一层获得与第一滤波器核对应的第一结果值,并且可从第一层获得与第二滤波器核对应的第二结果值。
在操作S1640,AI解码设备200可对第一结果值和第二结果值进行归一化。例如,AI解码设备200可通过将第一缩放因子应用于第一结果值来执行归一化,并且可通过将第二缩放因子应用于第二结果值来执行归一化。例如,AI解码设备200可通过将第一结果值乘以第一缩放因子来将第一结果值变换为第一值,并且可通过将第二结果值乘以第二缩放因子来将第二结果值变换为第二值。
根据本公开的实施例的第一缩放因子和第二缩放因子是通过训练第一DNN确定的值,并且当根据本公开的实施例的第一DNN和第二DNN彼此结合训练时,第一DNN的第一缩放因子和第二缩放因子被确定为与第二DNN的缩放因子相关联的值。例如,在第一DNN和第二DNN的训练期间,当包括在第一DNN中的滤波器核的第一参数被更新时,在包括在第一DNN中的多个层中的每个层中获得的结果值被改变,并且当在多个层中的每个层中获得的结果值被改变时,第一DNN的缩放因子被更新,使得结果值已改变为的值具有相同或相似的分布。例如,可更新第一DNN的第一缩放因子和第二缩放因子,使得经由通过应用第一缩放因子和第二缩放因子的变换获得的第一值和第二值具有相同的正态分布。可选地,可基于在多个层中的每个层中获得的结果值的统计分布来更新第一DNN的第一缩放因子和第二缩放因子。
当第一DNN的第一参数和缩放因子被更新时,由第一DNN输出的第一训练图像被改变。当输入到第二DNN的第一训练图像被改变时,由第二DNN输出的第三训练图像也被改变。当第三训练图像被改变时,用于训练第二DNN的质量损失信息被重新确定。
因此,在使新确定的质量损失信息最小化的方向上更新包括在第二DNN中的滤波器核的第二参数。当第二DNN的第二参数被更新时,在包括在第二DNN中的多个层中的每个层中获得的结果值被改变,并且当在多个层中的每个层中获得的结果值被改变时,被应用使得改变后的结果值具有相同或相似的分布的第二DNN的缩放因子被更新。
当质量损失信息被重新确定时,用于训练第一DNN的最终损失信息也被重新确定,并且在使新确定的用于训练第一DNN的最终损失信息最小化的方向上更新第一DNN的第一参数和缩放因子。因此,第一DNN的第一参数和缩放因子以及第二DNN的第二参数和缩放因子彼此相关地被更新,并且因此完成训练的第一DNN的缩放因子和完成训练的第二DNN的缩放因子具有相关联的值。
因此,在训练完成之后确定的第一DNN的DNN设置信息(例如,第一DNN中包括的第一参数和滤波器核的数量)、第一DNN的缩放因子、第二DNN的DNN设置信息(例如,第二DNN中包括的第二参数和滤波器核的数量)和第二DNN的缩放因子彼此相关联。因此,当从第一DNN的多条DNN设置信息中确定了第一DNN的DNN设置信息时,还可确定与所确定的第一DNN的DNN设置信息相应的第一DNN的缩放因子,并且可确定与所确定的第一DNN的DNN设置信息相应的第二DNN的DNN设置信息和缩放因子。
在操作S1650,AI解码设备200可将归一化的第一值和归一化的第二值变换为包括在预设范围内的整数值。
例如,AI解码设备200可将第一值和第二值裁剪到预设范围。可基于用于表示输出值的比特数或基于整数范围来确定第一值和第二值被裁剪到的范围。当裁剪范围是[最小值,最大值]时,AI解码设备200可将第一值和第二值中的小于最小值的值变换为最小值,并且可将第一值和第二值中的大于最大值的值变换为最大值。
AI解码设备200可通过对经裁剪的值进行舍入来将经裁剪的值变换为整数值。可选地,AI解码设备200可通过向上舍入或向下舍入经裁剪的值来将经裁剪的值变换为整数值。整数值可被输入到与第一层相邻的第二层。
在操作S1660,当以与第一层中相同的方式将整数值输入到第二层时,在第二层的第二卷积层中,可经由输入的整数值与多个滤波器核之间的卷积运算来生成多个特征图,并且在第二层的第二激活层中,可通过将激活函数应用于多个特征图中的每一个来获得第三结果值。AI解码设备200可通过对第三结果值执行归一化和裁剪来执行低精度变换以将第三结果值变换为预设范围内的整数值,并且可将整数值输入到下一层。
这样,可重复执行以下处理:第二图像在通过包括在第二DNN 300中的多个层时利用多个层中的每个层中的滤波器核进行卷积运算和激活函数运算,因此输出结果值,并且对由每个层输出的结果值执行低精度变换,并且将低精度变换的结果输入到下一层。因此,在操作S1670,AI解码设备200可通过使用第二DNN 300对第二图像进行AI放大来获得第三图像。
此时,经由对由第二DNN的每一层输出的结果值进行低精度变换而获得的整数值可在被输入到下一层之前被存储在存储器中,并且因此可减少用于存储在通过使用第二DNN 300获得第三图像(通过对第二图像进行AI缩小而获得的图像)时生成的中间结果值所需的存储器的量。
图20是根据本公开的实施例的AI编码设备1700的结构的框图。
图20的AI编码设备1700可以是图7的AI编码设备600的实施例。参照图20,AI编码设备1700可包括处理器1720和存储器1730。
根据本公开实施例的处理器1720可完全控制AI编码设备1700。根据本公开的实施例的处理器1720可执行存储在存储器1730中的一个或更多个程序。
根据本公开实施例的存储器1730可存储用于驱动和控制AI编码设备1700的各种数据、程序或应用。存储在存储器1730中的程序可包括至少一个指令。存储在存储器1730中的程序(一个或更多个指令)或应用可由处理器1720执行。
根据本公开的实施例的处理器1720可执行在图7中示出并在上面参照图7描述的AI编码单元610和发送单元630的操作、在图12至图15中示出并在上面参照图12至图15描述的第一卷积层911和第二卷积层921、第一激活层912和第二激活层922以及低精度变换单元950的操作、以及在上面参照图18描述的AI编码设备600的操作中的至少一个。
当原始图像被输入到包括多个层的第一DNN时,根据本公开的实施例的处理器1720可从多个层中的第一层,基于原始图像与第一滤波器核之间的运算的结果获得第一结果值并且可基于原始图像与第二滤波器核之间的运算的结果获得第二结果值。例如,处理器1720可经由原始图像与第一滤波器核之间的卷积运算来生成第一特征图,并且可通过在第一层的第一卷积层中将激活函数应用于第一特征图来获得第一结果值。处理器1720还可经由原始图像与第二滤波器核之间的卷积运算来生成第二特征图,并且还可通过在第一层的第一卷积层中将激活函数应用于第二特征图来获得第二结果值。如上面参照图17所述,应用于第一特征图的激活函数(第一激活函数)和应用于第二特征图的激活函数(第二激活函数)可以是具有等式4或5的形式的激活函数,并且第一激活函数和第二激活函数的斜率a或b可彼此不同。
处理器1720可通过将第一缩放因子应用于第一结果值来执行归一化,并且可通过将第二缩放因子应用于第二结果值来执行归一化。处理器1720可将经归一化的值裁剪到预设范围,并将经裁剪的值变换为整数值。处理器1720可通过对经裁剪的值进行舍入、向上舍入或向下舍入来将经裁剪的值变换为整数值,但是本公开不限于此。
处理器1720可将整数值输入到与第一层相邻的第二层。
这样,可重复执行以下处理:原始图像在通过第一DNN 700中包括的多个层中时利用多个层中的每个层中的滤波器核进行卷积运算和激活函数运算,对每个层输出的结果值执行低精度变换,并且将低精度变换的结果输入到下一层。因此,处理器1720可通过使用第一DNN 700对原始图像进行AI缩小来获得第一图像115。
包括在第一DNN 700中的卷积层、激活层或低精度变换单元中的任意一个或任意组合可以以硬件芯片的形式被制造,并且可被安装在AI编码设备1700上。例如,包括在第一DNN 700中的卷积层、激活层或低精度变换单元中的任意一个或任意组合可以以用于人工智能(AI)的专用硬件芯片的形式被制造,或者可被制造为现有通用处理器(例如,中央处理单元(CPU)或应用处理器(AP))或专用于图形的处理器(例如,图形处理单元(GPU))的一部分,并且可被安装在上述各种图像处理设备的任意一个上。
可使用软件模块来实现包括在第一DNN 700中的卷积层、激活层、低精度变换单元中的任意一个或任意组合。当使用软件模块(或包括指令的程序模块)实现包括在第一DNN700中的卷积层、激活层或低精度变换单元中的任意一个或任意组合时,软件模块可被存储在非暂时性计算机可读介质中。在这种情况下,至少一个软件模块可由操作系统(OS)或由特定应用提供。可选地,至少一个软件模块中的一些软件模块可由OS提供,并且其他软件模块可由特定应用提供。
图21是根据本公开的实施例的AI解码设备1800的结构的框图。
图21的AI解码设备1800可以是图2的AI解码设备200的实施例。参照图21,AI解码设备1800可包括处理器1820和存储器1830。
根据本公开实施例的处理器1820可完全控制AI解码设备1800。根据本公开的实施例的处理器1820可执行存储在存储器1830中的一个或更多个程序。
根据本公开实施例的存储器1830可存储用于驱动和控制AI解码设备1800的各种数据、程序或应用。存储在存储器1830中的程序可包括至少一个指令。存储在存储器1830中的程序(一个或更多个指令)或应用可由处理器1820执行。
根据本公开实施例的处理器1820可执行在图2中示出并在上面参照图2描述的接收单元210和AI解码单元230的操作、在图12至图15中示出并在上面参照图12至图15描述的第一卷积层911和第二卷积层921、第一激活层912和第二激活层922以及低精度变换单元950的操作、以及在上面参照图21描述的AI解码设备200的操作中的任一个或两者。
当第二图像被输入到包括多个层的第二DNN时,根据本公开的实施例的处理器1820可从多个层中的第一层,基于第二图像与第一滤波器核之间的运算的结果获得第一结果值并且可基于第二图像与第二滤波器核之间的运算的结果获得第二结果值。例如,处理器1820可经由第二图像与第一滤波器核之间的卷积运算来生成第一特征图,并且可通过在第一层的第一卷积层中将激活函数应用于第一特征图来获得第一结果值。处理器1820还可经由第二图像与第二滤波器核之间的卷积运算来生成第二特征图,并且还可通过在第一层的第一卷积层中将激活函数应用于第二特征图来获得第二结果值。如上面参照图17所述,应用于第一特征图的激活函数(第一激活函数)和应用于第二特征图的激活函数(第二激活函数)可以是具有等式4或5的形式的激活函数,并且第一激活函数和第二激活函数的斜率a或b可彼此不同。
处理器1820可通过将第一缩放因子应用于第一结果值来执行归一化,并且可通过将第二缩放因子应用于第二结果值来执行归一化。处理器1820可将经归一化的值裁剪到预设范围,并将经裁剪的值变换为整数值。处理器1820可通过对经裁剪的值进行舍入、向上舍入或向下舍入来将经裁剪的值变换为整数值,但是本公开不限于此。
处理器1820可将整数值输入到与第一层相邻的第二层。
这样,可重复执行以下处理:第二图像在通过第二DNN 300中包括的多个层时利用多个层中的每个层中的滤波器核进行卷积运算和激活函数运算,对每个层输出的结果值执行低精度变换,并且将低精度变换的结果输入到下一层。因此,处理器1820可通过使用第二DNN 300对第二图像进行AI放大来获得第三图像。
包括在第二DNN300中的卷积层、激活层或低精度变换单元中的任意一个或任意组合可以以硬件芯片的形式被制造,并且可被安装在AI解码设备1800上。例如,包括在第二DNN 300中的卷积层、激活层或低精度变换单元中的至少一个可以以用于人工智能(AI)的专用硬件芯片的形式被制造,或者可被制造为现有通用处理器(例如,中央处理单元(CPU)或应用处理器(AP))或专用于图形的处理器(例如,图形处理单元(GPU))的一部分,并且可被安装在上述各种图像处理设备中的任意一个上。
可使用软件模块来实现包括在第二DNN 300中的卷积层、激活层和低精度变换单元中的任意一个或任意组合。当使用软件模块(或包括指令的程序模块)来实现包括在第二DNN 300中的卷积层、激活层和低精度变换单元中的任意一个或任意组合时,软件模块可被存储在非暂时性计算机可读介质中。在这种情况下,至少一个软件模块可由OS或由特定应用提供。可选地,至少一个软件模块中的一些软件模块可由OS提供,并且其他软件模块可由特定应用提供。
图20和图21所示的AI编码设备1700和AI解码设备1800的框图仅是本公开的示例性实施例。在实际实现时,可根据AI编码设备1700和AI解码设备1800的规格来组合或省略图20和图21所示的组件,或者可在图20和图21的框图中包括另外的组件。换句话说,两个或更多个组件可被组合成单个组件,或者单个组件可被分成两个或更多个组件。在每个框中执行的功能仅是解释本公开的实施例的示例,并且每个框的详细操作或装置不限制本公开的实施例的范围。
根据本公开的实施例的AI编码设备可通过以低精度表示在通过使用第一DNN进行图像的缩小期间生成的中间结果值来减少必要的存储器的量,并且可通过在中间结果值被变换为低精度值期间使变换误差最小化来改善第一DNN的性能。
根据本公开实施例的AI编码设备还可通过将可训练的激活函数应用于第一DNN来改善第一DNN的性能。
根据本公开的实施例的AI解码设备可通过以低精度表示在通过使用第二DNN进行图像的放大期间生成的中间结果值来减少必要的存储器的量,并且可通过在中间结果值被变换为低精度值期间使变换误差最小化来改善第二DNN的性能。
在AI编码设备包括提供经AI缩小的图像的服务器并且AI解码设备包括接收经AI缩小的图像的终端的系统中,可减少用于存储在对从终端接收的图像进行AI放大期间生成的中间结果值所需的存储器的量,从而提高系统的效率。
根据本公开的实施例的AI解码设备可通过将可训练的激活函数应用于第二DNN来改善第二DNN的性能。
此外,上述本公开的实施例可被编写为可被存储在介质中的计算机可执行程序或指令。
介质可持续存储计算机可执行程序或指令,或者临时存储计算机可执行程序或指令以供执行或下载。此外,介质可以是组合了单件或多件硬件的各种记录介质或存储介质中的任意一种,并且介质不限于直接连接到计算机系统的介质,而是可被分布在网络上。介质的示例包括被配置为存储程序指令的磁介质(诸如硬盘、软盘和磁带)、光学记录介质(诸如CD-ROM和DVD)、磁光介质(诸如软光盘、以及ROM、RAM和闪存)。介质的其他示例包括由分发应用的应用商店或者由供应或分发其他各种类型的软件的网站、服务器等管理的记录介质和存储介质。
与上述DNN相关的模型可经由软件模块来实现。当DNN模型经由软件模块(例如,包括指令的程序模块)来实现时,DNN模型可被存储在计算机可读记录介质中。
此外,DNN模型可通过以硬件芯片的形式被集成而成为上述AI解码设备200或AI编码设备600的一部分。例如,DNN模型可以以用于AI的专用硬件芯片的形式被制造,或者可被制造为现有通用处理器(例如,CPU或应用处理器)或图形专用处理器(例如,GPU)的一部分。
此外,DNN模型可以以可下载软件的形式被提供。计算机程序产品可包括呈通过制造商或电子市场被电子分发的软件程序的形式的产品(例如,可下载的应用)。对于电子分发,软件程序的至少一部分可被存储在存储介质中或者可被临时生成。在这种情况下,存储介质可以是制造商或电子市场的服务器或者中继服务器的存储介质。
虽然已经参照附图描述了本公开的一个或更多个实施例,但是本领域普通技术人员将理解,在不脱离由所附权利要求限定的精神和范围的情况下,可在本公开中进行形式和细节上的各种改变。
Claims (15)
1.一种人工智能AI解码设备,包括:
存储器,存储一个或更多个指令;以及
处理器,被配置为执行存储的所述一个或更多个指令以进行以下操作:
获得通过使用第一深度神经网络DNN对原始图像进行缩小获得的第一图像图像数据,
基于所述图像数据获得作为第一图像的重建图像的第二图像,
将第二图像输入到包括多个层的第二DNN,其中,所述多个层包括第一层和第二层,第一层包括第一滤波器核和第二滤波器核,
基于第二图像与第一滤波器核之间的运算获得第一结果值,并且基于第二图像与第二滤波器核之间的运算获得第二结果值,
通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化,
将第一值和第二值变换为包括在预设范围内的整数值,
将所述整数值输入到第二层,在第二层中基于所述整数值获得第三结果值,并且通过基于第三结果值对第二图像进行放大来获得第三图像,
其中,第一缩放因子和第二缩放因子与第一DNN的缩放因子相关联地被设置。
2.如权利要求1所述的AI解码设备,其中,第二DNN是基于在第一DNN的训练期间获得的图像结合第一DNN被训练出的网络,并且
第一缩放因子和第二缩放因子经由对第二DNN和第一DNN的训练被设置。
3.如权利要求1所述的AI解码设备,其中,第一缩放因子和第二缩放因子被训练使得第一值的正态分布变得等于第二值的正态分布。
4.如权利要求1所述的AI解码设备,其中,处理器还被配置为执行所述一个或更多个指令以进行以下操作:将第一值和第二值裁剪到所述预设范围,并将经裁剪的第一值和第二值变换为所述整数值。
5.如权利要求4所述的AI解码设备,其中,处理器还被配置为执行所述一个或更多个指令以通过对经裁剪的第一值和第二值进行舍入来将经裁剪的第一值和第二值变换为所述整数值。
6.如权利要求1所述的AI解码设备,其中,处理器还被配置为执行所述一个或更多个指令以将所述整数值存储在存储器中。
7.如权利要求6所述的AI解码设备,其中,存储所述整数值的存储器的大小基于所述预设范围被确定。
8.如权利要求1所述的AI解码设备,其中,处理器还被配置为执行所述一个或更多个指令以进行以下操作:
通过执行第二图像与第一滤波器核之间的卷积运算来生成第一特征图,并且通过将第一激活函数应用于第一特征图来获得第一结果值,并且
通过执行第二图像与第二滤波器核之间的卷积运算来生成第二特征图,并且通过将第二激活函数应用于第二特征图来获得第二结果值。
10.如权利要求9所述的AI解码设备,其中,第一激活函数中的b的值不同于第二激活函数中的b的值。
11.一种人工智能AI编码设备,包括:
存储器,存储一个或更多个指令;以及
处理器,被配置为执行存储的所述一个或更多个指令以进行以下操作:
将原始图像输入到包括多个层的第一深度神经网络DNN,其中,所述多个层包括第一层和第二层,第一层包括第一滤波器核和第二滤波器核,
基于所述原始图像与第一滤波器核之间的运算获得第一结果值,并且基于所述原始图像与第二滤波器核之间的运算获得第二结果值,
通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化,
将第一值和第二值变换为包括在预设范围内的整数值,
将所述整数值输入到第二层,在第二层中基于所述整数值获得第三结果值,通过基于第三结果值对所述原始图像进行缩小来获得第一图像,并且对第一图像进行编码,
其中,第一缩放因子和第二缩放因子与被配置为对第一图像进行放大的第二DNN的缩放因子相关联地被设置。
12.如权利要求11所述的AI编码设备,其中,第一DNN是基于在第二DNN的训练期间获得的损失信息结合第二DNN被训练出的网络,并且
第一缩放因子和第二缩放因子经由对第二DNN和第一DNN的训练被设置。
13.如权利要求12所述的AI编码设备,其中,第一DNN是基于在第一DNN的训练期间通过进行AI缩小生成的第一损失信息和在第二DNN的训练期间通过进行AI放大生成的第二损失信息被训练出的网络。
14.一种人工智能AI解码设备的操作方法,所述操作方法包括:
获得与通过使用第一深度神经网络DNN对原始图像进行缩小获得的第一图像相应的图像数据;
基于所述图像数据获得作为第一图像的重建图像的第二图像;
将第二图像输入到包括多个层的第二DNN,其中,所述多个层包括第一层和第二层,第一层包括第一滤波器核和第二滤波器核;
基于第二图像与第一滤波器核之间的运算获得第一结果值,并且基于第二图像与第二滤波器核之间的运算获得第二结果值;
通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化;
将第一值和第二值变换为包括在预设范围内的整数值;
将所述整数值输入到第二层,并在第二层中基于所述整数值获得第三结果值;
通过基于第三结果值对第二图像进行放大来获得第三图像,
其中,第一缩放因子和第二缩放因子与第一DNN的缩放因子相关联地被设置。
15.一种人工智能AI编码设备的操作方法,所述操作方法包括:
将原始图像输入到包括多个层的第一深度神经网络DNN,其中,所述多个层包括第一层和第二层,第一层包括第一滤波器核和第二滤波器核;
基于所述原始图像与第一滤波器核之间的运算获得第一结果值,并且基于所述原始图像与第二滤波器核之间的运算获得第二结果值;
通过使用第一缩放因子将第一结果值变换为第一值来执行归一化,并且通过使用第二缩放因子将第二结果值变换为第二值来执行归一化;
将第一值和第二值变换为包括在预设范围内的整数值;
将所述整数值输入到第二层,并且在第二层中基于所述整数值获得第三结果值;
通过基于第三结果值对所述原始图像进行缩小来获得第一图像;
对第一图像进行编码,
其中,第一缩放因子和第二缩放因子与被配置为对第一图像进行放大的第二DNN的缩放因子相关联地被设置。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180125406 | 2018-10-19 | ||
KR10-2018-0125406 | 2018-10-19 | ||
KR20180148905 | 2018-11-27 | ||
KR10-2018-0148905 | 2018-11-27 | ||
KR10-2019-0041100 | 2019-04-08 | ||
KR20190041100 | 2019-04-08 | ||
KR10-2019-0078344 | 2019-06-28 | ||
KR1020190078344A KR102312338B1 (ko) | 2018-10-19 | 2019-06-28 | Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법 |
PCT/KR2019/013595 WO2020080827A1 (en) | 2018-10-19 | 2019-10-16 | Ai encoding apparatus and operation method of the same, and ai decoding apparatus and operation method of the same |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112715029A true CN112715029A (zh) | 2021-04-27 |
Family
ID=70466765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980060231.2A Pending CN112715029A (zh) | 2018-10-19 | 2019-10-16 | Ai编码设备及其操作方法和ai解码设备及其操作方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3811619A4 (zh) |
KR (1) | KR102312338B1 (zh) |
CN (1) | CN112715029A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12079305B2 (en) | 2020-10-06 | 2024-09-03 | Electronics And Telecommunications Research Institute | Apparatus for encoding and decoding feature map and method using the same |
KR102554709B1 (ko) * | 2020-10-06 | 2023-07-13 | 한국전자통신연구원 | 특징 맵 부호화 및 복호화 장치 및 이를 이용한 방법 |
KR20230172914A (ko) * | 2022-06-16 | 2023-12-26 | 주식회사 유엑스팩토리 | 이미지 분석을 위한 파생 이미지를 생성하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102176748A (zh) * | 2006-01-06 | 2011-09-07 | 微软公司 | 用于多分辨率视频编码和解码的重新采样和调整图像大小操作的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108345939B (zh) * | 2017-01-25 | 2022-05-24 | 微软技术许可有限责任公司 | 基于定点运算的神经网络 |
-
2019
- 2019-06-28 KR KR1020190078344A patent/KR102312338B1/ko active IP Right Grant
- 2019-10-16 EP EP19874036.7A patent/EP3811619A4/en active Pending
- 2019-10-16 CN CN201980060231.2A patent/CN112715029A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102176748A (zh) * | 2006-01-06 | 2011-09-07 | 微软公司 | 用于多分辨率视频编码和解码的重新采样和调整图像大小操作的方法 |
Non-Patent Citations (2)
Title |
---|
FENG JIANG 等: "An End-to-End Compression Framework Based on Convolutional Neural Networks", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY》, 1 August 2017 (2017-08-01), pages 3007 - 3017 * |
SUYOG GUPTA 等: "Deep Learning with Limited Numerical Precision", 《CORNELL UNIVERSITY LIBRARY》, 9 February 2015 (2015-02-09), pages 1 - 9 * |
Also Published As
Publication number | Publication date |
---|---|
EP3811619A4 (en) | 2021-08-18 |
KR102312338B1 (ko) | 2021-10-14 |
EP3811619A1 (en) | 2021-04-28 |
KR20200044668A (ko) | 2020-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11200702B2 (en) | AI encoding apparatus and operation method of the same, and AI decoding apparatus and operation method of the same | |
US11610341B2 (en) | Apparatus and method for performing artificial intelligence (AI) encoding and AI decoding on image | |
CN113196761B (zh) | 用于评估视频的主观质量的方法及装置 | |
US11688038B2 (en) | Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image | |
US10937197B2 (en) | Methods and apparatuses for performing artificial intelligence encoding and artificial intelligence decoding on image | |
CN112889283A (zh) | 编码方法及其设备以及解码方法及其设备 | |
CN112889282B (zh) | 用于对图像执行人工智能编码和人工智能解码的方法和设备 | |
CN112840650B (zh) | 人工智能(ai)编码装置及其操作方法和ai解码装置及其操作方法 | |
US11720997B2 (en) | Artificial intelligence (AI) encoding device and operating method thereof and AI decoding device and operating method thereof | |
US11012718B2 (en) | Systems and methods for generating a latent space residual | |
US20220036508A1 (en) | Apparatus and method for performing artificial intelligence encoding and artificial intelligence decoding on image by using pre-processing | |
US11720998B2 (en) | Artificial intelligence (AI) encoding apparatus and operating method thereof and AI decoding apparatus and operating method thereof | |
CN112715029A (zh) | Ai编码设备及其操作方法和ai解码设备及其操作方法 | |
CN114631315A (zh) | 图像编码方法和设备以及图像解码方法和设备 | |
CN112740687B (zh) | 用于对图像执行人工智能编码和人工智能解码的设备和方法 | |
CN118678081A (zh) | 用于视频编码的计算机实现的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |