CN111464815A - 一种基于神经网络的视频编码方法及系统 - Google Patents

一种基于神经网络的视频编码方法及系统 Download PDF

Info

Publication number
CN111464815A
CN111464815A CN202010305191.8A CN202010305191A CN111464815A CN 111464815 A CN111464815 A CN 111464815A CN 202010305191 A CN202010305191 A CN 202010305191A CN 111464815 A CN111464815 A CN 111464815A
Authority
CN
China
Prior art keywords
motion
module
constructing
residual
coding
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
CN202010305191.8A
Other languages
English (en)
Other versions
CN111464815B (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.)
University of Science and Technology of China USTC
Original Assignee
University of Science and Technology of China USTC
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 University of Science and Technology of China USTC filed Critical University of Science and Technology of China USTC
Priority to CN202010305191.8A priority Critical patent/CN111464815B/zh
Publication of CN111464815A publication Critical patent/CN111464815A/zh
Application granted granted Critical
Publication of CN111464815B publication Critical patent/CN111464815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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
    • 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
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation

Landscapes

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

Abstract

本发明公开了一种基于神经网络的视频编码方法及系统,方法包括:获取用于训练神经网络的视频数据,构建一个含有多参考帧的神经网络,基于视频数据对含有多参考帧的神经网络进行训练,得到训练好的神经网络,基于训练好的神经网络对视频进行编码。本发明能够基于神经网络,利用多参考帧,有效提升面向低延时场景时,视频编码的性能。

Description

