如图3所示。根据ADV212的直接寄存器配置,设定ADV212内部时钟、总线模式、间接寄存器访问模式等。ADV212_l和ADV212_2初始化流程说明如下:PLL_HIOx008h、PLL_HO,0x0084:设置VCLK为74.25 MHz;BOOT:0x008A引导模式用来那上否装载;BUSMODE:0x000A设置主机控制数据宽度和DMA数据宽度为32位;MMODE:0x000A设置间接数据存取位数和间接地址步长大小为32位;IADDR:Ox00050000设置程序存储的起始点;IDATA:0x********在程序存储器装载程序;BOOT Ox008D软件重启;BUSMODE0x000A重新设置主机控制数据宽度和DMA数据宽度为32位:MMODE 0x000A重新设置间接数据存取位数和间接地址步长大小为32位。ADV212的参数根据IADDR和IDATA设置,参数配置说明如下:IADDR 0x00057F00 ADV212_1和ADV212_2的编码参数起始地址;IDATA 0x02010503(ADV212_1)、0x03010503(ADV212_2)02=1080i亮度(03=1080i色度);0l=10位精度;05=5级小波变换;03=Y,C单级;IDATA 0x03000000 03=码块大小为128x32;00=不可逆9x7小波;00=跳过无字节区域;00=无属性数据输出;IDATA0x01019500(ADV212_1)、0x01008700(ADV212_2) Ol=目标视频域,帧大小;019500=10:1压缩率(008700=30:1压缩率);IDATA 0x00000001 00=LRCP级数格式;00=EAV.SAV编码,所有阴极同步;00=Qfaetor是1X;01=编码格式是.j2c;IDATA0x00000000保存参数。
上述配置好以后,ADV212_1和ADV212_2的EIRQFLG(地址Ox6h)写入0x0400去清除软件中断(SEIRQ0)并开始程序,当DREQ0变为有效,ADV2-12准备从CODE FIFO传输数据,主机按照ADV212特定时序说明开始数据传输。
4 FPGA结构功能
图4为FPGA内部逻辑组成,FPGA主要由以下功能模块组成:1)主机逻辑,基于Nios的嵌入式主机逻辑模块,主要实现2片ADV212的读写操作,实现对ADV212的初始化和固件下载;2)ADV212仲裁逻辑,实现2片ADV212压缩数据同步,应答总线判断状态的应答信号功能;3)Y/C合并逻辑,该部分根据读出的属性和代码信息,实现亮度压缩数据与色度压缩数据的合并功能;4)数据缓冲控制模块,缓冲外部DMA通道读取速率和亮度/色度合并逻辑模块间的数据流。
在FPGA主控模块中,要确保ADV212加载了正确的固件,通过4个步骤来实现:第1步是向外部中断使能寄存器中写入0x0400来屏蔽软件中断0位:第2步等待到中断引脚IRQ被拉低,第3步检查外部中断标记寄存器的EIRQFlLG[10]位是否被设置,第4步从软件标记寄存器中读应用标识,如果读到的是0XFF82,则说明固件加载正确,系统可以开始工作。
系统开始工作时,FPGA在仲裁,控制模块中将从ADV212属性FIFO中读取的分区字节数信息进行分析判断,数据缓冲控制模块将ADV212代码FIFO中读到的压缩数据进行寄存。仲裁/控制模块分析结果来控制亮度/色度合并逻辑模块,码流从Y数据开始从两个器件相对部分(Y和CbCr)交错合并,输出到缓冲器再由通信端口输出。
5 结束语
基于FPGA+ADV212结构的高清视频压缩系统可实现高清视频(YCbCr 4:2:2格式)信号的实时处理,本系统具有性价比高、可靠性好、调整灵活、压缩信号易恢复等优点。但本系统采用的是不可逆9/7小波变换,视频处理具有一定的失真,为获取1080i视频信号具有更好的特性(如无损压缩),建议用3片或3片以上的ADV212来处理信号,信号格式可采取YCbCr 4:4:4格式。随着JPEG2000的广泛应用,专用图像压缩器件ADV212必将被越来越多地应用到视频和图像压缩方面的领域中。