视频A/D及编码部分采用Philips公司的SAA7114芯片,将输入模拟信号转换为ITU 656格式数字图像数据。MPEG.4编码压缩部分采用Intime公司的IME6400编码芯片,将数字图像数据压缩为MPEG-4的图像数据输出。其中IME6400输出接口有1KB的压缩数据输出缓冲区。该缓冲区数据最大保持时间为400 u s,即若在400 u s内不取完缓冲区数据,后来的压缩编码数据就会冲掉前面压缩的数据,造成视频数据的丢失。
首先,对于CPU所要访问的外部设备,通过加入FPGA的缓存,等价于增大了外部设备输出数据缓冲区的空间,并且该空间的大小可以通过改变FPGA的缓存来任意改变,大大减小了频繁地向CPU发中断的次数。例如,一片IME6400的1KB输出数据缓冲区满,就要发出中断信号,要求主机在400 us内读空缓冲区中的数据。如果中断信号发往CPU,则IME6400满1KB就中断CPU一次;如果将中断信号发往FPGA,则FPGA会将这1KB数据先放到自己的缓存中,等到积累到一定大小,比如16KB、32KB时,再由FPGA向CPU发中断,进行高速数据拷贝,大大减小了系统中断次数。其次,由于数据的输入由Local Bus总线改为由FPGA缓存以后再高速输入,这就大大增加了输入视频数据的通道数,即能挂更多的IME6400。原来用Local Bus从IME6400中读lKB数据需要100 u s左右时间,现在通过FPGA读只用不到25 u s的时间,相当于原来所用时间的1/5。这就允许在400 us内增加更多的通道数,由原来最大的两路可以扩充到四路、八路、十路等等,大大改善了系统性能。