论文部分内容阅读
图像监控系统在日常生活中有着广泛的应用。由于图像监控的应用不同,对监控系统的要求也会不一样。一般情况下视频监控系统的实现分为三类:第一种是在DSP上通过纯软件编程的方法实现数字图像压缩。采用这种方法的优点是灵活性比较好,但是缺点也非常明显,DSP的计算资源相当有限,编码效率低下。第二种是通过硬件ASIC专用编解码芯片来实现。这种方法的好处是数据处理可以由硬件来完成,效率较高,但通用性较差。第三种方法通过以一款或者几款DSP为核心辅以外围硬件加速器构成一个数字图像硬件平台,也就是常说的嵌入式系统,在此基础上,通过软件、硬件协同工作来实现数字图像压缩。 本文选择第三种软硬件协同工作的嵌入式系统方式来实现视频图像的压缩编码,设计出基于ARM、ZSP、硬件加速器协同工作的快速Motion-JPEG编码器。所谓Motion-JPEG即是对连续静止图像进行持续编码,并将编码码流进行网络发包,在异端存储或解码。 此编码器通过硬件加速器来实现占用主要计算资源的DCT、量化、游程编码部分: (1)对DCT的传统算法进行优化,将一次二维DCT变换转变成两次一维DCT变换,本文选用Loeffier算法来实现一维的8点快速DCT的计算,该算法要做11次乘法和29次加法,减少了乘累加的次数。 (2)对量化过程使用的传统量化表进行自适应变换,针对不同的应用场景对量化表进行变换,在提高压缩率的同时改善了压缩质量。 此编码器将各个视频协议中不同的Huffman编码部分交由ZSP软件来实现,同时针对ZSP的特有计算资源,在Pipeline流水、CircularBuffer、HardwareLoop、在线汇编等方面对程序结构进行优化,提高编码效率。在ZSP内存管理方面,DMA方式在每次启动时动要进行初始化配置,这会打断编码进程,影响编码效率,针对此情况,此编码器在ZSP内存中开辟出特有的Ping-PongBuffer架构,使得码流传输和编码进程可以并行完成,改善了编码效率。 由于内存空间有限,传统的视频监控系统不能对长时间的监控信息进行本地存储,此编码器参考Motion-JPEG图像的网络传输协议,将JPEG编码码流按照固定长度进行分片封装打包,同时将网络传输信息、图像分包解码信息嵌入到码流包中,由ARM侧进行网络发包,实现了网络传输功能,扩展了此编码器的应用领域。 通过软硬件协同工作,此编码器不仅在编码效率方面较纯软件编码器有了较大提升,同时实现了此编码器架构在不同视频协议中的灵活复用。