一种基于神经网络的视频编码方法及系统
技术领域
本发明涉及视频编码技术领域,尤其涉及一种基于神经网络的视频编码方法及系统。
背景技术
目前,互联网上大部分的视频都被压缩成H.264或H.265的格式。新的视频编码标准如H.266和AV1正在制定中。尽管新的标准相比H.265在同样的视觉质量下节省了50%的码率,但是这种性能提升也带来了编码复杂度的成倍增加。事实上,所有的传统编码标准都使用了同样的框架。该框架使用了基于运动补偿的预测、基于块的变换和基于人工设计的熵编码器。经过三十多年的不断发展,该框架在压缩效率不断增长的同时,系统复杂度变得越来越高,单个技术的性能变得越来越小,已在一定程度上趋于饱和。
近年来,一系列研究工作试图构建新的基于深度神经网络的视频编码框架。这些工作可以根据不同的应用场景分为两大类。第一类是面向点播应用的随机切入场景。例如,一种基于内插的视频编码方案,该方案包括结合了运动信息编码和图像合成的内插模型以及用于残差编码的自编码器,该方案在PSNR(Peak Signal to Noise Ratio,峰值信噪比)指标下高码率端的编码性能已经超过H.265。第二类面向的是直播应用的低延时场景。例如,一种端到端深度学习视频编码模型,该模型联合优化了运动估计、运动编码、运动补偿、和残差编码等模块,该模型在MS-SSIM指标下的编码性能与H.265相当。但是,这些已有的模型要么面向的是随机切入场景,要么只使用了前面的一个重建帧当作参考帧,无法充分利用视频帧之间的时域相关性。在面向低延时场景时,视频编码的性能较低。
因此,如何进一步有效地提升基于神经网络的视频编码的性能,是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种基于神经网络的视频编码方法,能够基于神经网络,利用多参考帧,有效提升面向低延时场景时,视频编码的性能。
本发明提供了一种基于神经网络的视频编码方法,包括:
获取用于训练神经网络的视频数据;
构建一个含有多参考帧的神经网络;
基于所述视频数据对所述含有多参考帧的神经网络进行训练,得到训练好的神经网络;
基于所述训练好的神经网络对视频进行编码。
优选地,所述构建一个含有多参考帧的神经网络,包括:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于获得重建帧的帧重建模块。
优选地,所述构建一个含有多参考帧的神经网络,包括:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于改善重建运动场的运动场改善模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于获得重建帧的帧重建模块。
优选地,所述构建一个含有多参考帧的神经网络,包括:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于改善重建运动场的运动场改善模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于改善重建残差的残差改善模块;
构建用于获得重建帧的帧重建模块。
优选地,所述基于所述视频数据对所述含有多参考帧的神经网络进行训练,得到训练好的神经网络,包括:
基于所述视频数据,采用渐进式训练方法在训练集上训练所述含有多参考帧的神经网络,得到训练好的神经网络。
一种基于神经网络的视频编码系统,包括:
获取单元,用于获取用于训练神经网络的视频数据;
构建单元,用于构建一个含有多参考帧的神经网络;
训练单元,用于基于所述视频数据对所述含有多参考帧的神经网络进行训练,得到训练好的神经网络;
编码单元,用于基于所述训练好的神经网络对视频进行编码。
优选地,所述构建单元具体用于:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于获得重建帧的帧重建模块。
优选地,所述构建单元具体用于:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于改善重建运动场的运动场改善模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于获得重建帧的帧重建模块。
优选地,所述构建单元具体用于:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于改善重建运动场的运动场改善模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于改善重建残差的残差改善模块;
构建用于获得重建帧的帧重建模块。
优选地,所述训练单元具体用于:
基于所述视频数据,采用渐进式训练方法在训练集上训练所述含有多参考帧的神经网络,得到训练好的神经网络。
综上所述,本发明公开了一种基于神经网络的视频编码方法,当需要对视频进行编码时,首先获取用于训练神经网络的视频数据,然后构建一个含有多参考帧的神经网络,基于视频数据对含有多参考帧的神经网络进行训练,得到训练好的神经网络,最后基于训练好的神经网络对视频进行编码。本发明能够基于神经网络,利用多参考帧,有效提升面向低延时场景时,视频编码的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种基于神经网络的视频编码方法实施例1的方法流程图;
图2为本发明公开的一种基于神经网络的视频编码方法实施例2的方法流程图;
图3为本发明公开的一种构建含有多参考帧的神经网络的示意图;
图4为本发明公开的一种基于神经网络的视频编码方法实施例3的方法流程图;
图5为本发明公开的另一种构建含有多参考帧的神经网络的示意图;
图6为本发明公开的一种基于神经网络的视频编码方法实施例4的方法流程图;
图7为本发明公开的另一种构建含有多参考帧的神经网络的示意图;
图8为本发明公开的运动预测网络、运动场改善网络、基于多参考帧的运动补偿网络和残差改善网络的示意图;
图9为本发明实施例4进行测试之后的编码结果示意图;
图10为本发明公开的一种基于神经网络的视频编码系统实施例1的结构示意图;
图11为本发明公开的一种基于神经网络的视频编码系统实施例2的结构示意图;
图12为本发明公开的一种基于神经网络的视频编码系统实施例3的结构示意图;
图13为本发明公开的一种基于神经网络的视频编码系统实施例4的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种基于神经网络的视频编码方法实施例1的方法流程图,所述方法可以包括以下步骤:
S101、获取用于训练神经网络的视频数据;
当需要对视频进行编码时,首先获取自然视频序列,例如,从互联网上下载自然视频序列,然后把每个自然视频序列裁剪成大小和长度相等,互不重叠的视频子序列。其中,视频子序列的大小和长度灵活,具体可根据实际情况确定。示例性地,可以将每个自然视频序列裁剪成大小为192x192,长度为16帧的多个视频子序列。
S102、构建一个含有多参考帧的神经网络;
然后构建一个含有多参考帧的神经网络。
S103、基于视频数据对含有多参考帧的神经网络进行训练,得到训练好的神经网络;
然后,根据获取到的视频数据对构建的含有多参考帧的神经网络进行训练,得到训练好的神经网络。
S104、基于训练好的神经网络对视频进行编码。
在得到训练好的神经网络后,根据训练好的神经网络对需要进行编码的视频进行编码。
综上所述,在上述实施例中,当需要对视频进行编码时,首先获取用于训练神经网络的视频数据,然后构建一个含有多参考帧的神经网络,基于视频数据对含有多参考帧的神经网络进行训练,得到训练好的神经网络,最后基于训练好的神经网络对视频进行编码。本发明能够基于神经网络,利用多参考帧,有效提升面向低延时场景时,视频编码的性能。
如图2所示,为本发明公开的一种基于神经网络的视频编码方法实施例2的方法流程图,所述方法可以包括以下步骤:
S201、获取用于训练神经网络的视频数据;
当需要对视频进行编码时,首先获取自然视频序列,例如,从互联网上下载自然视频序列,然后把每个自然视频序列裁剪成大小和长度相等,互不重叠的视频子序列。其中,视频子序列的大小和长度灵活,具体可根据实际情况确定。示例性地,可以将每个自然视频序列裁剪成大小为192x192,长度为16帧的多个视频子序列。
S202、构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
然后,构建一个含有多参考帧的神经网络。
具体的,首先构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块。如图3所示,将当前帧xt和参考帧
Figure BDA0002455509230000081
输入运动估计模块中用于提取原始运动场vt。示例性地,可以使用基于光流的网络Flownet2.0作为运动估计模块。
S203、构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
然后,构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块。如图3所示,在运动估计之后,用运动预测模块基于前若干重建运动场预测当前帧对应的运动场。其中,重建运动场的使用个数可以根据实际缓存大小来调整。本实施例提出如图8(a1)和(a2)所示的基于多尺度特征对齐的运动场预测网络。示例性地,使用四个尺度以及前面三个重建的运动场,则如图8(a1)所示的运动场多尺度特征提取网络可以表达成:
Figure BDA0002455509230000091
其中,
Figure BDA0002455509230000092
代表运动场
Figure BDA0002455509230000093
在第l个尺度的特征。然后,使用下式将
Figure BDA0002455509230000094
Figure BDA0002455509230000095
的多尺度特征与
Figure BDA0002455509230000096
的多尺度特征进行运动对齐:
Figure BDA0002455509230000097
Figure BDA0002455509230000098
其中,
Figure BDA0002455509230000099
Figure BDA00024555092300000910
Figure BDA00024555092300000911
Figure BDA00024555092300000912
在第l个尺度的Warp之后的特征。
Figure BDA00024555092300000913
Figure BDA00024555092300000914
分别是
Figure BDA00024555092300000915
Figure BDA00024555092300000916
下采样到第1个尺度的运动场。这里的Warp操作通过基于双线性插值的滤波器实现。然后,
Figure BDA00024555092300000917
Figure BDA00024555092300000918
的Warp之后的多尺度特征以及
Figure BDA00024555092300000919
的多尺度特征被输入金字塔网络中由粗到细地预测当前帧的运动场。如图8(a2)所示,第1个尺度的运动场预测
Figure BDA00024555092300000920
和特征预测
Figure BDA00024555092300000921
可以通过下式获得:
Figure BDA00024555092300000922
其中,
Figure BDA00024555092300000923
Figure BDA00024555092300000924
是从前面第(l+1)个尺度使用双线性插值进行2倍上采样得到的预测值。重复这个预测过程直到第0个尺度,获得最终的运动场预测
Figure BDA00024555092300000925
最后,用原始运动场vt减去预测的运动场
Figure BDA00024555092300000926
得到原始运动场残差dt
S204、构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
然后,构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块。如图3所示,在运动预测之后,使用运动差编码模块和运动差解码模块来编码和解码原始运动场残差dt。示例性地,可以使用fully-factorized自编码器来编码运动矢量残差。dt首先被运动差编码模块映射成隐变量mt,然后量化成
Figure BDA00024555092300000927
在测试阶段,使用估计的概率分布将
Figure BDA0002455509230000101
熵编码成码流。然后在解码端使用运动差解码模块将熵解码的
Figure BDA0002455509230000102
映射成重建的运动场残差
Figure BDA0002455509230000103
S205、构建用于获得重建运动场的运动重建模块;
然后,构建用于获得重建运动场的运动重建模块。如图3所示,在运动差编码和解码之后,将重建的运动场残差
Figure BDA0002455509230000104
与预测的运动场
Figure BDA0002455509230000105
相加,得到最终的重建运动场
Figure BDA0002455509230000106
然后将
Figure BDA0002455509230000107
加入已重建的运动场缓存中用于编码后续的视频帧。
S206、构建用于获得当前帧的预测的运动补偿模块;
然后,构建用于获得当前帧的预测的运动补偿模块。如图3所示,在运动重建之后,使用基于多参考帧的运动补偿模块来获取当前帧的预测
Figure BDA0002455509230000108
示例性地,使用前面四个参考帧,具体的参考帧使用个数可以根据实际缓存大小来确定。首先,分别使用一个两层的CNN来提取每个参考帧的特征。然后,使用下式将参考帧
Figure BDA0002455509230000109
以及提取的参考帧特征Warp到当前帧:
Figure BDA00024555092300001010
Figure BDA00024555092300001011
Figure BDA00024555092300001012
其中,
Figure BDA00024555092300001013
Figure BDA00024555092300001014
的Warp之后的特征。然后,如图8(b)所示,将Warp之后的特征和图像输入运动补偿模块中获取当前帧的预测:
Figure BDA00024555092300001015
其中,Hmc代表运动补偿模块的函数。最后,用当前帧的原始值xt减去当前帧的预测值
Figure BDA00024555092300001016
的得到原始残差rt
S207、构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
然后,构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块。如图3所示,运动补偿之后,使用残差编码和残差解码模块,对原始残差rt进行编码和解码。示例性地,可以使用基于hyper-prior的自编码器来编码原始残差。rt首先被残差编码模块映射成隐变量yt,然后量化成
Figure BDA0002455509230000111
在测试阶段,使用估计的概率分布将
Figure BDA0002455509230000112
熵编码成码流。然后在解码端使用残差解码模块将熵解码的
Figure BDA0002455509230000113
映射成重建的残差
Figure BDA0002455509230000114
S208、构建用于获得重建帧的帧重建模块;
最后,构建用于获得重建帧的帧重建模块。如图3所示,在残差编码和解码之后,将重建的残差
Figure BDA0002455509230000115
与当前帧的预测
Figure BDA0002455509230000116
相加,得到最终的重建帧
Figure BDA0002455509230000117
然后将
Figure BDA0002455509230000118
加入已重建的视频帧缓存中用于编码后续的视频帧。
S209、基于视频数据,采用渐进式训练方法在训练集上训练含有多参考帧的神经网络,得到训练好的神经网络;
然后,基于视频数据,采用渐进式训练方法在训练集上训练含有多参考帧的神经网络。具体的:
首先在神经网络中仅保留运动估计模块和运动补偿模块,其中运动估计模块使用训练好的光流网络(例如Flownet2.0)的参数进行初始化并保持固定,只训练运动补偿模块。训练损失函数是:
Figure BDA0002455509230000119
其中,
Figure BDA00024555092300001110
表示当前帧的原始值xt和当前帧的预测值
Figure BDA00024555092300001111
之间的失真。示例性地,可以使用均方误差(MSE)作为失真度量。
然后,加入运动差编码模块、运动差解码模块、残差编码模块和残差解码模块,同时固定运动估计模块和运动补偿模块的参数,只训练新加入的运动差编码模块、运动差解码模块、残差编码模块和残差解码模块,训练损失函数是:
Figure BDA00024555092300001112
其中,
Figure BDA00024555092300001113
表示当前帧的原始值xt和当前帧的重建值
Figure BDA00024555092300001114
之间的失真。示例性地,可以使用均方误差(MSE)作为失真度量。Rmvd和Rres分别表示用于编码原始运动场残差dt和原始残差rt的码率。注意,由于这里还没有运动预测模块,原始的运动场残差dt就等于原始的运动场vt。在训练阶段,这两个码率由对应的隐变量
Figure BDA0002455509230000121
Figure BDA0002455509230000122
的熵估计得到。示例性地,可以分别使用基于fully-factorized和hyper-prior的熵模型估计
Figure BDA0002455509230000123
Figure BDA0002455509230000124
的概率分布进而得到对应的熵。
Figure BDA0002455509230000125
Figure BDA0002455509230000126
的量化操作在训练阶段通过添加均匀噪声来模拟。
然后,联合微调上面的运动估计模块、运动补偿模块、运动差编码模块、运动差解码模块、残差编码模块和残差解码模块。
然后,加入运动预测模块,同时固定之前模块的参数,只训练新加入的运动预测模块,训练损失函数是:
Figure BDA0002455509230000127
然后,联合微调所有的模块。
在训练阶段,使用IPPP...的编码结构,并且所有的P帧使用同一个模型进行编码。另外,使用不同的λ值训练多个不同码率点的模型。
S210、基于训练好的神经网络对视频进行编码。
在得到训练好的神经网络后,在测试阶段,使用训练好的神经网络对视频进行编码,视频的大小和长度任意。编码结构也可以根据实际情况灵活选取。示例性地,可以选择IPPP...的编码结构或者IPPP...I的编码结构,其中P帧使用同一个模型进行编码并且P帧个数根据实际情况决定,I帧编码可以使用传统编解码器,如H.265,或者基于神经网络的图像编解码器。
如图4所示,为本发明公开的一种基于神经网络的视频编码方法实施例3的方法流程图,所述方法可以包括以下步骤:
S401、获取用于训练神经网络的视频数据;
当需要对视频进行编码时,首先获取自然视频序列,例如,从互联网上下载自然视频序列,然后把每个自然视频序列裁剪成大小和长度相等,互不重叠的视频子序列。其中,视频子序列的大小和长度灵活,具体可根据实际情况确定。示例性地,可以将每个自然视频序列裁剪成大小为192x192,长度为16帧的多个视频子序列。
S402、构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
然后,构建一个含有多参考帧的神经网络。
具体的,首先构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块。如图5所示,将当前帧xt和参考帧
Figure BDA0002455509230000131
输入运动估计模块中用于提取原始运动场vt。示例性地,可以使用基于光流的网络Flownet2.0作为运动估计模块。
S403、构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
然后,构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块。如图5所示,在运动估计之后,用运动预测模块基于前若干重建运动场预测当前帧对应的运动场。其中,重建运动场的使用个数可以根据实际缓存大小来调整。本实施例提出如图8(a1)和(a2)所示的基于多尺度特征对齐的运动场预测网络。示例性地,使用四个尺度以及前面三个重建的运动场,则如图8(a1)所示的运动场多尺度特征提取网络可以表达成:
Figure BDA0002455509230000132
其中,
Figure BDA0002455509230000133
代表运动场
Figure BDA0002455509230000134
在第l个尺度的特征。然后,使用下式将
Figure BDA0002455509230000135
Figure BDA0002455509230000136
的多尺度特征与
Figure BDA0002455509230000137
的多尺度特征进行运动对齐:
Figure BDA0002455509230000138
Figure BDA0002455509230000139
其中,
Figure BDA00024555092300001310
Figure BDA00024555092300001311
Figure BDA00024555092300001312
Figure BDA00024555092300001313
在第l个尺度的Warp之后的特征。
Figure BDA00024555092300001314
Figure BDA00024555092300001315
分别是
Figure BDA00024555092300001316
Figure BDA00024555092300001320
下采样到第l个尺度的运动场。这里的Warp操作通过基于双线性插值的滤波器实现。然后,
Figure BDA00024555092300001318
Figure BDA00024555092300001319
的Warp之后的多尺度特征以及
Figure BDA0002455509230000141
的多尺度特征被输入金字塔网络中由粗到细地预测当前帧的运动场。如图8(a2)所示,第l个尺度的运动场预测
Figure BDA0002455509230000142
和特征预测
Figure BDA0002455509230000143
可以通过下式获得:
Figure BDA0002455509230000144
其中,
Figure BDA0002455509230000145
Figure BDA0002455509230000146
是从前面第(l+1)个尺度使用双线性插值进行2倍上采样得到的预测值。重复这个预测过程直到第0个尺度,获得最终的运动场预测
Figure BDA0002455509230000147
最后,用原始运动场vt减去预测的运动场
Figure BDA0002455509230000148
得到原始运动场残差dt
S404、构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
然后,构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块。如图5所示,在运动预测之后,使用运动差编码模块和运动差解码模块来编码和解码原始运动场残差dt。示例性地,可以使用fully-factorized自编码器来编码运动矢量残差。dt首先被运动差编码模块映射成隐变量mt,然后量化成
Figure BDA0002455509230000149
在测试阶段,使用估计的概率分布将
Figure BDA00024555092300001410
熵编码成码流。然后在解码端使用运动差解码模块将熵解码的
Figure BDA00024555092300001411
映射成重建的运动场残差
Figure BDA00024555092300001412
S405、构建用于获得重建运动场的运动重建模块;
然后,构建用于获得重建运动场的运动重建模块。如图5所示,在运动差编码和解码之后,将重建的运动场残差
Figure BDA00024555092300001413
与预测的运动场
Figure BDA00024555092300001414
相加,得到重建的运动场
Figure BDA00024555092300001415
S406、构建用于改善重建运动场的运动场改善模块;
然后,构建用于改善重建运动场的运动场改善模块。如图5所示,在运动重建之后,使用运动场改善模块提升重建运动场
Figure BDA00024555092300001416
的质量。示例性地,使用前面三个重建的运动场
Figure BDA00024555092300001417
和参考帧
Figure BDA00024555092300001418
作为网络的输入。首先,使用一个两层的CNN来分别提取
Figure BDA0002455509230000151
Figure BDA0002455509230000152
的特征。然后,使用下式将
Figure BDA0002455509230000153
Figure BDA0002455509230000154
的特征Warp到
Figure BDA0002455509230000155
Figure BDA0002455509230000156
Figure BDA0002455509230000157
其中,
Figure BDA0002455509230000158
Figure BDA0002455509230000159
的Warp之后的特征。然后,如图8(c)所示,将Warp之后的特征以及
Figure BDA00024555092300001510
Figure BDA00024555092300001511
的特征输入运动场改善网络中获取改善后的运动场:
Figure BDA00024555092300001512
其中,Hmvr代表运动场改善模块的函数。最后,将
Figure BDA00024555092300001513
加入已重建的运动场缓存中用于编码后续的视频帧。
S407、构建用于获得当前帧的预测的运动补偿模块;
然后,构建用于获得当前帧的预测的运动补偿模块。如图5所示,在运动重建之后,使用基于多参考帧的运动补偿模块来获取当前帧的预测
Figure BDA00024555092300001514
示例性地,使用前面四个参考帧,具体的参考帧使用个数可以根据实际缓存大小来确定。首先,分别使用一个两层的CNN来提取每个参考帧的特征。然后,使用下式将参考帧
Figure BDA00024555092300001515
以及提取的参考帧特征Warp到当前帧:
Figure BDA00024555092300001516
Figure BDA00024555092300001517
Figure BDA00024555092300001518
其中,
Figure BDA00024555092300001519
Figure BDA00024555092300001520
的Warp之后的特征。然后,如图8(b)所示,将Warp之后的特征和图像输入运动补偿模块中获取当前帧的预测:
Figure BDA00024555092300001521
其中,Hmc代表运动补偿模块的函数。最后,用当前帧的原始值xt减去当前帧的预测任
Figure BDA00024555092300001522
的得到原始残差rt
S408、构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
然后,构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块。如图5所示,运动补偿之后,使用残差编码和残差解码模块,对原始残差rt进行编码和解码。示例性地,可以使用基于hyper-prior的自编码器来编码原始残差。rt首先被残差编码模块映射成隐变量yt,然后量化成
Figure BDA0002455509230000161
在测试阶段,使用估计的概率分布将
Figure BDA0002455509230000162
熵编码成码流。然后在解码端使用残差解码模块将熵解码的
Figure BDA0002455509230000163
映射成重建的残差
Figure BDA0002455509230000164
S409、构建用于获得重建帧的帧重建模块;
最后,构建用于获得重建帧的帧重建模块。如图5所示,在残差编码和解码之后,将重建的残差
Figure BDA0002455509230000165
与当前帧的预测
Figure BDA00024555092300001611
相加,得到最终的重建帧
Figure BDA0002455509230000166
然后将
Figure BDA0002455509230000167
加入已重建的视频帧缓存中用于编码后续的视频帧。
S410、基于视频数据,采用渐进式训练方法在训练集上训练含有多参考帧的神经网络,得到训练好的神经网络;
然后,基于视频数据,采用渐进式训练方法在训练集上训练含有多参考帧的神经网络。具体的:
首先在神经网络中仅保留运动估计模块和运动补偿模块,其中运动估计模块使用训练好的光流网络(例如Flownet2.0)的参数进行初始化并保持固定,只训练运动补偿模块。训练损失函数是:
Figure BDA0002455509230000168
其中,
Figure BDA0002455509230000169
表示当前帧的原始值xt和当前帧的预测值
Figure BDA00024555092300001610
之间的失真。示例性地,可以使用均方误差(MSE)作为失真度量。
然后,加入运动差编码模块、运动差解码模块、残差编码模块和残差解码模块,同时固定运动估计模块和运动补偿模块的参数,只训练新加入的运动差编码模块、运动差解码模块、残差编码模块和残差解码模块,训练损失函数是:
Figure BDA0002455509230000171
其中,
Figure BDA0002455509230000172
表示当前帧的原始值xt和当前帧的重建值
Figure BDA0002455509230000173
之间的失真。示例性地,可以使用均方误差(MSE)作为失真度量。Rmvd和Rres分别表示用于编码原始运动场残差dt和原始残差rt的码率。注意,由于这里还没有运动预测模块,原始的运动场残差dt就等于原始的运动场vt。在训练阶段,这两个码率由对应的隐变量
Figure BDA0002455509230000174
Figure BDA0002455509230000175
的熵估计得到。示例性地,可以分别使用基于fully-factorized和hyper-prior的熵模型估计
Figure BDA0002455509230000176
Figure BDA0002455509230000177
的概率分布进而得到对应的熵。
Figure BDA0002455509230000178
Figure BDA0002455509230000179
的量化操作在训练阶段通过添加均匀噪声来模拟。
然后,联合微调上面的运动估计模块、运动补偿模块、运动差编码模块、运动差解码模块、残差编码模块和残差解码模块。
然后,加入运动预测模块,同时固定之前模块的参数,只训练新加入的运动预测模块,训练损失函数是:
Figure BDA00024555092300001710
然后,联合微调上述所有的模块。
然后,加入运动场改善模块,同时固定之前模块的参数,只训练新加入的运动场改善模块,训练损失函数是:
Figure BDA00024555092300001711
然后,联合微调上述所有的模块。
在训练阶段,使用IPPP...的编码结构,并且所有的P帧使用同一个模型进行编码。另外,使用不同的入值训练多个不同码率点的模型。
S411、基于训练好的神经网络对视频进行编码。
在得到训练好的神经网络后,在测试阶段,使用训练好的神经网络对视频进行编码,视频的大小和长度任意。编码结构也可以根据实际情况灵活选取。示例性地,可以选择IPPP...的编码结构或者IPPP...I的编码结构,其中P帧使用同一个模型进行编码并且P帧个数根据实际情况决定,I帧编码可以使用传统编解码器,如H.265,或者基于神经网络的图像编解码器。
如图6所示,为本发明公开的一种基于神经网络的视频编码方法实施例4的方法流程图,所述方法可以包括以下步骤:
S601、获取用于训练神经网络的视频数据;
当需要对视频进行编码时,首先获取自然视频序列,例如,从互联网上下载自然视频序列,然后把每个自然视频序列裁剪成大小和长度相等,互不重叠的视频子序列。其中,视频子序列的大小和长度灵活,具体可根据实际情况确定。示例性地,可以将每个自然视频序列裁剪成大小为192x192,长度为16帧的多个视频子序列。
S602、构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
然后,构建一个含有多参考帧的神经网络。
具体的,首先构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块。如图7所示,将当前帧xt和参考帧
Figure BDA0002455509230000181
输入运动估计模块中用于提取原始运动场vt。示例性地,可以使用基于光流的网络Flownet2.0作为运动估计模块。
S603、构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
然后,构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块。如图7所示,在运动估计之后,用运动预测模块基于前若干重建运动场预测当前帧对应的运动场。其中,重建运动场的使用个数可以根据实际缓存大小来调整。本实施例提出如图8(a1)和(a2)所示的基于多尺度特征对齐的运动场预测网络。示例性地,使用四个尺度以及前面三个重建的运动场,则如图8(a1)所示的运动场多尺度特征提取网络可以表达成:
Figure BDA0002455509230000191
其中,
Figure BDA0002455509230000192
代表运动场
Figure BDA0002455509230000193
在第l个尺度的特征。然后,使用下式将
Figure BDA0002455509230000194
Figure BDA0002455509230000195
的多尺度特征与
Figure BDA0002455509230000196
的多尺度特征进行运动对齐:
Figure BDA0002455509230000197
Figure BDA0002455509230000198
其中,
Figure BDA0002455509230000199
Figure BDA00024555092300001910
Figure BDA00024555092300001911
Figure BDA00024555092300001912
在第l个尺度的Warp之后的特征。
Figure BDA00024555092300001913
Figure BDA00024555092300001914
分别是
Figure BDA00024555092300001915
Figure BDA00024555092300001916
下采样到第l个尺度的运动场。这里的Warp操作通过基于双线性插值的滤波器实现。然后,
Figure BDA00024555092300001917
Figure BDA00024555092300001918
的Warp之后的多尺度特征以及
Figure BDA00024555092300001919
的多尺度特征被输入金字塔网络中由粗到细地预测当前帧的运动场。如图8(a2)所示,第l个尺度的运动场预测
Figure BDA00024555092300001920
和特征预测
Figure BDA00024555092300001921
可以通过下式获得:
Figure BDA00024555092300001922
其中,
Figure BDA00024555092300001923
Figure BDA00024555092300001924
是从前面第(l+1)个尺度使用双线性插值进行2倍上采样得到的预测值。重复这个预测过程直到第0个尺度,获得最终的运动场预测
Figure BDA00024555092300001925
最后,用原始运动场vt减去预测的运动场
Figure BDA00024555092300001926
得到原始运动场残差dt
S604、构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
然后,构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块。如图7所示,在运动预测之后,使用运动差编码模块和运动差解码模块来编码和解码原始运动场残差dt。示例性地,可以使用fully-factorized自编码器来编码运动矢量残差。dt首先被运动差编码模块映射成隐变量mt,然后量化成
Figure BDA00024555092300001927
在测试阶段,使用估计的概率分布将
Figure BDA00024555092300001928
熵编码成码流。然后在解码端使用运动差解码模块将熵解码的
Figure BDA00024555092300001929
映射成重建的运动场残差
Figure BDA00024555092300001930
S605、构建用于获得重建运动场的运动重建模块;
然后,构建用于获得重建运动场的运动重建模块。如图7所示,在运动差编码和解码之后,将重建的运动场残差
Figure BDA0002455509230000201
与预测的运动场
Figure BDA0002455509230000202
相加,得到重建的运动场
Figure BDA0002455509230000203
S606、构建用于改善重建运动场的运动场改善模块;
然后,构建用于改善重建运动场的运动场改善模块。如图7所示,在运动重建之后,使用运动场改善模块提升重建运动场
Figure BDA0002455509230000204
的质量。示例性地,使用前面三个重建的运动场
Figure BDA0002455509230000205
和参考帧
Figure BDA00024555092300002021
作为网络的输入。首先,使用一个两层的CNN来分别提取
Figure BDA0002455509230000206
Figure BDA0002455509230000207
的特征。然后,使用下式将
Figure BDA0002455509230000208
Figure BDA0002455509230000209
的特征Warp到
Figure BDA00024555092300002010
Figure BDA00024555092300002011
Figure BDA00024555092300002012
其中,
Figure BDA00024555092300002013
Figure BDA00024555092300002014
的Warp之后的特征。然后,如图8(c)所示,将Warp之后的特征以及
Figure BDA00024555092300002015
Figure BDA00024555092300002016
的特征输入运动场改善网络中获取改善后的运动场:
Figure BDA00024555092300002017
其中,Hmvr代表运动场改善模块的函数。最后,将
Figure BDA00024555092300002018
加入已重建的运动场缓存中用于编码后续的视频帧。
S607、构建用于获得当前帧的预测的运动补偿模块;
然后,构建用于获得当前帧的预测的运动补偿模块。如图7所示,在运动重建之后,使用基于多参考帧的运动补偿模块来获取当前帧的预测
Figure BDA00024555092300002019
示例性地,使用前面四个参考帧,具体的参考帧使用个数可以根据实际缓存大小来确定。首先,分别使用一个两层的CNN来提取每个参考帧的特征。然后,使用下式将参考帧
Figure BDA00024555092300002020
以及提取的参考帧特征Warp到当前帧:
Figure BDA0002455509230000211
Figure BDA0002455509230000212
Figure BDA0002455509230000213
其中,
Figure BDA0002455509230000214
Figure BDA0002455509230000215
的Warp之后的特征。然后,如图8(b)所示,将Warp之后的特征和图像输入运动补偿模块中获取当前帧的预测:
Figure BDA0002455509230000216
其中,Hmc代表运动补偿模块的函数。最后,用当前帧的原始值xt减去当前帧的预测值
Figure BDA0002455509230000217
的得到原始残差rt
S608、构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
然后,构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块。如图7所示,运动补偿之后,使用残差编码、解码模块,对原始残差rt进行编码和解码。示例性地,可以使用基于hyper-prior的自编码器来编码原始残差。rt首先被残差编码模块映射成隐变量yt,然后量化成
Figure BDA0002455509230000218
在测试阶段,使用估计的概率分布将
Figure BDA0002455509230000219
熵编码成码流。然后在解码端使用残差解码模块将熵解码的
Figure BDA00024555092300002110
映射成重建残差
Figure BDA00024555092300002111
S609、构建用于改善重建残差的残差改善模块;
然后,构建用于改善重建残差的残差改善模块。如图7所示,在残差编码和解码之后,使用残差改善模块提升重建残差
Figure BDA00024555092300002112
的质量。示例性地,使用前面四个参考帧以及当前帧的预测来改善残差。首先,分别使用一个两层的CNN来提取每个参考帧、当前帧的预测
Figure BDA00024555092300002116
以及已重建的残差
Figure BDA00024555092300002113
的特征。然后,使用上述实施例中(*)式定义的操作将提取的参考帧特征Warp到当前帧。最后,如图8(d)所示,将Warp之后的特征以及
Figure BDA00024555092300002114
Figure BDA00024555092300002115
的特征输入残差改善网络中获取改善后的残差:
Figure BDA0002455509230000221
其中,Hresr代表残差改善网络的函数。
S610、构建用于获得重建帧的帧重建模块;
最后,构建用于获得重建帧的帧重建模块。如图7所示,在残差改善之后,将改善后的残差
Figure BDA0002455509230000222
与当前帧的预测
Figure BDA0002455509230000223
相加,得到最终的重建帧
Figure BDA0002455509230000224
然后将
Figure BDA0002455509230000225
加入已重建的视频帧缓存中用于编码后续的视频帧。
S611、基于视频数据,采用渐进式训练方法在训练集上训练含有多参考帧的神经网络,得到训练好的神经网络;
然后,基于视频数据,采用渐进式训练方法在训练集上训练含有多参考帧的神经网络。具体的:
首先在神经网络中仅保留运动估计模块和运动补偿模块,其中运动估计模块使用训练好的光流网络(例如Flownet2.0)的参数进行初始化并保持固定,只训练运动补偿模块。训练损失函数是:
Figure BDA0002455509230000226
其中,
Figure BDA0002455509230000227
表示当前帧的原始值xt和当前帧的预测值之间的失真。示例性地,可以使用均方误差(MSE)作为失真度量。
然后,加入运动差编码模块、运动差解码模块、残差编码模块和残差解码模块,同时固定运动估计模块和运动补偿模块的参数,只训练新加入的运动差编码模块、运动差解码模块、残差编码模块和残差解码模块,训练损失函数是:
Figure BDA0002455509230000229
其中,
Figure BDA00024555092300002210
表示当前帧的原始值xt和当前帧的重建值
Figure BDA00024555092300002211
之间的失真。示例性地,可以使用均方误差(MSE)作为失真度量。Rmvd和Rres分别表示用于编码原始运动场残差dt和原始残差rt的码率。注意,由于这里还没有运动预测模块,原始的运动场残差dt就等于原始的运动场vt。在训练阶段,这两个码率由对应的隐变量
Figure BDA0002455509230000231
Figure BDA0002455509230000232
的熵估计得到。示例性地,可以分别使用基于fully-factorized和hyper-prior的熵模型估计
Figure BDA0002455509230000233
Figure BDA0002455509230000234
的概率分布进而得到对应的熵。
Figure BDA0002455509230000236
Figure BDA0002455509230000237
的量化操作在训练阶段通过添加均匀噪声来模拟。
然后,联合微调上面的运动估计模块、运动补偿模块、运动差编码模块、运动差解码模块、残差编码模块和残差解码模块。
然后,加入运动预测模块,同时固定之前模块的参数,只训练新加入的运动预测模块,训练损失函数是:
Figure BDA0002455509230000238
然后,联合微调上述所有的模块。
然后,加入运动场改善模块,同时固定之前模块的参数,只训练新加入的运动场改善模块,训练损失函数是:
Figure BDA0002455509230000239
然后,联合微调上述所有的模块。
然后,加入残差改善模块,同时固定之前模块的参数,只训练新加入的残差改善模块,训练损失函数是:
Figure BDA00024555092300002310
然后,联合微调上述所有的模块。
在训练阶段,使用IPPP...的编码结构,并且所有的P帧使用同一个模型进行编码。另外,使用不同的λ值训练多个不同码率点的模型。
S612、基于训练好的神经网络对视频进行编码。
在得到训练好的神经网络后,在测试阶段,使用训练好的神经网络对视频进行编码,视频的大小和长度任意。编码结构也可以根据实际情况灵活选取。示例性地,可以选择IPPP...的编码结构或者IPPP...I的编码结构,其中P帧使用同一个模型进行编码并且P帧个数根据实际情况决定,I帧编码可以使用传统编解码器,如H.265,或者基于神经网络的图像编解码器。
为了说明本发明的性能,下面进一步对实施例4进行了相关测试。
测试条件:1)实施细节:使用IPPP…的编码结构并且所有的P帧使用同一个网络进行压缩。使用四个不同的λ值(16,24,40,64)训练得到的多个码率点的模型。2)测试序列:包括HEVC标准测试序列的ClassB中的五个视频。3)评价指标:PSNR和MS-SSIM用于衡量重建视频的质量,每个像素的平均比特数(Bpp)用于衡量编码码率。
图9展示了本发明实施例4方案(Proposed标识)、现有的基于神经网络的视频编码方案(DVC标识)和传统视频编解码器(H.264和H.265标识)在HEVC的ClassB数据集上的编码结果。其中,H.264和H.265使用VeryFast模式进行编码。可以看出,本发明实施例4方案的编码性能远远超过基于神经网络的方案DVC。具体地,本发明实施例4方案在0.266bpp的编码码率下,PSNR比DVC高约1.2dB。当和H.264和H.265比较时,本发明实施例4方案在PSNR和MS-SSIM上都取得了更优的编码性能。值得注意的是,图9是本发明实施例4方案针对MSE训练的得到的结果,但是在MS-SSIM上也有很好的编码表现。
最后用一块NVIDIATitanXp GPU测试本发明实施例4方案的模型运行速度。对于一个320x256的视频序列,平均编码速度为2.7fps,平均解码速度为5.9fps。
综上所述,本发明能够基于神经网络,利用多参考帧,有效提升面向低延时场景时,视频编码的性能。
如图10所示,为本发明公开的一种基于神经网络的视频编码系统实施例1的结构示意图,所述系统可以包括:
获取单元1001,用于获取用于训练神经网络的视频数据;
构建单元1002,用于构建一个含有多参考帧的神经网络;
训练单元1003,用于基于视频数据对含有多参考帧的神经网络进行训练,得到训练好的神经网络;
编码单元1004,用于基于训练好的神经网络对视频进行编码。
本实施例公开的基于神经网络的视频编码系统的工作原理与上述基于神经网络的视频编码方法实施例1的原理相同,在此不再赘述。
如图11所示,为本发明公开的一种基于神经网络的视频编码系统实施例2的结构示意图,所述系统可以包括:
获取单元1101,用于获取用于训练神经网络的视频数据;
构建单元1102,构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块,构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块,构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块,构建用于获得重建运动场的运动重建模块,构建用于获得当前帧的预测的运动补偿模块,构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块,构建用于获得重建帧的帧重建模块;
训练单元1103,用于基于视频数据,采用渐进式训练方法在训练集上训练所述含有多参考帧的神经网络,得到训练好的神经网络;
编码单元1104,用于基于训练好的神经网络对视频进行编码。
本实施例公开的基于神经网络的视频编码系统的工作原理与上述基于神经网络的视频编码方法实施例2的原理相同,在此不再赘述。
如图12所示,为本发明公开的一种基于神经网络的视频编码系统实施例3的结构示意图,所述系统可以包括:
获取单元1201,用于获取用于训练神经网络的视频数据;
构建单元1202,构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块,构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块,构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块,构建用于获得重建运动场的运动重建模块,构建用于改善重建运动场的运动场改善模块,构建用于获得当前帧的预测的运动补偿模块,构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块,构建用于获得重建帧的帧重建模块;
训练单元1203,用于基于视频数据,采用渐进式训练方法在训练集上训练所述含有多参考帧的神经网络,得到训练好的神经网络;
编码单元1204,用于基于训练好的神经网络对视频进行编码。
本实施例公开的基于神经网络的视频编码系统的工作原理与上述基于神经网络的视频编码方法实施例3的原理相同,在此不再赘述。
如图13所示,为本发明公开的一种基于神经网络的视频编码系统实施例4的结构示意图,所述系统可以包括:
获取单元1301,用于获取用于训练神经网络的视频数据;
构建单元1302,构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块,构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块,构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块,构建用于获得重建运动场的运动重建模块,构建用于改善重建运动场的运动场改善模块,构建用于获得当前帧的预测的运动补偿模块,构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块,构建用于改善重建残差的残差改善模块,构建用于获得重建帧的帧重建模块;
训练单元1303,用于基于视频数据,采用渐进式训练方法在训练集上训练所述含有多参考帧的神经网络,得到训练好的神经网络;
编码单元1304,用于基于训练好的神经网络对视频进行编码。
本实施例公开的基于神经网络的视频编码系统的工作原理与上述基于神经网络的视频编码方法实施例4的原理相同,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于神经网络的视频编码方法,其特征在于,包括:
获取用于训练神经网络的视频数据;
构建一个含有多参考帧的神经网络;
基于所述视频数据对所述含有多参考帧的神经网络进行训练,得到训练好的神经网络;
基于所述训练好的神经网络对视频进行编码。
2.根据权利要求1所述的方法,其特征在于,所述构建一个含有多参考帧的神经网络,包括:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于获得重建帧的帧重建模块。
3.根据权利要求1所述的方法,其特征在于,所述构建一个含有多参考帧的神经网络,包括:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于改善重建运动场的运动场改善模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于获得重建帧的帧重建模块。
4.根据权利要求1所述的方法,其特征在于,所述构建一个含有多参考帧的神经网络,包括:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于改善重建运动场的运动场改善模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于改善重建残差的残差改善模块;
构建用于获得重建帧的帧重建模块。
5.根据权利要求1所述的方法,其特征在于,所述基于所述视频数据对所述含有多参考帧的神经网络进行训练,得到训练好的神经网络,包括:
基于所述视频数据,采用渐进式训练方法在训练集上训练所述含有多参考帧的神经网络,得到训练好的神经网络。
6.一种基于神经网络的视频编码系统,其特征在于,包括:
获取单元,用于获取用于训练神经网络的视频数据;
构建单元,用于构建一个含有多参考帧的神经网络;
训练单元,用于基于所述视频数据对所述含有多参考帧的神经网络进行训练,得到训练好的神经网络;
编码单元,用于基于所述训练好的神经网络对视频进行编码。
7.根据权利要求6所述的系统,其特征在于,所述构建单元具体用于:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于获得重建帧的帧重建模块。
8.根据权利要求6所述的系统,其特征在于,所述构建单元具体用于:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于改善重建运动场的运动场改善模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于获得重建帧的帧重建模块。
9.根据权利要求6所述的系统,其特征在于,所述构建单元具体用于:
构建用于计算当前帧和前一重建帧之间的运动场的运动估计模块;
构建用于从前若干重建运动场预测当前帧对应的运动场的运动预测模块;
构建用于对原始运动场残差进行编码的运动差编码模块,以及用于对原始运动场残差进行解码的运动差解码模块;
构建用于获得重建运动场的运动重建模块;
构建用于改善重建运动场的运动场改善模块;
构建用于获得当前帧的预测的运动补偿模块;
构建用于对原始残差进行编码的残差编码模块,以及用于对原始残差进行解码的残差解码模块;
构建用于改善重建残差的残差改善模块;
构建用于获得重建帧的帧重建模块。
10.根据权利要求6所述的系统,其特征在于,所述训练单元具体用于:
基于所述视频数据,采用渐进式训练方法在训练集上训练所述含有多参考帧的神经网络,得到训练好的神经网络。
CN202010305191.8A 2020-04-17 2020-04-17 一种基于神经网络的视频编码方法及系统 Active CN111464815B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010305191.8A CN111464815B (zh) 2020-04-17 2020-04-17 一种基于神经网络的视频编码方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010305191.8A CN111464815B (zh) 2020-04-17 2020-04-17 一种基于神经网络的视频编码方法及系统

