一种基于FPGA的视频信号有效性判断方法及系统转让专利
申请号 : CN201810076219.8
文献号 : CN108347599B
文献日 : 2019-07-30
发明人 : 张贞雷
申请人 : 郑州云海信息技术有限公司
摘要 :
权利要求 :
1.一种基于FPGA的视频信号有效性判断方法,其特征在于,包括以下步骤:
一、在显卡芯片以不同分辨率输出时,通过检测行同步信号Hs、场同步信号Vs为高或低的时间段内的像素时钟pixel_clock的时钟数,判定当前分辨率下行同步信号Hs、场同步信号Vs为高或低的有效状态;
二、在判定行同步信号Hs、场同步信号Vs有效状态为稳定后,再将经过输出调整模块处理的行同步信号Hs、场同步信号Vs、视频数据有效信号data_en输出给视频处理模块;所述行同步信号Hs经过Hs_lock模块判定信号是高或低的有效状态,在行同步信号Hs稳定之后,Hs_lock模块给输出调整模块输出Hs_lock信号和Hs_high_vld信号;所述场同步信号Vs经过Vs_lock模块判定信号是高或低的有效状态,在场同步信号Vs稳定之后,Vs_lock模块给输出调整模块输出Vs_lock信号和Vs_high_vld信号;
所述Hs_lock模块对行同步信号Hs高或低有效的判定过程,包括:
S1统计一个Hs周期内,Hs为高时,pixel_clock的个数Hs_cnt_high;
S2统计一个Hs周期内,Hs为低时,pixel_clock的个数Hs_cnt_low;
S3如果N个周期内,Hs_cnt_high保持不变,同时Hs_cnt_low保持不变,则Hs_lock_cnt+
1,否则Hs_lock_cnt重新置0;
S4当Hs_lock_cnt=N时,表示Hs信号稳定,将Hs_lock信号置为1,如果Hs_cnt_high>Hs_cnt_low,则拉高Hs_high_vld,表示Hs高有效;如果Hs_cnt_high
S5Hs_lock_cnt
所述Vs_lock模块对场同步信号Vs高或低有效的判定过程,包括:
①统计一个Vs周期内,Vs为高时,pixel_clock的个数Vs_cnt_high;
②统计一个Vs周期内,Vs为低时,pixel_clock的个数Vs_cnt_low;
③如果M个周期内,Vs_cnt_high保持不变,同时Vs_cnt_low保持不变,则Vs_lock_cnt+
1,否则Vs_lock_cnt重新置0;
④当Vs_lock_cnt=M时,表示Vs信号稳定;将Vs_lock信号置为1,如果Vs_cnt_high>Vs_cnt_low,则拉高Vs_high_vld,表示Vs高有效;如果Vs_cnt_high
⑤Vs_lock_cnt
其中,FPGA为现场可编程逻辑器件;Hs_lock为Hs锁定信号;Vs_lock为Vs锁定信号;Hs_high_vld为高时指示,Hs信号为高有效,否则Hs为低有效,并且该信号只在Hs_lock为高之后才有效;Vs_high_vld为高时指示,Vs信号为高有效,否则Vs为低有效,并且该信号只在Vs_lock为高之后才有效;Hs_cnt_high为一个Hs周期内,Hs为高时像素时钟pixel_clock计数器;Hs_cnt_low为一个Hs周期内,Hs为低时像素时钟pixel_clock计数器;Vs_cnt_high为一个Vs周期内,Vs为高时像素时钟pixel_clock计数器;Vs_cnt_low为一个Vs周期内,Vs为低时像素时钟pixel_clock计数器;Data_en为视频数据有效信号,在该信号为高期间的像素信号是有效的像素,可以显示;当该信号为低时,像素信号无效,不显示;Hs_adjust为输出信号,Hs为高有效且稳定时,此信号为Hs,否则该信号为Hs的取反信号;Vs_adjust为输出信号,Vs为高有效且稳定时,此信号为Vs,否则该信号为Vs的取反信号;Data_en_adjust为输出信号,当Hs,Vs都稳定时,此信号为data_en,否则此信号为0。
2.根据权利要求1所述的一种基于FPGA的视频信号有效性判断方法,其特征在于,所述输出调整模块对行同步信号Hs、场同步信号Vs、视频数据有效信号data_en信号处理过程,包括:①如果Hs_lock为高,同时Hs_high_vld为高,则Hs_adjust=Hs;
②如果Hs_lock为高,Hs_high_vld为低,则Hs_adjust=(!Hs),即对Hs信号取反输出;
③如果Hs_lock为低,则Hs_adjust置0,即Hs不稳定时,不输出Hs信号给视频处理模块;
④如果Vs_lock为高,同时Vs_high_vld为高,则Vs_adjust=Vs;
⑤如果Vs_lock为高,Vs_high_vld为低,则Vs_adjust=(!Vs),即对Vs信号取反输出;
⑥如果Vs_lock为低,则Vs_adjust置0,即Vs不稳定时,不输出Vs信号给视频处理模块;
⑦只有当Hs_lock和Vs_lock同时为高的时候,Data_en_adjust=Data_en,否则Data_en_adjust置0。
3.根据权利要求2所述的一种基于FPGA的视频信号有效性判断方法,其特征在于,所述参数N和M均为可配置参数。
4.一种基于FPGA的视频信号有效性判断系统,其特征在于,包括Hs_lock模块、Vs_lock模块和输出调整模块,所述Hs_lock模块、Vs_lock模块的信号输入端分别连接显卡芯片的Hs信号、Vs信号输出端,像素时钟pixel_clock模块为Hs_lock模块、Vs_lock模块提供时钟信号,Hs_lock模块的、Vs_lock模块的信号输出端分别与输出调整模块的输入端连接,判定行同步信号Hs、场同步信号Vs的稳定后,输出调整模块输出行同步信号Hs、场同步信号Vs、视频数据有效信号data_en信号给视频处理模块;
所述Hs_lock模块对行同步信号Hs高或低有效的判定过程,包括:
S1统计一个Hs周期内,Hs为高时,pixel_clock的个数Hs_cnt_high;
S2统计一个Hs周期内,Hs为低时,pixel_clock的个数Hs_cnt_low;
S3如果N个周期内,Hs_cnt_high保持不变,同时Hs_cnt_low保持不变,则Hs_lock_cnt+
1,否则Hs_lock_cnt重新置0;
S4当Hs_lock_cnt=N时,表示Hs信号稳定,将Hs_lock信号置为1,如果Hs_cnt_high>Hs_cnt_low,则拉高Hs_high_vld,表示Hs高有效;如果Hs_cnt_high
S5Hs_lock_cnt
所述Vs_lock模块对场同步信号Vs高或低有效的判定过程,包括:
①统计一个Vs周期内,Vs为高时,pixel_clock的个数Vs_cnt_high;
②统计一个Vs周期内,Vs为低时,pixel_clock的个数Vs_cnt_low;
③如果M个周期内,Vs_cnt_high保持不变,同时Vs_cnt_low保持不变,则Vs_lock_cnt+
1,否则Vs_lock_cnt重新置0;
④当Vs_lock_cnt=M时,表示Vs信号稳定;将Vs_lock信号置为1,如果Vs_cnt_high>Vs_cnt_low,则拉高Vs_high_vld,表示Vs高有效;如果Vs_cnt_high
⑤Vs_lock_cnt
其中,FPGA为现场可编程逻辑器件;Hs_lock为Hs锁定信号;Vs_lock为Vs锁定信号;Hs_high_vld为高时指示,Hs信号为高有效,否则Hs为低有效,并且该信号只在Hs_lock为高之后才有效;Vs_high_vld为高时指示,Vs信号为高有效,否则Vs为低有效,并且该信号只在Vs_lock为高之后才有效;Hs_cnt_high为一个Hs周期内,Hs为高时像素时钟pixel_clock计数器;Hs_cnt_low为一个Hs周期内,Hs为低时像素时钟pixel_clock计数器;Vs_cnt_high为一个Vs周期内,Vs为高时像素时钟pixel_clock计数器;Vs_cnt_low为一个Vs周期内,Vs为低时像素时钟pixel_clock计数器;Data_en为视频数据有效信号,在该信号为高期间的像素信号是有效的像素,可以显示;当该信号为低时,像素信号无效,不显示;Hs_adjust为输出信号,Hs为高有效且稳定时,此信号为Hs,否则该信号为Hs的取反信号;Vs_adjust为输出信号,Vs为高有效且稳定时,此信号为Vs,否则该信号为Vs的取反信号;Data_en_adjust为输出信号,当Hs,Vs都稳定时,此信号为data_en,否则此信号为0。
5.根据权利要求4所述的一种基于FPGA的视频信号有效性判断系统,其特征在于,所述输出调整模块对行同步信号Hs、场同步信号Vs、视频数据有效信号data_en信号处理过程,包括:①如果Hs_lock为高,同时Hs_high_vld为高,则Hs_adjust=Hs;
②如果Hs_lock为高,Hs_high_vld为低,则Hs_adjust=(!Hs),即对Hs信号取反输出;
③如果Hs_lock为低,则Hs_adjust置0,即Hs不稳定时,不输出Hs信号给视频处理模块;
④如果Vs_lock为高,同时Vs_high_vld为高,则Vs_adjust=Vs;
⑤如果Vs_lock为高,Vs_high_vld为低,则Vs_adjust=(!Vs),即对Vs信号取反输出;
⑥如果Vs_lock为低,则Vs_adjust置0,即Vs不稳定时,不输出Vs信号给视频处理模块;
⑦只有当Hs_lock和Vs_lock同时为高的时候,Data_en_adjust=Data_en,否则Data_en_adjust置0。