技术领域
[0001] 本发明涉及图像通信技术领域,具体涉及一种视频传输方法、一种电子设备及一种计算机存储介质。
相关背景技术
[0002] 随着视频技术及显示硬件性能的提升,高分辨率成为未来的视频技术发展方向。为了高效快速地传输高分辨率视频,传统视频编解码技术通常会对视频数据进行高效地帧内帧间预测以得到预测残差数据,为了降低视频编码的数据量也即为了降低数据冗余,进一步的会对预测残差数据进行离散余弦或正弦变换,以提高数据的能量分布、从而达到数据稀疏化的目的,然后对变换后的数据进行量化处理,以有效地减少数据的取值空间、进而获得更好的压缩效果,最后对数据进行反量化与反变换处理,以达到对数据的恢复。
[0003] 但是,传统视频编解码技术的这种先对预测残差数据进行变换处理、再对变换后的数据进行量化处理、最后对数据进行反量化处理和反变换处理的操作方式,存在着如数据稀疏化程度不高、计算量大、编码时间长等诸多弊端。
[0004] 具体的,在变换处理和量化处理的过程中,离散余弦变换、正弦变换和反变换往往通过正交矩阵进行,本身并不会带来数据精度的损失,但对于提升数据的能量集中分布而言作用是有限的,即数据的稀疏化仍有可提升空间;量化是一种将连续的取值映射至有限的多个离散幅值的过程,此过程可以提升对数据的压缩程度,但量化幅值过大却会导致数据损失程度的增加,因此存在着降低码率与提升精度之间的矛盾,而目前通过采用率失真优化的量化手段来解决降低码率与提升精度之间的矛盾,编码性能够得到提升,但是这种量化手段需要遍历多个可选量化值及率失真代价,计算量大,不利于硬件的快速实现,存在编码时间延长等问题。因此需要对视频编解码技术进行改进。
具体实施方式
[0043] 在下文中将参考附图更充分地描述示例实施例,但是所述示例实施例可以以不同形式来体现且不应当被解释为限于本文阐述的实施例。反之,提供这些实施例的目的在于使本公开透彻和完整,并将使本领域技术人员充分理解本公开的范围。
[0044] 如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
[0045] 本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其群组。
[0046] 本文所述实施例可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。因此,实施例不限于附图中所示的实施例,而是包括基于制造工艺而形成的配置的修改。因此,附图中例示的区具有示意性属性,并且图中所示区的形状例示了元件的区的具体形状,但并不旨在是限制性的。
[0047] 除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
[0048] 传统的视频编解码技术为了传输高分辨率视频,通常先由编码端设备对视频帧进行变换处理和量化处理再由解码端设备对数据进行反量化处理和反变换处理,但是这一过程存在着降低码率与提升精度之间互相矛盾、计算量大、编解码耗时长等诸多弊端。有鉴于此,本公开实施例提出,可以先利用样本视频帧的预测残差数据来训练得到包括最终编码网络和最终解码网络的、符合码率和精度要求的自编码网络,再由编码端设备和解码端设备分别利用最终编码网络和最终解码网络对视频数据进行处理,相较于传统的视频编解码技术而言,具有既能降低码率又能提升精度、计算量小、编解码时间耗时短等优势。
[0049] 相应的,如图1所示,本公开实施例提供一种视频传输方法,所述方法可以包括如下步骤:
[0050] 在步骤S11中,利用预先训练得到的自编码网络中的最终编码网络,对待传输视频帧的预测残差数据进行编码处理得到视频特征数据,所述自编码网络包括所述最终编码网络和最终解码网络;
[0051] 在步骤S12中,将所述视频特征数据传输至解码端设备。
[0052] 其中,预测残差数据为实际值与预测值之间的差值,实际值指的是待传输视频帧的实际像素值,预测值指的是利用已编码视频帧对待传输视频帧的像素值进行预测而得到的预测像素值,确定视频帧的预测残差数据属于现有技术,此处不再赘述。
[0053] 在本公开实施例中,步骤S11以及步骤S12由编码端设备执行,预先训练得到自编码网络的步骤则既可以由编码端设备执行,也可以由解码端设备执行,还可以由除编码端设备和解码端设备之外的其他设备来执行。但是,在训练得到自编码网络后,编码端设备至少持有自编码网络中的最终编码网络,解码端设备至少持有自编码网络中的最终解码网络。
[0054] 在将所述视频特征数据传输至解码端设备之后,解码端设备利用所述自编码网络中的最终解码网络,对所述视频特征数据进行解码处理,得到解码后的预测残差数据,根据所述解码后的预测残差数据确定传输后视频帧。传输后视频帧指的是解码端设备复原得到的视频帧,与待传输视频帧一致,或者与待传输视频帧之间的差别很小。也就是说,编码端设备向解码端设备传输的是经过编码的待传输视频帧,而不是直接向解码端设备传输待传输视频帧,解码端设备是对视频特征数据进行解码等处理才得到复原的待传输视频帧即传输后视频帧,而不是直接接收到编码端设备传输的待传输视频帧。
[0055] 从上述步骤S11‑S12可以看出,采用本公开实施例提供的视频传输方法,编码端设备通过利用预先训练得到的自编码网络中的最终编码网络,对待传输视频帧的预测残差数据进行编码处理得到视频特征数据,将所述视频特征数据传输至解码端设备,以供解码端设备利用自编码网络中的最终解码网络来对视频特征数据进行解码等处理以得到传输后视频帧,这种视频传输方式相较于传统的视频编解码技术而言,既能够提高视频传输码率又能够提升视频帧编解码精度,还具有计算量小、计算复杂度低以及编解码时间耗时短的优势。
[0056] 在预先训练得到自编码网络的过程中,可以先对初始网络进行初始化调整得到中间网络,再利用样本视频帧的预测残差数据来训练中间网络以得到自编码网络。相应的,在一些实施例中,如图2所示,所述方法还包括训练得到所述自编码网络的步骤:
[0057] 在步骤S21中,根据样本视频帧的传输场景参数对初始网络进行调整,得到中间网络;
[0058] 在步骤S22中,根据样本视频帧的预测残差数据训练所述中间网络,得到所述自编码网络;其中,所述样本视频帧的传输场景参数与所述待传输视频帧的传输场景参数相同。
[0059] 其中,在本公开实施例中,可以根据传输场景参数的不同,训练得到不同的自编码网络。也就是说,在传输具有某种传输场景参数的待传输视频帧时所采用的自编码网络,是根据同样具有这种传输场景参数的样本视频帧来训练得到的;而传输具有不同的传输场景参数的待传输视频帧,采用的自编码网络也不同。
[0060] 中间网络是根据样本视频帧的传输场景参数对初始网络进行优化后得到的,自编码网络是根据样本视频帧的预测残差数据对中间网络进行优化后得到的,初始网络、中间网络以及自编码网络,均可以包括两部分网络:用于编码处理的网络、用于解码处理的网络。相应的,在一些实施例中,所述初始网络包括初始编码网络和初始解码网络,所述中间网络包括中间编码网络和中间解码网络;如图3所示,所述根据样本视频帧的预测残差数据训练所述中间网络,得到所述自编码网络(即步骤S22)可以包括如下步骤:
[0061] 在步骤S221中,将所述样本视频帧的预测残差数据输入所述中间编码网络,得到所述中间编码网络输出的中间特征数据;
[0062] 在步骤S222中,将所述中间特征数据输入所述中间解码网络,得到所述中间解码网络输出的中间预测残差数据;
[0063] 在步骤S223中,在所述样本视频帧的预测残差数据、所述中间特征数据以及所述中间预测残差数据不满足预设的优化停止条件的情况下,调整所述中间网络的参数,直至所述样本视频帧的预测残差数据以及调整后所得到的中间特征数据和中间预测残差数据满足预设的优化停止条件。
[0064] 应当理解的是,若首次将样本视频帧的预测残差数据输入中间编码网络得到中间特征数据再将中间特征数据输入至中间解码网络得到中间预测残差数据之时,样本视频帧的预测残差数据、中间特征数据以及中间预测残差数据已经满足预设的优化停止条件,则可以不必执行步骤S223,并且可以直接将中间网络作为自编码网络。
[0065] 在所述样本视频帧的预测残差数据、所述中间特征数据以及所述中间预测残差数据不满足预设的优化停止条件的情况下,调整所述中间网络的参数,在调整中间网络的参数之后,继续执行步骤S221和步骤S222,即将样本视频帧的预测残差数据输入调整参数后的中间编码网络,得到调整参数后的中间编码网络输出的中间预测残差数据,将该中间预测残差数据输入调整参数后的中间解码网络,得到调整参数后的中间解码网络输出的中间预测残差数据。并再次判断样本视频帧的预测残差数据以及在调整参数后所得到的中间特征数据和中间预测残差数据是否满足预设的优化停止条件,若满足则可以停止调整中间网络的参数,将当前的中间网络确定为自编码网络,若不满足则继续调整中间网络的参数并再次执行步骤S221和步骤S222,直至样本视频帧的预测残差数据以及调整后所得到的中间特征数据和中间预测残差数据满足预设的优化停止条件。
[0066] 具体的,满足预设的优化停止条件可以包括两个方面,一方面是此时的中间编码网络已经将码率降低到足够低,具体的可以体现为中间编码网络输出数据的维度小于预设维度阈值;另一方面是此时的中间解码网络已经能够将待传输视频帧复原到一定程度,也就是中间解码网络的复原度已经足够高,具体的可以体现为样本视频帧的预测残差数据和中间预测残差数据之间的平均方差小于预设方差阈值,此时是将样本视频帧的预测残差数据和中间预测残差数据之间的平均方差作为损失函数,损失函数的值越小,说明复原度越高,当损失函数已经小于预设方差阈值时,说明复原度已经足够高。
[0067] 相应的,在一些实施例中,所述样本视频帧的预测残差数据、所述中间特征数据以及所述中间预测残差数据满足预设的优化停止条件(即步骤S223中所述)可以包括:所述中间特征数据的数据维度小于预设维度阈值,且所述样本视频帧的预测残差数据和所述中间预测残差数据之间的平均方差小于预设方差阈值。
[0068] 其中,中间特征数据通常表现为特征向量的形式,其数据维度即指向量中的元素个数。在满足预设的优化停止条件时,说明自编码网络已经能够将待传输视频帧的码率压缩到足够低,并且还能够根据中间特征数据得到(相较于待传输视频帧的预测残差数据而言)复原度足够高的预测残差数据。
[0069] 在一些实施例中,所述初始编码网络包括初始编码输入层、初始编码输出层和多个初始编码中间层,所述初始解码网络包括初始解码输入层、多个初始解码中间层和初始解码输出层和多个初始解码中间层;所述中间编码网络包括中间编码输入层、中间编码输出层和多个中间编码中间层,所述中间解码网络包括中间解码输入层、中间解码输出层和多个中间解码中间层;所述最终编码网络包括最终编码输入层、最终编码输出层和多个最终编码中间层,所述最终解码网络包括最终解码输入层、最终解码输出层和多个最终解码中间层;
[0070] 所述初始编码中间层、所述初始解码中间层、所述中间编码中间层、所述中间解码中间层、所述最终编码中间层以及所述最终解码中间层的类型均共包括如下三种:卷积层、池化层和激活层;
[0071] 所述初始编码输出层的类型、所述初始解码输入层的类型、所述中间编码输出层的类型、所述中间解码输入层的类型、所述最终编码输出层的类型以及所述最终解码输入层的类型均为全连接层;
[0072] 所述初始编码输入层的类型、所述初始解码输出层的类型、所述中间编码输入层的类型、所述中间解码输出层的类型、所述最终编码输入层的类型以及所述最终解码输出层的类型均相同。
[0073] 相应的,在一些实施例中,所述调整所述中间网络的参数(即步骤S223中所述)可以包括如下步骤:调整所述中间编码中间层的数量和所述中间解码中间层的数量,以及调整所述中间编码中间层的神经元数量和所述中间解码中间层的神经元数量。
[0074] 如前所示,中间网络包括中间编码网络和中间解码网络,中间编码网络包括多个中间编码中间层,中间解码网络也包括多个中间解码中间层,并且中间编码中间层的类型和中间解码中间层的类型均包括卷积层、池化层和激活层这三种,那么在调整中间网络的参数时,可以对中间解码中间层的数量以及中间解码中间层的数量进行调整,即确定中间编码网络具体包括几个卷积层、几个池化层和几个激活层,以及确定中间解码网络具体包括几个卷积层、几个池化层和几个激活层。此外,每一层均包括多个神经元,还可以对每一中间编码中间层的神经元数量以及每一中间解码中间层的神经元数量进行调整。
[0075] 在一些实施例中,所述传输场景参数包括场景类别标识和传输带宽;所述根据样本视频帧的传输场景参数对初始网络进行调整,得到中间网络(即步骤S21)可以包括如下步骤:根据所述场景类别标识和所述传输带宽,调整所述初始编码中间层的数量和所述初始解码中间层的数量,以及调整所述初始编码输出层输出数据的维度。
[0076] 其中,场景类别标识用于表征视频帧的应用场景,应用场景可以包括环境监控、视频浏览服务、视频通信等等。传输带宽则指在传输视频帧时的额定带宽。可以通过预先配置传输场景参数与初始网络的参数之间的映射关系,依据不同的传输场景参数来调整初始网络以得到不同的中间网络。初始网络的参数即指初始编码中间层的数量、初始解码中间层的数量以及初始编码输出层输出数据的维度。初始编码输出层输出数据的维度,即指初始编码输出层所输出的初始特征数据的维度。
[0077] 传统的视频编解码过程包括多个子过程,本公开实施例通过采用自编码网络代替整个传统的视频编解码过程,还有利于简化硬件和软件的部署过程。
[0078] 进一步的,在训练得到自编码网络后,还可以利用传统的视频编解码技术即传统的变换处理、量化处理、反量化处理和反变换处理来对样本视频帧的预测残差数据进行处理以得到复原后的预测残差数据,将自编码网络的编码码率(即最终编码网络输出数据的维度)与传统视频编解码技术的编码码率(即变换处理和量化处理后的数据维度)进行对比,以及将利用自编码网络复原的样本视频帧的PSNR(Peak Signal to Noise Ratio,峰值信噪比)值与利用传统视频编解码技术复原的样本视频帧的PSNR值进行对比,根据对比结果对自编码网络的参数做进一步的调整。
[0079] 如图4所示,当本公开实施例提供的视频传输方法应用于解码端设备时,可以包括如下步骤:
[0080] 在步骤S31中,接收编码端设备传输的视频特征数据,其中,所述视频特征数据是所述编码端设备利用预先训练得到的自编码网络中的最终编码网络,对待传输视频帧的预测残差数据进行编码处理得到的;
[0081] 在步骤S32中,利用所述自编码网络中的最终解码网络,对所述视频特征数据进行解码处理,得到解码后的预测残差数据;
[0082] 在步骤S33中,根据所述解码后的预测残差数据确定传输后视频帧。
[0083] 从上述步骤S31‑S33可以看出,采用本公开实施例提供的视频传输方法,解码端设备接收编码端设备传输的视频特征数据;其中,所述视频特征数据是所述编码端设备利用预先训练得到的自编码网络中的最终编码网络,对待传输视频帧的预测残差数据进行编码处理得到的;解码端设备利用所述自编码网络中的最终解码网络,对所述视频特征数据进行解码处理,得到解码后的预测残差数据。这种视频传输方式相较于传统的视频编解码技术而言,既能够提高视频传输码率又能够提升视频帧编解码精度,还具有计算量小、计算复杂度低以及编解码时间耗时短的优势。
[0084] 如图5所示,在本公开实施例提供的视频传输方法中,自编码网络中的最终编码网络相当于一个变换/量化网络,编码端设备通过将待传输视频帧的预测残差数据块输入该变换/量化网络,能够输出熵编码码流(即视频特征数据)。自编码网络中的最终解码网络相当于一个反变换/反量化网络,解码端设备通过将编码端设备传输的熵编码码流输入至该反变换/反量化网络,能够输出解码数据(即解码后的预测残差数据)。
[0085] 如图6所示,为本公开实施例提供的一种自编码网络示意图,其中,最终编码网络(encoder)的输入层(Input layer)输入的是待传输视频帧的预测残差数据,以x1、x2……x6表示,自编码网络的隐藏层(Hidden layers)包括最终编码中间层、最终编码输出层、最终解码输入层以及最终解码中间层,在图6中将最终编码输出层和最终解码输入层示为同一层,以a1、a2、a3表示视频特征数据。最终解码网络(decoder)的输出层(Onput layer)输出的是解码后的预测残差数据,以 表示。最终编码中间层所包括的卷积层、池化层和激活层以及最终解码中间层所包括的卷积层、池化层和激活层图中均未示出。
[0086] 如图7所示,为本公开实施例提供的另一种自编码网络示意图,图中示出了最终编码网络的输入层(Input)、最终解码网络的输出层(Onput)、最终编码网络的卷积层(Conv)、最终编码网络的池化层(Pool)、最终编码网络的激活层(Active)、最终解码网络的卷积层(Conv)、最终解码网络的激活层(Active)、最终编码网络的采样层(Upsampling)、最终编码输出层和最终解码输入层(FC,全连接层)。最终编码网络中间层和最终解码网络中间层均包括N个单元结构。
[0087] 需要说明的是,本公开实施例中的自编码网络,同样还可以替换为其他深度网络例如GAN(Generative Adversarial Net,生成对抗神经网络),同样也是利用深度网络代替变换处理、量化处理、反变换处理以及反量化处理这整个视频编解码过程,并且训练深度网络的方法与训练自编码网络的方法也可以是相同的。无论是自编码网络,还是其他深度网络,均需要支持一些深度学习的基本操作,例如:Convolution(卷积)、Deconvolution(反卷积)、ReLU(激活)、Sigmoid(逻辑回归的预测和输出函数)、Full‑Connection(全连接)、Reshape(可以重新调整矩阵的行数、列数、维数的函数)等。
[0088] 此外,本公开实施例还提供一种电子设备,可以包括:
[0089] 一个或多个处理器;
[0090] 存储装置,其上存储有一个或多个程序;
[0091] 当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如前所述的视频传输方法。
[0092] 此外,本公开实施例还提供一种计算机存储介质,其上存储有计算机程序,其中,所述程序被执行时实现如前所述的视频传输方法。
[0093] 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD‑ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0094] 本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。