CN106817585B - 一种利用长期参考帧的视频编码方法、电子设备和系统 - Google Patents

一种利用长期参考帧的视频编码方法、电子设备和系统 Download PDF

Info

Publication number
CN106817585B
CN106817585B CN201510874697.XA CN201510874697A CN106817585B CN 106817585 B CN106817585 B CN 106817585B CN 201510874697 A CN201510874697 A CN 201510874697A CN 106817585 B CN106817585 B CN 106817585B
Authority
CN
China
Prior art keywords
reference frame
long
term reference
frame
video
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.)
Active
Application number
CN201510874697.XA
Other languages
English (en)
Other versions
CN106817585A (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.)
Xiao Feng
Original Assignee
Palmwin Information Technology Shanghai 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 Palmwin Information Technology Shanghai Co ltd filed Critical Palmwin Information Technology Shanghai Co ltd
Priority to CN201510874697.XA priority Critical patent/CN106817585B/zh
Publication of CN106817585A publication Critical patent/CN106817585A/zh
Application granted granted Critical
Publication of CN106817585B publication Critical patent/CN106817585B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明实施例提供了一种利用长期参考帧的视频编码方法、电子设备和系统,属于视频编解码领域,该方法包括:获取视频帧;判断是否满足第一预设条件;如果是,则将视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;判断是否满足第二预设条件;如果是,则利用参考帧缓存中的生效长期参考帧对视频帧进行编码,生成编码数据;如果否,则利用参考帧缓存中的短期参考帧对视频帧进行编码,生成编码数据;判断视频帧是否被标记为待生效的长期参考帧;如果是,则在编码数据中设置标示视频帧为长期参考帧的信息;向解码端发送编码数据;接收来自解码端的长期参考帧反馈;以及将长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。

Description