Publications (2)

Publication Number Publication Date
CN111464815A true CN111464815A (zh) 2020-07-28
CN111464815B CN111464815B (zh) 2021-04-23

Family

ID=71681258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010305191.8A Active CN111464815B (zh) 2020-04-17 2020-04-17 一种基于神经网络的视频编码方法及系统

Country Status (1)

Country Link
CN (1) CN111464815B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113068041A (zh) * 2021-03-12 2021-07-02 天津大学 一种智能仿射运动补偿编码方法
WO2022067806A1 (zh) * 2020-09-30 2022-04-07 Oppo广东移动通信有限公司 一种视频编解码方法、编码器、解码器及存储介质
WO2022194137A1 (zh) * 2021-03-17 2022-09-22 华为技术有限公司 视频图像的编解码方法及相关设备
WO2023130333A1 (zh) * 2022-01-06 2023-07-13 上海交通大学 编解码方法、编码器、解码器以及存储介质
CN116437102A (zh) * 2023-06-14 2023-07-14 中国科学技术大学 可学习通用视频编码方法、系统、设备及存储介质
JP7416490B2 (ja) 2020-12-29 2024-01-17 テンセント・アメリカ・エルエルシー ビデオコーディングにおけるディープ・ニューラル・ネットワークに基づくフレーム間予測のための方法及び装置、およびコンピュータプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106973293A (zh) * 2017-04-21 2017-07-21 中国科学技术大学 基于视差预测的光场图像编码方法
CN107105278A (zh) * 2017-04-21 2017-08-29 中国科学技术大学 运动矢量自动生成的视频编解码框架
CN107734333A (zh) * 2017-09-29 2018-02-23 杭州电子科技大学 一种利用生成网络提高视频错误隐藏效果的方法
US20190124346A1 (en) * 2017-10-19 2019-04-25 Arizona Board Of Regents On Behalf Of Arizona State University Real time end-to-end learning system for a high frame rate video compressive sensing network
CN110351560A (zh) * 2019-07-17 2019-10-18 深圳市网心科技有限公司 一种编码方法、系统及电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106973293A (zh) * 2017-04-21 2017-07-21 中国科学技术大学 基于视差预测的光场图像编码方法
CN107105278A (zh) * 2017-04-21 2017-08-29 中国科学技术大学 运动矢量自动生成的视频编解码框架
CN107734333A (zh) * 2017-09-29 2018-02-23 杭州电子科技大学 一种利用生成网络提高视频错误隐藏效果的方法
US20190124346A1 (en) * 2017-10-19 2019-04-25 Arizona Board Of Regents On Behalf Of Arizona State University Real time end-to-end learning system for a high frame rate video compressive sensing network
CN110351560A (zh) * 2019-07-17 2019-10-18 深圳市网心科技有限公司 一种编码方法、系统及电子设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GUO LU等: "DVC: An End-to-end Deep Video Compression Framework", 《2019 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR)》 *
OREN RIPPEL等: "Learned Video Compression", 《2019 IEEE/CVF INTERNATIONAL CONFERENCE ON COMPUTER VISION (ICCV)》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022067806A1 (zh) * 2020-09-30 2022-04-07 Oppo广东移动通信有限公司 一种视频编解码方法、编码器、解码器及存储介质
JP7416490B2 (ja) 2020-12-29 2024-01-17 テンセント・アメリカ・エルエルシー ビデオコーディングにおけるディープ・ニューラル・ネットワークに基づくフレーム間予測のための方法及び装置、およびコンピュータプログラム
CN113068041A (zh) * 2021-03-12 2021-07-02 天津大学 一种智能仿射运动补偿编码方法
CN113068041B (zh) * 2021-03-12 2022-02-08 天津大学 一种智能仿射运动补偿编码方法
WO2022194137A1 (zh) * 2021-03-17 2022-09-22 华为技术有限公司 视频图像的编解码方法及相关设备
WO2023130333A1 (zh) * 2022-01-06 2023-07-13 上海交通大学 编解码方法、编码器、解码器以及存储介质
CN116437102A (zh) * 2023-06-14 2023-07-14 中国科学技术大学 可学习通用视频编码方法、系统、设备及存储介质
CN116437102B (zh) * 2023-06-14 2023-10-20 中国科学技术大学 可学习通用视频编码方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN111464815B (zh) 2021-04-23

