接口模块中设计了4个RAM,用于存放读入的原始图像和用于预测的参考图像数据:RAM0存放亮度预测像素,深度32,地址 0~15存放上侧预测参考像素,地址16~31存放左侧预测参考像素;RAMl存放当前宏块亮度原始值,深度为256;RAM2存放色度预测参考像素,深度32,地址0~7存放上侧Cb预测参考像素,地址8~15存放左侧Cb预测参考像素,地址16~23存放上侧cr预测参考像素,地址24~31存放左侧 Cr预测参考像素;RAM3存放当前宏块色度原始值,深度为128。
亮度预测模块的内部结构如图8所示。
点击看原图
①模式选择模块根据当前宏块的预测参考像素可用信息(avail)指定当前宏块按一定顺序做预测,如avail=“11”表示上侧和左侧预测参考像素均可用,则对当前宏块顺序做DC、HOR、VERT、PLANE四种方式预测。在残差处理模块中,采用了2个RAM顺序保存各种预测模式的预测残差,所以在模式选择模块里会比较当前预测模式的代价函数和前一种预测模式代价函数的大小。如果当前预测模式的代价函数较小,则说明当前预测模式较优,在做下一种模式预测时将预测残差指定保存在上次较差预测模式的残差RAM中。当前宏块的可用预测模式都预测结束后,模式选择模块根据每一种模式预测代价函数决定出最优预测模式,并指出该预测模式对应残差处理模块中存放的RAM,将相应的残差输入到整数变换模块。
②预测模块包含了DC、HOR、VERT、PLANE四种预测模式的实现实体,根据模式选择模块决定的预测模式从接口模块读取预测参考像素和原始像素值,预测后残差输出到残差处理模块,预测值输出到补偿重构模块保存。
③残差处理模块采用2个存放残差的RAM,每个宏块可先并行做2种预测,残差分别保存到2个RAM中,选择其中较佳预测模式,再做下一种预测模式与前面所选较佳预测模式比较,直到完成所有预测模式选择出最佳预测模式。
④预测代价模块是计算每一种预测模式的预测代价,以4×4块为单位作hadamard变换,将变换后每个4×4块DC系数再做一次 hadamard变换,将所有变换结果进行绝对值累加就是对应的预测代价。
色度预测模块结构基本和亮度预测相同,只是由于色度有Cb、Cr两个分量,残差在RAM中的存放方式略有差别;同一个宏块的色度预测和亮度预测是并行执行的,由于要处理的色度数据比亮度少一半,笔者在后面的整数变换中采用先处理色度,再处理亮度的方法,使得流水更加紧凑,减少等待时间,提高整个模块的运行速度。
3 结 论
笔者设计的基于NiosII的低码率实时H.264视频编码系统,在系统时钟频率100 MHz时,压缩一帧320×240的彩色图像需16.283 ms,在量化参数选择30时,图像压缩比达到2%,实时监控图像帧率25帧/s。系统具有资源占用较少,低成本,低码率,高清视频质量的特点,具有较好的发展前景。
图9为集成开发环境下综合仿真后系统的资源占用情况。
点击看原图
本文关键字:编码器 嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术