基于小波视频编解友专用芯片的视频卡的设计与实现
扫描二维码
随时随地手机看文章
摘要:提出了一个利用小波视频编解码专用芯片搭建的视频压缩解压缩卡,对其硬件实现做了具体描述。
关键词:小波变换 ADV612专用芯片 IIC总线 视频采集与压缩
小波变换作为一种信号分析方法,具有多尺度、多分辨率分析和时域局部化与频域局部化等优点。小波变换是一种频率上伸缩自由的变换。当信号带宽较窄时,它可以通过缩小的方式使得对窄带信号的刻划较为精细;当信号带宽较宽时,它可以通过放大的方式使描述能够满足精度需要。因而小波变换是一种不受带宽约束的图像压缩方法。与传统的基于DCT变换的编码方法相比,基于小波变换的图像编码是对整幅图像进行变换,充分利用了图像整体相关性并消除了传统分块编码方法带来的方块效应。小波级数可以在不同分辨率下逼近某一函数,实现多分辨率分解。多分辨率分解使我们可以在不同的刻画精度上对源图像进行逼近,在不同层次上对原图像进行压缩,突破了传统编码方法的压缩比限制,从而获得很高的压缩比。小波变换的优越性能使其在视频图像编码领域得到广泛应用,目前,利用小波变换进行图像编码的专用芯片已经问世。
本文介绍小波视频编解码专用芯片ADV612,并描述基于ADV612的视频压缩卡的设计与实现。
1 小波视频编解码专用芯片ADV612
1.1 ADV612系统功能介绍
ADV612 是本文所描述的视频卡的核心部件,是由ANALOG公司推出的小波视频编解码专用芯片。ADV612采用了高密度GMOS集成电路技术,整个芯片由数字视频I/O接口,高清晰取景框控制、小波变换与帧抽取、片内SRAM、片内DRAM控制器、自适应量化器与熵编码器、FIFO压缩数据缓存与主机接口等功能模块搭成,如图1所示。
数字视频I/O接口支持 CCIR601国际标准格式。编码时,数字视频从数字视频接口输入,经帧抽取和小波变换,送入量化器进行量化。量化后的数据送入熵编码器,进行游程编码和霍夫曼编码,产生最后的压缩数据流,送入集成于片内的512×32位大小的FIFO缓存。当片内FIFO的数据量达到主机的预设值时,ADV612发出中断,通知主机取走数据。解码过程与之相反,压缩数据由主机送入FIFO,解码后产生CCIR601格式的数据视频数据,从数字视频接口输出。
1.2 ADV612的特性
1.2.1 高清晰度取景框功能
ADV612 支持一种称为高清晰度取景框的功能。该功能允许一帧中某一矩形区域相对于其他区域(我们称之为背景)有较低的压缩比,或完全不进行压缩。矩形区域的位置和大小以及与背景的对比度由主机通过ADV612的主机接口输入控制字来控制。该功能为用户在不影响压缩比的情况下选取某一感兴趣的区域作高清晰度显示提供了捷径,从而使整个系统特别适用于监控场合。
1.2.2 精确的码流控制
ADV612 的自适应量化器允许主机控制量化步长。主机通过对前一帧图像子带编码数据的统计计算出下一帧的量化步长,在下一帧压缩开始前将其写入量化步长寄存器。通过量化步长控制,主机可以获得稳定的压缩码流输出。这对带宽有限的网络传输特别有利,使其不会因为图像内容的剧烈变化而引起压缩码流的突变,造成网络拥塞。
1.2.3 硬件编码实现小波变换
考虑到小波变换庞大的计算量,ADV612的小波变换模块采用硬件编码的方法实现了以Morlet小波为正交小波基的小波变换和小波逆变换,保证了视频信号能够实时处理。片内集成了一片SRAM,用作变换进的高速数据缓存。
1.3 ADV612的主机接口
为存储主机设定的ADV612编解码过程中所需参数和反映工作状态,ADV612在片内集成了若干控制字寄存器和状态寄存器。控制字寄存器和状态寄存器称为间接寄存器,ADV612将控制字寄存器和状态寄存器统一编址。主机不能直接访问间接寄存器。
为访问间接寄存器和片内FIFO,ADV612设置了一组可由主机直接访问的寄存器,称为直接寄存器。共有四个32位直接寄存器:间接地址寄存器、间接数据寄存器、压缩数据寄存器、中断控制和状态寄存器。间接地址寄存器存放欲访问的间接寄存器的地址;间接数据寄存器存放从间接寄存器读出的或欲写入间按寄存器的数据;压缩数据寄存器是片内FIFO的映射,读写该寄存器就会将数据读出或写入FIFO中;中断控制和状态寄存器的高16位是控制位,设置引起 ADV612向主机发出中断的条件,低16位是状态位,反映触发当前中断的原因。
ADV612的主机接口包括:32位数据总线(D31~D0)、两位地址线(ADR1ADR0)、片选信号(CS)、读信号(RD)、写信号(WR)、响应信号(ACK)和中断输出(INT)。两闰地址线用来选择四个直接寄存器:
ADR1,ADR0=(0,0) 间接地址寄存器
(0,1)间接数据寄存器
(1,0)压缩数据寄存器
(1,1)中断控制和状态寄存器
ADV612使用响应信号(ACK)通知主机本次操作成功与否,响应信号拉低表示操作成功,可进行下一个操作。
1.4 ADV612的典型电路
ADV612的典型电路如图2所示。
2 视频卡的设计与实现
视频卡由模拟视频采集量化、视频压缩解压缩、控制信号发生、8位到32位复用、视频模拟输出、PCI总线接口等多个单元模块构成,如图3所示。
2.1 视频采集量化单元
从视频输入插座输入的全电视信号首先经过该单元。该单元先对模拟信号进行嵌位和抗混叠滤波。经过滤波的信号送A/D转换电路实现模数转换,数字视频进入 Y/C分离电路进行Y/C分离。分离的Y、UV信号分别送入亮度控制和色度对比度控制电路。在亮度控制电路与色度控制电路中,亮度和色度的信号电平根据用户预设值得到增强或削弱。经过亮度色度处理过的Y、U、V信号在YUV到YcrCb的转换电路中转换成国际标准的CCIR601的视频数据流输入到视频压缩解压缩单元。视频采集量化单元框图如图4所示。
2.2 视频模拟输出单元
进入该单元的视频信号经过YcrCb到YUV转换电路,由YcrCb信号转化成Y、UV信号分别输出。Y信号进入同步电路叠加视频同步信号,UV信号进入峰值电路加入峰值信号。加入视频同步的Y信号和加入峰值的UV信号在混合电路混合,YUV数字视频经过D/A转换电路转换为模拟全电视信号,从模拟口输出。视频模拟输出单元如图5所示。
视频采集量化单元与视频模拟输出单元都需要主机设定控制字,控制视频信号的处理过程,如亮度、色度电平控制,带通滤波的频带选择等。视频采集量化单元与视频模拟输出单元的控制接口均采用IIC总线接口,且两个单元都是IIC总线的从设备。IIC总线是由飞利浦公司开发的串行总线,通过一根时钟线和一根数据线,总线上的IIC主设备就可以与IIC从设备通信。视频卡用89C51单片机的两个串口模拟IIC总线的时钟线和数据线,单片机的控制信号由控制发生电路产生。
2.3 视频压缩解压缩单元
视频压缩解压缩单元由ADV612和一片256K×16Bit的DRAM构成,完成数字视频的编解码。ADV612的主机接口直接挂接在PCI接口单元的用户总线上。ADV612的片内FIFO通过PCI接口电路映射主机内存地址空间中的一片512×32位大小的连续内存,ADV612的直接寄存器则映射主机I/O空间的连续的4个I/O地址。ADV612 所需的RD、WR、CS、ADR1、ADR0均由控制发生电路产生。控制发生电路由一片EPLD完成。它翻译PCI接口单元电路的读写、片选、中断信号,并对地址信号进行译码,产生ADV612所需的片选与读写信号和IIC读写控制器89C51所需的读写和中断等控制信号,同时它将89C51和 ADV612的响应信号发给PCI接口单元电路。视频压缩解压缩单元电路如图6所示。
2.4 复用单元电路
复用单元电路由8位到32位数据复用和复用数据缓存两部分组成,如图7所示。
复用单元电路在视频卡处于解压缩状态时才开始工作。复用电路由一片EPLD构成,它将8位的视频数据在视频时钟的驱动下复用成为32位宽度的数据。复用的目的是充分利用PCI总线的32位的数据总线。复用后的数据写入作为数据缓存的双口RAM中。双口RAM的一个端口由复用电路控制,复用电路产生数据、地址、片选和写信号;另一个端口的地址信号和读信号来自PCI接口电路。当双口RAM中的数据量达到预设值时,EPLD发出中断,通知主机取走双口RAM中的数据。
2.5 PCI接口单元电路
PCI接口单元电路完成PCI总线到板上局部逻辑电路的桥接器的功能。它一方面实现与PCI总线接口的各种协议和规范;另一方面将PCI总线信号翻译为对局部逻辑电路的操作,产生对局部逻辑的各种控制如中断、片选、读写等,同时也将局部逻辑的响应信号翻译为PCI总线的响应,将中断信号转化成为对PCI总线的中断,通知主机局部逻辑电路需要主机参与操作。
3 压缩卡的性能
视频卡能够工作在编码和解码两种状态:编码时能够实时采集摄像头从模拟视频输入口输入的全电视信号,对模拟视频信号进行量化和压缩;解码时能够实时解压缩主机送来的压缩数据流,输出的数字视频信号可通过D/A转换成全电视信号输出到模拟视频接口。压缩卡具有如下性能:用户可控制高清晰区域的位置和压缩程度;精确的码流控制,输出压缩码率稳定;高速的数据传输,与主机交互的峰值速率可达132MB/s。小波压缩解压缩卡的性能参数的大范围可调使系统可在各种不同的网络带宽下工作。表1为视频卡性能参数表。
表1 视频卡性能参数表
参数 | 最小值 | 最大值 |
压缩比 | 4:1 | 7500:1 |
输出帧率 | 0.5帧/秒 | 30帧/秒 |
压缩数据输出速率 | 28.8kB/s |