本发明属于图像处理技术领域,尤其涉及一种网络图像丢失数据恢复方法、装置、芯片及存储装置。
背景技术:
jpeg图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。jpeg图像有多个rstn数据块组成。
现有的视频播放器对jpeg视频图像的处理中,如果某一帧的图像数据有所缺失,会将整帧数据丢弃,而在网络视频传输的过程中,如果网络并非特别好,经常会出现数据包缺失的情况时,导致视频图像丢帧,在处理这类jpeg图像时会出现明显的卡顿感,导致视频图像质量不佳,如果丢帧情况严重,甚至无法再度正常传输图像。
技术实现要素:
本发明实施例提供了一种网络图像丢失数据恢复方法、装置、芯片及存储装置,旨在解决现有的问题。
在本发明实施例中,提供一种网络图像丢失数据恢复方法,所述方法包括:
视频图像接收步骤:接收组成jpeg图像帧的多个网络数据包,所述jpeg图像帧由多个rstn数据块组成;
图像帧完整性判断步骤:判断当前图像帧中的rstn数据块是否丢失,并找出丢失的rstn数据块的位置;
图像帧修复步骤:采用上一个完整的图像帧中对应位置的rstn数据块来填补当前图像帧中丢失的rstn数据块。
在本发明实施例中,所述图像帧修复步骤之后,还包括视频解码步骤,对修复后的视频图像进行解码。
在本发明实施例中,所述图像帧完整性判断步骤中,根据所述rstn数据块的标志字节和数据结构来检测所述图像帧中是否有rstn数据块丢失。
在本发明实施例中,所述视频图像接收步骤中,所述网络数据包为不可靠网络协议的数据包。
在本发明实施例中,还提供一种网络图像丢失数据的恢复装置,所述装置包括:
视频图像接收单元,用于接收组成jpeg图像帧的多个网络数据包,所述jpeg图像帧由多个rstn数据块组成;
图像帧完整性判断单元,用于判断当前图像帧中的rstn数据块是否丢失,并找出丢失的rstn数据块的位置;
图像帧修复单元,用于采用上一个完整的图像帧中对应位置的rstn数据块来填补当前图像帧中丢失的rstn数据块。
在本发明实施例中,所述装置还包括视频解码单元,所述视频解码单元用于对修复后的视频图像进行解码。
在本发明实施例中,所述图像帧完整性判断单元根据所述rstn数据块的标志字节和数据结构来检测所述图像帧中是否有rstn数据块丢失。
在本发明实施例中,所述视频图像接收单元接收的网络数据包为不可靠网络协议的数据包。
在本发明实施例中,还提供了一种图像处理芯片,所述图像处理芯片包括至少一处理器、存储器及接口,所述至少一处理器、存储器及接口均通过总线连接;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述图像处理芯片执行上述网络图像丢失数据恢复方法。
在本发明实施例中,还提供了一种存储装置,所述存储装置上存储有指令,所述指令被处理器执行时实现上述网络图像丢失数据恢复方法的步骤。
与现有技术相比较,采用上述网络图像丢失数据恢复方法、装置、图像处理芯片及存储装置,用相邻帧进行修复而非丢弃的方式,对可修复的jpeg图像帧进行数据还原,极大的增加了网络非通畅情况下的视频播放的流畅性,并加大了网络传输图像的传输距离。
附图说明
图1是本发明实施例一提供的网络图像丢失数据恢复方法的实现流程图;
图2是本发明实施例二提供的网络图像丢失数据的恢复装置的结构图;
图3是本发明实施例三提供的图像处理芯片的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合具体实施例对本发明的实现进行详细描述:
实施例一
图1示出了本发明实施例一提供的网络图像丢失数据恢复方法的实现流程,所述方法包括步骤s1至步骤s4,下面分别进行详细说明。
步骤s1、视频图像接收步骤:接收组成jpeg图像帧的多个网络数据包,所述jpeg图像帧由多个rstn数据块组成。
通常,在网络传输视频图像时,为了加快传输速度而采用不可靠网络协议的数据包(比如udp数据包)进行传输,因为不可靠网络协议的数据包的负载少,传输效率高。因此,在传输的过程中,会出现组成图像帧的多个数据包丢失的情况。
步骤s2、图像帧完整性判断步骤:判断当前图像帧中的rstn数据块是否丢失,并找出丢失的rstn数据块的位置。
需要说明的是,由于在传输的过程中会出现丢包的情况出现,当前图像帧的所有数据包已被接收后,在对视频图像进行解码前,需要判断当前帧的图像是否是完整的。
步骤s2中,根据所述rstn数据块的标志字节和数据结构来检测所述图像帧中是否有rstn数据块丢失。在jpeg编码中,0xff是一个标志字节,0xff的出现表示接下来的数据有对应的数据描述,如:0xff+0xda表示数据开始,而rstn数据块的描述是以0xff+0xd0~0xd7作为标志,即rstn数据块的顺序为:0xff+0xd0-->0xff+0xd1-->0xff+0xd2-->...-->0xff+0xd7-->0xff+0xd0-->0xff+0xd1-->0xff+0xd2...。并且图像的总rstn数据块的数量是固定的,并且在jpeg编码的数据头中有描述,所以对rstn数据块检查的时候也是通过获取的rstn数据块的数量,顺序等来判断是否存在rstn数据块丢失及丢失的位置。
步骤s3、图像帧修复步骤:采用上一个完整的图像帧中对应位置的rstn数据块来填补当前图像帧中丢失的rstn数据块。
需要说明的是,当检测到当前图像帧的rstn数据块出现缺失,则从上一帧完整的jpeg数据帧中提取相应位置的rstn数据块,进行数据填补。当传输的帧率充足,对于相邻的图像帧而言,图像的景色不会存在特别大的差异,对于图像只是缺失部分内容,因此,修复后的图像帧几乎不会出现失真的情况,能与上一个图像帧和下一个图像帧完美的衔接。
步骤s4、视频解码步骤,对修复后的视频图像进行解码。
经过修复后,jpeg视频图像不会存在丢帧的情况,因此,进行视频解码播放时,视频播放流畅。
经过上述图像处理过程后,即可完成对网络传输中丢失的图像数据的修复,用相邻帧进行修复而非丢弃的方式,可对修复的jpeg图像帧进行数据还原,极大的增加了网络非通畅情况下的视频播放的流畅性,并加大了网络传输图像的传输距离。
实施例二
图2示出了本发明实施例二提供的网络图像丢失数据的恢复装置,其包括视频图像接收单元21、图像帧完整性判断单元22、图像帧修复单元23和视频解码单元24。下面详细进行说明。
所述视频图像接收单元21,用于接收组成jpeg图像帧的多个网络数据包,所述jpeg图像帧由多个rstn数据块组成。
需要说明的是,在网络传输视频图像时,为了加快传输速度而采用不可靠网络协议的数据包进行传输,因为不可靠网络协议的数据包的负载少,传输效率高。因此,在传输的过程中,会出现组成图像帧的多个数据包丢失的情况。
图像帧完整性判断单元22,用于判断当前图像帧中的rstn数据块是否丢失,并找出丢失的rstn数据块的位置。
需要说明的是,jpeg图像的格式中,图像数据是有固定数量的多个rstn数据块组成,所述多个rstn数据块通过标志字节区分开。所述图像帧完整性判断单元22根据所述rstn数据块的标志字节和数据结构来检测所述图像帧中是否有rstn数据块丢失。
图像帧修复单元23,用于采用上一个完整的图像帧中对应位置的rstn数据块来填补当前图像帧中丢失的rstn数据块。
需要说明的是,所述图像帧修复单元23进行图像帧修复时,直接从上一帧完整的jpeg数据帧中提取相应位置的rstn数据块,进行数据填补。当传输的帧率充足,对于相邻的图像帧而言,图像的景色不会存在特别大的差异,对于图像只是缺失部分内容,因此,修复后的图像帧几乎不会出现失真的情况,能与上一个图像帧和下一个图像帧完美的衔接。
所述视频解码单元24,用于对修复后的视频图像进行解码。
经过修复后,jpeg视频图像不会存在丢帧的情况,因此,所述视频解码单元24对修复后的jpeg图像进行解码后,播放时,视频播放流畅。
实施例三
如图3所示,本发明实施例三提供在本发明实施例中,提供一种图像处理芯片,其包括至少一处理器310、存储器320及接口330,所述至少一处理器310、存储器320及接口330均通过总线连接;
所述存储器320存储计算机执行指令;
所述至少一个处理器310执行所述存储器320存储的计算机执行指令,使得所述图像处理芯片执行实施例一所述的网络图像丢失数据恢复方法。
本发明实施例还提供一种存储装置,所述存储装置上存储有指令,所述指令被处理器执行时实现实施例一所述的网络图像丢失数据恢复方法的步骤。
综上所述,采用上述网络图像丢失数据恢复方法、装置、图像处理芯片及存储装置,用相邻帧进行修复而非丢弃的方式,对可修复的jpeg图像帧进行数据还原,极大的增加了网络非通畅情况下的视频播放的流畅性,并加大了网络传输图像的传输距离。
值得注意的是,本领域普通技术人员可以理解:实现上述方法实施例的步骤或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤,而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。