一种利用长期参考帧的视频编码方法、电子设备和系统
技术领域
本发明涉及视频编码领域,特别涉及一种利用长期参考帧的视频编码方法、电子设备及系统。
背景技术
在标准H.264中,编码端每隔一段时间向解码端发送IDR(instant decodingrefresh)帧。IDR帧是一个GOP(group of pictures)的首个I帧,即从IDR 帧开始,重新开始一个新的序列编码,它的作用是使得解码器立即刷新,从而使预测错误不至于传播,并提供随机访问能力。I DR帧之后的帧可以参考IDR帧,或最近的帧,但是不会参考IDR帧之前的帧。但是,IDR帧的编码效率较低,因而比较大,发送IDR帧容易造成丢包和卡顿。
发明内容
为了解决上述问题,本发明实施例提供了一种视频编码方法、电子设备及系统。
根据本发明的第一方面,提供了一种视频编码方法,该方法包括:
获取视频帧;
判断是否满足第一预设条件;
如果是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
判断是否满足第二预设条件;
如果是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
如果否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
判断所述视频帧是否被标记为待生效的长期参考帧;
如果是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
向解码端发送所述编码数据;
接收来自所述解码端的长期参考帧反馈;以及
将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
结合第一方面,在第二种可能的实现方式中,所述第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值。
结合第一方面或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。
结合第一方面的第二种可能的实现方式,在第四种可能的实现方式中,该方法还包括:
检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
结合第一方面,在第五种可能的实现方式中,所述利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据包括:
利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
根据本发明的第二方面,提供了一种视频编码设备,该视频编码设备包括:
获取模块,用于获取视频帧;
第一判断模块,用于判断是否满足第一预设条件;
参考帧管理模块,用于如果所述第一判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
第二判断模块,用于判断是否满足第二预设条件;
编码模块,用于如果所述第二判断模块判定是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
所述编码模块,还用于如果所述第二判断模块判定否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
第三判断模块,用于判断所述视频帧是否被标记为待生效的长期参考帧;
标示模块,用于如果所述第三判断模块判定是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
发送模块,用于向视频解码设备发送所述编码数据;
接收模块,用于接收来自所述视频解码设备的长期参考帧反馈;以及
所述参考帧管理模块,还用于将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
结合第二方面,在第二种可能的实现方式中,所述第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值。
结合第二方面或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。
结合第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述设备还包括:
检测模块,用于检测来自所述视频解码设备的长期参考帧反馈的时延是否超过第三阈值,
周期定时延长模块,用于所述检测模块检测到来自所述视频解码设备的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
结合第二方面,在第五种可能的实现方式中,所述编码模块用于:
如果所述第二判断模块判定是,则利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
根据本发明的第三方面,提供了一种视频编解码系统,该系统包括视频编码设备和视频解码设备,其中,
所述视频编码设备包括:
获取模块,用于获取视频帧;
第一判断模块,用于判断是否满足第一预设条件;
第一参考帧管理模块,用于如果所述第一判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
第二判断模块,用于判断是否满足第二预设条件;
编码模块,用于如果所述第二判断模块判定是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
所述编码模块,还用于如果所述第二判断模块判定否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
第三判断模块,用于判断所述视频帧是否被标记为待生效的长期参考帧;
标示模块,用于如果所述第三判断模块判定是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
发送模块,用于向所述视频解码设备发送所述编码数据;
第一接收模块,用于接收来自所述视频解码设备的长期参考帧反馈;以及
所述第一参考帧管理模块,还用于将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧;
所述视频解码设备包括:
第二接收模块,用于接收所述编码数据;
解码模块,用于将所述编码数据解码,获取视频帧;
第四判断模块,用于判断所述编码数据中是否设置标示所述视频帧为长期参考帧的信息并且所述解码是否正确;
第二参考帧管理模块,用于如果所述第四判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为长期参考帧;
反馈模块,用于在所述第二参考帧管理模块将所述视频帧添加到参考帧缓存中并标记为长期参考帧之后,向所述视频编码设备发送长期参考帧反馈。
结合第三方面,在第二种可能的实现方式中,所述第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值。
结合第三方面或第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。
结合第三方面的第二种可能的实现方式,在第四种可能的实现方式中,所述视频编码设备还包括:
检测模块,用于检测来自所述视频解码设备的长期参考帧反馈的时延是否超过第三阈值,
周期定时延长模块,用于所述检测模块检测到来自所述视频解码设备的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
结合第三方面,在第五种可能的实现方式中,所述编码模块用于:
如果所述第二判断模块判定是,则利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
根据本发明第四方面,提供了一种电子设备,该电子设备包括:存储器、发送/接收模块以及与存储器、发送/接收模块耦合的处理器,所述存储器用于存储一组程序代码,所述处理器调用所述存储器所存储的程序代码用于执行以下操作:
获取视频帧;
判断是否满足第一预设条件;
如果是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
判断是否满足第二预设条件;
如果是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
如果否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
判断所述视频帧是否被标记为待生效的长期参考帧;
如果是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
向解码端发送所述编码数据;
接收来自所述解码端的长期参考帧反馈;以及
将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
结合第四方面,在第二种可能的实现方式中,所述第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值。
结合第四方面或第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。
结合第四方面的第二种可能的实现方式,在第四种可能的实现方式中,所述处理器调用所述存储器所存储的程序代码用于执行以下操作:
检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
结合第四方面,在第五种可能的实现方式中,所述处理器调用所述存储器所存储的程序代码用于执行以下操作:
利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
本发明实施例提供一种利用长期参考帧的视频编码方法、电子设备和系统,通过在满足第一预设条件时将视频帧缓存并标记为待生效的长期参考帧,提供了一种确定长期参考帧的方式。通过在编码数据中设置标示视频帧为长期参考帧的信息,使得解码端能够了解该视频帧为长期参考帧,同时节省了资源以免利用额外的资源来向解码端传送该信息。通过在接收到来自解码端的长期参考帧反馈时才将对应的长期参考帧标记为生效,使得长期参考帧只有在解码端正确接收的情况下才用于编码,确保了利用长期参考帧的编码数据在解码端的正确解码。通过在满足第二预设条件时利用长期参考帧来编码视频帧,提供了利用长期参考帧来编码的方式,更好地压缩数据,相同码率画质会更好,同时避免IDR帧数据过大而容易丢包和卡顿的问题。通过在长期参考帧反馈超过第三阈值时延长周期定时,可以避免参考帧缓存被快速填满。通过阅读以下描述,本领域普通技术人员还能够想到其他优点和益处。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种利用长期参考帧的视频编码方法流程图;
图2是本发明实施例提供的一种利用长期参考帧的视频编码方法流程图;
图3是本发明实施例提供的一种利用长期参考帧的视频编码方法流程图;
图4是本发明实施例提供的一种视频编码设备结构示意图;
图5是本发明实施例提供的一种电子设备结构示意图;
图6是本发明实施例提供的一种系统结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种利用长期参考帧的视频编解码方法,该方法可以应用于即时视频通信或视频流播放等场景,本发明实施例对场景不加以限定。用已经传送成功的长期参考帧代替IDR帧可以更好地压缩数据,相同码率画质会更好,同时避免IDR帧数据过大而容易丢包和卡顿的问题。在例如丢包严重时,用已经传送成功的长期参考帧来做参考,避免由于前面帧丢包不能正常解码而影响后续帧解码的问题。本发明实施例可以应用于例如H.264的协议。但是,本领域普通技术人员能够理解,本发明实施例还可以应用于其他协议。对本发明实施例的应用范围不作具体限制。
实施例一
本发明实施例提供了一种利用长期参考帧的视频编码方法,参照图1所示,该方法包括:
101、获取视频帧。
具体的,获取视频帧包括通过摄像头获取视频帧。可选的,获取视频帧包括获取来自其他设备的视频帧或获取存储的视频帧。本发明实施例对此不加以限定。
102、判断是否满足第一预设条件;如果是,则执行步骤103。
具体的,第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值。
103、将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧。
具体的,将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧包括将所述视频帧添加到参考帧缓存中的长期参考帧缓存区并且将该长期参考帧对应的指示符设置为待生效。
104、判断是否满足第二预设条件;如果是,则执行步骤105,如果否,则执行步骤106。
可选的,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。
可选的,所述第二预设条件包括第二周期定时。
105、利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据。
可选的,利用参考帧缓存中标记为生效的长期参考帧对所述视频帧进行编码,生成编码数据包括:
利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
106、利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据。
要说明的是,上面描述的步骤102-103与步骤104-106之间的顺序仅是示例。也可以先执行步骤104-106,再执行步骤102-103。或者,步骤104-106与步骤102-103可以并行执行。本发明实施例对此不加以限定。
107、判断所述视频帧是否被标记为待生效的长期参考帧;如果是,则执行步骤108。
具体的,判断所述视频帧是否被标记为待生效的长期参考帧包括判断参考帧缓存中的长期参考帧缓存区是否存在所述视频帧,如果存在,则判定是。
108、在所述编码数据中设置标示所述视频帧为长期参考帧的信息。
具体的,标示所述视频帧为长期参考帧的信息是编码数据中的1比特信息,例如二进制的1。
109、向解码端发送所述编码数据。
110、接收来自所述解码端的长期参考帧反馈。
具体的,来自所述解码端的长期参考帧反馈包括长期参考帧的帧号。
111、将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
具体的,将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧包括:
获取长期参考帧反馈中包括的帧号;
确定该帧号在参考帧缓存中对应的长期参考帧;以及
将该对应的长期参考帧标记为生效。
可选的,该方法还包括:
检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
检测到长期参考帧反馈时延超过阈值表明网络延迟较长,如果维持原有的周期定时,那么缓存的长期参考帧将比较快速地填满参考帧缓存,通过延长周期定时,可以延缓长期参考帧的缓存速度,从而避免参考帧缓存被快速填满。
本发明实施例提供一种利用长期参考帧的视频编码方法,通过在满足第一预设条件时将视频帧缓存并标记为待生效的长期参考帧,提供了一种确定长期参考帧的方式。通过在编码数据中设置标示视频帧为长期参考帧的信息,使得解码端能够了解该视频帧为长期参考帧,同时节省了资源以免利用额外的资源来向解码端传送该信息。通过在接收到来自解码端的长期参考帧反馈时才将对应的长期参考帧标记为生效,使得长期参考帧只有在解码端正确接收的情况下才用于编码,确保了利用长期参考帧的编码数据在解码端的正确解码。通过在满足第二预设条件时利用长期参考帧来编码视频帧,提供了利用长期参考帧来编码的方式,更好地压缩数据,相同码率画质会更好,同时避免I DR帧数据过大而容易丢包和卡顿的问题。通过在长期参考帧反馈超过第三阈值时延长周期定时,可以避免参考帧缓存被快速填满。
实施例二
本发明实施例提供了一种利用长期参考帧的视频编码方法,参照图2所示,该方法包括:
201、获取视频帧。
具体的,获取视频帧包括通过摄像头获取视频帧。可选的,获取视频帧包括获取来自其他设备的视频帧或获取存储的视频帧。本发明实施例对此不加以限定。
202、判断是否满足周期定时;如果是,则执行步骤203。
具体的,周期定时可以按照真实时间计算,例如每10秒,也可以按照帧间隔来计算,例如每5帧。本发明实施例对周期定时的具体形式和长度不加以限定。
203、将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧。
具体的,将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧包括将所述视频帧添加到参考帧缓存中的长期参考帧缓存区并且将该长期参考帧对应的指示符设置为待生效。
具体的,该长期参考帧对应的指示符例如可以是1比特指示符,将该1比特指示符设置为0可以表示该长期参考帧为待生效,将该1比特指示符设置为1 可以表示该长期参考帧为生效。当然也可以将0表示为生效,将1表示为待生效。此外,本领域普通技术人员还能够想到其他的指示符,本发明实施例对指示符的方式不加以限定。
204、判断是否满足第二预设条件;如果是,则执行步骤205,如果否,则执行步骤206。
具体的,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。第二预设条件可以包括仅一个网络参数,此时第二阈值涉及一个网络参数阈值,例如,判断是否满足第二预设条件包括判断丢包率是否超过丢包率阈值,或者判断时延是否超过时延阈值,或者判断抖动率是否超过抖动率阈值。第二预设条件可以包括两个网络参数,此时第二阈值涉及两个网络参数阈值,例如,判断是否满足第二预设条件包括判断丢包率和时延是否分别超过丢包率阈值和时延阈值,或者判断丢包率和抖动率是否分别超过丢包率阈值和抖动率阈值,或者判断时延和抖动率是否分别超过时延阈值和抖动率阈值。第二预设条件可以包括三个网络参数,此时第二阈值涉及三个网络参数阈值,例如判断是否满足第二预设条件包括判断是否满足丢包率、时延和抖动率是否分别超过丢包率阈值、时延阈值和抖动率阈值。本发明实施例对丢包率阈值、时延阈值和抖动率阈值的具体数值不加以限定。
具体的,所述第二预设条件包括第二周期定时。第二周期定时可以按照真实时间计算,例如每30秒,也可以按照帧间隔来计算,例如每50帧。第二周期定时的周期可以长于步骤202中的周期定时。本发明实施例对第二周期定时的具体形式和长度不加以限定。
205、利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据。
可选的,利用参考帧缓存中标记为生效的长期参考帧对所述视频帧进行编码,生成编码数据包括:
利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
具体的,利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据包括:
从参考帧缓存中的长期参考帧缓存区获取所有生效的长期参考帧;
根据所有生效的长期参考帧和视频帧,确定视频帧的各个块对应的长期参考帧;以及
利用视频帧的各个块对应的长期参考帧编码视频帧的各个块,生成编码数据。
可选的,利用参考帧缓存中标记为生效的长期参考帧对所述视频帧进行编码,生成编码数据包括:
利用参考帧缓存中的一个生效长期参考帧对所述视频帧进行编码,生成编码数据。
206、利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据。
本发明实施例对于利用短期参考帧对视频帧进行编码不加以限定。
要说明的是,上面描述的步骤202-103与步骤204-206之间的顺序仅是示例。也可以先执行步骤204-206,再执行步骤202-203。或者,步骤204-206与步骤202-203可以并行执行。本发明实施例对此不加以限定。
207、判断所述视频帧是否被标记为待生效的长期参考帧;如果是,则执行步骤208。
具体的,判断所述视频帧是否被标记为待生效的长期参考帧包括判断参考帧缓存中的长期参考帧缓存区是否存在所述视频帧,如果存在,则判定是。
208、在所述编码数据中设置标示所述视频帧为长期参考帧的信息。
具体的,标示所述视频帧为长期参考帧的信息是编码数据中的1比特信息,例如二进制的1。在现有H.264标准中,编码数据中存在1比特的长期参考帧指示符,可以设置该1比特的长期参考帧指示符来向解码端表示该视频帧为长期参考帧。通过利用H.264标准中现有的长期参考帧指示符,可以兼容H.264标准。
209、向解码端发送所述编码数据。
210、接收来自所述解码端的长期参考帧反馈。
具体的,来自所述解码端的长期参考帧反馈包括长期参考帧的帧号。
211、将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
具体的,将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧包括:
获取长期参考帧反馈中包括的帧号;
确定该帧号在参考帧缓存的长期参考帧缓存区中对应的长期参考帧;以及
将该长期参考帧标记为生效。
具体的,将该长期参考帧标记为生效包括将该长期参考帧对应的指示符设置为生效。例如,该长期参考帧对应的指示符可以是1比特指示符,将该1比特指示符设置为1以将该长期参考帧标记为生效。当然,也可以定义为将1比特指示符设置为0以表示该长期参考帧生效。本领域普通技术人员还能够想到其他的指示符。本发明实施例对指示符的具体形式不加以限定。
可选的,该方法还包括:
检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
具体的,将所述周期定时延长包括将所述周期定时延长1倍。当然,本发明实施例对周期定时的延长程度不加以限定。
检测到长期参考帧反馈时延超过阈值表明网络延迟较长,如果维持原有的周期定时,那么缓存的长期参考帧将比较快速地填满参考帧缓存,通过延长周期定时,可以延缓长期参考帧的缓存速度,从而避免参考帧缓存被快速填满。
可选的,该方法还包括:
检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时,将周期定时修改为周期定时加上所述视频帧与先前的长期参考帧之差超过第一阈值,详情例如可以参照实施例三。通过在将视频帧缓存为长期参考帧时选择更严格的标准,可以延缓长期参考帧的缓存速度,从而避免参考帧缓存被快速填满。上述更严格的标准只是示例,本领域技术人员还能够想到其他标准,本发明实施例对此不加以限定。
本发明实施例提供一种利用长期参考帧的视频编码方法,通过在满足周期定时时将视频帧缓存并标记为待生效的长期参考帧,提供了一种周期确定长期参考帧的方式。通过在编码数据中设置标示视频帧为长期参考帧的信息,使得解码端能够了解该视频帧为长期参考帧,同时节省了资源以免利用额外的资源来向解码端传送该信息。通过在接收到来自解码端的长期参考帧反馈时才将对应的长期参考帧标记为生效,使得长期参考帧只有在解码端正确接收的情况下才用于编码,确保了利用长期参考帧的编码数据在解码端的正确解码。另外,通过在满足第二预设条件时利用长期参考帧来编码视频帧,提供了利用长期参考帧来编码的方式,更好地压缩数据,相同码率画质会更好,同时避免IDR帧数据过大而容易丢包和卡顿的问题。通过在长期参考帧反馈超过第三阈值时延长周期定时或者改为更严格的标准,可以避免参考帧缓存被快速填满。
实施例三
本发明实施例提供了一种利用长期参考帧的视频编码方法,参照图3所示,该方法包括:
301、获取视频帧。
具体的,获取视频帧包括通过摄像头获取视频帧。可选的,获取视频帧包括获取来自其他设备的视频帧或获取存储的视频帧。本发明实施例对此不加以限定。
302、判断是否满足周期定时和所述视频帧与先前的长期参考帧之差超过第一阈值;如果是,则执行步骤303。
具体的,周期定时可以按照真实时间计算,例如每10秒,也可以按照帧间隔来计算,例如每5帧。本发明实施例对周期定时的具体形式和长度不加以限定。
具体的,所述视频帧与先前的长期参考帧之差超过第一阈值包括:
所述视频帧与先前的长期参考帧之间的峰值信噪比PSNR小于预设阈值。
具体的,峰值信噪比
Figure BDA0000865102580000151
其 中,矩阵I和K分别是视频帧和先前的长期参考帧,它们的大小为m×n,MAXI是图像像素点的 最大数值,例如每个点采用8位表示,那么就是255。预设阈值例如可以是40。当然,本发明实 施例对预设阈值的大小不加以限定。
本领域技术人员还可以想到所述视频帧与先前的长期参考帧之差超过第一阈值的其他方式。本发明实施例对此不加以限定。
303、将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧。
具体的,将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧包括将所述视频帧添加到参考帧缓存中的长期参考帧缓存区并且将该长期参考帧对应的指示符设置为待生效。
具体的,该长期参考帧对应的指示符例如可以是1比特指示符,将该1比特指示符设置为0可以表示该长期参考帧为待生效,将该1比特指示符设置为1 可以表示该长期参考帧为生效。当然也可以将0表示为生效,将1表示为待生效。此外,本领域普通技术人员还能够想到其他的指示符,本发明实施例对指示符的方式不加以限定。
304、判断是否满足第二预设条件;如果是,则执行步骤305,如果否,则执行步骤306。
具体的,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。第二预设条件可以包括仅一个网络参数,此时第二阈值涉及一个网络参数阈值,例如,判断是否满足第二预设条件包括判断丢包率是否超过丢包率阈值,或者判断时延是否超过时延阈值,或者判断抖动率是否超过抖动率阈值。第二预设条件可以包括两个网络参数,此时第二阈值涉及两个网络参数阈值,例如,判断是否满足第二预设条件包括判断丢包率和时延是否分别超过丢包率阈值和时延阈值,或者判断丢包率和抖动率是否分别超过丢包率阈值和抖动率阈值,或者判断时延和抖动率是否分别超过时延阈值和抖动率阈值。第二预设条件可以包括三个网络参数,此时第二阈值涉及三个网络参数阈值,例如判断是否满足第二预设条件包括判断是否满足丢包率、时延和抖动率是否分别超过丢包率阈值、时延阈值和抖动率阈值。本发明实施例对丢包率阈值、时延阈值和抖动率阈值的具体数值不加以限定。
具体的,所述第二预设条件包括第二周期定时。第二周期定时可以按照真实时间计算,例如每30秒,也可以按照帧间隔来计算,例如每50帧。第二周期定时的周期可以长于步骤302中的周期定时。本发明实施例对第二周期定时的具体形式和长度不加以限定。
305、利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据。
可选的,利用参考帧缓存中标记为生效的长期参考帧对所述视频帧进行编码,生成编码数据包括:
利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
具体的,利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据包括:
从参考帧缓存中的长期参考帧缓存区获取所有生效的长期参考帧;
根据所有生效的长期参考帧和视频帧,确定视频帧的各个块对应的长期参考帧;以及
利用视频帧的各个块对应的长期参考帧编码视频帧的各个块,生成编码数据。
可选的,利用参考帧缓存中标记为生效的长期参考帧对所述视频帧进行编码,生成编码数据包括:
利用参考帧缓存中的一个生效长期参考帧对所述视频帧进行编码,生成编码数据。
306、利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据。
本发明实施例对于利用短期参考帧对视频帧进行编码不加以限定。
要说明的是,上面描述的步骤302-303与步骤304-306之间的顺序仅是示例。也可以先执行步骤304-306,再执行步骤302-303。或者,步骤304-306与步骤302-303可以并行执行。本发明实施例对此不加以限定。
307、判断所述视频帧是否被标记为待生效的长期参考帧;如果是,则执行步骤308。
具体的,判断所述视频帧是否被标记为待生效的长期参考帧包括判断参考帧缓存中的长期参考帧缓存区是否存在所述视频帧,如果存在,则判定是。
308、在所述编码数据中设置标示所述视频帧为长期参考帧的信息。
具体的,标示所述视频帧为长期参考帧的信息是编码数据中的1比特信息,例如二进制的1。在现有H.264标准中,编码数据中存在1比特的长期参考帧指示符,可以设置该1比特的长期参考帧指示符来向解码端表示该视频帧为长期参考帧。通过利用H.264标准中现有的长期参考帧指示符,可以兼容H.264标准。
309、向解码端发送所述编码数据。
310、接收来自所述解码端的长期参考帧反馈。
具体的,来自所述解码端的长期参考帧反馈包括长期参考帧的帧号。
311、将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
具体的,将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧包括:
获取长期参考帧反馈中包括的帧号;
确定该帧号在参考帧缓存的长期参考帧缓存区中对应的长期参考帧;以及
将该长期参考帧标记为生效。
具体的,将该长期参考帧标记为生效包括将该长期参考帧对应的指示符设置为生效。例如,该长期参考帧对应的指示符可以是1比特指示符,将该1比特指示符设置为1以将该长期参考帧标记为生效。当然,也可以定义为将1比特指示符设置为0以表示该长期参考帧生效。本领域普通技术人员还能够想到其他的指示符。本发明实施例对指示符的具体形式不加以限定。
可选的,该方法还包括:
检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
具体的,将所述周期定时延长包括将所述周期定时延长1倍。当然,本发明实施例对周期定时的延长程度不加以限定。
检测到长期参考帧反馈时延超过阈值表明网络延迟较长,如果维持原有的周期定时,那么缓存的长期参考帧将比较快速地填满参考帧缓存,通过延长周期定时,可以延缓长期参考帧的缓存速度,从而避免参考帧缓存被快速填满。
本发明实施例提供一种利用长期参考帧的视频编码方法,通过在满足周期定时时将视频帧缓存并标记为待生效的长期参考帧,提供了一种周期确定长期参考帧的方式。通过在编码数据中设置标示视频帧为长期参考帧的信息,使得解码端能够了解该视频帧为长期参考帧,同时节省了资源以免利用额外的资源来向解码端传送该信息。通过在接收到来自解码端的长期参考帧反馈时才将对应的长期参考帧标记为生效,使得长期参考帧只有在解码端正确接收的情况下才用于编码,确保了利用长期参考帧的编码数据在解码端的正确解码。另外,通过在满足第二预设条件时利用长期参考帧来编码视频帧,提供了利用长期参考帧来编码的方式,更好地压缩数据,相同码率画质会更好,同时避免IDR帧数据过大而容易丢包和卡顿的问题。通过在长期参考帧反馈超过第三阈值时延长周期定时,可以避免参考帧缓存被快速填满。
实施例四
本发明实施例提供了一种视频编码设备,如图4所示,该视频编码设备包括:
获取模块401,用于获取视频帧;
第一判断模块402,用于判断是否满足第一预设条件;
参考帧管理模块403,用于如果所述第一判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
第二判断模块404,用于判断是否满足第二预设条件;
编码模块405,用于如果所述第二判断模块判定是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
所述编码模块405,还用于如果所述第二判断模块判定否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
第三判断模块406,用于判断所述视频帧是否被标记为待生效的长期参考帧;
标示模块407,用于如果所述第三判断模块判定是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
发送模块408,用于向视频解码设备发送所述编码数据;
接收模块409,用于接收来自所述视频解码设备的长期参考帧反馈;以及
所述参考帧管理模块403,还用于将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
具体的,获取模块401,用于通过摄像头获取视频帧。可选的,获取模块 401,用于获取来自其他设备的视频帧或获取存储的视频帧。本发明实施例对此不加以限定。
具体的,第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差 超过第一阈值。周期定时可以按照真实时间计算,例如每10秒,也可以按照帧间隔来计算, 例如每5帧。本发明实施例对周期定时的具体形式和长度不加以限定。所述视频帧与先前的 长期参考帧之差超过第一阈值包括:所述视频帧与先前的长期参考帧之间的峰值信噪比 PSNR小于预设阈值。具体的,峰值信噪比
Figure BDA0000865102580000201
其中,矩阵I和K分别是视频帧和先前的长期参考帧,它们的大小为m×n,MAXI是图像像素点 的最大数值,例如每个点采用8位表示,那么就是255。预设阈值例如可以是40。当然,本发明 实施例对预设阈值的大小不加以限定。本领域技术人员还可以想到所述视频帧与先前的长 期参考帧之差超过第一阈值的其他方式。本发明实施例对此不加以限定。
具体的,参考帧管理模块403用于将所述视频帧添加到参考帧缓存中的长期参考帧缓存区并且将该长期参考帧对应的指示符设置为待生效。该长期参考帧对应的指示符例如可以是1比特指示符,将该1比特指示符设置为0可以表示该长期参考帧为待生效,将该1比特指示符设置为1可以表示该长期参考帧为生效。当然也可以将0表示为生效,将1表示为待生效。此外,本领域普通技术人员还能够想到其他的指示符,本发明实施例对指示符的方式不加以限定。
可选的,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。第二预设条件可以包括仅一个网络参数,此时第二阈值涉及一个网络参数阈值,例如,判断是否满足第二预设条件包括判断丢包率是否超过丢包率阈值,或者判断时延是否超过时延阈值,或者判断抖动率是否超过抖动率阈值。第二预设条件可以包括两个网络参数,此时第二阈值涉及两个网络参数阈值,例如,判断是否满足第二预设条件包括判断丢包率和时延是否分别超过丢包率阈值和时延阈值,或者判断丢包率和抖动率是否分别超过丢包率阈值和抖动率阈值,或者判断时延和抖动率是否分别超过时延阈值和抖动率阈值。第二预设条件可以包括三个网络参数,此时第二阈值涉及三个网络参数阈值,例如判断是否满足第二预设条件包括判断是否满足丢包率、时延和抖动率是否分别超过丢包率阈值、时延阈值和抖动率阈值。本发明实施例对丢包率阈值、时延阈值和抖动率阈值的具体数值不加以限定。
可选的,所述第二预设条件包括第二周期定时。第二周期定时可以按照真实时间计算,例如每30秒,也可以按照帧间隔来计算,例如每50帧。第二周期定时的周期可以长于上述周期定时。本发明实施例对第二周期定时的具体形式和长度不加以限定。
可选的,编码模块405,用于如果所述第二判断模块判定是,则利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。具体的,编码模块405,用于如果所述第二判断模块判定是,则:从参考帧缓存中的长期参考帧缓存区获取所有生效的长期参考帧;根据所有生效的长期参考帧和视频帧,确定视频帧的各个块对应的长期参考帧;以及利用视频帧的各个块对应的长期参考帧编码视频帧的各个块,生成编码数据。
可选的,编码模块405,用于如果所述第二判断模块判定是,则利用参考帧缓存中的一个生效长期参考帧对所述视频帧进行编码,生成编码数据。
具体的,标示所述视频帧为长期参考帧的信息是编码数据中的1比特信息,例如二进制的1。在现有H.264标准中,编码数据中存在1比特的长期参考帧指示符,可以设置该1比特的长期参考帧指示符来向视频解码设备表示该视频帧为长期参考帧。通过利用H.264标准中现有的长期参考帧指示符,可以兼容H.264 标准。
具体的,来自所述视频解码设备的长期参考帧反馈包括长期参考帧的帧号。
具体的,所述参考帧管理模块403用于:
获取长期参考帧反馈中包括的帧号;
确定该帧号在参考帧缓存的长期参考帧缓存区中对应的长期参考帧;以及
将该长期参考帧标记为生效。
具体的,所述参考帧管理模块403用于将该长期参考帧对应的指示符设置为生效。例如,该长期参考帧对应的指示符可以是1比特指示符,将该1比特指示符设置为1以将该长期参考帧标记为生效。当然,也可以定义为将1比特指示符设置为0以表示该长期参考帧生效。本领域普通技术人员还能够想到其他的指示符。本发明实施例对指示符的具体形式不加以限定。
可选的,该视频编码设备还包括:
检测模块,用于检测来自所述视频解码设备的长期参考帧反馈的时延是否超过第三阈值,
周期定时延长模块,用于所述检测模块检测到来自所述视频解码设备的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
具体的,周期定时延长模块用于将所述周期定时延长1倍。当然,本发明实施例对周期定时的延长程度不加以限定。
检测到长期参考帧反馈时延超过阈值表明网络延迟较长,如果维持原有的周期定时,那么缓存的长期参考帧将比较快速地填满参考帧缓存,通过延长周期定时,可以延缓长期参考帧的缓存速度,从而避免参考帧缓存被快速填满。
本发明实施例提供一种视频编码设备,通过在满足周期定时时将视频帧缓存并标记为待生效的长期参考帧,提供了一种周期确定长期参考帧的方式。通过在编码数据中设置标示视频帧为长期参考帧的信息,使得视频解码设备能够了解该视频帧为长期参考帧,同时节省了资源以免利用额外的资源来向视频解码设备传送该信息。通过在接收到来自视频解码设备的长期参考帧反馈时才将对应的长期参考帧标记为生效,使得长期参考帧只有在视频解码设备正确接收的情况下才用于编码,确保了利用长期参考帧的编码数据在视频解码设备的正确解码。另外,通过在满足第二预设条件时利用长期参考帧来编码视频帧,提供了利用长期参考帧来编码的方式,更好地压缩数据,相同码率画质会更好,同时避免I DR帧数据过大而容易丢包和卡顿的问题。通过在长期参考帧反馈超过第三阈值时延长周期定时,可以避免参考帧缓存被快速填满。
实施例五
本发明实施例提供了一种电子设备,参照图5所示,该电子设备包括存储器501、发送/接收模块502以及与存储器501、发送/接收模块502耦合的处理器503。存储器501用于存储一组程序代码,处理器503调用存储器501所存储的程序代码用于执行以下操作:
获取视频帧;
判断是否满足第一预设条件;
如果是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
判断是否满足第二预设条件;
如果是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
如果否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
判断所述视频帧是否被标记为待生效的长期参考帧;
如果是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
向解码端发送所述编码数据;
接收来自所述解码端的长期参考帧反馈;以及
将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
可选的,处理器503调用存储器501所存储的程序代码用于执行以下操作:
通过摄像头获取视频帧。可选的,处理器503调用存储器501所存储的程序代码用于执行以下操作:获取来自其他设备的视频帧或获取存储的视频帧。本发明实施例对此不加以限定。
可选的,所述第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值。
可选的,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。
可选的,处理器503调用存储器501所存储的程序代码用于执行以下操作:
检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
可选的,处理器503调用存储器501所存储的程序代码用于执行以下操作:
利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
本发明实施例提供一种电子设备,通过在满足第一预设条件时将视频帧缓存并标记为待生效的长期参考帧,提供了一种确定长期参考帧的方式。通过在编码数据中设置标示视频帧为长期参考帧的信息,使得解码端能够了解该视频帧为长期参考帧,同时节省了资源以免利用额外的资源来向解码端传送该信息。通过在接收到来自解码端的长期参考帧反馈时才将对应的长期参考帧标记为生效,使得长期参考帧只有在解码端正确接收的情况下才用于编码,确保了利用长期参考帧的编码数据在解码端的正确解码。另外,通过在满足第二预设条件时利用长期参考帧来编码视频帧,提供了利用长期参考帧来编码的方式,更好地压缩数据,相同码率画质会更好,同时避免I DR帧数据过大而容易丢包和卡顿的问题。通过在检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时延长周期定时,避免了参考帧缓存被快速填满。
实施例六
本发明实施例提供了一种系统,参照图6所示,该系统包括视频编码设备 61和视频解码设备62,其中,视频编码设备61包括:获取模块601,用于获取视频帧;第一判断模块602,用于判断是否满足第一预设条件;参考帧管理模块 603,用于如果所述第一判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;第二判断模块604,用于判断是否满足第二预设条件;编码模块605,用于如果所述第二判断模块判定是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;所述编码模块605,还用于如果所述第二判断模块判定否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;第三判断模块606,用于判断所述视频帧是否被标记为待生效的长期参考帧;标示模块607,用于如果所述第三判断模块判定是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;发送模块608,用于向视频解码设备发送所述编码数据;第一接收模块609,用于接收来自所述视频解码设备的长期参考帧反馈;以及所述参考帧管理模块603,还用于将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。视频解码设备62包括:第二接收模块610,用于接收所述编码数据;解码模块611,用于将所述编码数据解码,获取视频帧;第四判断模块612,用于判断所述编码数据中是否设置标示所述视频帧为长期参考帧的信息并且所述解码是否正确;第二参考帧管理模块613,用于如果所述第四判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为长期参考帧;反馈模块614,用于在所述第二参考帧管理模块将所述视频帧添加到参考帧缓存中并标记为长期参考帧之后,向所述视频编码设备发送长期参考帧反馈。
具体的,获取模块601,用于通过摄像头获取视频帧。可选的,获取模块 601,用于获取来自其他设备的视频帧或获取存储的视频帧。本发明实施例对此不加以限定。
具体的,第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差 超过第一阈值。周期定时可以按照真实时间计算,例如每10秒,也可以按照帧间隔来计算, 例如每5帧。本发明实施例对周期定时的具体形式和长度不加以限定。所述视频帧与先前的 长期参考帧之差超过第一阈值包括:所述视频帧与先前的长期参考帧之间的峰值信噪比 PSNR小于预设阈值。具体的,峰值信噪比
Figure BDA0000865102580000261
其 中,矩阵I和K分别是视频帧和先前的长期参考帧,它们的大小为m×n,MAXI是图像像素点的 最大数值,例如每个点采用8位表示,那么就是255。预设阈值例如可以是40。当然,本发明实 施例对预设阈值的大小不加以限定。本领域技术人员还可以想到所述视频帧与先前的长期 参考帧之差超过第一阈值的其他方式。本发明实施例对此不加以限定。
具体的,第一参考帧管理模块603用于将所述视频帧添加到参考帧缓存中的长期参考帧缓存区并且将该长期参考帧对应的指示符设置为待生效。该长期参考帧对应的指示符例如可以是1比特指示符,将该1比特指示符设置为0可以表示该长期参考帧为待生效,将该1比特指示符设置为1可以表示该长期参考帧为生效。当然也可以将0表示为生效,将1表示为待生效。此外,本领域普通技术人员还能够想到其他的指示符,本发明实施例对指示符的方式不加以限定。
可选的,所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。第二预设条件可以包括仅一个网络参数,此时第二阈值涉及一个网络参数阈值,例如,判断是否满足第二预设条件包括判断丢包率是否超过丢包率阈值,或者判断时延是否超过时延阈值,或者判断抖动率是否超过抖动率阈值。第二预设条件可以包括两个网络参数,此时第二阈值涉及两个网络参数阈值,例如,判断是否满足第二预设条件包括判断丢包率和时延是否分别超过丢包率阈值和时延阈值,或者判断丢包率和抖动率是否分别超过丢包率阈值和抖动率阈值,或者判断时延和抖动率是否分别超过时延阈值和抖动率阈值。第二预设条件可以包括三个网络参数,此时第二阈值涉及三个网络参数阈值,例如判断是否满足第二预设条件包括判断是否满足丢包率、时延和抖动率是否分别超过丢包率阈值、时延阈值和抖动率阈值。本发明实施例对丢包率阈值、时延阈值和抖动率阈值的具体数值不加以限定。
可选的,所述第二预设条件包括第二周期定时。第二周期定时可以按照真实时间计算,例如每30秒,也可以按照帧间隔来计算,例如每50帧。第二周期定时的周期可以长于上述周期定时。本发明实施例对第二周期定时的具体形式和长度不加以限定。
可选的,编码模块605,用于如果所述第二判断模块判定是,则利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。具体的,编码模块605,用于如果所述第二判断模块判定是,则:从参考帧缓存中的长期参考帧缓存区获取所有生效的长期参考帧;根据所有生效的长期参考帧和视频帧,确定视频帧的各个块对应的长期参考帧;以及利用视频帧的各个块对应的长期参考帧编码视频帧的各个块,生成编码数据。
可选的,编码模块605,用于如果所述第二判断模块判定是,则利用参考帧缓存中的一个生效长期参考帧对所述视频帧进行编码,生成编码数据。
具体的,解码模块611用于根据所述编码数据中指示的参考帧,从参考帧缓存中获取该参考帧,利用该参考帧将所述编码数据解码,获取视频帧。所述编码数据中指示的参考帧可以是短期参考帧或者长期参考帧。如果指示的是短期参考帧,则从参考帧缓存中获取对应的短期参考帧,如果指示的是长期参考帧,则从参考帧缓存中获取对应的长期参考帧。所述编码数据中指示的参考帧可以是多个长期参考帧,在此情况下,从参考帧缓存中获取对应的多个长期参考帧,并利用所述多个长期参考帧对编码数据进行解码,获取视频帧。
具体的,标示所述视频帧为长期参考帧的信息是编码数据中的1比特信息,例如二进制的1。在现有H.264标准中,编码数据中存在1比特的长期参考帧指示符,可以设置该1比特的长期参考帧指示符来向视频解码设备表示该视频帧为长期参考帧。通过利用H.264标准中现有的长期参考帧指示符,可以兼容H.264 标准。
具体的,长期参考帧反馈包括长期参考帧的帧号。
具体的,所述第一参考帧管理模块603用于:
获取长期参考帧反馈中包括的帧号;
确定该帧号在参考帧缓存的长期参考帧缓存区中对应的长期参考帧;以及
将该长期参考帧标记为生效。
具体的,所述第一参考帧管理模块603用于将该长期参考帧对应的指示符设置为生效。例如,该长期参考帧对应的指示符可以是1比特指示符,将该1 比特指示符设置为1以将该长期参考帧标记为生效。当然,也可以定义为将1 比特指示符设置为0以表示该长期参考帧生效。本领域普通技术人员还能够想到其他的指示符。本发明实施例对指示符的具体形式不加以限定。
可选的,视频编码设备还包括:
检测模块,用于检测来自所述视频解码设备的长期参考帧反馈的时延是否超过第三阈值,
周期定时延长模块,用于所述检测模块检测到来自所述视频解码设备的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
具体的,周期定时延长模块用于将所述周期定时延长1倍。当然,本发明实施例对周期定时的延长程度不加以限定。
检测到长期参考帧反馈时延超过阈值表明网络延迟较长,如果维持原有的周期定时,那么缓存的长期参考帧将比较快速地填满参考帧缓存,通过延长周期定时,可以延缓长期参考帧的缓存速度,从而避免参考帧缓存被快速填满。
本发明实施例提供一种视频编解码系统,通过在满足周期定时时将视频帧缓存并标记为待生效的长期参考帧,提供了一种周期确定长期参考帧的方式。通过在编码数据中设置标示视频帧为长期参考帧的信息,使得视频解码设备能够了解该视频帧为长期参考帧,同时节省了资源以免利用额外的资源来向视频解码设备传送该信息。通过在接收到来自视频解码设备的长期参考帧反馈时才将对应的长期参考帧标记为生效,使得长期参考帧只有在视频解码设备正确接收的情况下才用于编码,确保了利用长期参考帧的编码数据在视频解码设备的正确解码。另外,通过在满足第二预设条件时利用长期参考帧来编码视频帧,提供了利用长期参考帧来编码的方式,更好地压缩数据,相同码率画质会更好,同时避免IDR帧数据过大而容易丢包和卡顿的问题。通过在来自所述视频解码设备的长期参考帧反馈的时延超过第三阈值时,延长周期定时,可以避免参考帧缓存被快速填满。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
需要说明的是:上述实施例提供的设备在执行利用长期参考帧的视频编码方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的设备与利用长期参考帧的视频编码方法属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种利用长期参考帧的视频编码方法,其特征在于,所述方法包括:
获取视频帧;
判断是否满足第一预设条件,所述第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值;
如果是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
判断是否满足第二预设条件;
如果是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
如果否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
判断所述视频帧是否被标记为待生效的长期参考帧;
如果是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
向解码端发送所述编码数据;
接收来自所述解码端的长期参考帧反馈;以及
将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
2.根据权利要求1所述的方法,其特征在于,
所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测到来自所述解码端的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
4.根据权利要求1所述的方法,其特征在于,所述利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据包括:
利用参考帧缓存中的多个生效长期参考帧对所述视频帧进行编码,生成编码数据。
5.一种视频编码设备,其特征在于,所述视频编码设备包括:
获取模块,用于获取视频帧;
第一判断模块,用于判断是否满足第一预设条件,所述第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值;
参考帧管理模块,用于如果所述第一判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
第二判断模块,用于判断是否满足第二预设条件;
编码模块,用于如果所述第二判断模块判定是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
所述编码模块,还用于如果所述第二判断模块判定否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
第三判断模块,用于判断所述视频帧是否被标记为待生效的长期参考帧;
标示模块,用于如果所述第三判断模块判定是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
发送模块,用于向视频解码设备发送所述编码数据;
接收模块,用于接收来自所述视频解码设备的长期参考帧反馈;以及
所述参考帧管理模块,还用于将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧。
6.根据权利要求5所述的设备,其特征在于,
所述第二预设条件包括丢包率、时延和抖动率中的至少一个超过第二阈值。
7.根据权利要求5所述的设备,其特征在于,所述设备还包括:
检测模块,用于检测来自所述视频解码设备的长期参考帧反馈的时延是否超过第三阈值,
周期定时延长模块,用于所述检测模块检测到来自所述视频解码设备的长期参考帧反馈的时延超过第三阈值时,将所述周期定时延长。
8.一种视频编解码系统,其特征在于,所述系统包括视频编码设备和视频解码设备,其中,
所述视频编码设备包括:
获取模块,用于获取视频帧;
第一判断模块,用于判断是否满足第一预设条件,所述第一预设条件包括周期定时和/或所述视频帧与先前的长期参考帧之差超过第一阈值;
第一参考帧管理模块,用于如果所述第一判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为待生效的长期参考帧;
第二判断模块,用于判断是否满足第二预设条件;
编码模块,用于如果所述第二判断模块判定是,则利用参考帧缓存中的生效长期参考帧对所述视频帧进行编码,生成编码数据;
所述编码模块,还用于如果所述第二判断模块判定否,则利用参考帧缓存中的短期参考帧对所述视频帧进行编码,生成编码数据;
第三判断模块,用于判断所述视频帧是否被标记为待生效的长期参考帧;
标示模块,用于如果所述第三判断模块判定是,则在所述编码数据中设置标示所述视频帧为长期参考帧的信息;
发送模块,用于向所述视频解码设备发送所述编码数据;
第一接收模块,用于接收来自所述视频解码设备的长期参考帧反馈;以及
所述第一参考帧管理模块,还用于将所述长期参考帧反馈针对的待生效的长期参考帧标记为生效的长期参考帧;
所述视频解码设备包括:
第二接收模块,用于接收所述编码数据;
解码模块,用于将所述编码数据解码,获取视频帧;
第四判断模块,用于判断所述编码数据中是否设置标示所述视频帧为长期参考帧的信息并且所述解码是否正确;
第二参考帧管理模块,用于如果所述第四判断模块判定是,则将所述视频帧添加到参考帧缓存中并标记为长期参考帧;
反馈模块,用于在所述第二参考帧管理模块将所述视频帧添加到参考帧缓存中并标记为长期参考帧之后,向所述视频编码设备发送长期参考帧反馈。
CN201510874697.XA 2015-12-02 2015-12-02 一种利用长期参考帧的视频编码方法、电子设备和系统 Active CN106817585B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510874697.XA CN106817585B (zh) 2015-12-02 2015-12-02 一种利用长期参考帧的视频编码方法、电子设备和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510874697.XA CN106817585B (zh) 2015-12-02 2015-12-02 一种利用长期参考帧的视频编码方法、电子设备和系统

