一种用CPLD实现视频信号运动检测的方法
sram_read_control?process?compare_field?valid?spclk2?line_counter?
begin
reading<=valid and compare_field and spclk2 and line_counter?0??
end process?
这两个进程用于控制SRAM的读写信号,reading和writing正好和SRAM的读写信号反相。Valid变量指示当前输入的行是否为需要采样的有效行,spclk是象素数据同步脉冲,spclk2是它的二分频,用于指示当前输入数据是否为亮度分量Y。line_counter?0?=1表示奇数行。store_field和compare_field分别指示本场数据是否需要保存或者需要比较。
update_data_bus?process?store_field?valid?ccd_data?
begin
if?store_field=‘1’and valid=‘1’?then
data_sram<=ccd_data?
else
data_sra
m<=“ZZZZZZZZ”?
end if?
end process?
在抽样第一帧数据的时候,直接把数字视频信号输入到SRAM的数据总线上,写操作信号由writing控制。其它时候,数据总线上输出高阻。
update_data_reg?process?spclk?ccd_data?spclk2?compare_field?
valid?data_sram?
begin
if?spclk'event and spclk=‘0’?then
if?compare_field=‘1’and valid=‘1’and spclk2=‘1’?then
data_sram_reg<=data_sram?
if?ccd_data<=threshold?then
data_reg1<=“00000000”?
data_reg2<=ccd_data+threshold?
elsif?ccd_data>=255-threshold?then
data_reg1<=ccd_data-threshold?
data_reg2<=“11111111”?
else
data_reg1<=ccd_data-threshold?
data_reg2<=ccd_data+threshold?
end if?
end if?
end if?
end process?
SAA7113的象素同步脉冲的下跳边沿是象素数据的有效边沿,进程在compare_field=1时,一方面把抽样数据读入
《一种用CPLD实现视频信号运动检测的方法(第3页)》