3.2算法级优化 本系统的核心部分由编码模块和解码模块构成。其中编码模块的复杂度要远大于解码模块的复杂度,成为整个系统的瓶颈。本文主要介绍编码模块的优化策略。
本系统采用tmn-1.7作为编码模块的蓝本。tmn-1.7遵循标准的H.263编解码标准,所以并没有考虑嵌入式设备的运算特性。其中对本系统影响最明显的是离散余弦变换算法(DCT)以及运动补偿算法(ME)。下面针对这两个算法提出优化方法。
3.2.1离散余弦变换算法 DCT算法把图像由像素域转换到频率域后,图像的大部分能量集中到直流系数分量以及低频交流系数分量上,从而更有利于去除空间冗余信息。
DCT变换的原理是:通过线性变换x=Hx将N维向量x变换为变换系数向量x,其中变换核H为: 其中变换核中的元素H(k,n)是无理数。这对大多数没有浮点协处理器的嵌入式设备实现实时视频通信是很大的瓶颈,因此提出将浮点数DCT变换算法改写成整数DCT变换算法的方案。 为实现这一方案,最关键的问题就是生成一个满足变换核的正交性要求,并且只包含整数系数的变换矩阵。其基本思路是将无理数扩大再取整,即: Q(k,n)=round(aH(k,n)) (2) 下面依据本系统所采用的方法,介绍整数DCT算法。 首先,介绍本系统该算法中的数据表示: int*dataptr——指向临时存放DCT系数的内存空间指针: int*blkptr——指向存放原始块数据的内存空间指针; int*coeffptr——指向存放最终DCT系数的内存空间指针。
然后,对相关系数以及常数进行放缩。在对8 本文章更多内容:<<上一页 - 1 - 2 |