Publications (2)

Publication Number Publication Date
CN106817585A CN106817585A (zh) 2017-06-09
CN106817585B true CN106817585B (zh) 2020-05-01

Family

ID=59106375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510874697.XA Active CN106817585B (zh) 2015-12-02 2015-12-02 一种利用长期参考帧的视频编码方法、电子设备和系统

Country Status (1)

Country Link
CN (1) CN106817585B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109089119B (zh) 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
CN112532908B (zh) * 2019-09-19 2022-07-19 华为技术有限公司 视频图像的传输方法、发送设备、视频通话方法和设备
CN112291566A (zh) * 2020-06-19 2021-01-29 珠海市杰理科技股份有限公司 H.264视频编码方法、装置、芯片、存储设备及电子设备
CN112995685B (zh) * 2021-02-05 2023-02-17 杭州网易智企科技有限公司 数据发送方法及装置、数据接收方法及装置、介质、设备
CN113573063A (zh) * 2021-06-16 2021-10-29 百果园技术(新加坡)有限公司 视频编解码方法及装置
CN114567799B (zh) * 2022-02-23 2024-04-05 杭州网易智企科技有限公司 视频流数据的传输方法、装置、存储介质及电子设备
CN115914228B (zh) * 2022-11-18 2024-02-23 腾讯科技(深圳)有限公司 一种数据处理方法、装置、存储介质及计算机程序产品
CN116684610A (zh) * 2023-05-17 2023-09-01 北京百度网讯科技有限公司 确定长期参考帧的参考状态的方法、装置及电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103650509A (zh) * 2011-07-01 2014-03-19 苹果公司 基于照相机和背景运动的参考帧缓冲区的自适应配置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4978575B2 (ja) * 2008-06-25 2012-07-18 富士通株式会社 シンクライアントシステムにおける画像符号化方法及び画像符号化プログラム
CN102045557B (zh) * 2009-10-20 2012-09-19 鸿富锦精密工业(深圳)有限公司 视频编解码方法及使用其的视频编码、解码装置
EP2750387B1 (en) * 2011-09-22 2019-06-19 LG Electronics Inc. Video decoding method and video decoding apparatus
US9420307B2 (en) * 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
CN104602019A (zh) * 2014-12-31 2015-05-06 乐视网信息技术(北京)股份有限公司 一种视频编码方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103650509A (zh) * 2011-07-01 2014-03-19 苹果公司 基于照相机和背景运动的参考帧缓冲区的自适应配置

