运用定点DSP实现MPEG-4标准中DCT系数快速量化的方法
扫描二维码
随时随地手机看文章
;;; 摘要:以运用TMS320C6200定点DSP芯片完成MPEG-4标准中DCT系数量化为例,简要介绍MPEG-4标准的量化方法,提出一种用定点乘法和移位运算代替量化过程中的除法和饱和运算的方法,并实现了快速运算。 ;;; 关键词:量化 DCT变换 定点DSP芯片 MPEG-4 在基于DCT变换的图像压缩编码方法中,对DCT系数必须做量化处理。量化过程是一个多对一的映射,例如对一个8×8块的64个DCT变换系数分别除以量化步长后取整。由于大多数DCT变换系数量化后变为零,因而达到压缩的目的。由于在量化过程中用到除法,因此通常需要进行浮点运算。 但是,可进行浮点运算的数字信号处理器(DSP)芯片结构比定点DSP芯片复杂,价格一般也比定点DSP芯片高很多。所以数字图像处理系统中通常采用定点DSP芯片来完成图像压缩运算,这种方法已经成为数字图像处理技术的的一个趋势。 可用于数字图像处理的比较好的定点DSP芯片有德州仪器公司新一代高性能定点DSP芯片TMS320C6200系列。它具有VLIW(Very Long Instruction Word)结构,由8个可并行运行的执行单元构成。这些单元使得该系列芯片在单周期内可以并行执行多条指令,例如在单周期内并行完成2个16位×16位乘法和2个移位操作。它还具有流水线结构,使得若干条指令的不同执行阶段可以并行执行。这些设计使得TMS320C6200系列芯片程序执行速度更快、性能更高。如200MHx时钟的TMS320C6201峰值性能可以达到1600MIPS。 在定点DSP上完成除法,通常的办法是调用库函数。但是调用库函数,势必会打破循环中的流水线操作,严重影响量化的完成速度。所以提高量化过程速度的关键就在于避免任何函数调用、跳转等操作。 本文以TMS320C6200系列定点DSP为例,提出一种用定点乘法和移位运算来代替量化过程中除法和饱和运算的方法,从而极大地提高了量化过程的运行速度。该方法也同样适用于其它各种定点微处理器。 1 MPEG-4标准中采用的量化技术及程序优化 MPEG-4标准中定义了两种量化方式:H.263量化方式和MPEG-4量化方式。这里为简单起见,只介绍TMN2.0编码器所用到的一种量化策略:AC系数和帧间宏块的DC系数用H.263量化方式,而帧内宏块的DC系数用MPEG-4量化方式中的DC系数非线性量化方式。 1.1 H.263量化方式 量化参数QP可以取值[1,3],量化步长为2QP。则量化公式为: 对于帧内宏块,LEVEL=|COF|/(2QP) 对于帧间宏块,LEVEL=(|COF|-QP/2)/(2QP)式中,COF表示即将被量化的DCT变换系数,LEVEL表示量化结果的绝对值。 1.2 MPEG-4DC系数非线性量化方法 量化公式为:LEVEL=DC_COF//dc_scaler 式中,DC_COF表示即将被量化的DCT变换DC系数;LEVEL表示量化结果;//表示先进行除法运算,然后对结果四舍五入取整。 在内部宏块内,定义亮度块为类型 1块,色差块为类型2块,类型1块的C系数由类型1的非线性标尺量化;类型2的DC系数由类型2的非线性标尺量化。 表1为定义DC非线性量化标尺dc_scaler。
表1 帧内宏块DC系数标尺 类; 型 量化参数(QP)范围内的dc_scaler