发明内容
基于此,有必要提供一种更优的视频编码中关键帧的插入方法。
一种视频编码中关键帧的插入方法,包括以下步骤:
采集编码图像数据;
计算所述编码图像数据中的当前帧的评价参数,进而计算当前帧的所述评价参数的差值和当前帧的所述评价参数的差值的累计之和;所述当前帧的所述评价参数的差值为当前帧的所述评价参数与前一帧的所述评价参数之差;
判断当前帧的所述评价参数的差值或所述评价参数的差值的累计之和是否满足预设条件,若是,则将当前帧设为关键帧;若否,则将当前帧设为非关键帧,并返回所述计算所述编码图像数据中的当前帧的评价参数,进而计算当前帧的所述评价参数的差值和当前帧的所述评价参数的差值的累计之和步骤,直至编码结束。
在其中一个实施例中,所述评价参数包括采集所述编码图像数据的装置的曝光指数和白平衡增益。
在其中一个实施例中,通过计算公式AEL=k*F(AG)*DG*EXPTIME计算当前帧的曝光指数;
其中,AEL为曝光指数,k为预设权重系数,F(AG)为采集所述编码图像数据的装置的模拟增益的影响因子,DG为采集所述编码图像数据的装置采集当前帧时的数字增益,EXPTIME为采集所述编码图像数据的装置采集当前帧时的曝光时间;
通过以下计算公式计算当前帧的白平衡增益:
WBG=│256-G_SUM*256/R_SUM│+│256-G_SUM*256/B_SUM│
其中,WBG为白平衡增益,R_SUM为当前帧各个像素点上R通道的值的总和,G_SUM为当前帧各个像素点上G通道的值的总和,B_SUM为当前帧各个像素点上B通道的值的总和。
在其中一个实施例中,所述判断当前帧的曝光指数的差值、白平衡增益的差值、曝光指数的差值的累计之和或白平衡增益的差值的累计之和是否满足预设条件的方法为:
判断AELD(i)>AELD_MAX和
AELD_SUM>AELD_TH和
WBGD(i)>WBGD_MAX和
WBGD_SUM>WBGD_TH中是否至少一个成立,若是,则满足预设条件;
其中,i为大于等于0的整数,AELD(i)为当前帧的曝光指数的差值,AELD_SUM为从上一关键帧的下一帧开始,截止到当前帧的各帧的曝光指数的差值的累计之和,WBGD(i)为当前帧的白平衡增益的差值,WBGD_SUM为从上一关键帧的后一帧开始,截止到当前帧的各帧的白平衡增益的差值的累计之和,AELD_MAX、AELD_TH、WBGD_MAX和WBGD_TH均为预设的阈值,且
若AELD(i)>AELD_MAX和AELD_SUM>AELD_TH和WBGD(i)>WBGD_MAX和WBGD_SUM>WBGD_TH均不成立,则i加1;否则,i清零,AELD_SUM清零,WBGD_SUM清零。
在其中一个实施例中,在计算所述编码图像数据中的当前帧的评价参数,以及当前帧的所述评价参数的差值步骤之前,所述视频编码中关键帧的插入方法还包括:将所述编码图像数据的第一帧设为关键帧。
本发明还提供了一种视频编码中关键帧的插入装置,包括数据采集模块、评价参数计算模块和关键帧设定模块;
所述数据采集模块,被配置以采集编码图像数据;
所述评价参数计算模块,被配置以根据预存的计算公式计算所述编码图像数据中的当前帧的评价参数,进而计算当前帧的所述评价参数的差值和当前帧的所述评价参数的差值的累计之和;所述当前帧的所述评价参数的差值为当前帧的所述评价参数与前一帧的所述评价参数之差;
所述关键帧设定模块,被配置以判断当前帧的所述评价参数的差值或所述评价参数的差值的累计之和是否满足预设条件,若是,则将当前帧设为关键帧;若否,则将当前帧设为非关键帧,并判定所述评价参数计算模块计算出的下一帧的所述评价参数的差值或所述评价参数的差值的累计之和是否满足预设条件,直至编码结束。
在其中一个实施例中,所述评价参数包括所述数据采集模块的曝光指数和白平衡增益。
在其中一个实施例中,所述评价参数计算模块通过所述预存的计算公式中的AEL=k*F(AG)*DG*EXPTIME计算当前帧的曝光指数;
其中,AEL为曝光指数,k为预设权重系数,F(AG)为所述数据采集模块的模拟增益的影响因子,DG为所述数据采集模块采集当前帧时的数字增益,EXPTIME为所述数据采集模块采集当前帧时的曝光时间;
所述评价参数计算模块通过所述预存的计算公式中的以下计算公式计算当前帧的白平衡增益:
WBG=│256-G_SUM*256/R_SUM│+│256-G_SUM*256/B_SUM│
其中,WBG为白平衡增益,R_SUM为当前帧各个像素点上R通道的值的总和,G_SUM为当前帧各个像素点上G通道的值的总和,B_SUM为当前帧各个像素点上B通道的值的总和。
在其中一个实施例中,所述关键帧设定模块判断当前帧的曝光指数差值、白平衡增益差值、曝光指数差值的累计之和或白平衡增益差值的累计之和是否满足预设条件的方法为:
判断AELD(i)>AELD_MAX和
AELD_SUM>AELD_TH和
WBGD(i)>WBGD_MAX和
WBGD_SUM>WBGD_TH中是否至少一个成立,若是,则满足预设条件;
其中,i为大于等于0的整数,AELD(i)为当前帧的曝光指数的差值,AELD_SUM为从上一关键帧的下一帧开始,截止到当前帧的各帧的曝光指数的差值的累计之和,WBGD(i)当前帧的白平衡增益的差值,WBGD_SUM为从上一关键帧的下一帧开始,截止到当前帧的各帧的白平衡增益的差值的累计之和,AELD_MAX、AELD_TH、WBGD_MAX和WBGD_TH均为预设的阈值,且
若AELD(i)>AELD_MAX或AELD_SUM>AELD_TH或WBGD(i)>WBGD_MAX或WBGD_SUM>WBGD_TH均不成立,则i加1;否则,i清零,AELD_SUM清零,WBGD_SUM清零。
在其中一个实施例中,所述关键帧设定模块还被配置以将所述数据采集模块采集的所述编码图像数据的第一帧设为关键帧。
在其中一个实施例中,所述数据采集模块为视频采集设备,所述评价参数计算模块为数字信号处理器,所述关键帧设定模块为视频图像压缩设备。
上述视频编码中关键帧的插入方法和装置,通过设定评价参数的差值及评价参数的差值的累计之和需满足的预设条件,将评价参数作为评价当前帧是否为关键帧的依据,在对较静止的图像编码时不易浪费码率,在对快速变化的画面编码时也不易丢失信息,还能够节省对于关键帧的评价开销。进一步地,选用采集编码数据的装置常用的曝光指数和白平衡增益作为评价参数,曝光指数和白平衡增益的累计变化,能够引起画面的面相变化,因此会更加方便对关键帧进行评价。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明视频编码中关键帧的插入方法和装置的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参见图1,一个实施例中,本发明视频编码中关键帧的插入方法可以包括以下步骤:
S100,采集编码图像数据。
其中,可以通过视频采集设备来采集编码图像数据,并将编码图像数据发送给其他设备进行后续步骤的处理。
S200,计算编码图像数据中的当前帧的评价参数,以及当前帧的评价参数的差值。
其中,当前帧的评价参数的差值为当前帧的评价参数与前一帧的评价参数的差值。一个实施例中,当前帧的评价参数包括采集编码图像数据的装置的曝光指数和白平衡增益,当前帧的评价参数的差值包括当前帧的曝光指数的差值和当前帧的白平衡增益的差值。采集编码图像数据的装置可以为在步骤S100内容下所说的视频采集设备。
本实施例中,通过计算公式AEL=k*F(AG)*DG*EXPTIME计算当前帧的曝光指数。当然也可以通过此计算公式计算每一帧的曝光指数。
其中,AEL为曝光指数,k为预设权重系数,F(AG)为采集编码图像数据的装置的模拟增益的影响因子,DG为采集编码图像数据的装置采集当前帧时的数字增益,EXPTIME为采集编码图像数据的装置采集当前帧时的曝光时间。
以下以采集编码图像数据的装置为视频采集设备为例进行说明。F(AG)可以用于表征不同模拟增益下,采集视频采集设备的输出响应情况。一般情况下,可以通过视频采集设备的供应商来获取F(AG)。
当前帧的曝光指数的差值AELD(i)=AEL(i)-AEL(i-1)。其中,i为大于等于0的整数,i取0时对应的帧为上一关键帧的下一帧,AEL(i)表示当前帧的曝光指数,AEL(i-1)表示前一帧的曝光指数。当然,i还可以为大于等于其他数的整数,例如i为大于等于1的整数时,i取1时对应的帧为上一关键帧的下一帧。
另外,通过以下计算公式计算当前帧的白平衡增益:
WBG=│256-G_SUM*256/R_SUM│+│256-G_SUM*256/B_SUM│。
其中,WBG为白平衡增益,R_SUM为当前帧各个像素点上R通道的值的总和,G_SUM为当前帧各个像素点上G通道的值的总和,B_SUM为当前帧各个像素点上B通道的值的总和。│256-G_SUM*256/R_SUM│为求(256-G_SUM*256/R_SUM)的绝对值,同理│256-G_SUM*256/B_SUM│为求(256-G_SUM*256/B_SUM)的绝对值。当然也可以通过此计算公式计算每一帧的白平衡增益。
当前帧的白平衡增益的差值WBGD(i)=WBG(i)-WBG(i-1)。其中,i为大于等于0的整数,i取0时对应的帧为上一关键帧的下一帧,WBG(i)表示当前帧的白平衡增益,WBG(i-1)表示前一帧的白平衡增益。当然,i还可以为大于等于其他数的整数,例如i为大于等于1的整数时,i取1时对应的帧为上一关键帧的下一帧。
S300,判断当前帧的评价参数的差值或评价参数的差值的累计之和是否满足预设条件,若是,则将当前帧设为关键帧;若否,则将当前帧设为非关键帧,并返回步骤S200,重复步骤S200和S300,直至编码结束。
其中,当前帧的评价参数可以包括视频采集设备的曝光指数和白平衡增益,当前帧的评价参数的差值包括当前帧的曝光指数的差值和当前帧的白平衡增益的差值。因此,一个实施例中,判断当前帧的评价参数的差值或评价参数的差值的累计之和是否满足预设条件的方法可以为:
判断AELD(i)>AELD_MAX和
AELD_SUM>AELD_TH和
WBGD(i)>WBGD_MAX和
WBGD_SUM>WBGD_TH中是否至少一个成立,
若是,则当前帧的评价参数的差值或评价参数的差值的累计之和满足预设条件,将当前帧设为关键帧;否则,不满足,将当前帧设为非关键帧。
其中,i为大于等于0的整数,AELD(i)为当前帧的曝光指数的差值,AELD_SUM为从上一关键帧的后一帧开始,截止到当前帧的各帧的曝光指数差值的累计之和。WBGD(i)当前帧的白平衡增益的差值,WBGD_SUM为从上一关键帧的后一帧开始,截止到当前帧的各帧的白平衡增益的差值的累计之和。AELD_MAX、AELD_TH、WBGD_MAX和WBGD_TH均为预设的阈值。且
若AELD(i)>AELD_MAX和AELD_SUM>AELD_TH和WBGD(i)>WBGD_MAX或WBGD_SUM>WBGD_TH均不成立,则i加1;否则,i清零,AELD_SUM清零,WBGD_SUM清零。
可以理解的,在上一关键帧的下一帧对应i的起始值0,若经判定上一关键帧的下一帧为非关键帧,则i=i+1,并判定下一帧是否为关键帧,以此类推,直至某一帧被设定为关键帧,i被清零,AELD_SUM被清零,WBGD_SUM被清零。
需要说明的是,i还可以为大于等于其他数的整数,例如i为大于等于1的整数,i的起始值1对应的帧为上一关键帧的下一帧。
优选的,在步骤S200之前,本发明视频编码中关键帧的插入方法还包括:将编码图像数据的第一帧设为关键帧。
本实施例中,采用视频采集设备采集编码图像数据,采用数字信号处理器计算编码图像数据当前帧的评价参数及评价参数的差值,采用视频图像压缩设备判断当前帧的评价参数的差值及评价参数的差值的累计之和是否满足预设条件,即当前帧是否可设定为关键帧。
可以理解的,插入关键帧的原因是因为编码图像有显著的变化。而引起编码图像变化的原因中,视频采集设备中的自动曝光和自动白平衡是引起图像变化的很大一部份因素。所以本发明将关键帧的判断融入到视频采集设备的自动曝光和自动白平衡的判断过程中,而视频采集设备的自动曝光对应视频采集设备的曝光指数,视频采集设备的自动白平衡对应视频采集设备的白平衡增益,通过曝光指数和白平衡增益设定关键帧,编码器中关键帧判断的运算过程被大大简化了,降低了成本。
以下通过一个具体实施例对本发明视频编码中关键帧的插入方法进行详细说明。
首先,通过视频图像压缩设备将编码图像数据的第一帧设定为关键帧,开始编码。
然后,初始化视频采集设备、数字信号处理器和视频图像压缩设备,将计数器的数值i清零,曝光参数的差值的累计之和清零,白平衡增益的差值的累计之和清零。
其次,通过视频采集设备抓取一帧图像,并判断所抓取的帧是否为最后一帧,若是,则结束编码,否则进行下一步。
接着,根据步骤S200中的计算公式计算所抓取的帧的曝光参数和白平衡增益,进而计算所抓取的帧曝光参数的差值、白平衡增益的差值、曝光参数的差值的累计之和及白平衡增益的差值的累计之和。
随后,判定所抓取的帧的曝光参数的差值、曝光参数的差值的累计之和、白平衡增益的差值或白平衡增益的差值的累计之和是否满足步骤S300中的预设条件,若满足,则将该帧设定为关键帧,并返回本实施例中的第二步;否则,将该帧设定为非关键帧,且数器的数值i=i+1,并返回本实施例中的第三步。
重复上述过程,直至编码结束。
上述视频编码中关键帧的插入方法,通过设定评价参数的差值及评价参数的差值的累计之和需满足的预设条件,将评价参数作为评价当前帧是否为关键帧的依据,在对较静止的图像编码时不易浪费码率,在对快速变化的画面编码时也不易丢失信息,还节省了对于关键帧的评价开销。进一步地,选用采集编码数据的装置常用的曝光指数和白平衡增益作为评价参数,曝光指数和白平衡增益的累积变化,能够引起画面的面相变化,因此会更加方便对关键帧进行评价。采用上述视频编码中关键帧的插入方法,编码速度快,且成本低。上述视频编码中关键帧的插入方法特别适合应用到嵌入式视频监控系统中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
基于同一发明构思,本发明实施例提供一种视频编码中关键帧的插入装置,由于此装置解决问题的原理与前述一种视频编码中关键帧的插入方法相似,因此,该装置的实施可以按照前述方法的具体步骤实现,重复之处不再赘述。
参见图2,一个实施例中,本发明视频编码中关键帧的插入装置包括数据采集模块100、评价参数计算模块200和关键帧设定模块300。
数据采集模块100,被配置以采集编码图像数据。
其中,数据采集模块100可以为视频采集设备。即可以通过视频采集设备来采集编码图像数据,并将编码图像数据发送给其他设备进行后续的处理。
评价参数计算模块200,被配置以根据预存的计算公式计算编码图像数据中的当前帧的评价参数,进而计算当前帧的评价参数的差值及评价参数的差值的累计之和。
具体的,计算公式可以包括计算编码图像数据当前帧的评价参数的计算公式、计算当前帧的评价参数的差值的计算公式及计算当前帧的评价参数的差值的累计之和的计算公式。
其中,当前帧的评价参数的差值为当前帧的评价参数与前一帧的评价参数的差值。一个实施例中,当前帧的评价参数包括采集编码图像数据的装置的曝光指数和白平衡增益;当前帧的评价参数的差值包括当前帧的曝光指数的差值和当前帧的白平衡增益的差值;当前帧的评价参数的差值的累计之和为从上一关键帧的后一帧开始,截止到当前帧的曝光指数差值的累计之和。
一个实施例中,预存的计算当前帧的曝光指数的计算公式为:
AEL=k*F(AG)*DG*EXPTIME。
其中,AEL为曝光指数,k为预设权重系数,F(AG)为数据采集模块100的模拟增益的影响因子,DG为数据采集模块100采集当前帧时的数字增益,EXPTIME为数据采集模块100采集当前帧时的曝光时间。当然,也可以通过此计算公式计算每一帧的曝光指数。
当前帧的曝光指数的差值AELD(i)=AEL(i)-AEL(i-1)。其中,i为大于等于0的整数,i取0时对应的帧为上一关键帧的下一帧,AEL(i)表示当前帧的曝光指数,AEL(i-1)表示前一帧的曝光指数。当然,i还可以为大于等于其他数的整数,例如i为大于等于1的整数时,i取1时对应的帧为上一关键帧的下一帧。
另外,预存的计算当前帧的白平衡增益的计算公式为:
WBG=│256-G_SUM*256/R_SUM│+│256-G_SUM*256/B_SUM│。
其中,WBG为白平衡增益,R_SUM为当前帧各个像素点上R通道的值的总和,G_SUM为当前帧各个像素点上G通道的值的总和,B_SUM为当前帧各个像素点上B通道的值的总和。│256-G_SUM*256/R_SUM│表示(256-G_SUM*256/R_SUM)的绝对值,同理│256-G_SUM*256/B_SUM│表示(256-G_SUM*256/B_SUM)的绝对值。当然,也可以通过此计算公式计算每一帧的白平衡增益。
当前帧的白平衡增益的差值WBGD(i)=WBG(i)-WBG(i-1)。其中,i为大于等于0的整数,i取0时对应的帧为上一关键帧的下一帧,WBG(i)表示当前帧的白平衡增益,WBG(i-1)表示前一帧的白平衡增益。当然,i还可以为大于等于其他数的整数,例如i为大于等于1的整数时,i取1时对应的帧为上一关键帧的下一帧。
可以理解的,上述计算公式可以预存在数据库中,也可以嵌入在实际的计算函数里,还可以采用其他方式进行存储。评价参数计算模块200获取预存的计算当前帧的曝光指数和白平衡增益的计算公式后,计算当前帧的曝光指数和白平衡增益,然后计算当前帧的曝光指数的差值、白平衡增益的差值、曝光指数的差值的累计之和及白平衡增益的差值的累计之和。
一个实施例中,评价参数计算模块200可以为数字信号处理器。
关键帧设定模块300,被配置以判断当前帧的所述评价参数的差值或所述评价参数的差值的累计之和是否满足预设条件,若是,则将当前帧设为关键帧;若否,则将当前帧设为非关键帧,并判定所述评价参数计算模块计算出的下一帧的所述评价参数的差值或所述评价参数的差值的累计之和是否满足预设条件,直至编码结束。
其中,当前帧的评价参数可以包括视频采集设备的曝光指数和白平衡增益,当前帧的评价参数的差值包括当前帧的曝光指数的差值和当前帧的白平衡增益的差值。因此,一个实施例中,关键帧设定模块300判断当前帧的评价参数的差值或评价参数的差值的累计之和是否满足预设条件的方法可以为:
判断AELD(i)>AELD_MAX和
AELD_SUM>AELD_TH和
WBGD(i)>WBGD_MAX和
WBGD_SUM>WBGD_TH中是否至少一个成立,
若是,则当前帧的评价参数的差值或评价参数的差值的累计之和满足预设条件,将当前帧设为关键帧;否则,不满足,将当前帧设为非关键帧。
其中,i为大于等于0的整数,AELD(i)为当前帧的曝光指数的差值,AELD_SUM为从上一关键帧的后一帧开始,截止到当前帧的各帧的曝光指数差值的累计之和。WBGD(i)当前帧的白平衡增益的差值,WBGD_SUM为从上一关键帧的后一帧开始,截止到当前帧的各帧的白平衡增益的差值的累计之和。AELD_MAX、AELD_TH、WBGD_MAX和WBGD_TH均为预设的阈值。且
若AELD(i)>AELD_MAX和AELD_SUM>AELD_TH和WBGD(i)>WBGD_MAX或WBGD_SUM>WBGD_TH均不成立,则i加1;否则,i清零,AELD_SUM清零,WBGD_SUM清零。
可以理解的,在上一关键帧的下一帧对应i的起始值0,若经判定上一关键帧的下一帧为非关键帧,则i=i+1,并判定下一帧是否为关键帧,以此类推,直至某一帧被设定为关键帧,i被清零,AELD_SUM被清零,WBGD_SUM被清零。
需要说明的是,i还可以为大于等于其他数的整数,例如i为大于等于1的整数,i的起始值1对应的帧为上一关键帧的下一帧。
优选的,关键帧设定模块300还被配置以将数据采集模块100采集的编码图像数据的第一帧设为关键帧。
一个实施例中,关键帧设定模块300可以为视频图像压缩设备。
可以理解的,插入关键帧的原因是因为编码图像有显著的变化。而引起编码图像变化的原因中,视频采集设备中的自动曝光和自动白平衡是引起图像变化的很大一部份因素。所以本发明将关键帧的判断融入到自动曝光和自动白平衡的判断过程中,而视频采集设备的自动曝光对应视频采集设备的曝光指数,视频采集设备的自动白平衡对应视频采集设备的白平衡增益,通过曝光指数和白平衡增益设定关键帧,编码器中关键帧判断的运算过程被大大简化了,降低了成本。
以下通过一个具体实施例对本发明视频编码中关键帧的插入装置进行详细说明。本实施例中,数据采集模块100为视频采集设备,评价参数计算模块200为数字信号处理器,键帧设定模块300为视频图像压缩设备。
首先,视频图像压缩设备将编码图像数据的第一帧设定为关键帧,开始编码。
然后,初始化视频采集设备、数字信号处理器和视频图像压缩设备,将计数器的数值i清零,AELD_SUM清零,WBGD_SUM清零。
其次,视频采集设备抓取一帧图像,并判断所抓取的帧是否为最后一帧,若是,则结束编码,否则将抓取的帧发送给数字信号处理器。
接着,数字信号处理器获取预存的计算公式,计算所抓取的帧的曝光参数和白平衡增益,进而计算所抓取的帧的曝光参数的差值、白平衡增益的差值、曝光参数的差值的累计之和和白平衡增益的差值的累计之和。
随后,视频图像压缩设备判定所抓取的帧的曝光参数的差值、曝光参数的差值的累计之和、白平衡增益的差值或白平衡增益的差值的累计之和是否满足预设条件,若满足,则将该帧设定为关键帧,并返回本实施例中的第二步;否则,将该帧设定为非关键帧,且数器的数值i=i+1,并返回本实施例中的第三步。
重复上述过程,直至编码结束。
上述视频编码中关键帧的插入装置,通过设定评价参数的差值及评价参数的差值的累计之和需满足的预设条件,将评价参数作为评价当前帧是否为关键帧的依据,在对较静止的图像编码时不易浪费码率,在对快速变化的画面编码时也不易丢失信息,还节省了对于关键帧的评价开销。进一步地,选用数据采集模块常用的曝光指数和白平衡增益作为评价参数,曝光指数和白平衡增益的累积变化,能够引起画面的面相变化,因此会更加方便对关键帧进行评价。采用上述视频编码中关键帧的插入装置,编码速度快,且成本低。上述视频编码中关键帧的插入装置特别适合应用到嵌入式视频监控系统中。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。