计算机工程与科学 ›› 2025, Vol. 47 ›› Issue (5): 875-884.
廉凯成1,杨晨1,朱佳伟1,柴志雷1,2
LIAN Kaicheng1,YANG Chen1,ZHU Jiawei1,CHAI Zhilei1,2
摘要: 针对工业界采用的主流数字半调算法——Floyd-Steinberg误差扩散算法在处理日益增大的图像数据时存在的数据依赖严重、可并行性低和实时性差等问题,提出高效计算方法。首先,通过预生成像素-误差扩散值查找表避免了频繁的误差和扩散过程计算;其次,通过基于行缓冲的高效数据结构实现访存优化;再次,提出误差累加单指令多数据SIMD并行方法,使用AVX-512指令集并行累加多个像素同向误差,增强CPU中矢量寄存器的作用;最后,通过边缘误差限制的列分块方法实现多核数据并行,同时消除由于数据并行处理时边界部分数据依赖导致的误差问题。实验结果表明:本文提出的优化算法具有良好的规模伸缩性,计算性能随最佳并行核心数量线性提升;与传统的Floyd-Steinberg误差扩散算法相比,在16核Intel CoreTM i7-11700 CPU平台上处理5 120×5 120灰度图时,获得15倍性能提升,仅需23 ms即可完成处理,更好地满足大规模、超大幅面、超高分辨率和多变内容的工业高速印刷的需求。