基于NiosII的 低码率实时H.264视频编码器
时间:01-17
来源:EDN
点击:
过取样率变换后的图像数据需要根据Y/Cb/Cr图像类型在SRAM中分片区缓存,以方便后续的H_264的编码处理。图6给出了实际图像的色度分量在取样率变换前后的效果。
综合现有的硬件资源、实时性与实现难度等因素,设计中仅采用了帧内预测方式,编码器包括帧内预测模块、变换量化模块和CAVLC熵编码模块。处理时以宏块(16×16)为单位,亮度和色度块分别进行帧内预测、变换量化和反变换反量化,然后进行CAVLC熵编码,图像的亮色比为Y:U:V=4:2:O。
H.264编码器设计前期先用VC++在PC机上实现,后期移植到FPGA上用自定义硬件模块实现,二者所需时间如表1所列。可以看出,用硬件实现H.264压缩编码一帧图像只需约16 ms,较PC机实现有很大提高,而且硬件模块占用的资源不到50%,性价比较高。
根据H.264帧内预测算法,帧内预测模块是在非率失真优化模式下设计的。它通过接口模块从SDRAM中读入一个MB(16×16)的亮度和色度图像数据,在亮度和色度预测模块中对当前MB进行预测和预测模式选择,输出预测残差及最佳预测模式;同时将预测结果与经过反DCT变换和反量化之后的残差值相加,经重构模块补偿重构后写回SDRAM。主要结构如图7所示,整个模块分为4个子模块:接口模块、亮度预测、色度预测和图像重构模块。
亮度预测模块的内部结构如图8所示。
②预测模块包含了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为集成开发环境下综合仿真后系统的资源占用情况。

综合现有的硬件资源、实时性与实现难度等因素,设计中仅采用了帧内预测方式,编码器包括帧内预测模块、变换量化模块和CAVLC熵编码模块。处理时以宏块(16×16)为单位,亮度和色度块分别进行帧内预测、变换量化和反变换反量化,然后进行CAVLC熵编码,图像的亮色比为Y:U:V=4:2:O。
H.264编码器设计前期先用VC++在PC机上实现,后期移植到FPGA上用自定义硬件模块实现,二者所需时间如表1所列。可以看出,用硬件实现H.264压缩编码一帧图像只需约16 ms,较PC机实现有很大提高,而且硬件模块占用的资源不到50%,性价比较高。

根据H.264帧内预测算法,帧内预测模块是在非率失真优化模式下设计的。它通过接口模块从SDRAM中读入一个MB(16×16)的亮度和色度图像数据,在亮度和色度预测模块中对当前MB进行预测和预测模式选择,输出预测残差及最佳预测模式;同时将预测结果与经过反DCT变换和反量化之后的残差值相加,经重构模块补偿重构后写回SDRAM。主要结构如图7所示,整个模块分为4个子模块:接口模块、亮度预测、色度预测和图像重构模块。

亮度预测模块的内部结构如图8所示。

②预测模块包含了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为集成开发环境下综合仿真后系统的资源占用情况。

- DVI与HDMI:视频传输的数字化革命(08-15)
- 数字机顶盒技术综述 (08-08)
- 大规模IPTV点播系统解决方案(08-18)
- T-DMB推动手机电视市场崛起(08-15)
- 全球液晶显示器Q2增3.1%超预期(08-11)
- 全面解读 嵌入式DSP上的视频编解码(08-19)
