CN112840650A - 人工智能(ai)编码装置及其操作方法和ai解码装置及其操作方法 - Google Patents

人工智能(ai)编码装置及其操作方法和ai解码装置及其操作方法 Download PDF

Info

Publication number
CN112840650A
CN112840650A CN201980066462.4A CN201980066462A CN112840650A CN 112840650 A CN112840650 A CN 112840650A CN 201980066462 A CN201980066462 A CN 201980066462A CN 112840650 A CN112840650 A CN 112840650A
Authority
CN
China
Prior art keywords
image
dnn
training
parameter
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980066462.4A
Other languages
English (en)
Other versions
CN112840650B (zh
Inventor
崔珉硕
崔光杓
金载丸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority claimed from PCT/KR2019/013483 external-priority patent/WO2020080782A1/en
Publication of CN112840650A publication Critical patent/CN112840650A/zh
Application granted granted Critical
Publication of CN112840650B publication Critical patent/CN112840650B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

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

Abstract

一种人工智能(AI)解码设备包括存储一个或更多个指令的存储器以及处理器,该处理器被配置为执行所存储的一个或更多个指令以进行以下操作:获得与通过使用包括在第一深度神经网络(DNN)中的第一滤波器内核的第一参数从原始图像缩小的第一图像对应的图像数据,基于所获得的图像数据重构与第一图像对应的第二图像,并且通过执行重构的第二图像和包括在与第一DNN对应的第二DNN中的第二滤波器内核的第二参数之间的运算,获得从重构的第二图像放大的第三图像。所述第二参数中的每一个由比例因子与整数值中的一个的乘积表示,并且所述整数值中的每一个是0或±2n,其中n是整数。

Description

人工智能(AI)编码装置及其操作方法和AI解码装置及其操作 方法
技术领域
本公开涉及包括对图像进行AI缩小的深度神经网络(DNN)的人工智能(AI)编码设备及其操作方法,以及包括对图像进行AI放大的深度神经网络(DNN)的AI解码设备及其操作方法,更具体地,涉及AI编码设备及其操作方法以及AI解码设备及其操作方法,所有这些都被提供用于减少在DNN中包括的多个卷积层中执行卷积运算所需的存储量和计算量。
背景技术
图像可以由符合压缩标准(例如,运动图像专家组(MPEG)标准等)的编解码器编码,然后以比特流形式存储在记录介质中或经由通信信道传输。
随着能够再现和存储高分辨率/高质量图像的硬件的开发和广泛使用,对能够有效地编码和解码高分辨率/高质量图像的编解码器的需求日益增加。
卷积神经网络(CNN)可以包括一个或更多个卷积层,并且可以在每个卷积层中执行输入数据和包括在滤波器内核中的参数之间的卷积运算。这里,因为参数可以表示为实数,所以可能需要大量存储器来存储参数,并且实数的卷积运算可能包括实数的乘法和加法运算然后花费时间长。
发明内容
技术方案
本公开的各种实施例提供了一种人工智能(AI)编码设备及其操作方法,其允许减少由AI编码设备中包括的第一深度神经网络(DNN)执行的卷积运算的存储量和计算量,同时保持第一DNN的AI缩小性能。
另外,本公开的各种实施例还提供了一种AI解码设备及其操作方法,其允许减少由AI解码设备中包括的第二DNN执行的卷积运算的存储量和计算量,同时保持第二DNN的AI放大性能。
有益效果
通过以k元形式表示用于图像的AI缩小的第一DNN中包括的第一参数,根据本公开实施例的AI编码设备可以减少AI缩小图像所需的存储量和计算量,同时保持第一DNN的AI缩小性能。
通过以k元形式表示用于图像的AI放大的第二DNN中包括的第二参数,根据本公开实施例的AI解码设备可以减少AI放大图像所需的存储量和计算量,同时保持第二DNN的AI放大性能。
在AI编码设备被配置为提供AI缩小的图像的服务器并且AI解码设备被配置为接收AI缩小的图像的终端的系统中,当接收的图像由终端进行AI放大时,存储生成的中间结果值的存储量可减少,并且因此可提高系统的效率。
附图说明
通过以下结合附图的描述,本公开的实施例的上述和其他方面、特征和优点将更加明显,其中:
图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是示出根据本公开的实施例的AI编码设备的操作方法的流程图;
图13是示出根据本公开的实施例的AI解码设备的操作方法的流程图;
图14是示出根据本公开的实施例的训练第一DNN和第二DNN的方法的流程图;
图15是示出通过使用梯度下降法更新第一参数的值的方法的参考图;
图16是示出根据本公开的实施例的AI编码设备的配置的框图;
图17是示出根据本公开的实施例的AI解码设备的配置的框图;以及
图18是示出根据本公开的实施例的被配置为训练第一DNN和第二DNN的电子装置的配置的框图。
具体实施方式
最佳模式
根据实施例,一种人工智能(AI)解码设备包括存储一个或更多个指令的存储器以及处理器,该处理器被配置为执行所存储的一个或更多个指令以进行以下操作:获得与通过使用包括在第一深度神经网络(DNN)中的第一滤波器内核的第一参数从原始图像缩小的第一图像对应的图像数据,基于所获得的图像数据重构与第一图像对应的第二图像,并且,通过执行重构的第二图像和包括在与第一DNN对应的第二DNN中的第二滤波器内核的第二参数之间的运算,获得从重构的第二图像放大的第三图像。第二参数中的每一个由比例因子与整数值中的一个的乘积表示,并且整数值中的每一个是0或±2n,其中n是整数。
可以与第一DNN关联地训练第二DNN,并且基于通过训练第一DNN获得的训练图像来训练第二DNN。
表示第二参数的第一参数矩阵可以由比例因子和包括整数值的第二参数矩阵的乘积表示,存储器可以存储比例因子和第二参数矩阵,并且处理器还可以被配置为执行所存储的一个或更多个指令,以通过执行重构的第二图像和第二参数矩阵之间的卷积运算并且然后将所执行的卷积运算的结果乘以比例因子来获得第三图像。
处理器还可以被配置为执行所存储的一个或更多个指令,以通过执行第二图像中包括的像素值和第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
根据实施例,一种人工智能(AI)编码设备包括存储一个或更多个指令的存储器以及处理器,该处理器被配置为执行所存储的一个或更多个指令以进行以下操作:通过执行原始图像与包括在第一深度神经网络(DNN)中的滤波器内核的第一参数之间的运算,获得从原始图像缩小的第一图像,并对所获得的第一图像进行编码。第一参数中的每一个由比例因子与整数值中的一个的乘积表示,并且整数值中的每一个是0或±2n,其中n是整数,并且所述第一DNN对应于包括第二滤波器内核的第二DNN,第二滤波器内核的第二参数用于放大与第一图像对应的第二图像。
可以与第二DNN关联地训练第一DNN,并且基于通过训练第二DNN获得的损失信息来训练第一DNN。
可以基于通过在第二DNN的训练中进行放大而生成的第一损失信息并且基于通过在训练第一DNN中进行缩小而生成的第二损失信息来训练第一DNN。
表示第一参数的第一参数矩阵可以由比例因子和包括整数值的第二参数矩阵的乘积表示,存储器可以存储比例因子和第二参数矩阵,并且处理器还可以被配置为执行所存储的一个或更多个指令以通过执行原始图像和第二参数矩阵之间的卷积运算并且然后将所执行的卷积运算的结果乘以比例因子来获得第一图像。
处理器还可以被配置为执行所存储的一个或更多个指令,以通过执行原始图像中包括的像素值与第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
根据实施例,人工智能(AI)解码设备的操作方法包括:获得与通过使用包括在第一深度神经网络(DNN)中的第一滤波器内核的第一参数从原始图像缩小的第一图像对应的图像数据,基于获得的图像数据重构与第一图像对应的第二图像,以及,通过执行重构的第二图像和包括在与第一DNN对应的第二DNN中的第二滤波器内核的第二参数之间的运算,获得从重构的第二图像放大的第三图像。第二参数中的每一个由比例因子与整数值中的一个的乘积表示,并且所述整数值中的每一个是0或±2n,其中n是整数。
可以与第一DNN关联地训练第二DNN,并且基于通过训练第一DNN获得的训练图像来训练第二DNN。
表示第二参数的第一参数矩阵可以由比例因子和包括整数值的第二参数矩阵的乘积表示,并且获得第三图像的步骤可以包括通过执行重构的第二图像和第二参数矩阵之间的卷积运算并且然后将执行的卷积运算的结果乘以比例因子来获得第三图像。
获得第三图像的步骤可以包括通过执行第二图像中包括的像素值和第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
根据实施例,人工智能(AI)编码设备的操作方法包括:通过执行原始图像与包括在第一深度神经网络(DNN)中的滤波器内核的第一参数之间的运算,获得从原始图像缩小的第一图像,以及对所获得的第一图像进行编码。第一参数中的每一个由比例因子与整数值中的一个的乘积表示,并且整数值中的每一个是0或±2n,其中n是整数,并且第一DNN对应于包括第二滤波器内核的第二DNN,第二滤波器内核的第二参数用于放大与第一图像对应的第二图像。
可以与第二DNN关联地训练第一DNN,并且基于通过训练第二DNN获得的损失信息来训练第一DNN。
可以基于通过在第二DNN的训练中进行放大而生成的第一损失信息并且基于通过在训练第一DNN中进行缩小而生成的第二损失信息来训练第一DNN。
表示第一参数的第一参数矩阵可以由比例因子和包括整数值的第二参数矩阵的乘积表示,并且获得第一图像的步骤可以包括通过执行原始图像和第二参数矩阵之间的卷积运算并且然后将所执行的卷积运算的结果乘以比例因子来获得第一图像。
获得第一图像的步骤可以包括通过执行原始图像中包括的像素值和第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
根据实施例,一种训练第一深度神经网络(DNN)和第二DNN的方法包括:将第一噪声函数应用于包括在第一DNN中的第一滤波器内核的第一参数以获得第二参数,通过将所获得的第二参数转换为第一比例因子和整数值中的一个的第一乘积并且然后执行第一乘积和原始训练图像之间的第一运算来获得从原始训练图像缩小的第一训练图像,以及获得从原始训练图像缩小的缩减的训练图像。该方法还包括:基于所获得的第一训练图像和所获得的缩减的训练图像来获得第一损失信息,将第二噪声函数应用于包括在第二DNN中的第二滤波器内核的第三参数以获得第四参数,并且通过将所获得的第四参数转换为第二比例因子与整数值中的一个的第二乘积并且然后执行第二乘积与所获得的第一训练图像之间的第二运算,获得从所获得的第一训练图像放大的第二训练图像。该方法还包括:基于所获得的第二训练图像和原始训练图像获得第二损失信息,基于所获得的第一损失信息和所获得的第二损失信息更新第一参数,以及基于所获得的第二损失信息更新第三参数。
该方法还可以包括:将表示更新的第一参数的第一参数矩阵转换为第三比例因子和包括整数值的第二参数矩阵的第三乘积,存储第三比例因子和第二参数矩阵,将表示更新的第三参数的第三参数矩阵转换为第四比例因子和包括整数值的第四参数矩阵的第四乘积,以及存储第四比例因子和第四参数矩阵。
第一噪声函数和第二噪声函数中的每一个可以包括平均值为0的高斯函数。
每个整数值可以是0或±2n,其中n是整数。
获得第一训练图像的步骤可以包括:将表示所获得的第二参数的第一参数矩阵转换为第一比例因子和包括整数值的第二参数矩阵的第三乘积,并且通过执行原始训练图像和第二参数矩阵之间的卷积运算并且然后将所执行的卷积运算的结果乘以第一比例因子来获得第一训练图像。
获得第一训练图像的步骤可以包括通过执行原始训练图像和第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
获得第二训练图像的步骤可以包括:将表示所获得的第四参数的第一参数矩阵转换为第二比例因子和包括整数值的第二参数矩阵的第三乘积,并且通过执行所获得的第一训练图像和第二参数矩阵之间的卷积运算并且然后将所执行的卷积运算的结果乘以第二比例因子来获得第二训练图像。
获得第二训练图像的步骤可以包括通过执行获得的第一训练图像和第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
根据实施例,人工智能(AI)解码设备包括存储一个或更多个指令的存储器以及处理器,该处理器被配置为执行所存储的一个或更多个指令以进行以下操作:获得与通过使用第一深度神经网络(DNN)的第一参数从原始图像缩小的第一图像对应的图像数据,基于所获得的图像数据重构与第一图像对应的第二图像,并且获得通过使用第二DNN的第二参数从重构的第二图像放大的第三图像。基于训练所述第一DNN的输出来训练所述第二DNN的所述第二参数。
第一参数和第二参数中的每一个可以由比例因子与整数值中的一个的乘积表示,并且整数值中的每一个可以是0或±2n,其中n是整数。
可以基于原始训练图像的缩减的训练图像与通过利用原始训练图像训练第一DNN而获得的第一训练图像之间的第一损失来训练第一DNN的第一参数,并且可以基于原始训练图像与通过利用第一训练图像训练第二DNN而获得的第二训练图像之间的第二损失来训练第二DNN的第二参数。
另外的方面将部分地在下面的描述中阐述,并且部分地将从描述中显而易见,或者可以通过实践本公开的所呈现的实施例来学习。
发明模式
本公开的实施例提供了一种人工智能(AI)编码设备及其操作方法,其允许减少由AI编码设备中包括的第一深度神经网络(DNN)执行的卷积运算的存储量和计算量,同时保持第一DNN的AI缩小性能。
另外,本公开的实施例还提供了一种AI解码设备及其操作方法,其允许减少由AI解码设备中包括的第二DNN执行的卷积运算的存储量和计算量,同时保持第二DNN的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执行第一编码和第一解码时相比,比特率可以大大降低。
在图1中,根据实施例,在AI编码处理期间,通过对原始图像105执行AI缩小110来获得第一图像115,并且对第一图像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和用于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和预测数据之间的差异对应的残差数据的过程、将空间域分量的残差数据变换为频域分量的过程、将变换为频域分量的残差数据量化的过程以及对量化的残差数据进行熵编码的过程。可以经由使用频率变换的图像压缩方法(诸如MPEG-2、H.264高级视频编码(AVC)、MPEG-4、高效视频编码(HEVC)、VC-1、VP8、VP9和AOMedia Video 1(AV1))之一来执行这样的第一编码120。
可通过对图像数据执行第一解码130来重构与第一图像115对应的第二图像135。第一解码130可包括通过对图像数据进行熵解码来生成量化的残差数据的过程、对量化的残差数据进行反量化的过程、将频域分量的残差数据变换为空间域分量的过程、生成预测数据的过程以及通过使用预测数据和残差数据来重构第二图像135的过程。可以经由与使用频率变换的图像压缩方法(诸如MPEG-2、H.264AVC、MPEG-4、HEVC、VC-1、VP8、VP9和AV1)之一对应的图像重构方法来执行这样的第一解码130,其中,图像压缩方法是在第一编码120中使用的图像压缩方法。
通过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期间使用的图像压缩方法的规则(例如,根据语法)来生成图像数据。
在基于第二DNN的AI放大140中使用AI数据。如上所述,因为第一DNN和第二DNN被联合训练,所以AI数据包括使得AI放大140能够通过第二DNN在第二图像135上准确地执行的信息。在AI解码处理期间,可以基于AI数据对第二图像135执行AI放大140以具有目标分辨率和/或质量。
AI数据可以以比特流的形式与图像数据一起被发送。或者,根据实施例,AI数据可以以帧或包的形式与图像数据分开发送。作为AI编码的结果获得的AI数据和图像数据可以通过相同的网络或通过不同的网络被发送。
图2是根据实施例的AI解码设备200的配置的框图。
参照图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。根据实施例,可以将图像数据中包括的第一解码相关信息(诸如预测模式信息、运动信息、量化参数(QP)信息等)进一步提供给AI放大器234。
在接收到AI数据时,AI放大器234基于AI数据对第二图像135执行AI放大。根据实施例,可通过进一步使用包括在图像数据中的第一解码相关信息(诸如预测模式信息、量化参数信息等)来执行AI放大。
根据实施例的接收器210和AI解码器230被描述为单独的设备,但是可以通过一个处理器来实现。在这种情况下,可以通过专用处理器或通过软件和通用处理器(诸如应用处理器(AP)、中央处理器(CPU)或图形处理器(GPU))的组合来实现接收器210和AI解码器230。可以通过包括用于实现本公开的实施例的存储器或者通过包括用于使用外部存储器的存储处理器来实现专用处理器。
此外,可以由多个处理器配置接收器210和AI解码器230。在这种情况下,可以通过专用处理器的组合或通过软件和诸如AP、CPU或GPU的通用处理器的组合来实现接收器210和AI解码器230。类似地,可由不同处理器实现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。
如上所述,卷积运算需要将输入图像410中包括的像素值乘以滤波器内核430的参数的乘法运算和用于组合乘法运算的结果值的加法运算。这里,实数的乘法运算比整数的乘法、移位或加法运算需要更多的存储量和计算量。
因此,为了减少执行卷积运算所需的存储量和计算量,可以训练第二DNN,包括在第二DNN中使用的滤波器内核中的参数由比例因子和整数的乘积表示。
根据实施例,可以通过第一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的信息,例如,4K(4096×2160)的第三图像145是第二图像135的2K(2048×1080)分别率的两倍,并且另一条DNN设置信息可以包括用于获得分辨率是第二图像135的分辨率四倍的第三图像145的信息。例如,8K(8192×4320)的第三图像145是第二图像135的2K(2048×1080)分辨率的四倍。
多条DNN设置信息中的每一条DNN设置信息与图6的AI编码设备600的第一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,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)。
因此,当基于包括编解码器类型、图像的分辨率等的图像相关信息提供多条DNN设置信息时,如图5所示,根据训练,可以基于在AI解码处理期间接收的与第一图像115相关的信息来获得用于AI放大第二图像135的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的分辨率是FUll HD,作为执行第一编码的结果获得的图像数据的比特率是20Mbps,并且经由HEVC编解码器执行第一编码时,AI放大器234可以使用多条DNN设置信息中的C DNN设置信息,并且当验证第一图像115的分辨率是Full HD,作为执行第一编码的结果而获得的图像数据的比特率是15Mbps,并且经由HEVC编解码器执行第一编码时,AI放大器234可以使用多条DNN设置信息中的DDNN设置信息。基于作为对第一图像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设置信息指定相同的标识符。AI数据可以包括在用于对原始图像105的AI缩小的第一DNN中设置的DNN设置信息的标识符。接收AI数据的AI放大器234可以通过使用AI数据中包括的标识符指示的多个DNN设置信息中的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。在这种情况下,可以通过专用处理器或通过软件和通用处理器(诸如AP、CPU或图形处理器GPU)的组合来实现AI编码器610和发送器630。可以通过包括用于实现本公开的实施例的存储器或者通过包括用于使用外部存储器的存储处理器来实现专用处理器。
此外,可以由多个处理器配置AI编码器610和发送器630。在这种情况下,可以通过专用处理器的组合或通过软件和诸如AP、CPU或GPU的多个通用处理器的组合来实现AI编码器610和发送器630。可以通过不同的处理器来实现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缩小器612可以基于预定标准来确定原始图像105的缩小目标。
为了获得与缩小目标匹配的第一图像115,AI缩小器612可以存储在第一DNN中可设置的多条DNN设置信息。AI缩小器612从多条DNN设置信息中获得与缩小目标对应的DNN设置信息,并且通过基于获得的DNN设置信息设置的第一DNN对原始图像105执行AI缩小。
可以训练多条DNN设置信息中的每一条DNN设置信息以获得预定分辨率和/或预定质量的第一图像115。例如,多条DNN设置信息中的任何一条DNN设置信息可以包括用于获得原始图像105的分辨率的一半分辨率的第一图像115(例如,2k(2048×1080)的第一图像115是原始图像105的4k(4096×2160)分辨率的一半)的信息,并且另一条DNN设置信息可以包括用于获得原始图像105的分辨率的四分之一分辨率的第一图像115(例如,2k(2048×1080)的第一图像115是原始图像105的8k(8192x4320)分辨率的四分之一)的信息。
根据实施例,当构成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与第一图像115之间的分辨率差、目标比特率等)、压缩质量(例如,比特率的类型)、压缩历史信息和原始图像105的类型中的任一个或任一组合来确定缩小目标。
例如,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缩小器612可以包括用于卷积运算和上述激活层的运算的至少一个ALU。ALU可以被实现为处理器。对于卷积运算,ALU可以包括乘法器和加法器,乘法器执行原始图像105或从先前层输出的特征图的样本值与滤波器内核的样本值之间的乘法,加法器将乘法的结果值相加。此外,对于激活层的运算,ALU可以包括乘法器和比较器,乘法器将输入样本值乘以在预定的sigmoid函数、Tanh函数或ReLU函数中使用的权重,比较器将乘法结果与值进行比较以确定是否将输入样本值发送到下一层。
返回参考图7,在从AI缩小器612接收到第一图像115后,第一编码器614可通过对第一图像115执行第一编码来减少第一图像115的信息量。作为由第一编码器614执行第一编码的结果,可以获得与第一图像115对应的图像数据。
数据处理器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编码处理对其执行AI编码的原始图像105重构为第三图像145,并且为了保持原始图像105和作为AI解码的结果获得的第三图像145之间的相似性,需要AI编码处理和AI解码处理之间的关联性。换句话说,AI编码处理中丢失的信息需要在AI解码处理期间重构,并且在这方面,需要联合训练第一DNN 700和第二DNN300。
为了准确的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,并且第一训练图像802被输入到第二DNN300。作为对第一训练图像802执行AI放大的结果,输出第三训练图像804。
参考图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 300。换句话说,使用质量损失信息830来训练第一DNN 700和第二DNN 300两者。
第一DNN 700可以更新参数,基于第一直达质量损失信息830至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减小的方向更新参数,并且第二DNN300按照等式1中的LossUS减小的方向更新参数。当根据在训练期间导出的LossDS更新第一DNN 700的参数时,基于更新的参数获得的第一训练图像802变得与基于未更新的参数获得的先前的第一训练图像802不同,因此,第三训练图像804也变得与先前的第三训练图像804不同。当第三训练图像804变得与先前的第三训练图像804不同时,质量损失信息830也被新确定下来,并且第二DNN 300相应地更新参数。当质量损失信息830被新确定下来时,LossDS也被新确定,并且第一DNN 700根据新确定的LossDS更新参数。换句话说,第一DNN 700的参数的更新导致第二DNN 300的参数的更新,并且第二DNN 300的参数的更新导致第一DNN700的参数的更新。换句话说,因为通过共享质量损失信息830来联合训练第一DNN 700和第二DNN 300,所以可以联合优化第一DNN 700的参数和第二DNN 300的参数。
参考等式1,验证了根据质量损失信息830确定LossUS,但这仅是示例,也可以基于结构损失信息810和复杂度损失信息820中的一个或两个以及质量损失信息830来确定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的参数,使得当对第一训练图像802执行第一编码时,获得具有与原始训练图像801相似的结构信息的第一训练图像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和第二DNN 300时,可以确定彼此关联和优化的第一DNN 700的参数和第二DNN 300的参数。
此外,当在改变权重a、b和c以及编解码器的类型之后训练第一DNN700和第二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进行训练,可以确定映射到第一训练图像802的分辨率的DNN设置信息对、用于对第一训练图像802执行第一编码的编解码器的类型、以及作为对第一训练图像802执行第一编码的结果而获得的比特流的比特率。通过不同地改变第一训练图像802的分辨率、用于对第一训练图像802执行第一编码的编解码器的类型以及根据第一训练图像802的第一编码获得的比特流的比特率,可以确定第一DNN 700和第二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设置信息可以包括关于包括在第一DNN 700和第二DNN 300中的卷积层的数量、每个卷积层的滤波器内核的数量、每个卷积层的滤波器内核的大小以及每个滤波器内核的参数中的任一个或任一组合的信息。
在操作S850中,训练设备1000将原始训练图像801输入到第一DNN700中。原始训练图像801可以包括静止图像或包括在运动图像中的至少一个帧。
在操作S855,第一DNN 700根据初始设置的DNN设置信息处理原始训练图像801,并输出通过对原始训练图像801执行AI缩小而获得的第一训练图像802。在图10中,从第一DNN700输出的第一训练图像802被直接输入到第二DNN 300,但是从第一DNN 700输出的第一训练图像802可以由训练设备1000输入到第二DNN 300。此外,训练设备1000可以经由编解码器对第一训练图像802执行第一编码和第一解码,然后将第二训练图像输入到第二DNN300。
在操作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
Figure BDA0003011536140000311
如表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中,配置控制器1122接收至少一个输入值10。根据实施例,至少一个输入值10可以包括AI缩小器1124和AI放大器1144的目标分辨率差、图像数据25的比特率、图像数据25的比特率类型(例如,可变比特率类型、恒定比特率类型或平均比特率类型)和基于变换的编码器1126的编解码器类型中的任一个或任一组合。至少一个输入值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可以连同输入值10一起向AI缩小器1124提供附加信息,例如,应用AI缩小的颜色格式(亮度分量、色度分量、红色分量、绿色分量或蓝色分量)信息和高动态范围(HDR)的色调映射信息,并且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数据30可以从AI缩小器1124被提供给设备40。
当基于变换的编码器1126处理原始图像105时,获得图像数据25,并且图像数据25被发送到设备40。基于变换的编码器1126可根据MPEG-2、H.264AVC、MPEG-4、HEVC、VC-1、VP8、VP9或VA1处理第一图像115。
配置控制器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数据30一起向AI放大器1144提供附加信息,例如,应用AI放大的颜色格式(亮度分量、色度分量、红色分量、绿色分量或蓝色分量)信息以及HDR的色调映射信息,并且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是示出根据本公开的实施例的AI编码设备的操作方法的流程图。
参考图12,根据本公开实施例的AI编码设备600通过执行原始图像与包括在第一DNN中的滤波器内核的参数(第一参数)之间的运算来获得从原始图像AI缩小的第一图像(S910)。
根据本公开的实施例的第一DNN是被配置为对图像进行AI缩小的网络,并且可以是与被配置为对图像进行AI放大的第二DNN对应的网络,并且与第二DNN联合训练。当第一DNN和第二DNN彼此联合训练时,第一DNN中包括的第一参数被确定为与第二DNN中包括的滤波器内核的参数(第二参数)相关联的值。例如,在第一DNN和第二DNN的训练中,当更新第一DNN的第一参数时,从第一DNN输出的第一训练图像改变,当输入到第二DNN的第一训练图像改变时,从第二DNN输出的第三训练图像也改变,并且当第三训练图像改变时,用于训练第二DNN的损失信息(例如,质量损失信息)被新确定。因此,第二DNN的第二参数朝着最小化新确定的质量损失信息被更新。当质量损失信息被新确定时,还新确定用于训练第一DNN的最终损失信息,并且第一DNN的第一参数朝着最小化新确定的用于训练第一DNN的最终损失信息被更新。因此,完成训练的第一DNN的第一参数和完成训练的第二DNN的第二参数具有彼此相关联的值。
根据本公开的实施例的第一DNN中包括的第一参数中的每一个由比例因子a1和k个整数值中的一个的乘积表示,并且k个整数值中的每一个是0或±2n(其中n是整数)。
例如,当包括在第一DNN中的第一参数由参数矩阵W1表示时,参数矩阵W1可以被转换为比例因子a1和包括k个整数值的参数矩阵Wb1的乘积。这里,参数矩阵Wb1可以是包括k个整数值的k元矩阵。因此,第一图像和包括在第一DNN中的第一参数的运算(卷积运算)可以由等式2表示。
[等式2]
I1*W1≈a1(I1*Wb1)
在等式2中,I1表示原始图像,W1表示包括实数的参数矩阵,Wb1表示包括k个整数值的参数矩阵,并且a1表示比例因子并且是实数。
参数矩阵Wb1可以是仅包括整数值的矩阵,其中每个整数值可以是0或±2n(其中n是整数)。例如,当k=2时,参数矩阵Wb1可以是包括-1或1的值的矩阵,当k=3时,参数矩阵Wb1可以是包括-1、0和1中的任一个或任一组合的值的矩阵,并且当k=5时,参数矩阵Wb1可以是包括-2、-1、0、1和2中的任一个或任一组合的值的矩阵。另外,当k=7时,参数矩阵Wb1可以是包括-4、-2、-1、0、1、2和4中的任一个或任一组合的值的矩阵。然而,本公开不限于此。
由于根据本公开的实施例的第一DNN和第二DNN是彼此联合训练的,因此包括在第一DNN的参数矩阵Wb1中的整数值可以被确定为与包括在第二DNN的参数矩阵Wb2中的整数值相关联的值。
当根据本公开的实施例的参数矩阵Wb1仅包括整数时,因为原始图像与参数矩阵Wb1之间的卷积运算(即,I1*Wb1)仅包括整数的乘法运算和整数的加法运算,所以与包括实数乘整数的乘法运算和实数的加法运算的I1*W1的卷积运算相比,I1*Wb1的卷积运算可以减少存储量和计算量。
另外,当根据本公开的实施例的参数矩阵Wb1仅包括0或±2n(其中n是整数)时,因为乘以2的运算可以用移位运算代替,所以原始图像和参数矩阵Wb1之间的卷积运算(I1*Wb1)可以仅仅包括整数的加法和移位运算。因此,与I1*W1的卷积运算相比,I1*Wb1的卷积运算可以减少存储量和计算量。
AI编码设备600可通过将原始图像和参数矩阵Wb1之间的卷积运算的结果乘以比例因子a1来对原始图像和第一DNN中包括的第一参数执行运算。
例如,除了原始图像与包括在第一DNN中的第一参数之间的运算之外,AI编码设备600还可以通过执行诸如激活函数等的操作来获得第一图像,但不限于获得第一图像。
AI编码设备600可对所获得的第一图像进行编码(S920)。
图13是示出根据本公开的实施例的AI解码设备的操作方法的流程图。
参照图13,根据本公开实施例的AI解码设备200获得与第一图像对应的图像数据(S1010)。
这里,第一图像可以是通过使用第一DNN从原始图像AI缩小的图像,并且可以作为对第一图像进行编码的结果来生成图像数据。AI解码设备200可接收比特流形式的图像数据。
AI解码设备200可基于图像数据重构与第一图像对应的第二图像(S1020)。
AI解码设备200可接收图像数据和AI数据,可通过使用图像数据来获得第二图像的残差数据,并且可通过使用预测数据和残差数据来重构第二图像。
AI解码设备200可将重构的第二图像输入到第二DNN 300,并且可通过执行输入到第二DNN 300的第二图像与包括在第二DNN中的滤波器内核的参数(第二参数)之间的运算来获得从第二图像放大的第三图像(S1030)。这里,基于AI数据确定包括在第二DNN中的滤波器内核的参数。
根据本公开的实施例的第二DNN是被配置为对图像进行AI放大的网络,并且也是与被配置为对图像进行AI缩小的第一DNN对应且与第一DNN联合训练的网络。当第二DNN和第一DNN彼此联合训练时,包括在第二DNN中的第二参数被确定为与包括在第一DNN中的滤波器内核的参数(第一参数)相关联的值。例如,在第一DNN和第二DNN的训练中,当更新第一DNN的第一参数时,从第一DNN输出的第一训练图像改变,当输入到第二DNN的第一训练图像改变时,从第二DNN输出的第三训练图像也改变,并且当第三训练图像改变时,用于训练第二DNN的损失信息(例如,质量损失信息)被新确定。因此,第二DNN的第二参数朝着最小化新确定的质量损失信息被更新。当质量损失信息被新确定时,还新确定用于训练第一DNN的最终损失信息,并且第一DNN的第一参数朝着最小化新确定的用于训练第一DNN的最终损失信息被更新。因此,完成训练的第一DNN的第一参数和完成训练的第二DNN的第二参数具有彼此相关联的值。
根据本公开的实施例的第二DNN 300中包括的第二参数中的每一个由比例因子a2和k个整数值中的一个的乘积表示,并且k个整数值中的每一个是0或±2n(其中n是整数)。
例如,当包括在第二DNN中的第二参数由参数矩阵W2表示时,参数矩阵W2可以被转换为比例因子a2和包括k个整数值的参数矩阵Wb2的乘积。这里,参数矩阵Wb2可以是包括k个整数值的k元矩阵。因此,第二图像和包括在第二DNN中的第二参数的运算(卷积运算)可以由等式3表示。
[等式3]
I2*W2≈a2(I2*Wb2)
在等式3中,I2表示第二图像,W2表示包括实数的参数矩阵,Wb2表示包括k个整数值的参数矩阵,并且a2表示比例因子并且是实数。
参数矩阵Wb2可以是仅包括整数值的矩阵,其中每个整数值可以是0或±2n(其中n是整数)。例如,当k=2时,参数矩阵Wb2可以是包括-1或1的值的矩阵,当k=3时,参数矩阵Wb2可以是包括-1、0和1中的任一个或任一组合的值的矩阵,并且当k=5时,参数矩阵Wb2可以是包括-2、-1、0、1和2中的任一个或任一组合的值的矩阵。另外,当k=7时,参数矩阵Wb2可以是包括-4、-2、-1、0、1、2和4中的任一个或任一组合的值的矩阵。然而,本公开不限于此。
由于根据本公开的实施例的第二DNN和第一DNN是彼此联合训练的,因此包括在第二DNN的参数矩阵Wb2中的整数值可以被确定为与包括在第一DNN的参数矩阵Wb1中的整数值相关联的值。
当根据本公开的实施例的参数矩阵Wb2仅包括整数时,因为第二图像和参数矩阵Wb2(整数之间的卷积运算)之间的运算(即,I2*Wb2)仅仅包括整数的乘法运算和整数的加法运算,所以与包括实数乘整数的乘法运算和实数的加法运算的I2*W2的运算相比,I2*Wb2的运算可以减少存储量和计算量。
另外,当根据本公开的实施例的参数矩阵Wb2仅包括0或±2n(其中n是整数)时,因为乘以2的运算可以用移位计算代替,所以第二图像和参数矩阵Wb2之间的卷积运算(I2*Wb2)可以仅仅包括整数的加法和移位运算。因此,与I2*W2的卷积计算相比,I2*Wb2的卷积计算可以减少存储量和计算量。
AI解码设备200可通过将第二图像和参数矩阵Wb2之间的卷积运算(I2*Wb2)的结果乘以比例因子a2来对第二图像和第二DNN中包括的第二参数执行运算。
例如,除了对第二图像和包括在第二DNN中的参数的操作之外,AI解码设备200还可通过执行诸如激活函数等的操作来获得第三图像,但不限于获得第三图像。
图14是示出根据本公开的实施例的训练第一DNN和第二DNN的方法的流程图。
参考图14,根据本公开的实施例的电子装置将第一噪声函数应用于包括在第一DNN的滤波器内核中的参数(第一参数),如数学式4所示(S1110)。下面将描述应用噪声函数的原因。
[等式4]
W1′=W1+W1×n1
在等式4中,W1表示包括在第一DNN中的第一参数,并且n1表示第一噪声函数。第一噪声函数是平均值为0的函数,并且可以是高斯函数。另外,第一噪声函数的标准偏差可以被确定为小值,其中标准偏差不对第一参数的值施加显著影响。
电子装置通过执行应用第一噪声函数获得的参数(第三参数)W'和用于训练第一DNN的原始训练图像801之间的运算来获得第一训练图像802(S1120)。
电子装置可以将应用第一噪声函数获得的第三参数W'转换为比例因子a3和包括k个整数值的参数矩阵Wb3的乘积。例如,可以由等式5表示用于计算第一DNN的输出数据(第一训练图像802)的等式。
[等式5]
y=F(W1,x)=F(Wb3,a3,x)
在等式5中,x表示训练数据(原始训练图像801),并且y表示第一DNN的输出数据(第一训练图像802)。另外,函数F可以是表示AI缩小的操作的函数。电子装置可以通过对原始训练图像801和参数矩阵Wb3执行乘法运算和加法运算来执行原始训练图像801和参数矩阵Wb3之间的卷积运算。可选地,当参数矩阵Wb3仅包括0或±2n(其中n是整数)时,电子装置可以通过在原始训练图像801和参数矩阵Wb3之间执行移位运算和加法运算来执行原始训练图像801和参数矩阵Wb3之间的卷积运算。
另外,电子装置可以通过将原始训练图像801和参数矩阵Wb3之间的卷积运算的结果乘以比例因子a3来执行用于AI缩小的操作。
此外,电子装置可以获得从原始训练图像801缩小的缩减的训练图像803(S1130)。
例如,与从第一DNN输出第一训练图像802分开,可以获得从原始训练图像801传统缩小而得的的缩减的训练图像803。可以获得保留原始训练图像801的结构特征的缩减的训练图像803。
电子装置可以基于第一训练图像802和缩减的训练图像803获得结构损失信息810和复杂度损失信息820(S1140)。
可以基于缩减的训练图像803和第一训练图像802之间的比较结果来确定结构损失信息810。可基于第一训练图像802的空间复杂度来确定复杂度损失信息820。因为已经参考图9描述了这一点,所以将省略其描述。
电子装置可以将第二噪声函数应用于包括在第二DNN中的滤波器内核的第二参数W2,如等式6所示(S1150)。
[等式6]
W2′=W2+W2×n2
在等式6中,W2表示包括在第二DNN中的第二参数,并且n2表示第二噪声函数。第二噪声函数是平均值为0的函数,并且可以是高斯函数。另外,第二噪声函数的标准偏差可以被确定为小值,其中标准偏差不对第二参数的值施加显著影响。
电子装置可以通过执行应用第二噪声函数获得的第四参数W2'与第一训练图像802之间的运算来获得第三训练图像804(S1160)。
这里,第一训练图像802可以是在操作S1120中获得的图像。根据本公开的实施例,可以通过对第四参数和通过对第一训练图像802的第一编码和第一解码而生成的第二训练图像执行运算来获得第三训练图像804。
电子装置可以将应用第二噪声函数获得的第四参数W2'转换为比例因子a4和包括k个整数值的参数矩阵Wb4的乘积。例如,可以由等式7表示用于计算第二DNN的输出数据(第三训练图像804)的等式。
[等式7]
y=F(W2,x)=F(Wb4,a4,x)
在等式7中,x表示训练数据(第一训练图像802),并且y表示第二DNN的输出数据(第三训练图像804)。另外,函数F可以是表示AI放大的操作的函数。可以通过对第一训练图像802和参数矩阵Wb4执行乘法运算和加法运算来执行第一训练图像802和参数矩阵Wb4之间的卷积运算。可选地,当参数矩阵Wb4仅包括0或±2n(其中n是整数)时,可以通过执行第一训练图像802和参数矩阵Wb4之间的移位运算和加法运算来执行第一训练图像802和参数矩阵Wb4之间的卷积运算。
另外,可以通过将第一训练图像802和参数矩阵Wb4之间的卷积运算的结果乘以比例因子a4来执行用于AI放大的操作。
电子装置可以基于第三训练图像804和原始训练图像801获得质量损失信息830(S1170)。
可以基于原始训练图像801和第三训练图像804之间的比较结果来确定质量损失信息830,并且质量损失信息830指示第三训练图像804和原始训练图像801之间存在多少相似度。因为已经参考图9描述了质量损失信息830,所以将省略其描述。
电子装置可以基于结构损失信息810、复杂度损失信息820和质量损失信息830来更新第一参数(S1180)。例如,电子装置可以更新第一参数以减小第一DNN的输出数据(第一训练图像802)与标签数据之间的差异。这里,可以基于结构损失信息、复杂度损失信息和质量损失信息来确定输出数据(第一训练图像802)与标签数据之间的差异(用于第一DNN的训练的损失信息LOSSDS)。
作为示例,将描述作为用于训练第一DNN的三条损失信息之一的结构损失信息。
[等式8]
Figure BDA0003011536140000401
[等式9]
Figure BDA0003011536140000402
在等式8和等式9中,LOSSDS1表示用于第一DNN的训练的结构损失信息,Xi表示原始训练图像801的一个像素值,并且Yi表示与Xi对应的标签数据(缩减的训练图像803)。另外,f(W1')表示将通过应用第一噪声函数而获得的第三参数W1'转换为参数矩阵Wb3的函数。
可以通过使用梯度下降方法来更新第一参数的值以减少误差。
图15是示出通过使用梯度下降法更新第一参数的值的方法的参考图。
例如,参考图15,损失信息LOSSDS1可以表示为第一参数W1的二次函数。这里,第一点1210是LOSSDS1具有最小值的点,并且可以更新第一参数W1直到第一参数W1变为与第一点1210对应的值。
当假设与第一参数W1的当前值对应的点是第二点1220时,可以通过使用第一参数W1的当前值来计算
Figure BDA0003011536140000403
并且可以用将计算结果乘以学习率(alpha的值)然后从第一参数的当前值减去乘法结果的方式来更新第一参数的值。
通过使用梯度下降方法,可以更新第一DNN的第一参数直到第一参数的值变为与第一点1210对应的值。
为了更新第一参数的值,需要计算
Figure BDA0003011536140000411
如等式10所示。
[等式10]
Figure BDA0003011536140000412
当在计算等式7中使用f(W1)而不是f(W1')时,因为将尚未应用第一噪声函数的第一参数W1转换为Wb3的转换函数f(W1)的斜率为0,所以转换函数f(W1)不可微分。然而,虽然可以通过将f(W1)的斜率重新定义为w1来使转换函数f(W1)可微分,但是因为尽管重新定义了f(W1)的斜率而f(W1)的值仅包括k个整数值,所以f(W1)的斜率对于k个范围中的每一个是恒定的。因此,当通过使用f(W1)的恒定斜率来更新第一参数时,更新的第一参数无限地增大或减小并且不收敛于一个值。这里,当截断函数clip[a,b]应用于更新的第一参数时,可以防止更新的第一参数无限地增大或减小。然而,因为截断函数clip[a,b]的斜率在范围[a,b]之外的范围内为0,所以当第一参数的值变为a或b时,第一参数的值不再变化,并且第一参数不被更新。
因此,为了防止这种情况,通过使用通过将第一噪声函数应用于第一参数而获得的第三参数W1'来训练根据本公开的实施例的第一参数。
另外,电子装置基于质量损失信息更新第二参数(S1190)。
例如,电子装置可以更新第二参数以减小第二DNN的输出数据(第三训练图像804)与标签数据(原始训练图像801)之间的差异。这里,标签数据是已经被输入到第一DNN的原始训练图像801,因此,第一DNN和第二DNN被彼此关联地训练。
输出数据(第三训练图像804)与标签数据(原始训练图像801)之间的差异(用于第二DNN的训练的损失信息LOSSUS)可以基于质量损失信息来确定,并且可以由等式11或12表示。
[等式11]
Figure BDA0003011536140000413
[等式12]
Figure BDA0003011536140000414
在等式11和12中,LOSSUS表示用于第二DNN的训练的损失信息,Xi表示第一训练图像802的一个像素值,并且Yi表示对应于Xi的标签数据(原始训练图像)。另外,f(W2')表示将通过应用第二噪声函数而获得的第四参数W2'转换为参数矩阵Wb4的函数。
通过使用梯度下降方法,可以更新第二参数的值直到损失信息LOSSUS具有最小值。
这里,损失信息LOSSUS可以表示为第二参数W2的二次函数,并且第二参数W2的值可以以如下方式更新:通过使用第二参数W2的当前值计算
Figure BDA0003011536140000421
将计算结果乘以学习率(alpha的值),然后从第二参数W2的当前值减去乘法结果,直到第二参数W2的值变为二次函数的最小点。
如参考等式10所述,为了计算
Figure BDA0003011536140000422
可以执行斜率重新定义,并且可以将截断函数clip[a,b]应用于更新的第二参数,并且这里,因为截断函数clip[a,b]的斜率在范围[a,b]之外的范围为0,所以当第二参数的值变为a或b时,第二参数的值不再变化,并且不更新第二参数。因此,为了防止这种情况,通过使用通过将第二噪声函数应用于第二参数而获得的第四参数来训练根据本公开的实施例的第二参数。
当通过完成第一DNN和第二DNN的训练来确定包括在第一DNN中的第一参数的值时,可以将最终的第一参数
Figure BDA0003011536140000424
(例如,第一参数矩阵)转换为比例因子b1和包括k个整数值的第一k元参数矩阵的乘积。
另外,比例因子b1和包括k个整数值的第一k元参数矩阵可以存储在存储器中。这里,当包括在第一k元参数矩阵中的k个整数值中的每一个仅为0或±2n(其中n是整数)时,可以用移位运算和加法运算代替在通过使用第一DNN对图像进行AI缩小时执行的卷积运算。
因此,可以通过执行第一k元参数和被输入到第一DNN的每个卷积层的输入图像之间的移位运算和加法运算来执行卷积运算,并且这可以由等式13表示。
[等式13]
Figure BDA0003011536140000423
在等式13中,I1表示包括在第一DNN中的每个卷积层的输入图像,b1表示比例因子,
Figure BDA0003011536140000431
表示将第一DNN
Figure BDA0003011536140000432
的第一参数矩阵转换为包括k个整数值的第一k元参数矩阵的函数,并且
Figure BDA0003011536140000433
运算表示包括移位运算和加法运算的卷积运算。
根据本公开的实施例,通过以实数的参数可以被转换为比例因子和k元参数的乘积的方式训练第一DNN的第一参数,可以减少由第一DNN执行的运算所需的存储量和卷积运算量,同时保持第一DNN的性能。
另外,当通过完成第一DNN和第二DNN的训练来确定包括在第二DNN中的第二参数的值时,可以将最终的第二参数
Figure BDA0003011536140000438
(例如,第二参数矩阵)转换为比例因子b2和包括k个整数值的第二k元参数矩阵的乘积。
此外,比例因子b2和包括k个整数值的第二k元参数矩阵可以存储在存储器中。这里,当包括在第二k元参数矩阵中的k个整数值中的每一个仅为0或±2n(其中n是整数)时,可以用移位运算和加法运算代替在通过使用第二DNN对图像进行AI放大时执行的卷积运算。
因此,可以通过对第二k元参数和被输入到第二DNN的每个卷积层的输入图像执行移位运算和加法运算来执行卷积运算,并且这可以由等式14表示。
[等式14]
Figure BDA0003011536140000434
在等式14中,I2表示包括在第二DNN中的每个卷积层的输入图像,b2表示比例因子,
Figure BDA0003011536140000435
表示将第二DNN
Figure BDA0003011536140000436
的第二参数矩阵转换为包括k个整数值的第二k元参数矩阵的函数,并且
Figure BDA0003011536140000437
运算表示包括移位运算和加法运算的卷积运算。
根据本公开的实施例,通过以实数的参数可以被转换为比例因子和k元参数的乘积的方式训练第二DNN的第二参数,可以减少由第二DNN执行的运算所需的存储量和卷积运算量,同时保持第二DNN的性能。
图16是示出根据本公开的实施例的AI编码设备1300的配置的框图。
参照图16,根据本公开实施例的AI编码设备1300可包括处理器1320和存储器1330。
根据本公开实施例的处理器1320可整体控制AI编码设备1300。根据本公开的实施例的处理器1320可以执行存储在存储器1330中的一个或更多个程序。
根据本公开实施例的存储器1330可存储用于驱动和控制AI编码设备1300的各种数据、程序或应用。存储在存储器1330中的程序可以包括一个或更多个指令。存储在存储器1330中的程序(一个或更多个指令)或应用可以由处理器1320执行。
根据本公开的实施例的处理器1320可以执行在图6中示出并且已经参考图6描述的AI编码器610和发送器630的操作或已经参考图9描述的AI编码设备600的操作中的任一个或任一组合。
例如,处理器1320可以在原始图像和第一k元参数矩阵之间执行卷积运算,并且可以通过将卷积运算的结果乘以比例因子a1来对原始图像和第一DNN中包括的第一参数执行运算。另外,处理器1320可以基于上述操作的结果生成从原始图像AI缩小的第一图像(输出图像)。这里,包括在第一k元参数矩阵中的k个整数值中的每一个可以是0或±2n(其中n是整数)。
图17是示出根据本公开的实施例的AI解码设备1400的配置的框图。
参照图17,根据本公开实施例的AI解码设备1400可包括处理器1420和存储器1430。
根据本公开实施例的处理器1420可整体控制AI解码设备1400。根据本公开的实施例的处理器1420可以执行存储在存储器1430中的一个或更多个程序。
根据本公开实施例的存储器1430可存储用于驱动和控制AI解码设备1400的各种数据、程序或应用。存储在存储器1430中的程序可以包括一个或更多个指令。存储在存储器1430中的程序(一个或更多个指令)或应用可以由处理器1420执行。
根据本公开实施例的处理器1420可执行图2中所示并且已经参考图6描述的接收器210和AI解码器230的操作或已经参考图13描述的AI解码设备200的操作中的任一个或任一组合。
例如,处理器1420可以在第二图像和第二k元参数矩阵之间执行卷积运算,并且可以通过将卷积运算的结果乘以比例因子a2来执行第二图像和第二DNN中包括的第二参数之间的运算。另外,处理器1420可以基于上述操作的结果生成从第二图像AI缩小的第三图像(输出图像)。这里,包括在第二k元参数矩阵中的k个整数值中的每一个可以是0或±2n(其中n是整数)。
图18是示出根据本公开的实施例的被配置为训练第一DNN和第二DNN的电子装置1500的配置的框图。
参照图18,根据本公开的实施例的电子装置1500可以包括通信接口1510、处理器1520和存储器1530。根据本公开的实施例的处理器1520可以对电子装置1500进行整体控制。根据本公开的实施例的处理器1520可以执行存储在存储器1530中的一个或更多个程序。
根据本公开的实施例的存储器可以存储用于驱动和控制电子装置1500的各种数据、程序或应用。存储在存储器1530中的程序可以包括一个或更多个指令。存储在存储器1530中的程序(一个或更多个指令)或应用可以由处理器1520执行。
根据本公开的实施例的处理器1520可以执行在图9和图14中示出并且已经参考图9和图14描述的第一DNN和第二DNN的训练操作中的任一个或任一组合。
处理器1520可以彼此关联地训练第一DNN和第二DNN,并且当通过完成第一DNN和第二DNN的训练来确定包括在第一DNN中的第一参数的值时,处理器1520可以将第一参数转换为比例因子a1和包括k个整数值的第一k元参数矩阵的乘积,并因此将该乘积存储在存储器1530中。
另外,当确定包括在第二DNN中的第二参数的值时,处理器1520可以将第二参数转换为比例因子a2和包括k个整数值的第二k元参数矩阵的乘积,并因此将乘积存储在存储器1530中。
根据本公开的实施例的通信接口1510可以包括使得经由局域网(LAN)、广域网(WAN)、增值网络(VAN)、移动无线电通信网络、卫星通信网络或其组合来执行通信的一个或更多个组件。
通信接口1510可将训练完成的第一DNN和第二DNN的参数发送到AI编码设备或AI解码设备。例如,通信接口1510可将第一DNN的第一参数或比例因子a1和第一k元参数矩阵两者发送到AI编码设备,并且可将第二DNN的第二参数或比例因子a2和第二k元参数矩阵两者发送到AI解码设备。
提供分别在图16至图18中示出的AI编码设备1300、AI解码设备1400和电子装置1500的框图作为示例。根据实际实现的AI编码设备1300、AI解码设备1400和电子装置1500的规格,可集成、添加或省略框图中的每个组件。也就是说,根据需要,可以将两个或更多个部件集成到一个部件中,或者可以将一个部件分成两个或更多个部件。另外,提供由各个块执行的功能以用于说明本公开的实施例,并且各个块的操作或装置不限制本公开的范围。
上述本公开的实施例可以被编写为可以存储在介质中的计算机可执行程序或指令。
介质可以连续地存储计算机可执行程序或指令,或者临时存储计算机可执行程序或指令以供执行或下载。此外,介质可以是组合了单件或多件硬件的各种记录介质或存储介质中的任何一种,并且介质不限于直接连接到计算机系统的介质,而是可以分布在网络上。介质的示例包括磁介质(诸如硬盘、软盘和磁带)、光学记录介质(诸如CD-ROM和DVD)、磁光介质(诸如光磁软盘)以及ROM、RAM和闪存,其被配置为存储程序指令。介质的其他示例包括由分发应用的应用商店或由提供或分发其他各种类型的软件的网站、服务器等管理的记录介质和存储介质。
与上述DNN相关的模型可以经由软件模块来实现。当DNN模型经由软件模块(例如,包括指令的程序模块)实现时,DNN模型可以存储在计算机可读记录介质中。
此外,DNN模型可以通过以硬件芯片的形式集成而成为上述AI解码设备200或AI编码设备600的一部分。例如,DNN模型可以以用于AI的专用硬件芯片的形式制造,或者可以被制造为现有通用处理器(例如,CPU或应用处理器)或图形专用处理器(例如,GPU)的一部分。
此外,DNN模型可以以可下载软件的形式提供。计算机程序产品可包括以通过制造商或电子市场电子分发的软件程序的形式的产品(例如,可下载的应用)。对于电子分发,软件程序的至少一部分可以存储在存储介质中或者可以临时生成。在这种情况下,存储介质可以是制造商或电子市场的服务器,或者是中继服务器的存储介质。
通过以k元形式表示用于图像的AI缩小的第一DNN中包括的第一参数,根据本公开实施例的AI编码设备可以减少AI缩小图像所需的存储量和计算量,同时保持第一DNN的AI缩小性能。
通过以k元形式表示用于图像的AI放大的第二DNN中包括的第二参数,根据本公开实施例的AI解码设备可以减少AI放大图像所需的存储量和计算量,同时保持第二DNN的AI放大性能。
在AI编码设备被配置为提供AI缩小的图像的服务器并且AI解码设备被配置为接收AI缩小的图像的终端的系统中,当接收的图像由终端进行AI缩小时,存储生成的中间结果值的存储器的量可减少,并且因此可提高系统的效率。
虽然已经参考附图描述了本公开的实施例,但是本领域普通技术人员将理解,在不脱离由所附权利要求限定的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。

Claims (15)

1.一种人工智能(AI)解码设备,包括:
存储器,存储一个或更多个指令,一种人工智能(AI)解码设备,包括:
存储器,存储一个或更多个指令;以及
处理器,被配置为执行所存储的一个或更多个指令以进行以下操作:
获得与通过使用包括在第一深度神经网络(DNN)中的第一滤波器内核的第一参数从原始图像缩小的第一图像对应的图像数据;
基于所获得的图像数据,重构与第一图像对应的第二图像;以及
通过执行重构的第二图像和包括在与第一DNN对应的第二DNN中的第二滤波器内核的第二参数之间的运算,获得从重构的第二图像放大的第三图像,
其中,第二参数中的每一个由比例因子与整数值中的一个的乘积表示,并且所述整数值中的每一个是0或±2n,其中n是整数。
2.根据权利要求1所述的AI解码设备,其中,与第一DNN关联地训练第二DNN,并且基于通过训练第一DNN获得的训练图像来训练第二DNN。
3.根据权利要求1所述的AI解码设备,其中,表示第二参数的第一参数矩阵由比例因子和包括所述整数值的第二参数矩阵的乘积表示,
存储器存储比例因子和第二参数矩阵,并且
处理器还被配置为执行所存储的一个或更多个指令,以通过执行重构的第二图像和第二参数矩阵之间的卷积运算并且然后将所执行的卷积运算的结果乘以比例因子来获得第三图像。
4.根据权利要求3所述的AI解码设备,其中,处理器还被配置为执行所存储的一个或更多个指令,以通过执行第二图像中包括的像素值和第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
5.一种人工智能(AI)编码设备,包括:
存储器,存储一个或更多个指令;以及
处理器,被配置为执行所存储的一个或更多个指令以进行以下操作:
通过执行原始图像与包括在第一深度神经网络(DNN)中的滤波器内核的第一参数之间的运算,获得从原始图像缩小的第一图像;以及
对所获得的第一图像进行编码,
其中,第一参数中的每一个由比例因子与整数值中的一个的乘积表示,并且所述整数值中的每一个是0或±2n,其中n是整数,并且
其中,第一DNN对应于包括第二滤波器内核的第二DNN,第二滤波器内核的第二参数用于放大与第一图像对应的第二图像。
6.根据权利要求5所述的AI编码设备,其中,与第二DNN关联地训练第一DNN,并且基于通过训练第二DNN获得的损失信息来训练第一DNN。
7.根据权利要求6所述的AI编码设备,其中,第一DNN是基于通过在第二DNN的训练中进行放大而生成的第一损失信息并且基于通过在训练第一DNN中进行缩小而生成的第二损失信息来训练的。
8.根据权利要求5所述的AI编码设备,其中,表示第一参数的第一参数矩阵由比例因子和包括所述整数值的第二参数矩阵的乘积表示,
存储器存储比例因子和第二参数矩阵,并且
处理器还被配置为执行所存储的一或更多个指令,以通过执行原始图像与第二参数矩阵之间的卷积运算并且然后将所执行的卷积运算的结果乘以比例因子来获得第一图像。
9.根据权利要求8所述的AI编码设备,其中,处理器还被配置为执行所存储的一个或更多个指令,以通过执行原始图像中包括的像素值与第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
10.一种人工智能(AI)解码设备的操作方法,所述操作方法包括:
获得与通过使用包括在第一深度神经网络(DNN)中的第一滤波器内核的第一参数从原始图像缩小的第一图像对应的图像数据;
基于所获得的图像数据,重构与第一图像对应的第二图像;以及
通过执行重构的第二图像与包括在与第一DNN对应的第二DNN中的第二滤波器内核的第二参数之间的运算,获得从重构的第二图像放大的第三图像,
其中,第二参数中的每一个由比例因子与整数值中的一个的乘积表示,并且所述整数值中的每一个是0或±2n,其中n是整数。
11.根据权利要求10所述的操作方法,其中,与第一DNN关联地训练第二DNN,并且基于通过训练第一DNN获得的训练图像来训练第二DNN。
12.根据权利要求10所述的操作方法,其中,表示第二参数的第一参数矩阵由比例因子和包括所述整数值的第二参数矩阵的乘积表示,并且
获得第三图像的步骤包括:通过执行重构的第二图像和第二参数矩阵之间的卷积运算并且然后将所执行的卷积运算的结果乘以比例因子来获得第三图像。
13.根据权利要求12所述的操作方法,其中,获得第三图像的步骤包括:通过执行第二图像中包括的像素值与第二参数矩阵之间的移位运算和加法运算来执行卷积运算。
14.一种人工智能(AI)编码设备的操作方法,所述操作方法包括:
通过执行原始图像与包括在第一深度神经网络(DNN)中的滤波器内核的第一参数之间的运算,获得从原始图像缩小的第一图像;以及
对所获得的第一图像进行编码,
其中,第一参数中的每一个由比例因子与整数值中的一个的乘积表示,并且整数值中的每一个是0或±2n,其中n是整数,并且
其中,第一DNN对应于包括第二滤波器内核的第二DNN,第二滤波器内核的第二参数用于放大与第一图像对应的第二图像。
15.根据权利要求14所述的操作方法,其中,与第二DNN关联地训练第一DNN,并且基于通过训练第二DNN获得的损失信息来训练第一DNN。
CN201980066462.4A 2018-10-19 2019-10-15 人工智能(ai)编码装置及其操作方法和ai解码装置及其操作方法 Active CN112840650B (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
KR20180125406 2018-10-19
KR10-2018-0125406 2018-10-19
KR10-2018-0138298 2018-11-12
KR20180138298 2018-11-12
KR10-2019-0041099 2019-04-08
KR20190041099 2019-04-08
KR1020190078343A KR102312337B1 (ko) 2018-10-19 2019-06-28 Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법
KR10-2019-0078343 2019-06-28
PCT/KR2019/013483 WO2020080782A1 (en) 2018-10-19 2019-10-15 Artificial intelligence (ai) encoding device and operating method thereof and ai decoding device and operating method thereof

Publications (2)

Publication Number Publication Date
CN112840650A true CN112840650A (zh) 2021-05-25
CN112840650B CN112840650B (zh) 2024-04-30

Family

ID=70466759

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980066462.4A Active CN112840650B (zh) 2018-10-19 2019-10-15 人工智能(ai)编码装置及其操作方法和ai解码装置及其操作方法

Country Status (3)

Country Link
EP (1) EP3868097A4 (zh)
KR (1) KR102312337B1 (zh)
CN (1) CN112840650B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114631320A (zh) * 2019-10-28 2022-06-14 三星电子株式会社 对图像执行人工智能(ai)编码和ai解码的设备和方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220111388A (ko) * 2021-02-02 2022-08-09 주식회사 딥브레인에이아이 영상 품질을 향상시킬 수 있는 영상 합성 장치 및 방법
KR20220111390A (ko) * 2021-02-02 2022-08-09 주식회사 딥브레인에이아이 영상 품질을 향상시킬 수 있는 영상 합성 장치 및 방법
KR102593489B1 (ko) * 2021-04-29 2023-10-24 주식회사 딥브레인에이아이 기계 학습을 이용한 데이터 생성 방법 및 이를 수행하기 위한 컴퓨팅 장치
KR20230172914A (ko) * 2022-06-16 2023-12-26 주식회사 유엑스팩토리 이미지 분석을 위한 파생 이미지를 생성하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801947A (zh) * 2005-01-07 2006-07-12 三星电子株式会社 编码和解码运动图像的设备、方法及其记录介质
CN102176748A (zh) * 2006-01-06 2011-09-07 微软公司 用于多分辨率视频编码和解码的重新采样和调整图像大小操作的方法
WO2013068427A2 (en) * 2011-11-07 2013-05-16 Canon Kabushiki Kaisha Method and device for providing compensation offsets for a set of reconstructed samples of an image
US20170287109A1 (en) * 2016-04-05 2017-10-05 Flipboard, Inc. Image scaling using a convolutional neural network
KR101885855B1 (ko) * 2017-03-30 2018-08-07 단국대학교 산학협력단 고해상도 추정 기법을 활용한 영상 신호 전송

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018091486A1 (en) * 2016-11-16 2018-05-24 Ventana Medical Systems, Inc. Convolutional neural networks for locating objects of interest in images of biological samples
WO2018140596A2 (en) * 2017-01-27 2018-08-02 Arterys Inc. Automated segmentation utilizing fully convolutional networks
US11468318B2 (en) * 2017-03-17 2022-10-11 Portland State University Frame interpolation via adaptive convolution and adaptive separable convolution
CN108022212B (zh) * 2017-11-24 2022-07-01 腾讯科技(深圳)有限公司 高分辨率图片生成方法、生成装置及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1801947A (zh) * 2005-01-07 2006-07-12 三星电子株式会社 编码和解码运动图像的设备、方法及其记录介质
CN102176748A (zh) * 2006-01-06 2011-09-07 微软公司 用于多分辨率视频编码和解码的重新采样和调整图像大小操作的方法
WO2013068427A2 (en) * 2011-11-07 2013-05-16 Canon Kabushiki Kaisha Method and device for providing compensation offsets for a set of reconstructed samples of an image
US20170287109A1 (en) * 2016-04-05 2017-10-05 Flipboard, Inc. Image scaling using a convolutional neural network
KR101885855B1 (ko) * 2017-03-30 2018-08-07 단국대학교 산학협력단 고해상도 추정 기법을 활용한 영상 신호 전송

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114631320A (zh) * 2019-10-28 2022-06-14 三星电子株式会社 对图像执行人工智能(ai)编码和ai解码的设备和方法

Also Published As

Publication number Publication date
EP3868097A1 (en) 2021-08-25
KR102312337B1 (ko) 2021-10-14
KR20200044667A (ko) 2020-04-29
EP3868097A4 (en) 2022-11-02
CN112840650B (zh) 2024-04-30

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
US10825139B2 (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) 编码方法及其设备以及解码方法及其设备
CN112840650B (zh) 人工智能(ai)编码装置及其操作方法和ai解码装置及其操作方法
KR102126886B1 (ko) 단계적 계층에서의 신호 인코딩, 디코딩 및 재구성 동안의 잔차 데이터의 압축해제
CN112913237A (zh) 使用深度神经网络的人工智能编码和人工智能解码方法和设备
US11720997B2 (en) Artificial intelligence (AI) encoding device and operating method thereof and AI decoding device and operating method thereof
CN112889282B (zh) 用于对图像执行人工智能编码和人工智能解码的方法和设备
US11182876B2 (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
KR102436512B1 (ko) 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
CN112715029A (zh) Ai编码设备及其操作方法和ai解码设备及其操作方法
US20220207650A1 (en) Image ai-coding method and device, and image ai-decoding method and device
CN112740687B (zh) 用于对图像执行人工智能编码和人工智能解码的设备和方法
US11270469B2 (en) Method and apparatus for performing artificial intelligence encoding and artificial intelligence decoding

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
GR01 Patent grant
GR01 Patent grant