发明内容
本发明提供自动增益调整方法及装置,以避免基准信号发生畸变造成的增益过大的情况。
本发明的技术方案是这样实现的:
一种自动增益调整方法,计算标准复合视频广播信号CVBS中,基准信号的幅值与整个CVBS的幅值的比值,其中,基准信号为行同步头或色彩脉冲,对于任一行CVBS,该方法包括:
搜索整个该行CVBS的幅值,根据所述比值和整个该行CVBS的幅值,计算该行CVBS的最大增益;
计算该行CVBS的增益;判断该行CVBS的增益是否小于该行CVBS的最大增益,若是,采用所述增益对该行CVBS进行增益调整;否则,采用所述最大增益对该行CVBS进行增益调整。
所述根据所述比值和整个该行CVBS的幅值计算该行CVBS的最大增益包括:
计算整个该行CVBS的幅值与所述比值的乘积;
将增益调整的目标幅值除以所述乘积,得到的商值即为该行CVBS的最大增益。
所述计算标准复合视频广播信号CVBS中,基准信号的幅值与整个CVBS的幅值的比值之后进一步包括:
对所述比值的倒数进行向上取整运算,得到整数;
所述根据所述比值和整个该行CVBS的幅值计算该行CVBS的最大增益包括:
计算整个该行CVBS的幅值与所述整数的倒数的乘积;
将增益调整的目标幅值除以所述乘积,得到的商值即为该行CVBS的最大增益。
预设一长度等于一行CVBS的缓存模块,该缓存模块用于缓存CVBS;
所述搜索整个该行CVBS的幅值之前进一步包括:
接收该行CVBS;
相应地,所述搜索整个该行CVBS的幅值的同时进一步包括:将该行CVBS缓存到缓存模块;
且,当接收下一行CVBS时,执行所述计算该行CVBS的增益,和判断该行CVBS的增益是否小于该行CVBS的最大增益,若是,采用所述增益对该行CVBS进行增益调整;否则,采用所述最大增益对该行CVBS进行增益调整的操作。
所述计算该行CVBS的增益包括:
将增益调整的目标幅值除以最近连续q行CVBS的基准信号的幅值的平均值,所得商值即为该行CVBS的增益。
所述计算该行CVBS的增益包括:
将增益调整的目标幅值除以该行CVBS的基准信号的幅值,所得商值即为该行CVBS的增益。
一种自动增益调整装置,该装置包括:
缓存模块:接收并缓存当前行CVBS,并将缓存的前一行CVBS输出到增益控制模块增益;
幅值搜索模块:接收当前行CVBS,搜索当前行CVBS的幅值,并将前一行CVBS的幅值输出到最大增益计算模块;
最大增益计算模块:计算标准CVBS的基准信号的幅值与整个标准CVBS的幅值的比值,其中,基准信号为行同步头或色彩脉冲;接收CVBS的幅值,根据接收到的CVBS的幅值和所述比值,计算接收到的CVBS的最大增益,并将所述最大增益输出到增益控制模块;
增益控制模块:接收一行CVBS时,计算自身正在接收的该行CVBS的增益,接收所述最大增益,并判断算得的该行CVBS的增益是否小于所述最大增益,若是,采用所述增益对该行CVBS进行增益调整;否则,采用所述最大增益对该行CVBS进行增益调整。
所述缓存模块的长度等于一行CVBS的长度。
所述最大增益计算模块包括:
第一计算模块:计算标准CVBS中,基准信号的幅值与整个CVBS的幅值的比值,对该比值的倒数进行向上取整运算,保存得到的整数的倒数,其中,基准信号为行同步头或色彩脉冲;
第二计算模块:接收每一行CVBS的幅值,针对每一行CVBS,计算该行CVBS的幅值和第一计算模块保存的整数的倒数的乘积,将增益调整的目标幅值除以该乘积得到该行CVBS的最大增益,将每一行CVBS的最大增益输出到增益控制模块。
所述装置位于可接收CVBS的移动设备中。
与现有技术相比,本发明中,根据标准CVBS中,基准信号的幅值与整个CVBS幅值的比值,并结合当前行CVBS的幅值,来确定当前行CVBS的最大增益,使得在基准信号发生畸变时,能够避免增益过大带来的画面质量恶化问题,提高了增益调整的稳定性,最大限度地保护了亮度和色度信息。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
以下将CVBS的行同步头或色彩脉冲称为基准信号。
图2为本发明实施例提供的自动增益调整装置的组成图,如图2所示,其主要包括:缓存模块21、幅值搜索模块22、最大增益计算模块23和增益控制模块24,且缓存模块21的长度等于一行CVBS的长度,其中:
缓存模块21:接收并缓存当前行CVBS,并将缓存的前一行CVBS依次输出到增益控制模块34,即,本模块的一端当前正在接收第m行CVBS,则本模块的另一端正在向增益控制模块34输出第m-1行CVBS;这里,缓存模块21可以通过深度等于一行CVBS长度的先入先出(FIFO)队列实现。
幅值搜索模块22:接收当前行CVBS,并搜索当前行CVBS的幅值,并将整个前一行CVBS的幅值输出到最大增益计算模块;设本模块的一端当前正在接收第m行CVBS,并搜索第m行的幅值,则本模块的另一端将已搜索到的整个第m-1行CVBS的幅值AMP(m-1)输出到最大增益计算模块23。
最大增益计算模块23:预先计算并保存标准CVBS的基准信号的幅值与整个标准CVBS的幅值的比值,设该比值为a;接收幅值搜索模块22发来的整个第m-1行CVBS的幅值AMP(m-1),则根据AMP(m-1)、CVBS的目标幅值和a,计算第m-1行CVBS的最大增益Gain_Max(m-1),将Gain_Max(m-1)输出到增益控制模块24。
在实际应用中,为了简化计算并留有余量,最大增益计算模块23在得到a后,可对1/a进行向上取整运算,将得到的整数的倒数作为a参与Gain_Max(m-1)的计算。
增益控制模块24:从缓存模块21接收一行CVBS时,进行如下操作:计算自身正在接收的该行CVBS的增益,接收最大增益计算模块23发来的该行CVBS的最大增益,使用接收到的最大增益替换自身存储的前一行CVBS的最大增益,替换后,判断算得的该行CVBS的增益是否小于存储的最大增益,若是,采用所述增益对该行CVBS进行增益调整;否则,采用存储的最大增益对该行CVBS进行增益调整。
设增益控制模块24正在接收第m-1行CVBS,则计算第m-1行CVBS的增益Gain(m-1);接收最大增益计算模块23发来的第m-1行CVBS的最大增益Gain_Max(m-1),判断Gain(m-1)<Gain_Max(m-1)是否成立,若是,采用Gain(m-1)对第m-1行CVBS进行增益调整;否则,采用Gain_Max(m-1)对第m-1行CVBS进行增益调整。
图3为本发明实施例提供的最大增益计算模块的组成图,如图3所示,在实际应用中,最大增益计算模块23可包括:第一计算模块231和第二计算模块232,其中:
第一计算模块231:预先计算并保存标准CVBS中,基准信号的幅值与整个CVBS的幅值的比值,对该比值的倒数进行向上取整运算,保存得到的整数的倒数。
第二计算模块232:接收幅值搜索模块22发来的每一行CVBS的整行幅值,设正在接收整个第m-1行CVBS的幅值AMP(m-1),则根据AMP(m-1)、CVBS的目标幅值Target_AMP和第一计算模块231保存的整数的倒数,计算第m-1行CVBS的最大增益Gain_Max(m-1)=Target_AMP/(AMP(m-1)*整数的倒数),将Gain_Max(m-1)输出到增益控制模块24。
本发明实施例中的自动增益调整装置可位于可接收CVBS的移动设备中。
图4为本发明实施例提供的自动增益调整方法流程图,如图4所示,其具体步骤如下:
步骤401:预设长度等于一行CVBS长度的缓存模块。
步骤402:最大增益计算模块预先计算并保存标准CVBS中,基准信号的幅值与整个CVBS的幅值的比值,设该比值为a。
从图1所示的标准CVBS可以看出:当基准信号为行同步头时,行同步头的幅值与视频内容的幅值的比值为:43/100,此时,行同步头的幅值与整个标准CVBS的幅值的比值为:43/(43+100);当基准信号为色彩脉冲时,色彩脉冲的幅值与视频内容的幅值的比值为:(21.43*2)/100,此时,色彩脉冲的幅值与整个标准CVBS的幅值的比值为:(21.43*2)/(43+100)。
步骤403:缓存模块接收并缓存当前行CVBS,并将前一行CVBS依次输出到增益控制模块,设缓存模块的一端当前正在接收第m行CVBS,则缓存模块的另一端正在向增益控制模块输出第m-1行CVBS;同时,幅值搜索模块接收当前行CVBS,并搜索当前行CVBS的幅值,并将整个前一行CVBS的幅值输出到最大增益计算模块,设幅值搜索模块的一端当前正在接收第m行CVBS的行同步头,则幅值搜索模块已搜索到整个第m-1行CVBS的幅值AMP(m-1),且另一端正在将AMP(m-1)输出到最大增益计算模块。
由于缓存模块的长度等于一行CVBS的长度,因此,输出到增益控制模块的CVBS与正在接收的CVBS刚好相差一行,例如:当缓存模块的一端正在接收第m行CVBS的行同步头时,缓存模块的另一端则正在将第m-1行CVBS的行同步头输出到增益控制模块中。
当幅值搜索模块开始接收第m行CVBS的行同步头时,会确定自身已接收完第m-1行CVBS,则将搜索到的整个第m-1行CVBS的幅值AMP(m-1)输出到最大增益计算模块。
其中,m为正整数。
步骤404:最大增益计算模块接收幅值搜索模块发来的整个前一行CVBS的幅值,根据整个前一行CVBS的幅值、CVBS的目标幅值和a,计算前一行CVBS的最大增益,将前一行CVBS的最大增益输出到增益控制模块。
例如:设前一行为第m-1行,则最大增益计算模块接收整个第m-1行CVBS的幅值AMP(m-1),根据AMP(m-1)、CVBS的目标幅值和a,计算第m-1行CVBS的最大增益Gain_Max(m-1),将Gain_Max(m-1)输出到增益控制模块。
其中,Gain_Max(m-1)=Target_AMP/(AMP(m-1)*a)
Target_AMP为CVBS的目标幅值。
在实际应用中,为了简化计算并留有余量,可先对步骤402中得到的a的倒数1/a进行向上取整运算,以得到的整数的倒数作为a参与本步骤中Gain_Max(m-1)的计算。
步骤405:当增益控制模块接收一行CVBS时,进行如下操作:计算自身正在接收的该行CVBS的增益,接收最大增益计算模块发来的该行CVBS的最大增益,使用接收到的最大增益替换自身存储的前一行CVBS的最大增益。
设增益控制模块正在接收第m-1行CVBS,则计算第m-1行CVBS的增益Gain(m-1);接收最大增益计算模块发来的第m-1行CVBS的最大增益Gain_Max(m-1),相应地,步骤406~408中,增益控制模块判断Gain(m-1)<Gain_Max(m-1)是否成立,若是,采用Gain(m-1)对第m-1行CVBS进行增益调整;否则,采用Gain_Max(m-1)对第m-1行CVBS进行增益调整。
其中,Gain(m-1)=Target_AMP/standard_AMP(m-1)
Target_AMP为CVBS的目标幅值;standard_AMP(m-1)为第m-1行CVBS的增益调整基准值,该基准值根据所采用的算法的不同,可以是第m-1行CVBS的基准信号的幅值,也可以是第m-1行CVBS最近连续q行CVBS的基准信号的幅值的平均值,这里的基准信号为行同步头或色彩脉冲。
步骤406:增益控制模块判断算得的该行CVBS的增益是否小于存储的最大增益,若是,执行步骤407;否则,执行步骤408。
步骤407:增益控制模块采用所述增益对该行CVBS进行增益调整,转至下一行CVBS。
步骤408:增益控制模块采用所述最大增益对该行CVBS进行增益调整,转至下一行CVBS。
本发明实施例中的CVBS可以是移动设备接收的CVBS。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。