基于DM642的视频图像增强算法实现
- 格式:doc
- 大小:222.00 KB
- 文档页数:7
基于TMS320DM642芯片的MPEG4SVP视频编码的实现摘要:本文在TI公司的TMS320DM642芯片上实现了MPEG4SVP 算法,并针对DSP硬件系统对算法进行了优化,实现了系统的实时性,可应用于实时视频监控以及远程视频图像传输等多方面。
关键词:视频编码MPEG4SVP DSP1 引言MPEG4标准为ISO于1994年开始制定,最初是为了满足视频会议等的需要,后来经过不断的发展成为一个可以适应于各种多媒体应用,提供各种编码比特率的标准。
与传统的基于像素的视频编码标准不同,MPEG4采用基于对象的视频编码方法,它不仅可以实现对视频图像的高效压缩,还可以提供基于内容的交互功能。
为了支持对多媒体内容的访问和操作,MPEG4标准引入了A/VO的概念,即音/视频对象。
在引入了A/VO对象概念的基础上,MPEG4能够对A/VO对象进行各种操作,增强了对象和用户之间的交互性。
MPEG4采用了基于对象的视频编码算法,把视频分割成各种不同的对象实体,分别进行处理,针对不同的对象进行比特流控制,并能实现多种基于对象的交互功能,有广泛的应用前景[1]。
其中MPEG4SVP是目前MPEG4各种档中应用最为广泛的一种。
我们在TMS320DM642芯片上实现了MPEG4SVP的实时压缩回放,可用于视频监控以及网络视频传输等多方面应用。
2 TMS320DM642芯片特性介绍TMS320DM642是TI公司最新推出的一款针对多媒体处理领域的DSP芯片,芯片内核采用先进的超长指令字(VLIW)结构,每个时钟周期最高可提供8条32位指令,具有高度的并行性和快速的运行能力。
芯片的时钟频率为600MHz,其最大处理能力可达到4800×106条指令/s。
由于具有6个并行的算术逻辑单元与两个并行的硬件乘法器,并利用先进的超长指令字结构,DM642芯片可以完成MPEG4中的DCT变换,运动估计与运动补偿等复杂运算。
为了提高处理器的存取速度,DM642芯片还提供了一些特别适用于视频处理的指令。
基于DM642的双路视频合成硬件系统摘要:DM642是TI公司推出的一款专门用于视频处理的DSP芯片,它是基于C6000系列的芯片,增加了很多外围设备和接口,具有高速运算能力,在多媒体领域得到了广泛应用。
本文主要分析和介绍了以DM642为核心的双路视频合成硬件系统的工作原理和主要功能模块。
关键词:视频合成DM642 功能模块1 视频合成技术视频合成技术是图像处理方面的一个重要应用,它将一个图像的多个状态或者多幅不同图像进行合成,来实现虚拟面板、图像叠加、模拟场景、图像优化等效果。
多路视频合成显示技术是将通过多个途径(如摄像机、PC机、网络等),采集而来的视频信号进行处理,并按照实际所需进行显示。
本硬件系统是双路视频合成系统,视频信号来源于摄像头。
2 系统工作原理如图1所示,从CCD摄像头得到的两路视频信号经过视频解码器解码,DM642通过I2C总线控制解码器的工作模式和工作状态,使解码器把视频信号解码为DM642可以处理的数据格式,然后两路视频信号分别从vp0、vp1两个视频端口输入到DM642中。
由DM642对两路视频信号进行处理,处理程序可由计算机通过JTAG口下载到FLASH 中。
采集到的视频数据通过EMIF用EDMA送到扩展出来的SDRAM 中,对数据进行存储。
因为DM642的两级缓存的空间不能满足大数据量的存取,它的空间不够,所以要先把视频数据存到SDRAM中,再对数据进行处理。
然后经过处理的视频数据通过vp2视频端口输出到视频编码器,DM642通过I2C总线控制编码器将视频信号编码为显示设备支持的数据格式。
最后系统将视频信号输出。
[1]3 系统结构双路视频合成硬件系统主要包括四个模块:视频采集模块、视频输出模块、DSP视频处理模块和FLASH模块。
视频采集模块主要用于对视频信号的解码,把解码后的数据送到DSP进行数据处理。
视频输出模块把经过DSP处理的数据编码输出到显示设备。
DSP视频处理模块是整个硬件系统的核心,它的主要工作是把经过解码的两路视频数据进行合成处理并送到视频输出模块等待输出。
基于DM642的视频图像增强算法实现贺玺,杨述斌,章振保,金璐(武汉工程大学电气信息学院,湖北武汉 430074)摘要:以DM642-PCI评估板为图像处理平台,对采集到的图像进行直方图均衡化处理和中值滤波,得到一幅新的增强图像。
实验结果表明:该算法能使图像的细节和清晰度得到明显的增强。
关键词:DM642;中值滤波;直方图均衡中国分类号:TP368.1文献标识码:ARealization of video Image Enhancing Algorithm Based on DM642HE Xi, Y ANG Shu-bin(School of Electrical and Information Engineering,Wuhan Institute ofTechnology,Wuhan 430074,China)Abstract: The DM642-PCI EVM was taken as the image processing platform, the captured image was processed by median filter and histogram equalization, and a new enhanced image was gained. The experimental results show that this algorithm could strengthen the detail and clarity definition of the image.Key words: DM642; median filter; histogram equalization0引言图像增强作为一大类基本的图像处理技术,是对图像进行加工,以得到对具体应用来说视觉效果更“好”,更“有用”的图像。
目前常用的增强技术基于空域和频域的方法,包括空域变换增强、空域滤波增强和频域增强等。
其中频域图像处理主要是利用相应频域滤波器进行图像锐化或图像平滑处理,然后进行变换域反变换来实现图像增强,空域图像处理直接对图像进行增强处理,包括直接灰度变换、直方图处理、消除噪声的平滑滤波和增强图像边缘的锐化滤波等[1-2]。
图像增强过程中,通常采用基于MATLAB的仿真及实现[3-5]和VC++的增强算法实现[6],虽然仿真效果比较理想,但实时性较差,因此无法满足实际工程应用。
本文在DM642-PCI评估板上实现了基于直方图均衡化和中值滤波的图像增强算法。
该算法首先对图像进行直方图均衡化,增大图像的对比度。
然后对图像中值滤波,滤除图像中被增强的噪声,以进一步改善图像整体视觉效果。
1 算法描述1.1 直方图均衡化原理以r 和s 分别表示归一化了的原图像灰度和经直方图变换后的图像灰度。
即当r=s=0时,表示黑色;r=s=1时,表示白色;即r,s ∈[0,1],这个范围表示像素灰度在黑白之间的变化。
在[0,1]区间内的一个r ,经变换T(r)都可以产生一个s ,且)(r T s = (1)T(r)为变换函数,它应当满足下列条件:(1)在0≤r ≤1内为单调递增函数(2)在0≤r ≤1,有0≤T(r)≤1。
条件:(1)保证灰度级从黑到白的次序不变;(2)确保映射后的像素灰度在允许的范围内。
反变换关系为:)(1s T r -= (2)T-1(s )对s 同样满足上述两个条件①和②。
由概率论可知,如果已知随机变量r 的概率密度为p r (r),而随机变量s 是r 的函数,则s 的概率密度p s (s)可以由p r (r)求出。
假定随机变量s 的分布函数用F s (s)表示,根据分布函数定义⎰⎰∞-∞-==s r r s S dr r p ds s p s F )()()( (3)根据概率密度函数是分布函数的导数的关系,上式两边对s 求导可得[])()()()()(1s T ds d r p ds dr r p dr r p ds d s p r r r r s -∞-==⎥⎦⎤⎢⎣⎡=⎰ (4)从上式可以看出,通过变换函数T(r)可以控制图像灰度级的概率密度函数,从而改善图像灰度层次,这就是直方图均衡的基础。
从人眼视觉特性来考虑,一幅图像的灰度直方图如果是均匀分布的,即p s (s)=k (归一化后k=1)时,感觉上该图像比较协调。
因此要求将原图像进行直方图均衡化,以满足人眼视觉的要求。
因为归一化假定1)(=s p s (5)由式(4)得ds=p r (r)dr 。
两边积分得⎰∞-==rr dr r p r T s )()( (6)上式就是所求得的变换函数。
它表明当变换函数T(r)是原图像直方图累积分布函数时,能达到直方图均衡化的目的。
对于灰度级为离散的数字图像,用频率来代替概率,若灰度级数为L 则变换函数T(r k )的离散形式可表示为∑∑=====k i ki i i r k k n n r p r T s 00)()( (7)式(7)把灰度级为r k 的像素映射为灰度级为s k 的像素,从而实现均衡化。
式中,0≤r k ≤1,k=0,1,2,…,L-1。
可见,均衡后各像素的灰度值s k 可直接由原图像的直方图算出。
1.2 中值滤波中值滤波是一种非线性滤波,也是用得最广泛的统计滤波,在消除噪声的同时还能保持图像的细节部分,防止边缘模糊。
其实现原理就是利用一个奇数点的移动窗口,按像素的灰度值从小到大排列起来,然后用中间灰度值代替原排列的中间像素的灰度值。
窗口然后从左到右移动,直到边界。
窗口下移一行,再从左到右进行。
即对于一个二维图像2{,(,)}ij X i j I ∈进行中值滤波,其输出为 2()(){}{,(,),(,)}i ij i r j s A A Y M ed X M ed X r s A i j I ++==∈∈ (8) 式中A 为m n ⨯窗口。
由于一般图像在二维方向上均具有相关性,因此移动窗口一般选用二维窗口,窗口形状常用3×3,5×5或7×7的方形、十字形或棱形。
本文的算法中对图像采用3×3方形的滤波窗口进行中值滤波处理。
经过中值滤波变换后,其像素的输出等于该像素领域中各像素灰度的中间灰度值。
这样,直方图均衡后的图像进行中值滤波,图像中增强的噪声被滤除。
2 DM642-PCI 实现算法2.1 DM642-PCI 平台ICETEK-DM642-PCI 评估板是北京瑞泰公司生产的一个低功耗独立的开发平 台,可以对TI 的C64xx DSP 系列进行评测和开发应用。
DM642是基于C6000DSP 家 族的C64xCPU 核,主要是针对数字媒体处理领域应用的一款高性能媒体处理器,它在C64x核的基础上整合了众多的外围设备与接口于一体,有3路视频端口和2 路板上解码器和1路板上编码器,均可输入或输出,支持BT656视频格式、10/100 以太网端口、多路音频串口、66MHz 独立的、标准的PCI等。
此外,DM642还支持H.263及其他H. 26x。
DM642提供500MB/600MB/720MB主频的DSP。
界面友好、功能强大的DM642开发软件CCS集编辑、编译和连接于一体,支持在线程序调试、算法优化工具组合、实时操作系统DSP/BIOS开发等[7]。
本论文的系统结构框图如图1 所示。
图 1 系统结构框图Fig.1 Structure diagram of system2.2 算法实现步骤(1)对采集的视频图像进行实时的直方图统计:首先将视频数据从输入缓冲区按行读入自己开设的图像处理缓冲区(容量1行),再逐点统计图像的灰度分布,然后输出到输出缓冲区。
(2)统计整幅图像的灰度分布之后,运用式(7)计算各灰度点概率分布,读入到自己开设的缓冲区。
(3)重复步骤(1)和(2)三次,在自己开设的缓冲区中,对保存的3 行数据进行中值滤波计算,计算出中间行的取值送到输出缓冲区。
2.3 主要程序直方图均衡子程序:void ICETEKDM642PCIHistogramEnhance(){ m_fWork=720*576; fHisto[0]/=m_fWork;for ( mi=1;mi<256;mi++ ){ fHisto[mi]/=m_fWork;fHisto[mi]+=fHisto[mi-1];}for ( mi=0;mi<256;mi++ ){ m_fWork=fHisto[mi];m_fWork*=255;lut[mi]=(unsigned char)m_fWork;}for ( mi=0;mi<256;mi++ )fHisto[mi]=0.0f;}中值滤波子程序:void ICETEKDM642PCIMedianFilter(){ unsigned int m_nID;m_nID=DAT_copy(nMemTemp,cLines+m_nOffset3,MWIDTH); // DAT_wait(m_nID);// pImg1=nMemTemp;// pImg3=cLines; pImg3+=m_nOffset3;// for ( mi=0;mi<720;mi++,pImg1++,pImg3++ )// (*pImg3)=(*pImg1);pImg1=cLines; pImg1+=m_nOffset1;pImg2=cLines; pImg2+=m_nOffset2;pImg3=cLines; pImg3+=m_nOffset3;x1=(*pImg1); pImg1++; x2=(*pImg1); pImg1++;x4=(*pImg2); pImg2++; x5=(*pImg2); pImg2++;x7=(*pImg3); pImg3++; x8=(*pImg3); pImg3++;for ( mi=2;mi<MWIDTH;mi++,pImg1++,pImg2++,pImg3++ ) { x3=(*pImg1); x6=(*pImg2); x9=(*pImg3);nMemTemp[mi]=GetMiddleValue();x1=x2; x2=x3;x4=x5; x5=x6;x7=x8; x8=x9;}nMemTemp[mi]=0;m_nWork=m_nOffset1; m_nOffset1=m_nOffset2;m_nOffset2=m_nOffset3; m_nOffset3=m_nWork;}#pragma CODE_SECTION(GetMiddleValue,".text1")unsigned char GetMiddleValue(){ int i,j;cBuffer[0]=x1; cBuffer[1]=x2; cBuffer[2]=x3;cBuffer[3]=x4; cBuffer[4]=x5; cBuffer[5]=x6;cBuffer[6]=x7; cBuffer[7]=x8; cBuffer[8]=x9;for ( i=0;i<8;i++ )for ( j=i;j<9;j++ )if ( cBuffer[i]>cBuffer[j] ){ cWork=cBuffer[i];cBuffer[i]=cBuffer[j];cBuffer[j]=cWork;}return cBuffer[5];}3 实验结果在ICETEK-DM642-PCI平台上对本文视频图像的增强算法进行了实现,图2和图4是增强前实时采集的原图像,图3和图5是采用本文算法对图像进行增强后的图像。