Also Published As

Publication number Publication date
CN106817585A (zh) 2017-06-09

Similar Documents

Publication Publication Date Title
CN106817585B (zh) 一种利用长期参考帧的视频编码方法、电子设备和系统
WO2017157303A1 (zh) 实时通信中的抗丢包方法、装置和系统
EP2888844B1 (en) Device and method for adaptive rate multimedia communications on a wireless network
US10547851B2 (en) Method for decoding at picture and slice layer according to a constrained loop filter control flag
US9781474B2 (en) Content playback information estimation apparatus and method and program
US20110249729A1 (en) Error resilient hierarchical long term reference frames
JP2017525248A5 (zh)
EP2888845B1 (en) Device and method for adaptive rate multimedia communications on a wireless network
CN108141581B (zh) 视频编码
CN101742289B (zh) 视频码流压缩方法、系统及装置
US20160142330A1 (en) Effective intra-frame refresh in multimedia communications over packet networks
CN108924574B (zh) 录播系统中的丢包处理方法、装置、设备及存储介质
CN110996035B (zh) 信息发送方法及装置
CN103650502A (zh) 用于参考画面管理的编码器、解码器及其方法
CN110876066A (zh) 一种自适应前向纠错方法、装置、介质和设备
CN106330713B (zh) 一种报文传输方法及装置
US20120106632A1 (en) Method and apparatus for error resilient long term referencing block refresh
CN107801049A (zh) 一种实时视频传送、播放方法及装置
CN107566795A (zh) 一种提高实时画面流畅度的方法、装置及系统
US20170347112A1 (en) Bit Stream Switching In Lossy Network
CN117336534A (zh) 数据传输方法、装置、电子设备及存储介质
US20080069202A1 (en) Video Encoding Method and Device
CN106937168B (zh) 一种利用长期参考帧的视频编码方法、电子设备及系统
EP3145187B1 (en) Method and apparatus for response of feedback information during video call
US7079582B2 (en) Image coding apparatus and image coding method

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
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 200063, Shanghai, Putuo District, home on the first floor of the cross road, No. 28

Patentee after: Palmwin Information Technology (Shanghai) Co.,Ltd.

Address before: 200063, Shanghai, Putuo District, 515 home road, room 28

Patentee before: Palmwin Information Technology (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200709

Address after: 603a, block a, Xinghe world, No.1 Yabao Road, Longgang District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Weiwu Technology Co.,Ltd.

Address before: 200063, Shanghai, Putuo District, home on the first floor of the cross road, No. 28

Patentee before: Palmwin Information Technology (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210201

Address after: 518051 2503, building 15, Longhai homeland, 5246 Yihai Avenue, baonanshan District, Shenzhen City, Guangdong Province

Patentee after: Xiao Feng

Address before: 603a, block a, Xinghe world, No.1, Yabao Road, Longgang District, Shenzhen, Guangdong 518035

Patentee before: Shenzhen Weiwu Technology Co.,Ltd.