一种AHB主控式JPEG压缩加速器及其压缩方法与流程
本发明涉及图像处理,尤其涉及一种ahb主控式jpeg压缩加速器及其压缩方法。
背景技术:
1、随着数字图像在移动通信、物联网及嵌入式系统中的广泛应用,高效的图像压缩技术成为满足实时传输与低功耗需求的关键。jpeg作为目前应用最广泛的静态图像压缩标准,其核心算法基于离散余弦变换(dct)、量化和熵编码,能够在保证较高视觉质量的同时实现显著的数据压缩。然而,传统jpeg压缩方案在硬件实现时面临严峻的功耗挑战:其高复杂度的浮点运算和频繁的数据交互在资源受限的嵌入式设备中会导致能效比显著下降,从而限制其在移动终端、无人机视觉等低功耗场景的应用。因此,如何在保证高压缩率的前提下优化能效,成为jpeg硬件加速器设计的关键问题。
2、目前jpeg硬件加速方案的主要瓶颈集中在数据流管理和熵编码效率两方面。首先,现有架构普遍采用cpu主导的数据搬运机制,导致总线带宽利用率低下,显著增加了系统延迟和动态功耗。其次,熵编码阶段(包括rle游程编码和哈夫曼编码)仍主要依赖软件实现,产生频繁的存储器访问操作,严重制约了实时处理能力。此外,传统jpeg采用静态量化表,缺乏基于图像特征的动态调整机制,导致压缩效率与图像质量之间难以实现最优平衡。虽然近年研究已采用整数dct和自适应零块跳过等技术降低30%-40%的运算功耗,但在数据流并行化调度和硬件熵编码预处理等关键环节仍存在显著缺陷。
3、现有技术如cn102148988a公开了基于fpga的高速jpeg图像处理系统,包括通过系统总线连接的图像输入设备、编码模块、中央处理器、码流存储设备和码流输出设备,图像输入设备获取原始图像序列且将图像序列发送至编码模块,编码模块对输入的图像序列进行压缩编码并将压缩码流输出至码流存储设备,中央处理器配置寄存器信息控制各个设备和模块的工作状态,同时响应编码模块输出的编码结束中断信号并通过dma方式将码流存储设备中的压缩码流转移到码流输出设备中。上述专利虽然可以实现对输入图像序列的并行处理,采用jpeg标准中的基本系统。然而上述专利中游程编码仍采用传统的串行处理方式,即逐个检测量化后系数的零值状态并逐个生成游程编码对,这种处理方式需要多个时钟周期才能完成一个图像块的游程编码,难以满足更高吞吐量实时压缩的应用需求。
4、因此,如何在jpeg压缩加速器中进一步优化游程编码的处理效率,减少编码延迟,是本领域亟待解决的技术问题。
技术实现思路
1、本发明的目的是针对现有技术的缺陷,提供了一种ahb主控式jpeg压缩加速器及其压缩方法,在保证图像压缩质量的同时,全面提升了处理速度、存储效率和能耗表现。
2、为了实现以上目的,本发明采用以下技术方案:
3、一种ahb主控式jpeg压缩加速器,包括:
4、ahb主控模块,用于从外部存储器读取图像数据,并将读取的图像数据分割为图像块;
5、变换模块,与ahb主控模块连接,用于对图像块执行定点化整数离散余弦变换;
6、量化与扫描模块,与变换模块连接,用于对离散余弦变换结果进行动态量化并执行zig-zag扫描,并同步生成64位零值标记寄存器;其中64位零值标记寄存器的每一位用于标识对应的经扫描后的数据点为零状态或非零状态;
7、滑动窗口游程编码模块,与量化与扫描模块连接,用于读取64位零值标记寄存器,通过16位滑动窗口在同一时钟周期内并行检测16个数据点的零状态或非零状态,并根据检测结果输出游程编码对;
8、哈夫曼编码模块,与滑动窗口游程编码模块连接,用于对游程编码对执行哈夫曼编码以生成变长码流;
9、输出模块,与哈夫曼编码模块及ahb主控模块连接,用于将变长码流经双缓冲非对称先进先出缓存转换为固定位宽后输出至ahb主控模块,由ahb主控模块写回外部存储器。
10、进一步的,所述滑动窗口游程编码模块中根据检测结果输出游程编码对具体为:
11、若检测结果为16个连续零时,输出游程编码对(15,0);
12、若检测结果为非零数据时,输出游程编码对(run,value),其中run表示非零数据之前的连续零个数,value表示非零数据的数值;
13、若检测结果为数据全部为零时,输出块结束标记(0,0)。
14、进一步的,所述量化与扫描模块中对离散余弦变换结果进行动态量化具体为:
15、通过查询预先计算的4096与量化步长的比值查找表,将除法运算转换为乘法运算后执行右移操作,实现动态量化操作;
16、其中量化操作表示为:
17、quantized_result = (dct_result × q_coeff) >> q_shift
18、其中,quantized_result表示量化结果;dct_result表示离散余弦变换结果;q_coeff表示从查找表获得的量化系数;q_shift表示右移位数。
19、进一步的,所述量化与扫描模块中执行zig-zag扫描具体为:
20、按照预设的zig-zag扫描顺序将数据块重排为一维数据流,并在zig-zag扫描过程中同步生成64位零值标记寄存器。
21、进一步的,所述变换模块中对图像块执行定点化整数离散余弦变换,具体为:
22、将图像块的二维离散余弦变换分解为两次级联的一维离散余弦变换,采基于正则符号数字编码的定点乘法器,以移位运算和加法运算的组合替代浮点乘法运算,并通过转置存储器执行行方向变换结果与列方向变换结果之间的数据重排。
23、进一步的,所述ahb主控模块中从外部存储器读取图像数据,并将读取的图像数据分割为图像块是基于突发传输机制和双缓冲机制实现的。
24、进一步的,所述哈夫曼编码模块中对游程编码对执行哈夫曼编码具体为:
25、通过查找预存的标准码表执行哈夫曼编码;其中标准码表包括亮度分量和色度分量各自独立的直流码表组和交流码表组,各码表存储16位码字及对应的4位码长信息。
26、进一步的,所述哈夫曼编码模块中对游程编码对执行哈夫曼编码以生成变长码流采用的是两级流水线架构,其中第一级流水线为对游程编码对进行分类并选择对应码表以获取编码序列,第二级流水线为通过64位寄存器缓存码流,并以高位对齐移位方式处理码流的动态字节填充。
27、进一步的,所述输出模块中的双缓冲非对称先进先出缓存的输入位宽为64位,输出位宽为32位。
28、相应的,还提供一种基于权利要求1-9任一项所述的一种ahb主控式jpeg压缩加速器的压缩方法,其特征在于,包括:
29、s1.从外部存储器读取图像数据,并将读取的图像数据分割为图像块;
30、s2.对图像块执行定点化整数离散余弦变换;
31、s3.对离散余弦变换结果进行动态量化并执行zig-zag扫描,并同步生成64位零值标记寄存器;其中64位零值标记寄存器的每一位用于标识对应的经扫描后的数据点为零状态或非零状态;
32、s4.读取64位零值标记寄存器,通过16位滑动窗口在同一时钟周期内并行检测16个数据点的零状态或非零状态,并根据检测结果输出游程编码对;
33、s5.对游程编码对执行哈夫曼编码以生成变长码流;
34、s6.将变长码流经双缓冲非对称先进先出缓存转换为固定位宽后输出,并将输出结果写回外部存储器。
35、与现有技术相比,本发明采用ahb主控式数据传输架构,实现零cpu干预的图像数据自动采集;利用滑动窗口的rle编码器单周期生成(run,value)对,显著提升编码效率;优化的哈夫曼熵编码流水线与非对称位宽fifo的协同设计,完美解决变长码流输出问题。相比传统方案,本发明在吞吐量、能效比和面积效率等方面具有显著优势,特别适用于移动设备、物联网终端等对功耗和实时性要求严苛的应用场景。该架构已通过fpga原型验证,并具备asic实现的成熟条件,为新一代图像处理soc提供了高性能ip核解决方案。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com