论文部分内容阅读
摘 要DSP 的迅速发展使图像信息的传递范围不断扩大,实时数字视频压缩的应用也越来越广泛,在DSP上用软件实现视频压缩成为数字视频压缩标准应用的一个亮点。基于此,文章对H. 264/AVC视频编码器的DSP实现做一些探索。
关键词 H.264/AVC;视频编码器;DSP
中图分类号 TP393.03 文献标识码 A 文章编号 1671-489X(2008)08-0094-03
1 高速实时数字信号处理系统
1.1 高速实时数字信号处理的概述 信号处理是一门涉及许多学科而又广泛应用于许多领域的新兴学科,其本质是信息的变换和提取,是将信息从各种噪声、干扰的环境中提取出来,并变换为一种便于为人或机器所使用的形式。实时指的是系统必须在有限的时间内对外部输入信号完成指定的处理,即信号处理的速度必须大于等于输入信号的更新速度,而且从信号输入到经过处理后信号输出延迟必须足够小。数字信号处理就是用数学的方法对信号进行变换,以获取有用信息。
高速实时数字信号处理是信号处理中的一个特殊分支,它的主要特点是高速处理和实时处理,被广泛地应用于工业和军事的关键领域,如对雷达信号的处理、对通信基站信号的处理等。数字信号处理的主要缺点是处理量随处理精度、信息量的增加而成倍增长,解决这一问题的方法是研究高速运行的数字信号处理系统。在高速实时数字信号处理系统的实现中,首先要采用先进设计软件来保证系统设计的正确性,其主要特征就是采用电子设计自动化(EDA)软件进行优化设计,系统的核心是高速DSP技术。
1.2 高速实时DSP系统的构成 一个典型的高速实时数字信号处理系统除了核心的DSP技术外,还需要配合大量的外围电路。它可以由一个DSP及外围总线组成,也可由多个DSP组成,这完全取决于DSP处理的要求。一个DSP系统分为前向通道和后向通道,它的主要任务是将前向通道输出的信号按照一定的算法进行处理,然后将处理的结果以数据流的形式输出给后向通道。图1为一个典型的基于DSP的高速实时数字信号处理的主要功能框图。
在图1中,高速实时DSP处理系统是一个比较完备的DSP系统,它的外围电路包括:模拟与数字信号的转换电路ADC、DAC,其在DSP系统中起到关键作用,直接影响到系统的可实现性和系统的性能;用于数字信号的上变频和下变频的DDC、DUC;缓冲和存储电路FIFO、RAM;逻辑控制与协处理器CPLD、FPGA等。但图1只是实时DSP处理系统的一个典型模型,并不是所有的DSP系统都必须有模型中的所有部件。如有些输入信号本身就是信号,根本不需要前向通道环节。
应用设计包括2个部分:硬件设计和软件设计。系统样机需要进行硬件和软件的调试。硬件调试和软件调试一般都要基于DSP的开发系统。系统调试完成后,就可以将软件脱离开发系统直接在应用系统上运行。
DSP系统的开发,特别是软件的开发是一个需要反复进行调整的过程,如果算法运算量太大而不能在硬件上实时运行,则必须重新修改或优化算法。
本文基于DSP芯片的H.264实时视频编码编码系统的开发过程也遵循这个DSP系统典型开发流程[1-4]。
2.2 系统设计对DSP的要求 本系统的要求是实时实现视频编码,采用ITU和ISO/IEC联合研究并制定的面向未来IP和无线环境的视频压缩标准——H.264/AVC。以H.264/AVC标准中普遍使用的一种图像格式QCIF(176×144)为例,当该图像格式下的编码速度达到15帧/秒,即为实时编码。若每一位像素采用8位编码,则数据传输率是3 Mbps。
从运算量的角度来看,本系统的信号处理算法是每隔一定时间间隔循环一次。以15帧/秒的视频图像为例,这个时间间隔为1/15秒,记为Δ。假设DSP芯片的指令周期为F,则该DSP芯片在这个间隔里所能提供的最大运算量为Δt/F条指令。这2个重要指标是选择DSP芯片的基本依据。
3 H.264编码器算法的DSP实现与优化
在DSP等嵌入式系统上的软件实现和PC机上的软件实现有着明显的区别。对于大部分基于PC机的应用程序来说,只需要考虑如何编写代码就足够了。当然,在编写代码时要考虑算法的性能和数据结构,其他像内存分配和CPU处理时间的分配就不用考虑。但是在嵌入式系统上实现应用程序,除了要考虑上述问题之外,还要考虑系统的初始化和存储空间的分配、CPU 的处理分配,并行化处理等问题。H.264编码器算法在DSP上的实现,是建立在PC机的H.264编码器算法的代码基础上的。因此首先介绍H.264视频编码算法版本的选择,然后介绍算法的实现和优化,再着重讲解H.264视频解码算法代码的DSP化及在DSP上的优化工作[5-7]。
3.1 在PC机上实现H.264编码器的算法选择[8]ITU-T官方提供的H.264的核心算法不仅在代码结构上需要改进,而且在具体的核心算法上也需要做大的改动,才能达到实时的要求,因此在PC机上实现H.264算法就必须选择一个合适的算法软件。ITU的官方网站上提供了很多可选的标准软件可以采用,包括Tml系列和Jm系列。本文采用Jm6.1e版本的baseline profile作为实现的基础,以支持H.264 最新增加的特性。之所以这么选择,一是相对于别的软件版本,Jm6.1e是开始进行算法实现和优化工作时,ITU-T提供的最新版本的参考模型,里面包含了H.264标准中最新的技术,具有最好的编码效果;其次,由于H.264的算法复杂度过高,baseline中不包括一些复杂度很高的可选选项,而其采用的技术已经能够满足实现高效媒体处理平台的需要。
4 实验结果分析
测试硬件平台分别为PC机AMD 650 MHz(256 M内存)和DSP平台TMS320DM642EVM(600 M)。2个QCIF(176×144)标准测试序列“Foreman”和“Clair”序列,其中“Foreman”为中等运动序列,“Clair”为小运动序列;采用帧率为30 Hz,使用全部7种帧间模式,Hadamard变换和率失真最优化,参考帧数为1,搜索范围为(-16~16),量化步长QP=28。编码后的序列,除首帧外,其余各帧编码为P帧,即采用IPPP…的编码方式。
表1和表2为2个典型QCIF标准序列在PC机和DSP平台上的测试结果,表中数据为编码后I帧和P帧的测试结果。Sp/bit为每帧图像编码后的比特数,SNRY、SNRU、SNRV分别为Y、U、V分量的信噪比,T为每个I帧和P帧的平均编码时间,其值可以通过CCS中剖析工具(profiler)获得。从表中的数据可以看出:不管是“Foreman”序列还是“Clair”序列,DSP平台下的亮度分量的峰值信噪比比PC机平台下的信噪比下降不到0.1 dB,色度分量的信噪比在某些情况下还有所上升。DSP平台下的每帧平均比特数稍有增加,但编码速度却在PC机的基础上有大幅提升。
基于DSP平台的H.264编码器的实时实现具有非常重要的意义。作为一个低成本、便携、高效的多媒体通信终端平台,可以在较低带宽的信道上提供高质量的图像传输,在可视电话、视频监控、视频会议系统、网络视频流媒体服务、高清电视等领域有广阔的应用前景。
参考文献
[1]李方慧,王飞,何佩琨.TMS320C6000系列 DSP原理与应用[M].第二版.北京:电子工业出版社,2003
[2]熊炜.由TMS320DM642实现的IP视频电话系统[J].电子技术,2005(2):11-14
[3]张琛,赵盺,郭娟,戚文芽.基于TMS320DM642芯片的图像编码系统设计[J].微计算机信息,2005(4):113-114
[4]安向阳,沈庭芝.基于DSP TMS320DM642的H.264视频编码的实现和优化[J].微计算机信息,2005(7):128-130
[5]许小东,徐佩霞.基于TMS320DM642的视频解码系统优化[J].数据采集与处理,2005(3):91-95
[6]周雅斌,徐元欣,方健,等.基于TMS320DM642的MPEG-4编码器设计和优化[J].电视技术,2005(6):36-42
[7]张琛,戚文芽.基于TMS320DM642的MPEG4算法优化[J].电子工程师,2005(2):39-41
[8]丁贵广,计文平,郭宝龙,等.Visual C 6.0数字图像编码[M].北京:机械工业出版社,2004.02
关键词 H.264/AVC;视频编码器;DSP
中图分类号 TP393.03 文献标识码 A 文章编号 1671-489X(2008)08-0094-03
1 高速实时数字信号处理系统
1.1 高速实时数字信号处理的概述 信号处理是一门涉及许多学科而又广泛应用于许多领域的新兴学科,其本质是信息的变换和提取,是将信息从各种噪声、干扰的环境中提取出来,并变换为一种便于为人或机器所使用的形式。实时指的是系统必须在有限的时间内对外部输入信号完成指定的处理,即信号处理的速度必须大于等于输入信号的更新速度,而且从信号输入到经过处理后信号输出延迟必须足够小。数字信号处理就是用数学的方法对信号进行变换,以获取有用信息。
高速实时数字信号处理是信号处理中的一个特殊分支,它的主要特点是高速处理和实时处理,被广泛地应用于工业和军事的关键领域,如对雷达信号的处理、对通信基站信号的处理等。数字信号处理的主要缺点是处理量随处理精度、信息量的增加而成倍增长,解决这一问题的方法是研究高速运行的数字信号处理系统。在高速实时数字信号处理系统的实现中,首先要采用先进设计软件来保证系统设计的正确性,其主要特征就是采用电子设计自动化(EDA)软件进行优化设计,系统的核心是高速DSP技术。
1.2 高速实时DSP系统的构成 一个典型的高速实时数字信号处理系统除了核心的DSP技术外,还需要配合大量的外围电路。它可以由一个DSP及外围总线组成,也可由多个DSP组成,这完全取决于DSP处理的要求。一个DSP系统分为前向通道和后向通道,它的主要任务是将前向通道输出的信号按照一定的算法进行处理,然后将处理的结果以数据流的形式输出给后向通道。图1为一个典型的基于DSP的高速实时数字信号处理的主要功能框图。
在图1中,高速实时DSP处理系统是一个比较完备的DSP系统,它的外围电路包括:模拟与数字信号的转换电路ADC、DAC,其在DSP系统中起到关键作用,直接影响到系统的可实现性和系统的性能;用于数字信号的上变频和下变频的DDC、DUC;缓冲和存储电路FIFO、RAM;逻辑控制与协处理器CPLD、FPGA等。但图1只是实时DSP处理系统的一个典型模型,并不是所有的DSP系统都必须有模型中的所有部件。如有些输入信号本身就是信号,根本不需要前向通道环节。
应用设计包括2个部分:硬件设计和软件设计。系统样机需要进行硬件和软件的调试。硬件调试和软件调试一般都要基于DSP的开发系统。系统调试完成后,就可以将软件脱离开发系统直接在应用系统上运行。
DSP系统的开发,特别是软件的开发是一个需要反复进行调整的过程,如果算法运算量太大而不能在硬件上实时运行,则必须重新修改或优化算法。
本文基于DSP芯片的H.264实时视频编码编码系统的开发过程也遵循这个DSP系统典型开发流程[1-4]。
2.2 系统设计对DSP的要求 本系统的要求是实时实现视频编码,采用ITU和ISO/IEC联合研究并制定的面向未来IP和无线环境的视频压缩标准——H.264/AVC。以H.264/AVC标准中普遍使用的一种图像格式QCIF(176×144)为例,当该图像格式下的编码速度达到15帧/秒,即为实时编码。若每一位像素采用8位编码,则数据传输率是3 Mbps。
从运算量的角度来看,本系统的信号处理算法是每隔一定时间间隔循环一次。以15帧/秒的视频图像为例,这个时间间隔为1/15秒,记为Δ。假设DSP芯片的指令周期为F,则该DSP芯片在这个间隔里所能提供的最大运算量为Δt/F条指令。这2个重要指标是选择DSP芯片的基本依据。
3 H.264编码器算法的DSP实现与优化
在DSP等嵌入式系统上的软件实现和PC机上的软件实现有着明显的区别。对于大部分基于PC机的应用程序来说,只需要考虑如何编写代码就足够了。当然,在编写代码时要考虑算法的性能和数据结构,其他像内存分配和CPU处理时间的分配就不用考虑。但是在嵌入式系统上实现应用程序,除了要考虑上述问题之外,还要考虑系统的初始化和存储空间的分配、CPU 的处理分配,并行化处理等问题。H.264编码器算法在DSP上的实现,是建立在PC机的H.264编码器算法的代码基础上的。因此首先介绍H.264视频编码算法版本的选择,然后介绍算法的实现和优化,再着重讲解H.264视频解码算法代码的DSP化及在DSP上的优化工作[5-7]。
3.1 在PC机上实现H.264编码器的算法选择[8]ITU-T官方提供的H.264的核心算法不仅在代码结构上需要改进,而且在具体的核心算法上也需要做大的改动,才能达到实时的要求,因此在PC机上实现H.264算法就必须选择一个合适的算法软件。ITU的官方网站上提供了很多可选的标准软件可以采用,包括Tml系列和Jm系列。本文采用Jm6.1e版本的baseline profile作为实现的基础,以支持H.264 最新增加的特性。之所以这么选择,一是相对于别的软件版本,Jm6.1e是开始进行算法实现和优化工作时,ITU-T提供的最新版本的参考模型,里面包含了H.264标准中最新的技术,具有最好的编码效果;其次,由于H.264的算法复杂度过高,baseline中不包括一些复杂度很高的可选选项,而其采用的技术已经能够满足实现高效媒体处理平台的需要。
4 实验结果分析
测试硬件平台分别为PC机AMD 650 MHz(256 M内存)和DSP平台TMS320DM642EVM(600 M)。2个QCIF(176×144)标准测试序列“Foreman”和“Clair”序列,其中“Foreman”为中等运动序列,“Clair”为小运动序列;采用帧率为30 Hz,使用全部7种帧间模式,Hadamard变换和率失真最优化,参考帧数为1,搜索范围为(-16~16),量化步长QP=28。编码后的序列,除首帧外,其余各帧编码为P帧,即采用IPPP…的编码方式。
表1和表2为2个典型QCIF标准序列在PC机和DSP平台上的测试结果,表中数据为编码后I帧和P帧的测试结果。Sp/bit为每帧图像编码后的比特数,SNRY、SNRU、SNRV分别为Y、U、V分量的信噪比,T为每个I帧和P帧的平均编码时间,其值可以通过CCS中剖析工具(profiler)获得。从表中的数据可以看出:不管是“Foreman”序列还是“Clair”序列,DSP平台下的亮度分量的峰值信噪比比PC机平台下的信噪比下降不到0.1 dB,色度分量的信噪比在某些情况下还有所上升。DSP平台下的每帧平均比特数稍有增加,但编码速度却在PC机的基础上有大幅提升。
基于DSP平台的H.264编码器的实时实现具有非常重要的意义。作为一个低成本、便携、高效的多媒体通信终端平台,可以在较低带宽的信道上提供高质量的图像传输,在可视电话、视频监控、视频会议系统、网络视频流媒体服务、高清电视等领域有广阔的应用前景。
参考文献
[1]李方慧,王飞,何佩琨.TMS320C6000系列 DSP原理与应用[M].第二版.北京:电子工业出版社,2003
[2]熊炜.由TMS320DM642实现的IP视频电话系统[J].电子技术,2005(2):11-14
[3]张琛,赵盺,郭娟,戚文芽.基于TMS320DM642芯片的图像编码系统设计[J].微计算机信息,2005(4):113-114
[4]安向阳,沈庭芝.基于DSP TMS320DM642的H.264视频编码的实现和优化[J].微计算机信息,2005(7):128-130
[5]许小东,徐佩霞.基于TMS320DM642的视频解码系统优化[J].数据采集与处理,2005(3):91-95
[6]周雅斌,徐元欣,方健,等.基于TMS320DM642的MPEG-4编码器设计和优化[J].电视技术,2005(6):36-42
[7]张琛,戚文芽.基于TMS320DM642的MPEG4算法优化[J].电子工程师,2005(2):39-41
[8]丁贵广,计文平,郭宝龙,等.Visual C 6.0数字图像编码[M].北京:机械工业出版社,2004.02