基于DM642的运动估计算法的研究与实现
发布时间:2008/9/23 0:00:00 访问次数:497
多媒体业务的飞速发展对视频编码技术提出了更高的要求。如何在尽可能低的码率下获得尽可能好的图像质量是一系列视频编码标准的共同目标。h.264是新一代的面向低码率视频通信应用的视频图像压缩标准。与此前的视频编码标准相比较,h.264拥有极高的压缩效率和极强的容错性能,这使视频编码效率获得大幅提高,但同时这也使运算复杂度猛增。运动估计和运动补偿作为视频压缩编码系统的核心算法,占整个系统运算量的60%-80%。研究运动估计算法的dsp实现对整个h.264系统的嵌入式应用具有重要的指导意义。
tms320dm642是ti公司推出的一款面向数字多媒体应用的专业芯片,它基于c64x内核,拥有强大的处理性能和丰富的外围接口。本文完成了基于h.264的运动估计算法的dsp实现,通过使用一系列优化方案,很好地实现了对算法的实时处理。
2 运动估计算法
运动估计算法是视频压缩编码的核心算法之一。高质量的运动估计算法是高效视频编码的前提和基础。其中块匹配法(bma, block match algorithm)由于算法简单和易于硬件实现,被广泛应用于各视频编码标准中。块匹配法的基本思想是先将图像划分为许多子块,然后对当前帧中的每一块根据一定的匹配准则在相邻帧中找出当前块的匹配块,由此得到两者的相对位移,即当前块的运动矢量。在h.264标准的搜索算法中,图像序列的当前帧被划分成互不重叠16×16大小的子块,而每个子块又可划分成更小的子块,当前子块按一定的块匹配准则在参考帧中对应位置的一定搜索范围内寻找最佳匹配块,由此得到运动矢量和匹配误差。运动估计的估计精度和运算复杂度取决于搜索策略和块匹配准则。这里使用h.264推荐算法umhexagons(unsymmetrical-cross multi-hexagon-grid search)作为dsp实现的算法参考,与fs算法比较,它在保证可靠搜索精度的前提下大幅降低搜索复杂度。同时使用绝对差和(sad, the sum of absolute difference)标准作为匹配准则,它具有便于硬件实现的优点。
3 tms320dm642 dsp硬件平台
数字多媒体处理器dm642的结构如图3.1所示。dm642是ti公司c6000系列的一款新型高性能dsp,基于c64x内核,扩展的高级甚长指令字(vliw, very long instruction word)体系结构,具有64个32位通用寄存器,8个独立计算功能单元可并行运行。主频为600mhz,峰值计算速度达4800mips[1]。dm642采用两级缓存结构,第一级包括相互独立的l1p(16k字节)和l1d(16k字节),只能作为高速缓存使用。第二级l2(256k字节)是一个统一的程序/数据空间,可以整体作为sram映射到存储空间,也可以整体作为第二级cache,或是二者按比例的一种组合来使用。dm642具有64个独立通道的增强型直接存储器访问(edma, enhanced direct memory access)控制器,负责片内l2与外设以及外设之间数据高速传输。www.51kaifa.com
dm642具有丰富的外围设备接口:三个可配置的双通道视频端口video port;64bit的外部内存接口emif;10/100m以太网mac;66mhz 32bit的pci接口,符合pci2.2标准。高性能dm642是目前构建数字多媒体处理应用的一个理想平台。
图3.1 dm642结构示意图
4 运动估计算法的dsp dm642实现与优化
4.1 算法实现流程
与基于pc的算法实现相比,基于dm642的算法实现对实时性提出了更高的要求。这就要求由视频采集、处理和显示组成的系统能够高效工作。基于dm642的视频处理系统流程如图4.1所示。
图4.1 dm642视频处理流程
运动估计算法实现流程如图4.2所示:
图4.2 基于dm642运动估计算法实现流程
4.2 存储器系统优化
4.2.1 cache优化策略[2]
cache优化主要是要合理配置l2缓存中cache和sram的大小。cache和sram的大小应根据具体应用要求作相应的配置。通常,cache容量越大越好,但是由于它是由cpu管理,而不能由程序员手动控制,这就降低了应用的灵活性。对于视频处理算法,把一些频繁访问的数据放入sram是很有必要的,这有利于系统性能的提升。实验表明,在本系统中将cache和sram各配置成128kbytes,能够获得最佳效果。
4.2.2 存储器空间分配
对于嵌入式系统来说,存储器大小有限,是系统宝贵的资源,对其应用需要作细致额考虑和周密的管理。由于dsp内核对不同存储空间的数据访问速度差异很大,运动估计算法涉及大量的数据存储和读取,所以存储器的
多媒体业务的飞速发展对视频编码技术提出了更高的要求。如何在尽可能低的码率下获得尽可能好的图像质量是一系列视频编码标准的共同目标。h.264是新一代的面向低码率视频通信应用的视频图像压缩标准。与此前的视频编码标准相比较,h.264拥有极高的压缩效率和极强的容错性能,这使视频编码效率获得大幅提高,但同时这也使运算复杂度猛增。运动估计和运动补偿作为视频压缩编码系统的核心算法,占整个系统运算量的60%-80%。研究运动估计算法的dsp实现对整个h.264系统的嵌入式应用具有重要的指导意义。
tms320dm642是ti公司推出的一款面向数字多媒体应用的专业芯片,它基于c64x内核,拥有强大的处理性能和丰富的外围接口。本文完成了基于h.264的运动估计算法的dsp实现,通过使用一系列优化方案,很好地实现了对算法的实时处理。
2 运动估计算法
运动估计算法是视频压缩编码的核心算法之一。高质量的运动估计算法是高效视频编码的前提和基础。其中块匹配法(bma, block match algorithm)由于算法简单和易于硬件实现,被广泛应用于各视频编码标准中。块匹配法的基本思想是先将图像划分为许多子块,然后对当前帧中的每一块根据一定的匹配准则在相邻帧中找出当前块的匹配块,由此得到两者的相对位移,即当前块的运动矢量。在h.264标准的搜索算法中,图像序列的当前帧被划分成互不重叠16×16大小的子块,而每个子块又可划分成更小的子块,当前子块按一定的块匹配准则在参考帧中对应位置的一定搜索范围内寻找最佳匹配块,由此得到运动矢量和匹配误差。运动估计的估计精度和运算复杂度取决于搜索策略和块匹配准则。这里使用h.264推荐算法umhexagons(unsymmetrical-cross multi-hexagon-grid search)作为dsp实现的算法参考,与fs算法比较,它在保证可靠搜索精度的前提下大幅降低搜索复杂度。同时使用绝对差和(sad, the sum of absolute difference)标准作为匹配准则,它具有便于硬件实现的优点。
3 tms320dm642 dsp硬件平台
数字多媒体处理器dm642的结构如图3.1所示。dm642是ti公司c6000系列的一款新型高性能dsp,基于c64x内核,扩展的高级甚长指令字(vliw, very long instruction word)体系结构,具有64个32位通用寄存器,8个独立计算功能单元可并行运行。主频为600mhz,峰值计算速度达4800mips[1]。dm642采用两级缓存结构,第一级包括相互独立的l1p(16k字节)和l1d(16k字节),只能作为高速缓存使用。第二级l2(256k字节)是一个统一的程序/数据空间,可以整体作为sram映射到存储空间,也可以整体作为第二级cache,或是二者按比例的一种组合来使用。dm642具有64个独立通道的增强型直接存储器访问(edma, enhanced direct memory access)控制器,负责片内l2与外设以及外设之间数据高速传输。www.51kaifa.com
dm642具有丰富的外围设备接口:三个可配置的双通道视频端口video port;64bit的外部内存接口emif;10/100m以太网mac;66mhz 32bit的pci接口,符合pci2.2标准。高性能dm642是目前构建数字多媒体处理应用的一个理想平台。
图3.1 dm642结构示意图
4 运动估计算法的dsp dm642实现与优化
4.1 算法实现流程
与基于pc的算法实现相比,基于dm642的算法实现对实时性提出了更高的要求。这就要求由视频采集、处理和显示组成的系统能够高效工作。基于dm642的视频处理系统流程如图4.1所示。
图4.1 dm642视频处理流程
运动估计算法实现流程如图4.2所示:
图4.2 基于dm642运动估计算法实现流程
4.2 存储器系统优化
4.2.1 cache优化策略[2]
cache优化主要是要合理配置l2缓存中cache和sram的大小。cache和sram的大小应根据具体应用要求作相应的配置。通常,cache容量越大越好,但是由于它是由cpu管理,而不能由程序员手动控制,这就降低了应用的灵活性。对于视频处理算法,把一些频繁访问的数据放入sram是很有必要的,这有利于系统性能的提升。实验表明,在本系统中将cache和sram各配置成128kbytes,能够获得最佳效果。
4.2.2 存储器空间分配
对于嵌入式系统来说,存储器大小有限,是系统宝贵的资源,对其应用需要作细致额考虑和周密的管理。由于dsp内核对不同存储空间的数据访问速度差异很大,运动估计算法涉及大量的数据存储和读取,所以存储器的