CN120256678A 图像传输方法及图像解码装置和图像编码装置 (西安万像电子科技有限公司)_第1页
CN120256678A 图像传输方法及图像解码装置和图像编码装置 (西安万像电子科技有限公司)_第2页
CN120256678A 图像传输方法及图像解码装置和图像编码装置 (西安万像电子科技有限公司)_第3页
CN120256678A 图像传输方法及图像解码装置和图像编码装置 (西安万像电子科技有限公司)_第4页
CN120256678A 图像传输方法及图像解码装置和图像编码装置 (西安万像电子科技有限公司)_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

(19)国家知识产权局合伙)11265图像传输方法及图像解码装置和图像编码本公开提供一种图像传输方法及图像解码能够解决现有多参考帧图像预测不能同时使用多个参考帧的各帧中相似的部分进行参考的问像的窗体中有多个与历史图像帧中的窗体相同获取当前帧图像中的窗体信息,窗体信息包括:各个窗体标识以及各个窗体标识对应的窗体数据:窗体数据包括:窗体像素数据、窗体位置和窗体大小根据各个窗体标识,从预设数据库中查找与窗体标识相同的目标窗体标识;预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;预设数据库中保存的窗体标识均不相同将目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到窗体编码数据获取当前帧图像中的镂空区数据,镂空区为当前帧图像中除窗体外的显示区域将镂空区数据进行编码得到镂空区编码数据向图像解码装置发送编码码流,编码码流包括:窗体编码数据和镂空区编码数据2当检测到当前帧图像是场景切换后的帧图像时,获取当前帧图像中的窗体信息,所述窗体信息包括:各个窗体标识以及所述各个窗体标识对应的窗体数据;其中,窗体数据包根据所述各个窗体标识,从预设数据库中查找与所述窗体标识相同的目标窗体标识;所述预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;所述预设数据库中保存的所述窗体标识均不相同;将所述目标窗体标识、所述预设数据库中未包括的所述窗体标识对应的窗体数据进行编码得到窗体编码数据;根据所述窗体编码数据生成编码码流,并将所述编码码流发送至图像解码装置。2.根据权利要求1所述的方法,其特征在于,所述将所述目标窗体标识、所述预设数据库中未包括的所述窗体标识对应的窗体数据进行编码得到窗体编码数据,包括:将所述预设数据库中的所述目标窗体标识对应的窗体按照第一预设规则划分为多个第一子窗体;将所述当前帧图像中的所述目标窗体标识对应的窗体按照所述第一预设规则划分为多个第二子窗体;若相同位置的所述第一子窗体中的窗体数据与所述第二子窗体中的窗体数据相同,则将第一预设位置表中与所述第一子窗体的窗体数据相同的所述第二子窗体对应的位置的表项标记为第一标记;所述第一预设位置表中各个表项的位置与所述当前帧图像中的所述各个第二子窗体的位置相对应;若相同位置的所述第一子窗体中的窗体数据与所述第二子窗体中的窗体数据不相同,则将所述第一预设位置表中与所述第一子窗体的窗体数据不相同的所述第二子窗体对应的位置的表项标记为第二标记;将所述预设数据库中未包括的所述窗体标识对应的当前帧图像中的窗体按照所述第一预设规则划分为多个第三子窗体;将第二预设位置表中各个表项标记为所述第二标记,所述第二预设位置表中各个表项的位置与所述当前帧图像中的所述各个第三子窗体的位置相对应;将所述目标窗体标识、标记后的所述第一预设位置表、所述第二标记的表项对应的所述当前帧图像中的窗体数据、标记后的所述第二预设位置表、所述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数据进行编码得到窗体编码数据。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述预设数据库中未包括的所述窗体标识以及对应的窗体数据添加至所述预设数据库中;将所述预设数据库中的所述窗体标识对应的窗体数据替换为当前帧图像中的所述窗体标识对应的窗体数据;将第一更新信息携带在所述编码码流中发送给所述图像解码装置,所述第一更新信息包括:所述预设数据库中更新的所有数据。4.根据权利要求1所述的方法,其特征在于,当检测到当前帧图像是场景切换后的帧图3在所述预设映射表中增加新的表项,并将所述当前帧图像对应的镂空区数据和当前帧图像所有的窗体标识保存至所述新的表项中;将第二更新信息携带在所述编码码流中发送给所述图像解码装置,所述第二更新信息包括:所述预设映射表中新增加的表项信息。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:通过以下方式检测当前帧图像是否为场景切换后的帧图像:将当前帧图像按照第三预设规则进行宏块划分;将上一帧图像按照所述第三预设规则进行宏块划分;检测所述当前帧图像对应的宏块与所述上一帧图像对应的宏块的相似度;在所述相似度小于预设值时,确定发生了场景切换。6.根据权利要求1至5中任一项所述的方法,其特征在于,所述根据所述窗体编码数据获取当前帧图像中的镂空区数据,所述镂空区为所述当前帧图像中除窗体外的显示区将所述镂空区数据进行编码得到镂空区编码数据;将所述镂空区编码数据与所述窗体编码数据进行打包,得到编码码流。7.根据权利要求6所述的方法,其特征在于,所述将所述镂空区数据进行编码得到镂空检测预设映射表的表项中是否包括与所述当前帧图像的窗体标识相似度满足预设条件的目标表项,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据与所述镂空区数据对应的全帧图像画面中的所有窗体标识的映射关系;若包括,将所述目标表项中包括的所述当前表项标识进行编码得到所述镂空区编码数若不包括,将所述镂空区数据进行编码得到镂空区编码数据。8.根据权利要求7所述的方法,其特征在于,所述将所述目标表项中包括的所述当前表项标识进行编码得到所述镂空区编码数据,包括:将所述当前帧图像的镂空区按照第二预设规则划分为多个第二子镂空区;将所述目标表项对应的镂空区按照所述第二预设规则划分为多个第一子镂空区;若相同位置的所述第一子镂空区中的镂空区数据与所述第二子镂空区中的镂空区数据相同,则将第三预设位置表中与第一子镂空区的镂空区数据相同的所述第二子镂空区对应的位置的表项标记为第一标记;所述第三预设位置表中各个表项的位置与所述当前帧图像中各个第二子镂空区的位置相对应;若相同位置的所述第一子镂空区中的镂空区数据与所述第二子镂空区中的镂空区数据不相同,则将第三预设位置表中与第一子镂空区的镂空区数据不相同的所述第二子镂空区对应的位置的表项标记为第二标记;将所述当前表项标识、标记后的所述第三预设位置表、所述第三预设位置表中标记为所述第二标记的各表项对应的当前帧图像中的所述镂空区数据进行编码得到所述镂空区编码数据。9.一种图像传输方法,其特征在于,所述方法应用于图像解码装置,4接收编码码流,所述编码码流包括:窗体编码数据;所述窗体编码数据是根据目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到的;所述预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;所述预设数据库中保存的所述根据预设数据库和所述窗体编码数据恢复所述目标窗体标识对应的窗体;根据所述预设数据库中未包括的窗体标识对应的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体;根据恢复的所述目标窗体标识对应的窗体、所述预设数据库中未包括的所述窗体标识对应的窗体获取所述当前帧图像。10.根据权利要求9所述的方法,其特征在于,所述编码码流中还包括:第一更新信息,所述第一更新信息包括:所述预设数据库中更新的所有数据,所述方法还包括:根据所述第一更新信息对所述预设数据库中的数据进行更新。11.根据权利要求9所述的方法,其特征在于,所述编码码流中还包括:第二更新信息,所述第二更新信息包括:预设映射表中新增加的表项信息,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据与所述镂空区数据对应的全帧图像画面中的所有窗体标识的映射关系;所述方法还包括:根据所述第二更新信息对所述预设映射表中的表项进行更新。12.根据权利要求9所述的方法,其特征在于,所述编码码流中包括:所述目标窗体标识、标记后的第一预设位置表、第二标记的表项对应的所述当前帧图像中的窗体数据、标记后的第二预设位置表、所述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数所述根据预设数据库和所述窗体编码数据恢复所述目标窗体标识对应的窗体,包括:根据所述预设数据库、所述目标窗体标识、标记后的所述第一预设位置表和所述第二标记的表项对应的所述当前帧图像中的窗体数据恢复所述目标窗体标识对应的窗体;所述根据所述预设数据库中未包括的窗体标识对应的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体,包括:根据所述预设数据库、标记后的所述第二预设位置表和所述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体。13.根据权利要求9所述的方法,其特征在于,所述编码码流中包括:当前表项标识、标记后的第三预设位置表、所述第三预设位置表中标记为第二标记的各表项对应的当前帧图像中的镂空区数据,所述镂空区为所述当前帧图像中除窗体外的显示区域;将所述镂空区数据进行编码得到镂空区编码数据;所述编码数据包括所述窗体编码数据和所述镂空区编码数据;根据所述镂空区编码数据恢复镂空区;所述根据所述镂空区编码数据恢复镂空区,包括:根据预设映射表、所述当前表项标识、标记后的所述第三预设位置表、所述第三预设位置表中标记为所述第二标记的各表项对应的当前帧图像中的所述镂空区数据恢复所述镂空区,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据与所述镂空区5数据对应的全帧图像画面中的所有窗体标识的映射关系。14.一种图像编码装置,其特征在于,所述装置包括:第一获取模块,当检测到当前帧图像是场景切换后的帧图像查找模块,根据所述各个窗体标识,从预设数据库中查找与所述窗体标识相同的目标窗体标识;所述预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;所述预设数据库中保存的所述窗体标识均不相同;编码模块,将所述目标窗体标识、所述预设数据库中未包括的所述窗体标识对应的窗体数据进行编码得到窗体编码数据;发送模块,根据所述窗体编码数据生成编码码流,并将所述编码码流发送至图像解码装置。15.一种图像解码装置,其特征在于,所述装置包括:接收模块,接收编码码流,所述编码码流包括:窗体编码数据;所述窗体编码数据是根据目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到的;所述预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;所述预设数据库中保存的所述窗体标识均不相同;所述窗体数据包括:窗体像素数据、窗体位置和窗体大小;第一恢复模块,根据预设数据库和所述窗体编码数据恢复所第二恢复模块,根据所述预设数据库中未包括的窗体标识对应的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体;第二获取模块,根据恢复的所述目标窗体标识对应的窗体、所述预设数据库中未包括的所述窗体标识对应的窗体获取所述当前帧图像。6[0001]本发明是申请号为2020105642217、申请日为2020年06月18日、发明名称为“图像传输方法及系统”的分案申请。技术领域[0002]本公开涉及图像处理领域,尤其涉及图像传输方法及图像解码装置和图像编码装背景技术[0003]计算机合成图像,会经常出现场景的来回切换。举例,当用户在上网时,可能忽然收到即时通讯软件的消息,用户弹出通讯窗体,收发消息后,又将其弹回,同时又切到文字编辑窗体编辑,然后又切到浏览器窗体查资料,那么最后这次上网查资料的场景,就和之前上网的场景极其相似,在编码的时候,完全可以将较早前上网场景中的该帧图像视作参考帧图像,因此,计算机合成图像的编码场景会更更加适合采用多参考帧图像进行编解码。[0004]目前,基于多参考帧图像的编解码,最终还是只能选出与当前帧“最像”的那一帧来参考,但如果多个参考帧中各有一部分和当前帧像,相关技术中却不能同时使用该多个参考帧的各帧中相似的部分进行参考。发明内容[0005]本公开实施例提供一种图像传输方法及图像解码装置和图像编码装置,能够解决现有多参考帧图像预测不能同时使用多个参考帧的各帧中相似的部分进行参考的问题。所述技术方案如下:[0006]根据本公开实施例的第一方面,提供一种图像传输方法,所述方法应用于图像编[0007]获取当前帧图像中的窗体信息,所述窗体信息包括:各个窗体标识以及所述各个[0008]根据所述各个窗体标识,从所述预设数据库中查找与所述窗体标识相同的目标窗体标识;所述预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;所述预设数据库中保存的所述窗体标识均不相同;[0009]将所述目标窗体标识、所述预设数据库中未包括的所述窗体标识对应的窗体数据进行编码得到窗体编码数据;[0010]获取当前帧图像中的镂空区数据,所述镂空区为所述当前帧图像中除窗体外的显示区域;[0011]将所述镂空区数据进行编码得到镂空区编码数据;[0012]向图像解码装置发送编码码流,所述编码码流包括:所述窗体编码数据和所述镂空区编码数据。[0013]本公开实施例提供的图像传输方法,包括:获取当前帧图像中的窗体信息,窗体信7息包括:各个窗体标识以及各个窗体标识对应的窗体数据;根据各个窗体标识,从预设数据库中查找与窗体标识相同的目标窗体标识;预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;预设数据库中保存的窗体标识均不相同;将目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到窗体编码数据;获取当前帧图像中的镂空区数据,镂空区为当前帧图像中除窗体外的显示区域;将镂空区数据进行编码得到镂空区编码数据;向图像解码装置发送窗体编码数据和镂空区编码数据。本公开中以历史图像帧中的各个窗体为单位进行保存,如果当前帧图像的窗体中有多个与历史图像帧中的窗体相同的窗体,那么便可以使用该些窗体进行参考,由于该些窗体来自不同的历史帧,相当于此时同时参考了多个参考帧。[0014]在一个实施例中,所述将所述目标窗体标识、所述预设数据库中未包括的所述窗体标识对应的窗体数据进行编码得到窗体编码数据,包括:[0015]将所述预设数据库中的所述目标窗体标识对应的窗体按照第一预设规则划分为多个第一子窗体;[0016]将所述当前帧图像中的所述目标窗体标识对应的窗体按照所述第一预设规则划分为多个第二子窗体;[0017]若相同位置的所述第一子窗体中的窗体数据与所述第二子窗体中的窗体数据相同,则将第一预设位置表中与窗体数据相同的所述第二子窗体对应的位置的表项标记为第一标记;所述第一预设位置表中各个表项的位置与所述当前帧图像中的所述各个第二子窗体的位置相对应;[0018]若相同位置的所述第一子窗体中的窗体数据与所述第二子窗体中的窗体数据不相同,则将所述第一预设位置表中与窗体数据不相同的所述第二子窗体对应的位置的表项标记为第二标记;[0019]将所述预设数据库中未包括的所述窗体标识对应的当前帧图像中的窗体按照所述第一预设规则划分为多个第三子窗体;[0020]将第二预设位置表中各个表项标记为所述第二标记,所述第二预设位置表中各个表项的位置与所述当前帧图像中的所述各个第三子窗体的位置相对应;[0021]将所述目标窗体标识、标记后的所述第一预设位置表、所述第二标记的表项对应的所述当前帧图像中的窗体数据、标记后的所述第二预设位置表、所述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数据进行编码得到窗体编码数据。[0023]将所述预设数据库中未包括的所述窗体标识以及对应的窗体数据添加至所述预设数据库中;[0024]将所述预设数据库中的所述窗体标识对应的窗体数据替换为当前帧图像中的所述窗体标识对应的窗体数据;[0025]将第一更新信息携带在所述编码码流中发送给所述图像解码装置,所述第一更新信息包括:所述预设数据库中更新的所有数据。[0026]在一个实施例中,所述将所述镂空区数据进行编码[0027]检测预设映射表的表项中是否包括与所述当前帧图像的窗体标识相似度满足预设条件的目标表项,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据8与所述镂空区数据对应的全帧图像画面中的所有窗体标识的映射应关系;[0028]若包括,将所述目标表项中包括的所述当前表项标识进行编码得到所述镂空区编码数据;[0029]若不包括,将所述镂空区数据进行编码得到镂空区编码数据。[0030]在一个实施例中,所述将所述目标表项中包括的所述当前表项标识进行编码得到[0031]将所述当前帧图像的镂空区按照第二预设规则划分为多个第一子镂空区;[0032]将所述目标表项对应的镂空区按照所述第二预设规则划分为多个第二子镂空区;[0033]若相同位置的所述第一子镂空区中的镂空区数据与所述第二子镂空区中的镂空区数据相同,则将第三预设位置表中与镂空区数据相同的所述第二子镂空区对应的位置的表项标记为第一标记;所述第三预设位置表中各个表项的位置与所述当前帧图像中各个第二子镂空区的位置相对应;[0034]若相同位置的所述第一子镂空区中的镂空区数据与所述第二子镂空区中的镂空区数据不相同,则将第三预设位置表中与镂空区数据不相同的所述第二子镂空区对应的位置的表项标记为第二标记;[0035]将所述当前表项标识、标记后的所述第三预设位置表、所述第三预设位置表中标记为所述第二标记的各表项对应的当前帧图像中的所述镂空区数据进行编码得到所述镂空区编码数据。[0037]检测当前帧图像是否为场景切换后的帧图像;[0038]若是,则在所述预设映射表中增加新的表项,并将所述当前帧图像对应的镂空区数据和当前帧图像所有的窗体标识保存至所述新的表项中;[0039]将第二更新信息携带在所述编码码流中发送给所述图像解码装置,所述第二更新信息包括:所述预设映射表中新增加的表项信息。[0040]在一个实施例中,所述检测当前帧图像是否为场景切换后的帧图像,包括:[0041]将当前帧图像按照第三预设规则进行宏块划分;[0042]将上一帧图像按照所述第三预设规则进行宏块划分;[0043]检测所述当前帧图像对应的宏块与所述上一帧图像对应的宏块的相似度;[0044]在所述相似度大于预设值时,确定发生了场景[0045]根据本公开实施例的第二方面,提供一种图像传输方法,所述方法应用于图像解码装置所述方法包括:[0046]接收编码码流,所述编码码流包括:窗体编码数据和镂空区编码数据;所述窗体编码数据是根据目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到的;所述预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;所述预设数据库中保存的所述窗体标识均不相同;所述窗体数据包括:窗体像素数据、窗体位置和窗体大小;所述镂空区为当前帧图像中除窗体外的显示区域;[0047]根据预设数据库和所述窗体编码数据恢复所述目标窗体标识对应的窗体;[0048]根据所述预设数据库中未包括的窗体标识对应的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体;9[0049]根据所述镂空区编码数据恢复镂空区;[0050]根据恢复的所述目标窗体标识对应的窗体、所述预设数据库中未包括的所述窗体标识对应的窗体和所述镂空区获取所述当前帧图像。[0051]在一个实施例中,所述编码码流中还包括:第一更新信息,所述第一更新信息包括:所述预设数据库中更新的所有数据,所述[0052]根据所述第一更新信息对所述预设数据库中的数据进行更新。[0053]在一个实施例中,所述编码码流中还包括:第二更新信息,所述第二更新信息包括:所述预设映射表中新增加的表项信息,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据与所述镂空区数据对应的全帧图像画面中的所有窗体标识的映射应[0054]根据所述第二更新信息对所述预设映射表中的表项进行更新。[0055]在一个实施例中,所述编码码流中包括:所述目标窗体标识、标记后的所述第一预设位置表、所述第二标记的表项对应的所述当前帧图像中的窗体数据、标记后的所述第二预设位置表、述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数据;[0056]所述根据预设数据库和所述窗体编码数据恢复所述目标窗体标识对应的窗体,包[0057]根据所述预设数据库、所述目标窗体标识、标记后的所述第一预设位置表和所述第二标记的表项对应的所述当前帧图像中的窗体数据恢复所述目标窗体标识对应的窗体;[0058]所述根据所述预设数据库中未包括的窗体标识对应的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体,包括:[0059]根据所述预设数据库、标记后的所述第二预设位置表和述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体。[0060]在一个实施例中,所述编码码流中包括:当前表项标识、标记后的第三预设位置表、所述第三预设位置表中标记为第二标记的各表项对应的当前帧图像中的所述镂空区数[0061]所述根据所述镂空区编码数据恢复镂空区,包括:[0062]根据预设映射表、所述当前表项标识、标记后的所述第三预设位置表、所述第三预设位置表中标记为所述第二标记的各表项对应的当前帧图像中的所述镂空区数据恢复所述镂空区,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据与所述镂空区数据对应的全帧图像画面中的所有窗体标识的映射应关系。[0063]根据本公开实施例的第三方面,提供一种图像传输系统,包括:图像编码装置和图像解码装置;[0064]所述图像编码装置用于执行如上述任一项实施例所述的图像编码装置对应的方法步骤;[0065]所述图像解码装置用于执行如上述任一项实施例所述的图像解码装置对应的方法步骤。[0066]根据本公开实施例的第四方面,提供一种图像传输装置,所述装置应用于图像编[0067]第一获取模块,用于获取当前帧图像中的窗体信息,所述窗体信息包括:各个窗体标识以及所述各个窗体标识对应的窗体数据;其中,窗体数据包括:窗体像素数据、窗体位置和窗体大小;[0068]查找模块,用于根据所述各个窗体标识,从所述预设数据库中查找与所述窗体标识相同的目标窗体标识;所述预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;所述预设数据库中保存的所述窗体标识均不相同;[0069]第一编码模块,用于将所述目标窗体标识、所述预设数据库中未包括的所述窗体标识对应的窗体数据进行编码得到窗体编码数据;[0070]第二获取模块,用于获取当前帧图像中的镂空区数据,所述镂空区为所述当前帧图像中除窗体外的显示区域;[0071]第二编码模块,用于将所述镂空区数据进行编码得到镂空区编码数据;[0072]第一发送模块,用于向图像解码装置发送编码码流,所述编码码流包括:所述窗体编码数据和所述镂空区编码数据。[0074]第一划分子模块,用于将所述预设数据库中的所述目标窗体标识对应的窗体按照第一预设规则划分为多个第一子窗体;[0075]第二划分子模块,用于将所述当前帧图像中的所述目标窗体标识对应的窗体按照所述第一预设规则划分为多个第二子窗体;[0076]第一标记子模块,用于若相同位置的所述第一子窗体中的窗体数据与所述第二子窗体中的窗体数据相同,则将第一预设位置表中与窗体数据相同的所述第二子窗体对应的位置的表项标记为第一标记;所述第一预设位置表中各个表项的位置与所述当前帧图像中的所述各个第二子窗体的位置相对应;[0077]第二标记子模块,用于若相同位置的所述第一子窗体中的窗体数据与所述第二子窗体中的窗体数据不相同,则将所述第一预设位置表中与窗体数据不相同的所述第二子窗体对应的位置的表项标记为第二标记;[0078]第三划分子模块,用于将所述预设数据库中未包括的所述窗体标识对应的当前帧图像中的窗体按照所述第一预设规则划分为多个第三子窗体;[0079]第三标记子模块,用于将第二预设位置表中各个表项标记为所述第二标记,所述第二预设位置表中各个表项的位置与所述当前帧图像中的所述各个第三子窗体的位置相[0080]第一编码子模块,用于将所述目标窗体标识、标记后的所述第一预设位置表、所述第二标记的表项对应的所述当前帧图像中的窗体数据、标记后的所述第二预设位置表、所述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数据进行编码得到窗体编码数据。[0082]第一添加子模块,用于将所述预设数据库中未包括的所述窗体标识以及对应的窗体数据添加至所述预设数据库中;[0083]替换子模块,用于将所述预设数据库中的所述窗体标识对应的窗体数据替换为当前帧图像中的所述窗体标识对应的窗体数据;11[0084]第二发送模块,用于将第一更新信息携带在所述编码码流中发送给所述图像解码装置,所述第一更新信息包括:所述预设数据库中更新的所有数据。[0086]第一检测子模块,用于检测预设映射表的表项中是否包括与所述当前帧图像的窗体标识相似度满足预设条件的目标表项,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据与所述镂空区数据对应的全帧图像画面中的所有窗体标识的映射应关系;[0087]第二编码子模块,用于若包括,将所述目标表项中包括的所述当前表项标识进行编码得到所述镂空区编码数据;[0088]第三编码子模块,用于若不包括,将所述镂空区数据进行编码得到镂空区编码数[0089]在一个实施例中,所述第二编码子模块包括:[0090]第四划分子模块,用于将所述当前帧图像的镂空区按照第二预设规则划分为多个第一子镂空区;[0091]第五划分子模块,用于将所述目标表项对应的镂空区按照所述第二预设规则划分为多个第二子镂空区;[0092]第四标记子模块,用于若相同位置的所述第一子镂空区中的镂空区数据与所述第二子镂空区中的镂空区数据相同,则将第三预设位置表中与镂空区数据相同的所述第二子镂空区对应的位置的表项标记为第一标记;所述第三预设位置表中各个表项的位置与所述当前帧图像中各个第二子镂空区的位置相对应;[0093]第五标记子模块,用于若相同位置的所述第一子镂空区中的镂空区数据与所述第二子镂空区中的镂空区数据不相同,则将第三预设位置表中与镂空区数据不相同的所述第二子镂空区对应的位置的表项标记为第二标记;[0094]第四编码子模块,用于将所述当前表项标识、标记后的所述第三预设位置表第三预设位置表中标记为所述第二标记的各表项对应的当前帧图像中的所述镂空区数据进行编码得到所述镂空区编码数据。[0096]检测模块,用于检测当前帧图像是否为场景切换后的帧图像;[0097]增加模块,用于当检测模块检测当前帧图像为场景切换后的帧图像,则在所述预设映射表中增加新的表项,并将所述当前帧图像对应的镂空区数据和当前帧图像所有的窗体标识保存至所述新的表项中;[0098]第三发送模块,用于将第二更新信息携带在所述编码码流中发送给所述图像解码装置,所述第二更新信息包括:所述预设映射表中新增加的表项信息。[0100]第六划分子模块,用于将当前帧图像按照第三预设规则进行宏块划分;[0101]第七划分子模块,用于将上一帧图像按照所述第三预设规则进行宏块划分;[0102]第二检测子模块,用于检测所述当前帧图像对应的宏块与所述上一帧图像对应的宏块的相似度;[0103]确定子模块,用于在所述相似度大于预设值时,确定发生了场景切换。[0104]基于上述图6对应的实施例中所描述的图像传输方法,下述为本公开装置实施例,可以用于执行本公开装置实施例。[0105]根据本公开实施例的第五方面,提供一种图像传输装置,所述装置应用于图像解[0106]接收模块,用于接收编码码流,所述编码码流包括:窗体编码数据和镂空区编码数据;所述窗体编码数据是根据目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到的;所述预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;所述预设数据库中保存的所述窗体标识均不相同;所述窗体数据包括:窗体像素数据、窗体位置和窗体大小;所述镂空区为所述当前帧图像中除窗体外的显示区域;[0107]第一恢复模块,用于根据预设数据库和所述窗体编码数据恢复所述目标窗体标识对应的窗体;[0108]第二恢复模块,用于根据所述预设数据库中未包括的窗体标识对应的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体;[0109]第三恢复模块,用于根据所述镂空区编码数据恢复镂空区;[0110]获取模块,用于根据恢复的所述目标窗体标识对应的窗体、所述预设数据库中未包括的所述窗体标识对应的窗体和所述镂空区获取当前帧图像。[0111]在一个实施例中,所述编码码流中还包括:第一更新信息,所述第一更新信息包括:所述预设数据库中更新的所有数据,所述[0112]第一更新模块,用于根据所述第一更新信息对所述预设数据库中的数据进行更[0113]在一个实施例中,所述编码码流中还包括:第二更新信息,所述第二更新信息包括:所述预设映射表中新增加的表项信息,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据与所述镂空区数据对应的全帧图像画面中的所有窗体标识的映射应[0114]第二更新模块,用于根据所述第二更新信息对所述预设映射表中的表项进行更[0115]在一个实施例中,所述编码码流中包括:所述目标窗体标识、标记后的所述第一预设位置表、所述第二标记的表项对应的所述当前帧图像中的窗体数据、标记后的所述第二预设位置表、述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数据;[0116]第一恢复模块,还用于根据所述预设数据库、所述目标窗体标识、标记后的所述第一预设位置表和所述第二标记的表项对应的所述当前帧图像中的窗体数据恢复所述目标窗体标识对应的窗体;[0117]第二恢复模块,还用于根据所述预设数据库、标记后的所述第二预设位置表和述第二预设位置表中各个表项对应的所述当前帧图像中的窗体数据恢复所述预设数据库中未包括的所述窗体标识对应的窗体。[0118]在一个实施例中,所述编码码流中包括:当前表项标识、标记后的第三预设位置表、所述第三预设位置表中标记为第二标记的各表项对应的当前帧图像中的所述镂空区数[0119]第三恢复模块,还用于根据预设映射表、所述当前表项标识、标记后的所述第三预设位置表、所述第三预设位置表中标记为所述第二标记的各表项对应的当前帧图像中的所述镂空区数据恢复所述镂空区,所述预设映射表的每个所述表项包括:当前表项标识、历史镂空区数据与所述镂空区数据对应的全帧图像画面中的所有窗体标识的映射应关系。[0120]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明[0121]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。[0122]图1是本公开实施例提供的一种自然视频图像的示意图。[0123]图2是本公开实施例提供的一种计算机合成图像场景切换的示意图。[0124]图3是本公开实施例提供的一种图像传输方法的流程图;[0125]图4是本公开实施例提供的一种窗体示意图;[0126]图5是本公开实施例提供的一种窗体示意图;[0127]图6是本公开实施例提供的一种图像传输方法的流程图;[0128]图7是本公开实施例提供的一种图像编码装置的逻辑层结构示意图;[0129]图8是本公开实施例提供的一种图像解码装置的逻辑层结构示意图;[0130]图9是本公开实施例提供的一种图像传输系统的示意图;[0131]图10是本公开实施例提供的一种图像传输装置的结构图;[0132]图11是本公开实施例提供的一种图像传输装置的结构图。具体实施方式[0133]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。[0134]图像有自然图像和计算机合成图像两大类。自然图像指的是自然界真实存在的景色,人们生活中看到的电影、电视内容均为自然图像。计算机合成图像是采用计算机图形学技术,通过计算机上显卡计算得到的人造图像,例如办公软件Word的界面,游戏画面,网页[0135]现有技术方案主要是类似于H.264、H.265等视频编码方案,其对于自然视频压缩率高,压缩效果好,在业界广泛使用。该类视频编解码方案的一个共性就是基本都采用了帧间预测的方法来降低码流。所谓帧间预测,就是在编当前帧的时候,会将当前帧与另外一个被称为参考帧的帧进行比较,如果当前帧某区域和参考帧相同,则直接记录相同区域的信息,如位置等,在解码时直接使用参考帧该区域的数据。这种方案实际上省略了对当前帧的上述区域的编解码过程,不但减少了编解码计算时间,更降低了码流大小,是当前广泛采用的方案。但该方案针对计算机合成图像序列又有不足。[0136](1)首先从场景的特殊性方面来看,对于自然视频序列,场景切换通常是描述性的,叙事性的,即自然的,对于不同场景来回反复切换的情形比较少;而对于计算机合成图像,这种来回切换的情形非常多。举例,当用户在上网时,可能忽然收到即时通讯软件的消到浏览器窗体查资料,那么最后这次上网查资料的场景,就和之前上网的场景极其相似,在编码的时候,完全可以将较早前上网场景中的该帧视作参考帧;所以相对于自然视频,计算机合成图像的编码场景对多参考帧的需求要迫切的多。[0137](2)然后再从当前的编解码技术上来看,大部分的编解码都是只支持一个参考帧,有些编解码技术标准中支持多参考帧,例如H.264,但是产品实现中极少真正实现多参考帧的,原因就是由于需要保存多个完整的参考帧,对于编解码器的存储空间带来极大负担,另外编码时需要在多个参考帧中选一个,择优算法会导致大量的计算负担。有相当数量的技术文档、专利都在想方设法对多参考帧的选择方法提出改进和优化,但是无法从根本上解决时间和效率的问题。因此,作为业界共识,类似H264中的多参考帧预测是一种性价比非常低的视频编码技术,在绝大多数情况下,它都不能使编码效率有所改善,但却会引入繁重的额外计算开销,一般建议尽可能不使用该技术。[0138](3)退一步说,即使解决了计算量的问题,目前的多参考帧方案还是只能选出和当前帧“最像”的那一帧来参考,那么如果5个参考帧中各有一用该5个参考帧的各帧中相似的部分进行参考,从而无法起到最佳效果,不能达到降低码流的效果。[0139]本公开就是针对上述3点问题提出的解决方案。[0140]设计本方案的初衷是,计算机合成图像场景切换的特殊性,因此首先必须详细描述自然视频和计算机合成图像序列在场景切换上的区别,讲清楚到底计算机合成图像到底有什么特殊性。[0141]首先来看一组自然视频图像截图,其中也包含了场景切换。图1是本公开实施例提供的一种自然视频图像的示意图。从图1中可以看到,(b)和(c)之间,(c)和(d)之间差异均比较大,那么这两次可以视作场景切换。虽然(d)切回到了绿色的海岸画面,但是和(b)之间差异还是非常大,如果在编(d)的时候以(b)为参考帧,也不会得到良好效果。[0142]下面是一个计算机合成图像序列。图2是本公开实施例提供的一种计算机合成图像场景切换的示意图。如图2所示,图2是一个模拟用户正在操作电脑进行写论文时的情形,该用户一边写论文,一边上网查资料,一边画图编辑。他使用图Windows10操作系统自带的了4次,分别产生4个桌面的图像,如下面4幅小图所示。下面4个小图组成了一个序列。它们之间差异相当大,可认为发生了4次场景切换,如果编码该序列,可发现在编序列中的(d)时,和(a)非常相似,完全可以将(a)取为参考帧进行帧间预测编码。类似这种在不同窗体之间切换,以及将某些窗体反复最小化和恢复的操作,在用户操作计算机时,是极为常见的。[0143]这个序列只是个例子,目的是说明计算机合成图像场景切换的突然性,以及和历史上某帧之间相似性。从这个例子上可以感知其和自然视频图像的差异。[0144]基于上述场景,本公开实施例提供一种图像传输方法,如图3所示,该方法应用于图像编码装置,该图像传输方法包括以下步骤:[0145]101、获取当前帧图像中的窗体信息,窗体信息包括:各个窗体标识以及各个窗体[0146]图像编码装置可以接收来自采集器的待编码数据,也即,接收一帧图像,通常是[0147]图像编码装置在收到一帧图像后,可以在底层软件截获操作系统指令或接口,实时的获取到当前屏幕上的窗体信息。[0149]句柄就是窗体标识(英文:ID),每一个窗口对应一个唯一的ID,因此,可以通过这个ID来识别不同的窗口,通过句柄还可以从底层获取窗体的位置、大小等信息。[0150]对于获取当前屏幕上窗体句柄的具体实现方式,不同的操作系统可以有不同的实现方案,以windows操作系统为例,可以调用GetDesktopW发现屏幕上所有的窗体句柄。通过窗体句柄,还可以查询到每个窗体的大小和位置信息。[0151]102、根据各个窗体标识,从预设数据库中查找与窗体标识相同的目标窗体标识;预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;预设数据库中保存的窗体标识均不相同。[0152]在图像编码装置中会维护一个预设数据库,该预设数据库中保存了历史帧图像中的窗体标识和窗体数据的对应关系,例如:该预设数据库中可以包括:窗体标识区和窗体数据区,窗体标识区用来存储窗体标识,窗体数据区用来存储窗体数据,而且窗体标识区和窗体数据区中各项是一一对应的,即一个窗体标识对应一个窗体数据,示例的,最多可保存N个条目,也就是N个窗体的数据(N个窗体的数据包括:N个窗体的窗体标识和N个窗体的窗体数据)。保存的N个条目可能来自不同的帧,也可能来自相同的帧,这不重要,因为本方案是以每个窗体为预测对象,而不是以每个帧为预测对象。[0153]值得注意的是,本公开中的预设数据库中保存的窗体标识均不相同,也即,相同的窗体标识仅保存一次,从而相同的窗体标识对应的窗体数据也仅保存一次。[0154]当得到了当前帧图像中各个窗体标识后,需要到预设数据库去搜索,看历史编过的窗体标识有没有和当前帧所检测到的窗体标识是一样的,如果有,说明当前帧要编的这个窗体历史上出现过,那么这两个窗体很可能是相同的,或者是部分相同的。[0155]具体的,就是将当前帧图像里的几个窗体标识逐个在预设数据库中扫描,以图4为例,当前帧图像有3个窗体,假如这3个窗体之前被编过,那么它们的窗体标识会存储在预设数据库中。则此时会在预设数据库中搜到这3个窗体标识,从而可以从预设数据库中获取到这3个窗体的窗体数据,即图中的窗体1、窗体2和窗体3,完整的窗体的像素数据。[0156]103、将目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到窗体编码数据。[0157]在预设数据库中获取到相同的目标窗体标识后,会将目标窗体标识进行编码得到编码数据。[0158]由于在图像解码端也维护了同样的预设数据库,因此,图像解码端也便可以基于编码码流中的目标窗体标识从图像解码端维护的预设数据库中找到对应的窗体数据,以恢复窗体。[0159]进一步的,如果当前帧图像的窗体标识在预设数据库中没有找到相同的,说明当前的窗体是一个新的窗体,之前的历史帧中从未出现过,则将该窗体的窗体数据直接编码,[0160]由于在图像解码端也维护了同样的预设数据库,既然在图像编码装置中的预设数据库中没有保存该窗体标识,那么在图像解码端维护的预设数据库也同样不会有该窗体标识,也就不会有该窗体标识对应的窗体数据,因此,图像编码装置会将该窗体的窗体数据直接编码,以让图像解码端可以基于该编码码流直接获取窗体数据,以恢复窗体。[0161]上述两种编码数据共同组成了窗体编码数据。[0162]104、获取当前帧图像中的镂空区数据,镂空区为当前帧图像中除窗体外的显示区[0163]由于计算机屏幕上显示的不仅仅为窗体区域还有窗体外的区域,本公开中称当前帧图像中除窗体外的显示区域为镂空区,因此,还会去获取镂空区数据。[0164]105、将镂空区数据进行编码得到镂空区编码数据。[0165]将镂空区数据进行编码,例如采用JPEG编码,得到[0166]106、向图像解码装置发送编码码流,编码码流包括:窗体编码数据和镂空区编码数据。[0167]在得到窗体编码数据和镂空区编码数据后,便可以将窗体编码数据和镂空区编码数据进行打包后发送给图像解码装置。由于在图像解码装置中也维护了同样的预设数据库,因此,当图像解码装置接收到窗体编码数据后,结合窗体编码数据和预设数据库便可以从本地保存的预设数据库中将窗体恢复出来。基于镂空区编码数据恢复出镂空区,由于同时对镂空区和窗体区进行了恢复,从而得到了当前帧的完整图像。[0168]本公开中的图像编码装置维护的预设数据库,是历史上若干个发生场景切换时的各个窗体的数据,但并不是采用“将多个参考帧完整的保存下来,编码时再择优录用”这种方案,其是以窗体为单位进行保存的,从而在进行参考帧选择时,并不是以历史上的整个关键帧的数据作为参考对象,而是以窗体作为参考对象,从而使得参考对象的粒度细化,并且由于仅保存了窗体的数据,从而不会占用过多的存储空间,有效节省了编码器的存储空间。[0169]假如一个文字编辑者,不停的在word界面和IE界面切来切去,这种情形可能不能使用常规的运动向量,帧间预测来解决编码问题,但是很明显,不同帧之间,有大量的相似元素,例如窗体的标题菜单栏等等,这些都是冗余。如果采用现有技术的多参考帧,需要保存历史上多个完整的帧,以1920×1080分辨率为例,一帧大小是1920×1080×3≈6MB,10帧就是60MB,这样会对存储空间要求很大。而且这10个参考帧内,可能每帧都有一个word界面,相当于仅这个word界面就存了10次,造成极大浪费。而本公开中以窗体为单位进行保存,并且不会多次保存相同的窗体数据,从而极大的节省了存储空间,例如上述被保存了1010个参考帧中选一个和当前帧最像的来参考,也是个难题。而本公开中,并非以帧为单位进行保存,从而降低了数据的存储量,由于降低了数据的存储量,从而降低了计算时使用的数据量,进而降低了计算量。最重要的是,如存储了10个窗体标识和对应的窗体数据,那么这10个窗体很可能来自不同的帧,在编码当前帧的时候,如果当前帧有这10个窗体中的若干个,那么可直接对这若干个进行参考比较,也即,可以同时使用若干个窗体进行参考,由于该若干个窗体来自不同的帧,相当于此时同时参考了多个参考帧,这和现有技术最终只能参考一个参考帧有着本质的区别。[0170]由于在编当前帧图像时,可以同时使用若干个窗体进行参考,因此,可以直接编码窗体标识,而无需编码窗体数据,由于图像解码装置也保存了同样存储了10个窗体标识和对应的窗体数据,那么图像解码端便可以基于编码码流中的窗体标识从10个窗体标识和对应的窗体数据中获取对应的窗体数据,以恢复当前帧图像,从而降低了编码码流。[0171]本公开实施例提供的图像传输方法,包括:获取当前帧图像中的窗体信息,窗体信息包括:各个窗体标识以及各个窗体标识对应的窗体数据;根据各个窗体标识,从预设数据库中查找与窗体标识相同的目标窗体标识;预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;预设数据库中保存的窗体标识均不相同;将目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到窗体编码数据;获取当前帧图像中的镂空区数据,镂空区为当前帧图像中除窗体外的显示区域;将镂空区数据进行编码得到镂空区编码数据;向图像解码装置发送窗体编码数据和镂空区编码数据。本公开中以历史图像帧中的各个窗体为单位进行保存,如果当前帧图像的窗体中有多个与历史图像帧中的窗体相同的窗体,那么便可以使用该些窗体进行参考,由于该些窗体来自不同的历史帧,相当于此时同时参考了多个参考帧。[0173]A1、将预设数据库中的目标窗体标识对应的窗体按照第一预设规则划分为多个第一子窗体。[0174]以子窗体为宏块为例进行说明。[0175]此时,和大部分编解码方案类似,本方案也是基于宏块的,将目标窗体标识对应的窗体按照预设规则划分为多个第一宏块。[0176]A2、将当前帧图像中的目标窗体标识对应的窗体按照第一预设规则划分为多个第二子窗体。[0177]继续按照上述的例子,将当前帧图像的目标窗体标识对应的窗体按照相同的第一预设规则划分为多个第二宏块。[0178]A3、若相同位置的第一子窗体中的窗体数据与第二子窗体中的窗体数据相同,则将第一预设位置表中与窗体数据相同的第二子窗体对应的位置的表项标记为第一标记;第一预设位置表中各个表项的位置与当前帧图像中的各个第二子窗体的位置相对应。[0179]继续按照上述的例子,此时的第一预设位置表也可以称之为宏块标记表,宏块标记表记录了每个第一宏块是否和目标窗体的相同位置的第二宏块内容相同,其中,第一标[0180]若相同位置的第一宏块中的窗体数据与第二宏块中的窗体数据相同,则将第一宏块标记表中与窗体数据相同的第二宏块对应的位置的表项标记为1。[0181]示例的:如果当前帧中的窗体,和预设数据库中保存的目标窗体的内容完全一样。类似于最小化后又恢复的效果。对于这种情况,上述的第一宏块标记表中每个第二宏块对应的位置的表项均标记为1。[0182]A4、若相同位置的第一子窗体中的窗体数据与第二子窗体中的窗体数据不相同,则将第一预设位置表中与窗体数据不相同的第二子窗体对应的位置的表项标记为第二标[0184]继续按照上述的例子,若相同位置的第一宏块中的窗体数据与第二宏块中的窗体数据不相同,则将第一宏块标记表中与窗体数据不相同的第二宏块对应的位置的表项标记为0。[0185]示例的,如果当前帧中的窗体在预设数据库中都有记录(原来窗体就在,可能暂时被遮挡或最小化了),但是窗体数据却发生了变换,此时就会出现同时标记1和标记0的情[0186]A5、将预设数据库中未包括的窗体标识对应的当前帧图像中的窗体按照第一预设规则划分为多个第三子窗体。[0187]A6、将第二预设位置表中各个表项标记为第二标记,第二预设位置表中各个表项的位置与当前帧图像中的各个第三子窗体的位置相对应;[0188]示例的,如果当前帧中有新运行的程序(新运行的程序对应一个新生成的窗体,不是之前最小化后现在恢复出来的),此时,该窗体即为预设数据库中未包括的窗体。继续按照上述的例子,此时,将第二宏块标记表中各个表项均标记为0。[0189]A7、将目标窗体标识、标记后的第一预设位置表、第二标记的表项对应的当前帧图像中的窗体数据、标记后的第二预设位置表、第二预设位置表中各个表项对应的当前帧图像中的窗体数据进行编码得到窗体编码数据。[0190]其中,对窗体数据不相同的第二子窗体对应的当前帧图像中的窗体数据可以采取其他直接编码方案,例如JPEG编码,或熵编码等方案。类似的直接编码方案现有技术已有很也将汇入最终发送给图像接收装置的编码码流中。[0191]示例的,当前帧中的编辑器窗体,和预设数据库中保存的内容不完全一样。举例如图5所示,左图是预设数据库中记录的编辑器窗体的像素效果,右图是当前帧中的该编辑器窗体像素效果(阴影效果为后加)。从图5中变化,但是窗体内的文字发生了变化。图5中将未变化的区域用阴影做了标注。对于这种情形,在第一宏块标记表中,阴影部分对应的表项(也可以称之为第一宏块标记表中的宏块)标记记录为第一标记,非阴影部分的对应的第一宏块标记表中的宏块则标记为第二标记;图像解码装置从该第一宏块标记表可以知道每个位置的宏块应该如何解码,对第一宏块标记表中标记为第一标记的宏块(阴影部分),会从预设数据库直接拷贝。对非阴影部分,由于和预设数据库中保存的目标窗体不同,因此需要采取其他直接编码方案,例如JPEG编码,或熵编码等方案。类似的直接编码方案现有技术已有很多,这不是本专利提出的内容,因此不多赘述,这里暂以JPEG编码为例。JPEG编[0192]由于在编码时,会将第一预设位置表、第二预设位置表一同进行编码,由于图像解码装置同步保存有预设数据库,因此,当图像解码装置接收到窗体编码数据后,结合窗体编码数据和预设数据库便可以基于编码数据中的目标窗体标识从预设数据库中查找到对应的窗体数据,并且基于第一预设位置表便可以恢复出第一标记对应的表项,然后基于窗体数据不相同的第二子窗体对应的当前帧图像中的窗体数据恢复出第一预设位置表中第二标记对应的表项,基于标记后的第二预设位置表和各个第三子窗体对应的窗体数据的编码数据便可以恢复出该新的窗体。由于在编码时,无需将所有的窗体数据均进行编码,只需将不同的窗体数据进行编码,相同的窗体数据只需将窗体标识进行编码即可,从而大大提升[0194]B1、将预设数据库中未包括的窗体标识以及对应的窗体数据添加至预设数据库[0195]B2、将预设数据库中的窗体标识对应的窗体数据替换为当前帧图像中的窗体标识对应的窗体数据。[0196]为了使得[0197]B3、将第一更新信息携带在编码码流中发送给图像解码装置,第一更新信息包括:预设数据库中更新的所有数据。[0198]在当前帧编完后,需要将当前帧中的窗体数据更新预设数据库中。[0199]如果当前帧中有新运行的程序(新运行的程序对应一个新生成的窗体,不是之前最小化后现在恢复出来的),则将其窗体标识以及对应的窗体数据添加至预设数据库中;如果当前帧中的窗体在预设数据库中有记录(原来窗体就在,可能暂时被遮挡或最小化了),但是窗体的内容发生了变换,则将每个窗体对应的窗体数据更新到预设数据库中。[0200]具体的,如果当前帧中的窗体标识在预设数据库中已存在,且窗体数据和预设数据库中记录的完全一样,说明这两帧之间,该窗体没有发生变化,也就无需更新;如果和预设数据库中记录的有差异,则需要将当前帧中的窗体数据更新到预设数据库中,使得后续的帧参考最新的窗体数据。此时的第一更新信息例如可以为:产生一条“更新旧窗体”的记[0201]进一步的,如果当前帧中的某个窗体的窗体标识在预设数据库中不存在,则将该窗体标识加入到预设数据库中去,如预设数据库已满,则移除最老的那个窗体标识,加入新的窗体标识,相应的,在预设数据库中同时存入该窗体的窗体数据。[0202]此时的第一更新信息例如可以为:产生一条“产生新窗体”的记录,记录中携带新窗体的窗体标识。[0203]通过上述更新操作,可以保证在编码当前帧的时候,图像编码装置保存有历史上遇到过的最新的窗体标识和窗体数据。[0204]进一步的,还会将预设数据库中更新的所有数据和之前的编码数据一块打包进编码码流中发送给图像解码装置,目的是通知图像解码装置,新出现了一个窗体,需要同步更新窗体标识和窗体数据。[0205]在一个实施例中,为了进一步的提升编码效率,还会对镂空区数据执行相应的处[0206]C1、检测预设映射表的表项中是否包括与当前帧图像的窗体标识相似度满足预设条件的目标表项,预设映射表的每个表项包括:当前表项标识、历史镂空区数据与镂空区数据对应的全帧图像画面中的所有窗体标识的映射应关系。[0207]图像编码装置中还会维护一张预设映射表,该预设映射表中保存历史上总共M个场景切换帧(也可以理解为关键帧)的镂空区数据。这样既可以为镂空区数据部分的预测编码提供参考,又能节省存储空间。[0208]该预设映射表中的每个表项中包括:当前表项标识、历史镂空数据、镂空区数据对应的全帧图像画面中的所有窗体标识的映射应关系。[0209]C2、若包括,将目标表项中包括的当前表项标识进行编码得到镂空区编码数据。[0211]需要说明,预设数据库中的窗体标识和窗体数据是一一对应的,即一个窗体标识对应一个窗体数据,最多可保存N个条目,也就是N个窗体的数据。预设映射表用于保存镂空区的数据,根据预设规则可以保存最多M条的镂空区数据。而镂空区的表项数量则不一定和N相同,因为窗体标识和窗体虽然是一一对应的,但是这N个窗体可能来自不同的帧,也可能来自相同的帧,这不重要,因为本方案是以每个窗体为预测对象,而不是以每个帧为预测对象。镂空区数据只是为窗体之外的部分的一个预测对象,它的数量M和N无关。可根据实际情况如设备存储能力,计算能力的大小选取M值,取值越大计算量越大,需要的存储容量也越条镂空区数据,还对应的要存储每一条镂空区数据原始所属的全帧画面中,含有的各窗体标识。这种设计的意义是为了快速的确定:在编当前帧的镂空区时,具体参考哪一个镂空区素比较,看哪一个最像(有多种评价标准,例如像素差值总和最小),就以该条镂空区数据为参考标准。但是这种方式会导致大量的计算量,本方案提出的新的方案如下:[0213]已知当前帧图像中的各个窗体标识,在预设映射表中,逐条搜索,看当前帧图像中的窗体标识和哪个条目的窗口的标识记录重合数目最多,就以该条目的镂空区数据作为参考数据,如果存在多个条目的窗口标识与当前帧中的窗体标识重合的情况,则将最新的条目的镂空区数据作为参考数据。例如,当前帧图像中有3个窗体,而预设映射表中第2个条目存储着其原所属帧中有4个窗体,其中的3个窗体恰和当前帧图像的3个窗体标识相同。那就意味着第2个条目对应的镂空区数据所在的原始帧,有3个窗体就是当前帧的这3个窗体。那么这两帧就应该是极其相似的,以第2个条目对应的镂空区数据为参考,也是最合适的。这个选择过程完全避免逐个像素进行比较择优的过程。其中,第2个条目对应的镂空区数据也可以描述为第2个表项对应的镂空区数据。[0214]在一个实施例中,将目标表项中包括的当前表项标识进行编码得到镂空区编码数[0215]D1、将当前帧图像的镂空区按照第二预设规则划分为多个第一子镂空区;[0216]D2、将目标表项对应的镂空区按照第二预设规则划分为多个第二子镂空区;[0217]D3、若相同位置的第一子镂空区中的镂空区数据与第二子镂空区中的镂空区数据相同,则将第三预设位置表中与镂空区数据相同的第二子镂空区对应的位置的表项标记为第一标记;第三预设位置表中各个表项的位置与当前帧图像中各个第二子镂空区的位置相[0218]D4、若相同位置的第一子镂空区中的镂空区数据与第二子镂空区中的镂空区数据不相同,则将第三预设位置表中与镂空区数据不相同的第二子镂空区对应的位置的表项标记为第二标记;[0219]D5、将当前表项标识、标记后的第三预设位置表、第三预设位置表中标记为第二标记的各表项对应的当前帧图像中的镂空区数据进行编码得到镂空区编码数据。[0220]示例的,子镂空区可以为宏块,第三预设位置表可以为第三宏块标记表。[0221]镂空区也是由宏块组成,每个宏块设定一个标记,记录了该宏块是否和目标表项相同的部分无需编码,不同的部分记录JPEG编码后的结果。[0222]在一个实施例中,为了保证在编码当前帧的时候,图像编码装置保存有历史上遇到过的最新的镂空区数据,方法还包括以下子步骤:[0223]E1、检测当前帧图像是否为场景切换后的帧图像。[0224]E2、若是,则在预设映射表中增加新的表项,并将当前帧图像对应的镂空区数据和当前帧图像所有的窗体标识保存至新的表项中。[0225]E3、将第二更新信息携带在编码码流中发送给图像解码装置,第二更新信息包括:预设映射表中新增加的表项信息。[0226]另外,判断如果当前发生场景切换的话,需要将各窗体之外的部分,即本方案称之为“镂空区”的数据更新到镂空数据区。如果当前帧不是场景切换帧,即当前帧和上一帧很相似,那么就不进行该步骤的更新过程。[0227]从而可以保证预设映射表所保存的M个条目的镂空区数据来自于最新的M个场景切换帧,也就是,在实际实现时,每当发生场景切换时,就将该帧的镂空区数据保存在预设映射表中,如果保存的镂空区条目数据大于M,则删除掉最旧的条目数据。[0228]另外,对预设映射表的更新,则需要在发生场景切换时才进行,即上一帧和当前帧记录。[0229]在一个实施例中,上述步骤E1包括以下子步骤:[0230]F1、将当前帧图像按照第三预设规则进行宏块划分。[0231]F2、将上一帧图像按照第三预设规则进行宏块划分。[0232]F3、检测当前帧图像对应的宏块与上一帧图像对应的宏块的相似度。[0233]F4、在相似度大于预设值时,[0234]示例的,判断当前是否发生场景切换有多种实现方式,其中一种可选实现方式是:将当前帧图像与其前一帧图像按照相同的规则进行宏块划分,在划分宏块后,逐宏块进行两两比较判断是否发生变化,如果未发生变化的宏块大于全帧宏块数目的50%,认为发生了场景切换。上述50%的判断标准可以根据实际需要进行调整。或者,如果发生变化的宏块小于全帧宏块数目的50%,认为发生了场景切换。上述50%的判断标准可以根据实际需要进行调整。[0235]本公开实施例提供一种图像传输方法,如图6所示,该方法应用于图像解码装置,该图像传输方法包括以下步骤:据是根据目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到的,预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;预设数据库中保存的窗体标识均不相同;窗体数据包括:窗体像素数据、窗体位置和窗体大小;镂空区为当前帧图像中除窗体外的显示区域。[0237]202、根据预设数据库和窗体编码数据恢复目标窗体标识对应的窗体。[0238]203、根据预设数据库中未包括的窗体标识对应的窗体数据恢复预设数据库中未包括的窗体标识对应的窗体。[0240]205、根据恢复的目标窗体标识对应的窗体、预设数据库中未包括的窗体标识对应的窗体和镂空区获取当前帧图像。[0241]图像编码装置在接收到编码码流后,进行解码,类似于编码端的流程,其主要可分[0242]由于图像编码装置和图像解码装置维护了同样的预设数据库,因此,基于编码码流中的窗体编码数据中的目标窗体标识可以从预设数据库中获取与目标窗体标识对应的窗体数据,也即获取与目标窗体标识对应的窗体的窗体像素数据、窗体位置和窗体大小,从而基于窗体数据便可以恢复目标窗体标识对应的窗体。[0243]根据编码码流中的预设数据库中未包括的窗体标识对应的窗体数据恢复预设数据库中未包括的窗体标识对应的窗体。[0244]根据编码码流中的镂空区编码数据恢复镂空区。[0245]最终,根据恢复的目标窗体标识对应的窗体、预设数据库中未包括的窗体标识对应的窗体和镂空区获取当前帧图像。[0246]由于编码码流中并非当前帧图像的所有窗体的窗体数据,而是有部分窗体的窗体标识,从而降低了编码码流,而且由于本公开中以历史图像帧中的各个窗体为单位进行保存,如果当前帧图像的窗体中有多个与历史图像帧中的窗体相同的窗体,那么便可以使用该些窗体进行参考,由于该些窗体来自不同的历史帧,相当于此时同时参考了多个参考帧。[0247]本公开实施例提供的图像传输方法,包括:接收编码码流,编码码流包括:窗体编码数据和镂空区编码数据;窗体编码数据是根据目标窗体标识、预设数据库中未包括的窗体标识对应的窗体数据进行编码得到的;预设数据库中包括:历史帧图像中的窗体标识和窗体数据的对应关系;预设数据库中保存的窗体标识均不相同;根据预设数据库和窗体编码数据恢复目标窗体标识对应的窗体;根据预设数据库中未包括的窗体标识对应的窗体数据恢复预设数据库中未包括的窗体标识对应的窗体;根据镂空区编码数据恢复镂空区;根据恢复的目标窗体标识对应的窗体、预设数据库中未包括的窗体标识对应的窗体和镂空区获取当前帧图像。由于本公开中以历史图像帧中的各个窗体为单位进行保存,如果当前帧图像的窗体中有多个与历史图像帧中的窗体相同的窗体,那么便可以使用该些窗体进行参考,由于该些窗体来自不同的历史帧,相当于此时同时参考了多个参考帧。进一步的,由于编码码流中并非当前帧图像的所有窗体的窗体数据,而是有部分窗体的窗体标识,从而降低了编码码流。[0248]在一个实施例中,编码码流中还包括:第一更新信息,第一更新信息包括:预设数据库中更新的所有数据,预设映射表的每个表项包括:当前表项标识、历史镂空区数据与镂空区数据对应的全帧图像画面中的所有窗体标识的映射应关系;方法还包括:[0249]根据第一更新信息对预设数据库中的数据进行更新。[0250]通过上述更新操作,可以保证在解码编码码流时,图像解码装置保存有历史上遇到过的最新的窗体标识和窗体数据。[0251]在一个实施例中,编码码流中还包括:第二更新信息,第二更新信息包括:预设映射表中新增加的表项信息,方法还包括:[0252]根据第二更新信息对预设映射表中的表项进行更新。[0253]通过上述更新操作,可以保证在解码编码码流时,图像解码装置保存有历史上遇到过的最新的镂空区数据。[0254]在一个实施例中,编码码流中包括:目标窗体标识、标记后的第一预设位置表、第二标记的表项对应的当前帧图像中的窗体数据、标记后的第二预设位置表和述第二预设位置表中各个表项对应的当前帧图像中的窗体数据;[0255]根据预设数据库和窗体编码数据恢复目标窗体标识对应的窗体,包括:[0256]根据预设数据库、目标窗体标识、标记后的第一预设位置表和第二标记的表项对应的当前帧图像中的窗体数据恢复目标窗体标识对应的窗体;[0257]根据预设数据库中未包括的窗体标识对应的窗体数据恢复预设数据库中未包括[0258]根据预设数据库、标记后的第二预设位置表和述第二预设位置表中各个表项对应的当前帧图像中的窗体数据恢复预设数据库中未包括的窗体标识对应的窗体。[0259]在一个实施例中,编码码流中包括:当前表项标识、标记后的第三预设位置表、第三预设位置表中标记为第二标记的各表项对应的当前帧图像中的镂空区数据;[0261]根据预设映射表、当前表项标识、标记后的第三预设位置表、第三预设位置表中标记为第二标记的各表项对应的当前帧图像中的镂空区数据恢复镂空区,预设映射表的每个表项包括:当前表项标识、历史镂空区数据与镂空区数据对应的全帧图像画面中的所有窗体标识的映射应关系。[0262]本公开另一实施例提供一种图像编码装置的模块图,如图7所示,该图像编码装置包括:窗体检测模块301、图像设备接口虚拟层302、窗体预测模块303304、码流生成模块305、窗体标识区306、窗体数据区307、镂模块309。[0263]上述实施例中的窗体标识为窗体句柄(Handle),预设数据库包括:窗体标识区306和窗体数据区307;预设映射表包括:镂

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论