Similar Documents

Publication Publication Date Title
CN111464815B (zh) 一种基于神经网络的视频编码方法及系统
CN108848376B (zh) 视频编码、解码方法、装置和计算机设备
CN111066326B (zh) 机器学习视频处理系统和方法
CN108833918B (zh) 视频编码方法、解码方法、装置、计算机设备及存储介质
CN108848380B (zh) 视频编码和解码方法、装置、计算机设备及存储介质
Liu et al. Neural video coding using multiscale motion compensation and spatiotemporal context model
CN108833916B (zh) 视频编码、解码方法、装置、存储介质和计算机设备
US11259031B2 (en) Image processing method, device, and system
CN108769681B (zh) 视频编码、解码方法、装置、计算机设备和存储介质
CN108848381B (zh) 视频编码方法、解码方法、装置、计算机设备及存储介质
CN108924553B (zh) 视频编码、解码方法、装置、计算机设备和存储介质
US9736475B2 (en) Method and apparatus for generating a reference frame and method and apparatus for encoding/decoding image using the same
Pessoa et al. End-to-end learning of video compression using spatio-temporal autoencoders
US9137545B2 (en) Image encoding and decoding apparatus and method
CN113766249B (zh) 视频编解码中的环路滤波方法、装置、设备及存储介质
CN110177282B (zh) 一种基于srcnn的帧间预测方法
CN108848377B (zh) 视频编码、解码方法、装置、计算机设备和存储介质
Wang et al. Multi-scale convolutional neural network-based intra prediction for video coding
Yilmaz et al. End-to-end rate-distortion optimization for bi-directional learned video compression
Zhang et al. Enhanced video compression based on effective bit depth adaptation
CN114793282A (zh) 带有比特分配的基于神经网络的视频压缩
CN112601095B (zh) 一种视频亮度和色度分数插值模型的创建方法及系统
Tan et al. Image compression algorithms based on super-resolution reconstruction technology
EP3843399B1 (en) Video image component prediction method and apparatus, and computer storage medium
Jenab et al. Content-adaptive resolution control to improve video coding efficiency

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