用于图像压缩的数据处理方法、装置、设备和存储介质转让专利

申请号 : CN202210007520.X

文献号 : CN114022580B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙旭周玉龙刘刚李拓

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本申请涉及用于图像压缩的数据处理方法、装置、设备和存储介质。所述方法包括:将待压缩图像分割为多个图像矩阵,对图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;根据待压缩图像的分辨率与像素分量深度配置存储空间尺寸与第一中间矩阵的存储地址,并将第一中间矩阵进行存储;读取第一中间矩阵,将第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵;将第二中间矩阵的元素与转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵,将转换矩阵与第三中间矩阵进行第四矩阵计算,获取结果矩阵,对结果矩阵进行编码获取压缩图像,减少图像压缩中离散余弦变换过程的资源消耗,并提升运算性能。

权利要求 :

1.用于图像压缩的数据处理方法,其特征在于,包括:将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵,其中,所述第一矩阵计算的步骤包括:将所述图像矩阵的一元素与所述图像矩阵的另一元素相加;

根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将各个所述第一中间矩阵都进行存储;

读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的元素与所述转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵,其中,所述第二矩阵计算的步骤包括:将所述第一中间矩阵的一元素与所述转换矩阵的一元素相乘,将所述第一中间矩阵的一元素与所述第一中间矩阵的另一元素相加;所述第三矩阵计算的步骤包括:将所述第二中间矩阵的一元素与所述转换矩阵的一元素相乘,将所述第二中间矩阵的一元素与所述第二中间矩阵的另一元素相加;

将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。

2.根据权利要求1所述的用于图像压缩的数据处理方法,其特征在于,将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算的步骤包括:获取至少一个颜色通道,在所述颜色通道下,将所述待压缩图像分割为预设矩阵尺寸的多个图像矩阵;

配置转换矩阵,根据所述转换矩阵的元素的正负值情况,对所述图像矩阵的一列元素与另一列元素进行第一矩阵计算,其中,所述转换矩阵为正交矩阵,所述第一矩阵计算包括:加法运算。

3.根据权利要求1所述的用于图像压缩的数据处理方法,其特征在于,根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸的步骤包括:根据所述图像的分辨率与像素分量深度,所述存储空间尺寸的数学表达为:Space=(Res/Width)*((Pixel+1)*Width*Channel)其中,Space为所述存储空间尺寸,Res为所述分辨率,Pixel为所述像素分量深度,Width为所述图像矩阵的尺寸,Channel为选取的颜色通道数量,所述Res、Pixel、Width、Channel为正整数。

4.根据权利要求1所述的用于图像压缩的数据处理方法,其特征在于,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址的步骤包括:根据所述第一中间矩阵的数量与行数,所述存储地址的数学表达为:Addr=(M‑1)*L_max*Length+(L‑1)*Length其中,Addr为所述存储地址,M为所述第一中间矩阵的编号索引,L为所述第一中间矩阵的行数索引,L_max为所述第一中间矩阵的最大行数,Length为所述第一中间矩阵中每一行数据所占据的存储长度,所述Addr、M、L、L_max、Length为正整数。

5.根据权利要求1所述的用于图像压缩的数据处理方法,其特征在于,读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵的步骤包括:

从所述存储空间的首地址开始,进行连续读取操作,获取所述第一中间矩阵;

将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,并将计算结果进行叠加,获取所述第二中间矩阵,其中,所述第二矩阵计算包括:加法运算、乘法运算。

6.根据权利要求1或5所述的用于图像压缩的数据处理方法,其特征在于,将所述第二中间矩阵的元素与所述转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵的步骤包括:

将所述第二中间矩阵的元素与预设的转换矩阵的元素进行第三矩阵计算,并将计算结果进行叠加,获取所述第三中间矩阵,其中,所述第三矩阵计算包括:加法运算、乘法运算。

7.根据权利要求1所述的用于图像压缩的数据处理方法,其特征在于,将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像的步骤包括:

依次将所述转换矩阵的每一行元素与所述第三中间矩阵的每一列元素进行对应相乘并求和,获取结果矩阵;

对所述结果矩阵进行量化、差分编码、游程长度编码、霍夫曼编码,选取压缩比,获取压缩图像。

8.用于图像压缩的数据处理装置,其特征在于,包括:第一矩阵计算模块,用于将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵,其中,所述第一矩阵计算的步骤包括:将所述图像矩阵的一元素与所述图像矩阵的另一元素相加;

存储参数配置模块,用于根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将各个所述第一中间矩阵都进行存储;

中间矩阵获取模块,用于读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的元素与所述转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵,其中,所述第二矩阵计算的步骤包括:将所述第一中间矩阵的一元素与所述转换矩阵的一元素相乘,将所述第一中间矩阵的一元素与所述第一中间矩阵的另一元素相加;所述第三矩阵计算的步骤包括:将所述第二中间矩阵的一元素与所述转换矩阵的一元素相乘,将所述第二中间矩阵的一元素与所述第二中间矩阵的另一元素相加;

结果矩阵获取模块,用于将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述用于图像压缩的数据处理方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述用于图像压缩的数据处理方法的步骤。

说明书 :

用于图像压缩的数据处理方法、装置、设备和存储介质

技术领域

[0001] 本发明涉及图像处理技术领域,特别是涉及用于图像压缩的数据处理方法、装置、设备和存储介质。

背景技术

[0002] 随着大数据时代的发展,大量的连续色调静态图像需要进行存储和传输,因此,如何提升高色彩保真度图像的压缩性能已越来越受到重视。目前,通常采用联合图像专家组
压缩算法,将行列形式表达分辨率的原始图像分割成多个小块,利用离散余弦变换方法进
行矩阵计算,获取频域信号,对原始图像进行压缩。然而,目前的离散余弦变换方法需要对
所有行列数据进行读取与缓存,存在资源消耗大、运算性能低等问题。

发明内容

[0003] 基于此,有必要针对上述技术问题,提供用于图像压缩的数据处理方法、装置、设备和存储介质,改善图像压缩性能不佳的问题。
[0004] 一方面,提供用于图像压缩的数据处理方法,所述用于图像压缩的数据处理方法包括:
[0005] 将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;
[0006] 根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将各个所述第一中间矩阵
都进行存储;
[0007] 读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的元素与所述转换矩阵的元
素进行第三矩阵计算,获取第三中间矩阵;
[0008] 将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。
[0009] 在其中一个实施例中,将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算的步骤包括:
[0010] 获取至少一个颜色通道,在所述颜色通道下,将所述待压缩图像分割为预设矩阵尺寸的多个图像矩阵;
[0011] 配置转换矩阵,根据所述转换矩阵的元素的正负值情况,对所述图像矩阵的一列元素与另一列元素进行第一矩阵计算,其中,所述转换矩阵为正交矩阵,所述第一矩阵计算
包括:加法运算。
[0012] 在其中一个实施例中,根据所述图像的分辨率与像素分量深度,配置存储空间尺寸的步骤包括:
[0013] 根据所述图像的分辨率与像素分量深度,所述存储空间尺寸的数学表达为:
[0014] Space=(Res/Width)*((Pixel+1)*Width*Channel)
[0015] 其中,Space为所述存储空间尺寸,Res为所述分辨率,Pixel为所述像素分量深度,Width为所述图像矩阵的尺寸,Channel为选取的颜色通道数量,所述Res、Pixel、Width、
Channel为正整数。
[0016] 在其中一个实施例中,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址的步骤包括:
[0017] 根据所述第一中间矩阵的数量与行数,所述存储地址的数学表达为:
[0018] Addr=(M‑1)*L_max*Length+(L‑1)*Length
[0019] 其中,Addr为所述存储地址,M为所述第一中间矩阵的编号索引,L为所述第一中间矩阵的行数索引,L_max为所述第一中间矩阵的最大行数,Length为所述第一中间矩阵中每
一行数据所占据的存储长度,所述Addr、M、L、L_max、Length为正整数。
[0020] 在其中一个实施例中,读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵的步骤包括:
[0021] 从所述存储空间的首地址开始,进行连续读取操作,获取所述第一中间矩阵;
[0022] 将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,并将计算结果进行叠加,获取所述第二中间矩阵,其中,所述第二矩阵计算包括:加法运算、乘法运
算。
[0023] 在其中一个实施例中,将所述第二中间矩阵的元素与所述转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵的步骤包括:
[0024] 将所述第二中间矩阵的元素与预设的转换矩阵的元素进行第三矩阵计算,并将计算结果进行叠加,获取所述第三中间矩阵,其中,所述第三矩阵计算包括:加法运算、乘法运
算。
[0025] 在其中一个实施例中,将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像的步骤包括:
[0026] 依次将所述转换矩阵的每一行元素与所述第三中间矩阵的每一列元素进行对应相乘并求和,获取结果矩阵;
[0027] 对所述结果矩阵进行量化、差分编码、游程长度编码、霍夫曼编码,选取压缩比,获取压缩图像。
[0028] 另一方面,提供了用于图像压缩的数据处理装置,所述用于图像压缩的数据处理装置包括:
[0029] 第一矩阵计算模块,用于将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;
[0030] 存储参数配置模块,用于根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将
各个所述第一中间矩阵都进行存储;
[0031] 中间矩阵获取模块,用于从所述存储单元中读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,将所述
第二中间矩阵的元素与所述转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵;
[0032] 结果矩阵获取模块,用于将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。
[0033] 再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0034] 将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;
[0035] 根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将各个所述第一中间矩阵
都进行存储;
[0036] 读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的元素与所述转换矩阵的元
素进行第三矩阵计算,获取第三中间矩阵;
[0037] 将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。
[0038] 又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0039] 将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;
[0040] 根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将各个所述第一中间矩阵
都进行存储;
[0041] 读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的元素与所述转换矩阵的元
素进行第三矩阵计算,获取第三中间矩阵;
[0042] 将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。
[0043] 上述用于图像压缩的数据处理方法、装置、计算机设备和存储介质,
[0044] 将离散余弦变换过程中的矩阵乘积运算分解为部分元素之间的加法运算和乘法运算,对图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵,将转换矩阵的元素与第一
中间矩阵的元素进行第二矩阵计算与第三矩阵计算,获取第三中间矩阵,将转换矩阵与第
三中间矩阵进行第四矩阵计算,获取结果矩阵,最后将结果矩阵进行编码获取压缩图像,以
此减少图像压缩中离散余弦变换过程的资源消耗,并提升运算性能。

附图说明

[0045] 图1为一个实施例中用于图像压缩的数据处理方法的应用环境图;
[0046] 图2为一个实施例中用于图像压缩的数据处理方法的流程示意图;
[0047] 图3为一个实施例中进行第一矩阵计算的流程示意图;
[0048] 图4为一个实施例中配置存储空间尺寸的流程示意图;
[0049] 图5为一个实施例中配置第一中间矩阵的存储地址的流程示意图;
[0050] 图6为一个实施例中获取第二中间矩阵的流程示意图;
[0051] 图7为一个实施例中获取第三中间矩阵的流程示意图;
[0052] 图8为一个实施例中获取结果矩阵的流程示意图;
[0053] 图9为一个实施例中用于图像压缩的数据处理装置的结构框图;
[0054] 图10为一个实施例中计算机设备的内部结构图。

具体实施方式

[0055] 为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不
用于限定本申请。
[0056] 本申请提供的用于图像压缩的数据处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。例如,本申请提供的用于图像
压缩的数据处理方法可应用于JPEG(Joint Photographic Experts Group,联合图像专家
组)图像压缩过程中的DCT(Discrete Cosine Transform,离散余弦变换)计算过程,改善原
始DCT过程中因图像分辨率增加,存在行缓存单元资源消耗大、矩阵计算复杂等问题,将DCT
过程中的矩阵乘积运算分解为部分元素之间的加法运算和乘法运算,对图像矩阵的元素进
行第一矩阵计算,获取第一中间矩阵并进行存储,将转换矩阵的元素与第一中间矩阵的元
素进行第二矩阵计算与第三矩阵计算,获取第三中间矩阵,将转换矩阵与第三矩阵进行第
四矩阵计算,获取结果矩阵,最后将结果矩阵进行编码获取压缩图像,以此减少图像压缩中
DCT过程的资源消耗,并提升运算性能,本方法还可以应用于芯片设计,根据本方法的逻辑
结构,构造对应的硬件设计,实现JPEG图像压缩过程中DCT过程的流水线并行计算。其中,终
端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式可穿戴设
备或者子服务器,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群或
者云计算平台来实现。
[0057] 在一个实施例中,如图2所示,提供了用于图像压缩的数据处理方法,包括以下步骤:
[0058] S1:将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;
[0059] S2:根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将各个所述第一中间矩
阵都进行存储;
[0060] S3:读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的元素与所述转换矩阵
的元素进行第三矩阵计算,获取第三中间矩阵;
[0061] S4:将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。
[0062] 通过上述步骤,可改善JPEG图像压缩过程中当待压缩图像的分辨率较大时,存在DCT过程中矩阵乘积计算资源消耗大、计算复杂度高的问题,在JPEG图像压缩的DCT过程中,
需要将待压缩图像分割为多个图像矩阵,并配置一个正交矩阵作为转换矩阵,然后将转换
矩阵、图像矩阵和转换矩阵的转置矩阵进行矩阵乘积运算,然而当待压缩图像的分辨率较
大时,图像矩阵的数量庞大,矩阵乘积计算复杂,缓存单元消耗巨大,因此将DCT过程中的矩
阵乘积运算分解为部分元素之间的加法运算和乘法运算,以并行的方式进行计算,对图像
矩阵的元素进行第一矩阵计算,获取第一中间矩阵,并配置存储空间尺寸和存储地址,以矩
阵块的形式将第一中间矩阵进行存储,然后将转换矩阵的元素与第一中间矩阵的元素进行
第二矩阵计算与第三矩阵计算,获取第三中间矩阵,将转换矩阵与第三中间矩阵进行第四
矩阵计算,获取结果矩阵,最后将结果矩阵进行编码获取压缩图像,以此减少图像压缩中
DCT过程的资源消耗,并提升运算性能,同时,对未来更大分辨率尺寸的图像进行压缩时,具
有良好的兼容性与优越的性能。
[0063] 为了降低缓存单元的资源消耗,只对待压缩图像的部分信息进行缓存,在步骤S1中,示例性地说明,将待压缩图像分割为多个图像矩阵,依次对图像矩阵进行第一矩阵计
算,获取第一中间矩阵,例如,获取待压缩图像后,将待压缩图像矩阵的元素向后推移128,
目的是将原始数据从无符号数变为有符号数,例如当原始数据为0至225时,向后推移128后
变为‑128至127,然后设置图像矩阵尺寸,比如设置为8*8,当待压缩图像的分辨率相乘后不
为图像矩阵尺寸的倍数时,对待压缩图像进行空元素填充,从待压缩图像的第一行第一列
元素开始,选取第一行至第八行与第一列至第八列的像素作为第一个图像矩阵,选取第一
行至第八行与第九列至第十六列的像素作为第二个图像矩阵,直到所有的像素都被选取,
构成多个图像矩阵,然后将第一个图像矩阵的第一行第一列数据与第一行第八列的数据相
加,形成第一中间矩阵的第一行第一列的元素,然后将第一个图像矩阵的第一行第二列数
据与第一行第七列的数据相加,形成第一中间矩阵的第一行第二列的元素,直到所有行与
列的数据都进行加法处理,获取第一中间矩阵的所有元素,形成第一中间矩阵,然后对其余
图像矩阵进行相同处理过程,获取多个第一中间矩阵,以便后续将第一中间矩阵进行存储,
同时减少缓存量,降低资源消耗。
[0064] 为了将多个第一中间矩阵按合理的形式进行存储,在步骤S2中,示例性地说明,配置存储空间尺寸和第一中间矩阵的存储地址,并将各个第一中间矩阵都进行存储,例如,可
将第一中间矩阵存储于存储单元,比如DDR(双倍速率同步动态随机存储器,Double Data 
Rage RAM),根据待压缩图像的分辨率与图像矩阵的尺寸,计算出第一中间矩阵的数量,比
如当待压缩图像的分辨率为1920*1080,图像矩阵的尺寸为8*8,选取1个颜色通道时,则第
一中间矩阵的数量为1920*1080/(8*8),即32400个,由于每一个第一中间矩阵包括8*8=64
个数据,当每个数据占据的字节长度为2字节时,所有第一中间矩阵所占据的字节长度为
32400*64*2=4147200字节,即配置存储单元的空间尺寸为4147200字节,在配置存储单元的
空间尺寸后,需要将各个第一中间矩阵进行存储,因此需要配置存储地址,对于第1个第一
矩阵的第1行数据,其起始存储地址为0,对于第1个第一中间矩阵的第2行数据,其起始存储
地址为16,对于第1个第一中间矩阵的第3行数据,其起始存储地址为32,直到所有第一中间
矩阵的所有行数据都分配存储地址,以便根据存储地址,将所有第一中间矩阵都存储于存
储单元,且减少了存储资源消耗。
[0065] 为了将第一中间矩阵与转换矩阵进行计算,获取DCT的中间结果,在步骤S3中,示例性地说明,从存储单元中读取第一中间矩阵,并将转换矩阵的元素与第一中间矩阵的元
素进行第二矩阵计算与第三矩阵计算,获取第三中间矩阵,例如,从存储空间的首地址开
始,进行连续读取操作,获取第一中间矩阵,可将第一中间存储于矩阵缓存单元,比如片上
系统的片内缓存,然后配置一个正交矩阵作为转换矩阵,由于转换矩阵的元素具有正负数
值,且部分正负数值的绝对值相同,因此可将具有相同绝对值的正负数值作为一组,即互为
相反数的元素作为一组,也可将转换矩阵某一行中相同的数值元素作为一组,例如当转换
矩阵的第一行所有列的元素为相同数值时,可将第一中间矩阵的第一行第一列元素、第一
行第三列元素、第一行第五列元素与第一行第七列元素进行加法运算,作为第二矩阵的第
一个元素,当转换矩阵的第二行数据的第一列元素与第二行第八列元素为绝对值相同的正
负数值元素时,可将第一中间矩阵的第一行第二列元素与转换矩阵的第二行数据的第一列
元素相乘,作为第二中间矩阵的第二个元素,当转换矩阵的第二行数据的第二列元素与第
二行第七列元素的数值互为相反数时,可将第一中间矩阵的第一行第四列元素与转换矩阵
的第二行数据的第二列元素相乘,作为第二中间矩阵的第三个元素,当转换矩阵的第二行
数据的第三列元素与第二行第六列元素的数值互为相反数时,可将第一中间矩阵的第一行
第六列元素与转换矩阵的第二行数据的第三列元素相乘,作为第二中间矩阵的第四个元
素,当转换矩阵的第二行数据的第四列元素与第二行第五列元素的数值互为相反数时,可
将第一中间矩阵的第一行第八列元素与转换矩阵的第二行数据的第四列元素相乘,作为第
二中间矩阵的第五个元素,即通过对转换矩阵的元素分布进行分析,将转换矩阵同一行各
列元素中存在数据相同或者互为相反数的元素作为一组,并根据第一中间矩阵中各元素对
应的位置信息,将第一中间矩阵的元素与转换矩阵的元素进行结合,作为构成第二中间矩
阵的元素,然后将第二中间矩阵的第一个元素与转换矩阵的第一行所有列的数据相乘,作
为第三中间矩阵的第一个元素,将第二矩阵的第二个元素、第三个元素、第四个元素、第五
个元素进行加法运算,作为第三矩阵的第二个元素,直到计算出所有构成第三中间矩阵的
元素,通过该方式,可将第二矩阵计算和第三矩阵计算设置为流水线计算方式,将第二矩阵
计算和第三矩阵计算进行并行计算,提升计算性能。
[0066] 为了将获取结果矩阵,并对结果矩阵进行编码,获取压缩图像,在步骤S4中,示例性地说明,将转换矩阵与第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对结果矩阵
进行编码获取压缩图像,例如,从转换矩阵的第一行的各元素开始,与第三中间矩阵的第一
列的各元素对应进行相乘并将乘积结果求和,作为结果矩阵第一行第一列的元素,将转换
矩阵第一行的各元素与第三中间矩阵的第二列的各元素对应进行相乘并将乘积结果求和,
作为结果矩阵第一行第二列的元素,直到第一行的各元素与第三中间矩阵的第八列的各元
素对应进行相乘并将乘积结果求和,作为结果矩阵第一行第八列的元素,然后将转换矩阵
第二行的各元素与第三中间矩阵的第一列的各元素对应进行相乘并将乘积结果求和,作为
结果矩阵第二行第一列的元素,直到转换矩阵的所有行的元素与第三中间矩阵所有列的元
素都进行乘积求和运算,获取所有构成结果矩阵的元素,该结果矩阵则为JPEG图像压缩过
程中DCT过程的结果,最后对结果矩阵进行编码,获取压缩图像文件。
[0067] 在计算第一中间矩阵之前,需要将待压缩图像进行分割,如图3所示,将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算的步骤包括:
[0068] S11:获取至少一个颜色通道,在所述颜色通道下,将所述待压缩图像分割为预设矩阵尺寸的多个图像矩阵;
[0069] S12:配置转换矩阵,根据所述转换矩阵的元素的正负值情况,对所述图像矩阵的一列元素与另一列元素进行第一矩阵计算,其中,所述转换矩阵为正交矩阵,所述第一矩阵
计算包括:加法运算。
[0070] 如图3所示,在步骤S11中,示例性地说明,对于Y、Cb、Cr三种颜色通道,选取至少一个颜色通道,例如,可选取Y通道,可配置图像矩阵的矩阵尺寸为8*8,则根据待压缩图像的
分辨率a*b,将待压缩图像分割为多个8*8的图像矩阵,图像矩阵的数量由(a*b)/(8*8)进行
计算,当待压缩图像分辨率为1024*768时,图像矩阵的数量为12288个,而当选取两个颜色
通道,例如Y通道与Cb通道时,则图像矩阵的数量为2*(a*b)/(8*8),当待压缩图像分辨率为
1024*768时,图像矩阵的数量为24576个,从待压缩图像的第一行第一列元素开始,选取第
一行至第八行与第一列至第八列的像素作为第一个图像矩阵,选取第一行至第八行与第九
列至第十六列的像素作为第二个图像矩阵,直到所有的像素都被选取,构成多个图像矩阵,
在一些实施过程中,还可选取Y、Cb、Cr三种颜色通道,则图像矩阵的数量为3*(a*b)/(8*8),
当待压缩图像分辨率为1024*768时,图像矩阵的数量为36864个。
[0071] 如图3所示,在步骤S12中,示例性地说明,配置一个正交矩阵作为交换矩阵,并根据交换矩阵的元素的正负值情况,计算第一中间矩阵,记转换矩阵的第i行第j列的元素为
Cij,记图像矩阵的第i行第j列的元素为Xij,例如,将第一个图像矩阵的第一行第一列数据
与第一行第八列的数据相加,形成第一中间矩阵的第一行第一列的元素,然后将第一个图
像矩阵的第一行第二列数据与第一行第七列的数据相加,形成第一中间矩阵的第一行第二
列的元素,直到所有行与列的数据都进行加法处理,获取第一中间矩阵的所有元素,形成第
一中间矩阵,在进行加法处理过程中,对于转换矩阵中存在的元素为负数需要进行减法操
作时,则用加法运算与负数结合以此代替减法运算,例如,当C11、C12、C13、C14、C15、C16、
C17、C18数值相等且为正数时,此时将图像矩阵的第一行所有列元素与交换矩阵的转置矩
阵的第一列所有行的元素相乘并求和的数学表达:X11*C11+X12*C12+X13*C13+X14*C14+
X15*C15+X16*C16+X17*C17+X18*C18可变换为:(X11+X18)*C11+(X12+X17)*C12+(X13+
X16)*C13+(X14+X15)*C14,而当C21、C22、C23、C24为正数,而C25、C26、C27、C28为负数,且
C21=‑C28,C22=‑C27,C23=‑C26,C24=‑C25,即此时将图像矩阵的第一行所有列元素与交换
矩阵的转置矩阵的第二列所有行的元素相乘并求和的数学表达:X11*C21+X12*C22+X13*
C23+X14*C24+X15*C25+X16*C26+X17*C27+X18*C28可变换为:(X11‑X18)*C21+(X12‑X17)*
C22+(X13‑X16)*C23+(X14‑X15)*C24,将(X11+X18)作为第一中间矩阵第一行第一列的元
素,将(X11‑X18)作为第一中间矩阵第一行第二列的元素,将(X12+X17)作为第一中间矩阵
第一行第三列的元素,将(X12‑X17)作为第一中间矩阵第一行第四列的元素,将(X13+X16)
作为第一中间矩阵第一行第五列的元素,将(X13‑X16)作为第一中间矩阵第一行第六列的
元素,将(X14+X15)作为第一中间矩阵第一行第七列的元素,将(X14‑X15)作为第一中间矩
阵第一行第八列的元素,按照上述规律,将(X21+X28)作为第一中间矩阵第二行第一列的元
素,将(X21‑X28)作为第一中间矩阵第二行第二列的元素,将(X22+X27)作为第一中间矩阵
第二行第三列的元素,将(X22‑X27)作为第一中间矩阵第二行第四列的元素,将(X23+X26)
作为第一中间矩阵第二行第五列的元素,将(X23‑X26)作为第一中间矩阵第二行第六列的
元素,将(X24+X25)作为第一中间矩阵第二行第七列的元素,将(X24‑X25)作为第一中间矩
阵第二行第八列的元素,即将(Xi1+Xi8)作为第一中间矩阵第i行第一列的元素,将(Xi1‑
Xi8)作为第一中间矩阵第i行第二列的元素,将(Xi2+Xi7)作为第一中间矩阵第i行第三列
的元素,将(Xi2‑Xi7)作为第一中间矩阵第i行第四列的元素,将(Xi3+Xi6)作为第一中间矩
阵第i行第五列的元素,将(Xi3‑Xi6)作为第一中间矩阵第i行第六列的元素,将(Xi4+Xi5)
作为第一中间矩阵第i行第七列的元素,将(Xi4‑Xi5)作为第一中间矩阵第i行第八列的元
素,直到获取构成第一中间矩阵的所有行所有列的元素,然后对其余图像矩阵进行相同处
理过程,获取多个第一中间矩阵,以便后续将第一中间矩阵进行存储,同时减少缓存量,降
低资源消耗。
[0072] 获取多个第一中间矩阵后,需要对第一中间矩阵进行存储,即需要配置存储空间尺寸,如图4所示,在一些实施例中,根据所述图像的分辨率与像素分量深度,配置存储空间
尺寸的步骤包括:
[0073] S21:根据所述图像的分辨率与像素分量深度,所述存储空间尺寸的数学表达为:
[0074] Space=(Res/Width)*((Pixel+1)*Width*Channel)
[0075] 其中,Space为所述存储空间尺寸,Res为所述分辨率,Pixel为所述像素分量深度,Width为所述图像矩阵的尺寸,Channel为选取的颜色通道数量,所述Res、Pixel、Width、
Channel为正整数。
[0076] 如图4所示,在步骤S21中,示例性地说明,根据所述图像的分辨率与像素分量深度计算存储单元的空间尺寸,例如,当待压缩图像的分辨率Res为1024*768,图像矩阵的尺寸
Width为8*8,像素分量深度Pixel为1字节,选取的颜色通道数量Channel为1个,则存储单元
的空间尺寸Space为(1024*768/(8*8))*((1+1)*8*8*1)=1572864字节,在一些实施过程中,
还可选取颜色通道的数量Channel为3个,则此时存储单元的空间尺寸Space为4718592字
节,其中,存储单元包括片上系统的片外缓存。
[0077] 获取存储空间尺寸后,需要将多个第一中间矩阵按照合适的位置存储于存储单元,如图5所示,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址的
步骤包括:
[0078] S22:根据所述第一中间矩阵的数量与行数,所述存储地址的数学表达为:
[0079] Addr=(M‑1)*L_max*Length+(L‑1)*Length
[0080] 其中,Addr为所述存储地址,M为所述第一中间矩阵的编号索引,L为所述第一中间矩阵的行数索引,L_max为所述第一中间矩阵的最大行数,Length为所述第一中间矩阵中每
一行数据所占据的存储长度,所述Addr、M、L、L_max、Length为正整数。
[0081] 如图5所示,在步骤S22中,示例性地说明,根据第一中间矩阵的数量与行数,计算第一中间矩阵的存储地址,例如,可将Length设置为16字节,对于第一个第一中间矩阵的第
一行,M=1,L=1,则其存储地址Addr为0,即第一个第一中间矩阵的第一行的存储地址为第0
字节至第15字节,对于第一个第一中间矩阵的第二行,M=1,L=2,则其存储地址Addr为16,即
第一个第一中间矩阵的第二行的存储地址为第16字节至第31字节,在一些实施过程中,可
选择多个颜色通道,设J代表颜色通道的编号索引,Addr_J代表所述编号索引对应的颜色通
道的第一中间矩阵的存储地址,通过该方式,可将每一个第一中间矩阵的每一行按照颜色
通道顺序进行存储,例如,选择Y和Cb两个颜色通道,则第一个颜色通道Y的第一个中间矩阵
的第一行元素的存储地址Addr_1为第0字节至第15字节,第二个颜色通道Cb的第一个中间
矩阵的第一行元素的存储地址Addr_2为第16字节至第31字节, 第一个颜色通道Y的第一个
中间矩阵的第二行元素的存储地址Addr_1为第32字节至第47字节,第二个颜色通道Cb的第
一个中间矩阵的第二行元素的存储地址Addr_2为第48字节至第63字节,直到分配出所有第
一中间矩阵的所有行的所有颜色通道的存储地址,并将所有第一中间矩阵按照分配的存储
地址存储于存储单元。
[0082] 在另一些实施过程中,还可将每一个第一中间矩阵按照颜色通道顺序进行存储,即对于每一个中间矩阵,将其所有行在一个颜色通道下进行连续存储,再将其所有行在另
一个颜色通道下进行连续存储,例如,选择Y和Cb两个颜色通道,则第一个颜色通道Y的第一
个中间矩阵的第一行元素的存储地址Addr_1为第0字节至第15字节,第一个中间矩阵的第
二行元素的存储地址Addr_1为第16字节至第31字节,第一个中间矩阵的第八行元素的存储
地址Addr_1为第112字节至第127字节,第二个颜色通道Cb的第一个中间矩阵的第一行元素
的存储地址Addr_2为第128字节至第143字节,第二个颜色通道Cb的第一个中间矩阵的第二
行元素的存储地址Addr_2为第144字节至第159字节,第二个颜色通道Cb的第一个中间矩阵
的第八行元素的存储地址Addr_2为第240字节至第255字节,直到分配出所有第一中间矩阵
的所有行的所有颜色通道的存储地址,并将所有第一中间矩阵按照分配的存储地址存储于
存储单元。
[0083] 在另一些实施过程中,还可将所有第一中间矩阵按照颜色通道顺序进行存储,即将所有第一中间矩阵在一个颜色通道下进行连续存储,再将所有第一中间矩阵在另一个颜
色通道下进行连续存储,直到所有第一中间矩阵都按照颜色通道为间隔进行存储。
[0084] 将所有第一中间矩阵存储至存储单元后,需将第一中间矩阵与转换矩阵进行计算,获取第二中间矩阵,如图6所示,读取所述第一中间矩阵,将所述第一中间矩阵的元素与
预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵的步骤包括:
[0085] S31:从所述存储空间的首地址开始,进行连续读取操作,获取所述第一中间矩阵;
[0086] S32:将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,并将计算结果进行叠加,获取所述第二中间矩阵,其中,所述第二矩阵计算包括:加法运算、乘
法运算。
[0087] 通过上述步骤,可将第一中间矩阵与转换矩阵进行第二矩阵计算,获取第二中间矩阵,将原始矩阵乘积运算分解为部分元素的加法与乘法运算,减少计算量。
[0088] 如图6所示,在步骤S31中,示例性地说明,从存储单元的首地址开始进行连续读取操作,获取第一中间矩阵,例如,当选择了一个颜色通道时,则直接从地址0开始进行读取,
依次获取第一个第一中间矩阵的第一行元素,每间隔16个字节的长度为另一行元素,直到
获取所有行的元素,接着读取另一个第一中间矩阵的所有行元素,直到获取所有第一中间
矩阵的所有行元素,在另一些实施过程中,可对两个颜色通道的情况进行数据读取,对于不
同颜色通道按照第一中间矩阵的每一行进行间隔存储的情况,则按照间隔信息读取不同颜
色通道的不同第一中间矩阵的各行元素,即先获取第一个颜色通道的第一个中间矩阵的第
一行元素,再获取第二个颜色通道的第一个中间矩阵的第一行元素,然后获取第一个颜色
通道的第一个中间矩阵的第二行元素,再获取第二个颜色通道的第一个中间矩阵的第二行
元素,直到获取所有颜色通道的所有第一中间矩阵的所有行元素,在另一些实施过程中,对
于不同颜色通道按照每一个第一中间矩阵进行间隔存储的情况,则按照间隔信息读取不同
颜色通道的不同第一中间矩阵的元素,即先获取第一个颜色通道的第一个中间矩阵的所有
行元素,再获取第二个颜色通道的第一个中间矩阵的所有行元素,直到获取所有颜色通道
的所有第一中间矩阵的所有行元素,通过该方式,具有读取效率高的特性,特别是对于大容
量的缓存单元,例如DDR,其支持按照突发的方式进行读取,即读取地址连续的一片地址区
间,该方式的读取效率要远高于单个数据读取,此时便可以使用突发的方式读取缓存中的
数据。
[0089] 如图6所示,在步骤S32中,示例性地说明,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,并将计算结果进行叠加,获取所述第二中间矩阵,其中,
所述第二矩阵计算包括:加法运算、乘法运算,例如,从存储空间的首地址开始,进行连续读
取操作,获取第一中间矩阵,配置一个正交矩阵作为转换矩阵,由于转换矩阵的元素具有正
负数值,且部分正负数值的绝对值相同,即互为相反数,因此可将具有相同绝对值的正负数
值作为一组,即互为相反数的元素作为一组,也可将转换矩阵某一行中相同的数值元素作
为一组,例如当转换矩阵的第一行所有列的元素为相同数值时,可将第一中间矩阵的第一
行第一列元素、第一行第三列元素、第一行第五列元素与第一行第七列元素进行加法运算,
作为第二中间矩阵的第一个元素,当转换矩阵的第二行数据的第一列元素与第二行第八列
元素为绝对值相同的正负数值元素时,可将第一中间矩阵的第一行第二列元素与转换矩阵
的第二行数据的第一列元素相乘,作为第二中间矩阵的第二个元素,当转换矩阵的第二行
数据的第二列元素与第二行第七列元素的数值互为相反数时,可将第一中间矩阵的第一行
第四列元素与转换矩阵的第二行数据的第二列元素相乘,作为第二中间矩阵的第三个元
素,当转换矩阵的第二行数据的第三列元素与第二行第六列元素的数值互为相反数时,可
将第一中间矩阵的第一行第六列元素与转换矩阵的第二行数据的第三列元素相乘,作为第
二中间矩阵的第四个元素,当转换矩阵的第二行数据的第四列元素与第二行第五列元素的
数值互为相反数时,可将第一中间矩阵的第一行第八列元素与转换矩阵的第二行数据的第
四列元素相乘,作为第二中间矩阵的第五个元素;
[0090] 进一步地,设第一中间矩阵的第i行第j列的元素为Pij,设转换矩阵的第i行第j列的元素为Cij,当C31=C38,C32=C37,C33=C36,C34=C35并且C31=‑C34,C32=‑C33,那么可将
(C31+C38)‑(C34+C35)作为一个组合,对应着第一中间矩阵则可表示为P11‑P17,同样可将
(C32+C37)‑(C34+C36)作为一个组合,对应着第一中间矩阵则可表示为P13‑P15,将(P11‑
P17)作为第二中间矩阵的第六个元素,将(P13‑P15)作为第二中间矩阵的第七个元素,即通
过对转换矩阵的元素分布进行分析,将转换矩阵同一行各列元素中存在数据相同或者互为
相反数的元素作为一组,并根据第一中间矩阵中各元素对应的位置信息,将第一中间矩阵
的元素与转换矩阵的元素进行结合,作为构成第二中间矩阵的元素,对于上述过程中的减
法运算,可用对负数进行加法运算的方式代替,而在处理过程中,负数则是对正数进行补码
操作。
[0091] 获取第二中间矩阵以后,需要继续与转换矩阵进行计算获取第三中间矩阵,如图7所示,将所述第二中间矩阵的元素与所述转换矩阵的元素进行第三矩阵计算,获取第三中
间矩阵的步骤包括:
[0092] S33:将所述第二中间矩阵的元素与预设的转换矩阵的元素进行第三矩阵计算,并将计算结果进行叠加,获取所述第三中间矩阵,其中,所述第三矩阵计算包括:加法运算、乘
法运算。
[0093] 通过上述步骤,将第二中间矩阵的元素与转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵,将原始矩阵乘积计算分解为部分元素的加法运算与乘法运算。
[0094] 如图7所示,在步骤S33中,示例性地说明,将第二中间矩阵的元素与转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵,例如,将第二中间矩阵的第一个元素与转换矩阵
的第一行所有列的数据相乘,作为第三中间矩阵的第一个元素,即第三中间矩阵的第一行
第一列元素,将第二中间矩阵的第二个元素、第三个元素、第四个元素、第五个元素进行加
法运算,作为第三中间矩阵的第二个元素,即第三中间矩阵的第一行第二列元素,进一步
地,可设转换矩阵的第i行第j列的元素为Cij,第三中间矩阵的第i行第j列的元素为Tij,第
二中间矩阵的第k个元素为Rk,则T13=R6*C31+R7*C32,T14=R8+R9+R10+R11,T15=R12*C51,
T16=R13+R14+R15+R16,T17=R17*C71+R18*C73,T18=R19+R20+R21+R22,然后依次继续第三
中间矩阵的第二行元素、第三行元素,直到计算出所有构成第三中间矩阵的元素。
[0095] 获取第三中间矩阵后,还需将转换矩阵与第三中间矩阵进行第四矩阵计算,获取结果矩阵,以此获取压缩图像,如图8所示,将所述转换矩阵与所述第三中间矩阵进行第四
矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像的步骤包括:
[0096] S41:依次将所述转换矩阵的每一行元素与所述第三中间矩阵的每一列元素进行对应相乘并求和,获取结果矩阵;
[0097] S42:对所述结果矩阵进行量化、差分编码、游程长度编码、霍夫曼编码,选取压缩比,获取压缩图像。
[0098] 通过上述步骤,可将DCT过程中的矩阵乘积运算进行完善。
[0099] 如图8所示,在步骤S41中,示例性地说明,将转换矩阵的每一行元素与第三中间矩阵的每一列元素进行对应相乘并求和,获取结果矩阵,例如,设转换矩阵的第i行第j列的元
素为Cij,第三中间矩阵的第i行第j列的元素为Tij,设结果矩阵的第i行第j列的元素为
Yij,则结果矩阵第i行第j列的元素为 。
[0100] 如图8所示,在步骤S42中,示例性地说明,对结果矩阵进行编码处理,获取压缩图像,例如,对结果矩阵进行量化处理,选取量化系数矩阵,设量化系数矩阵的第i行第j列的
元素为Qij,结果矩阵的第i行第j列的元素为Yij,则量化结果矩阵的第i行第j列的元素数
学表达为:
[0101] Bij=round(Yij/Qij)
[0102] 其中,round(·)为四舍五入取整函数。
[0103] 当结果矩阵的尺寸为8*8时,量化后矩阵左上角即第一行第一列的元素被称为直流分量,其他63个元素被称为交流分量,其中直流分量与前一矩阵的直流系数进行差分编
码,交流分量则采用Z字形扫描排列并进行游程长度编码,然后根据不同的颜色通道,对直
流分量与交流分量采用不同的霍夫曼编码表进行编码操作,最后选择压缩比,获取压缩图
像的文件。
[0104] 在一个实施例中,如图9所示,提供了用于图像压缩的数据处理装置,所述用于图像压缩的数据处理装置包括:
[0105] 第一矩阵计算模块,用于将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;
[0106] 存储参数配置模块,用于根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将
各个所述第一中间矩阵都进行存储;
[0107] 中间矩阵获取模块,用于读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的
元素与所述转换矩阵的元素进行第三矩阵计算,获取第三中间矩阵;
[0108] 结果矩阵获取模块,用于将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。
[0109] 在第一矩阵计算模块中,示例性地说明,将待压缩图像分割为多个图像矩阵,依次对图像矩阵进行第一矩阵计算,获取第一中间矩阵,例如,获取待压缩图像后,将待压缩图
像矩阵的元素向后推移128,目的是将原始数据从无符号数变为有符号数,例如当原始数据
为0至225时,向后推移128后变为‑128至127,设置图像矩阵尺寸,比如设置为8*8,则从待压
缩图像的第一行第一列元素开始,选取第一行至第八行与第一列至第八列的像素作为第一
个图像矩阵,选取第一行至第八行与第九列至第十六列的像素作为第二个图像矩阵,直到
所有的像素都被选取,构成多个图像矩阵,然后将第一个图像矩阵的第一行第一列数据与
第一行第八列的数据相加,形成第一中间矩阵的第一行第一列的元素,然后将第一个图像
矩阵的第一行第二列数据与第一行第七列的数据相加,形成第一中间矩阵的第一行第二列
的元素,直到所有行与列的数据都进行加法处理,获取第一中间矩阵的所有元素,形成第一
中间矩阵,然后对其余图像矩阵进行相同处理过程,获取多个第一中间矩阵,以便后续将第
一中间矩阵进行存储,同时减少缓存量,降低资源消耗,进一步地,可选取一个Y颜色通道,
则根据待压缩图像的分辨率a*b,将待压缩图像分割为多个8*8的图像矩阵,图像矩阵的数
量由(a*b)/(8*8)进行计算,当待压缩图像分辨率为1024*768时,图像矩阵的数量为12288
个,而当选取两个颜色通道,例如Y通道与Cb通道时,则图像矩阵的数量为2*(a*b)/(8*8),
当待压缩图像分辨率为1024*768时,图像矩阵的数量为24576个,而当选取三个颜色通道,
例如Y通道与Cb通道与Cr通道时,则图像矩阵的数量为3*(a*b)/(8*8),当待压缩图像分辨
率为1024*768时,图像矩阵的数量为36864个,从待压缩图像的第一行第一列元素开始,选
取第一行至第八行与第一列至第八列的像素作为第一个图像矩阵,选取第一行至第八行与
第九列至第十六列的像素作为第二个图像矩阵,直到所有的像素都被选取,构成多个图像
矩阵。
[0110] 在存储参数配置模块中,示例性地说明,配置存储单元的空间尺寸和第一中间矩阵的存储地址,并将各个第一中间矩阵都存储于存储单元,其中,存储单元包括片上系统的
片外缓存,例如,根据待压缩图像的分辨率与图像矩阵的尺寸,计算出第一中间矩阵的数
量,比如当待压缩图像的分辨率为1920*1080,图像矩阵的尺寸为8*8,选取1个颜色通道时,
则第一中间矩阵的数量为1920*1080/(8*8),即32400个,由于每一个第一中间矩阵包括8*8
=64个数据,当每个数据占据的字节长度为2字节时,所有第一中间矩阵所占据的字节长度
为32400*64*2=4147200字节,即配置存储单元的空间尺寸为4147200字节;
[0111] 进一步地,每个数据占据的字节长度可由图像的像素分量深度决定,当像素分量深度为Pixel字节时,每个数据占据的字节长度为(Pixel+1)个字节,当选取Y、Cb、Cr三个颜
色通道时,当Pixel为1时,此时所有第一中间矩阵所占据的字节长度为32400*64*2*3=
12441600字节,在配置存储单元的空间尺寸后,需要将各个第一中间矩阵进行存储,因此需
要配置存储地址,对于第1个第一中间矩阵的第1行数据,其起始存储地址为0,对于第1个第
一中间矩阵的第2行数据,其起始存储地址为16,对于第1个第一中间矩阵的第3行数据,其
起始存储地址为32,直到所有第一中间矩阵的所有行数据都分配存储地址,以便根据存储
地址,将所有第一中间矩阵都存储于存储单元,对于多个颜色通道的情况,可将第一中间矩
阵的每一行作为间隔,以行为间隔保存各个颜色通道下各行的元素,也可以将一个完全的
中间矩阵作为间隔,以第一中间矩阵为间隔保存各颜色通道下的元素,在另一些实施过程
中,还可将所有第一中间矩阵按照颜色通道顺序进行存储,即将所有第一中间矩阵在一个
颜色通道下进行连续存储,再将所有第一中间矩阵在另一个颜色通道下进行连续存储,直
到所有第一中间矩阵都按照颜色通道为间隔进行存储。
[0112] 在中间矩阵获取模块中,示例性地说明,从存储单元中读取第一中间矩阵,并将转换矩阵的元素与第一中间矩阵的元素进行第二矩阵计算与第三矩阵计算,获取第三中间矩
阵,例如,从存储空间的首地址开始,进行连续读取操作,获取第一中间矩阵,并将第一中间
矩阵存储于片上系统的容量较小的片内缓存,配置一个正交矩阵作为转换矩阵,由于转换
矩阵的元素具有正负数值,且部分正负数值的绝对值相同,因此可将具有相同绝对值的正
负数值作为一组,即互为相反数的元素作为一组,也可将转换矩阵某一行中相同的数值元
素作为一组,例如当转换矩阵的第一行所有列的元素为相同数值时,可将第一中间矩阵的
第一行第一列元素、第一行第三列元素、第一行第五列元素与第一行第七列元素进行加法
运算,作为第二中间矩阵的第一个元素,当转换矩阵的第二行数据的第一列元素与第二行
第八列元素为绝对值相同的正负数值元素时,可将第一中间矩阵的第一行第二列元素与转
换矩阵的第二行数据的第一列元素相乘,作为第二中间矩阵的第二个元素,当转换矩阵的
第二行数据的第二列元素与第二行第七列元素的数值互为相反数时,可将第一中间矩阵的
第一行第四列元素与转换矩阵的第二行数据的第二列元素相乘,作为第二中间矩阵的第三
个元素,当转换矩阵的第二行数据的第三列元素与第二行第六列元素的数值互为相反数
时,可将第一中间矩阵的第一行第六列元素与转换矩阵的第二行数据的第三列元素相乘,
作为第二中间矩阵的第四个元素,当转换矩阵的第二行数据的第四列元素与第二行第五列
元素的数值互为相反数时,可将第一中间矩阵的第一行第八列元素与转换矩阵的第二行数
据的第四列元素相乘,作为第二中间矩阵的第五个元素,即通过对转换矩阵的元素分布进
行分析,将转换矩阵同一行各列元素中存在数据相同或者互为相反数的元素作为一组,并
根据第一中间矩阵中各元素对应的位置信息,将第一中间矩阵的元素与转换矩阵的元素进
行结合,作为构成第二中间矩阵的元素,然后将第二中间矩阵的第一个元素与转换矩阵的
第一行所有列的数据相乘,作为第三中间矩阵的第一个元素,将第二中间矩阵的第二个元
素、第三个元素、第四个元素、第五个元素进行加法运算,作为第三中间矩阵的第二个元素,
直到计算出所有构成第三中间矩阵的元素。
[0113] 在结果矩阵获取模块中,示例性地说明,将转换矩阵与第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对结果矩阵进行编码获取压缩图像,例如,从转换矩阵的第一
行的各元素开始,与第三中间矩阵的第一列的各元素对应进行相乘并将乘积结果求和,作
为结果矩阵第一行第一列的元素,将转换矩阵第一行的各元素与第三中间矩阵的第二列的
各元素对应进行相乘并将乘积结果求和,作为结果矩阵第一行第二列的元素,直到第一行
的各元素与第三中间矩阵的第八列的各元素对应进行相乘并将乘积结果求和,作为结果矩
阵第一行第八列的元素,然后将转换矩阵第二行的各元素与第三中间矩阵的第一列的各元
素对应进行相乘并将乘积结果求和,作为结果矩阵第二行第一列的元素,直到转换矩阵的
所有行的元素与第三中间矩阵所有列的元素都进行乘积求和运算,获取所有构成结果矩阵
的元素,该结果矩阵则为JPEG图像压缩过程中DCT过程的结果,最后对结果矩阵进行编码、
选择压缩比等操作,获取压缩图像文件。
[0114] 关于用于图像压缩的数据处理装置的具体限定可以参见上文中对于用于图像压缩的数据处理方法的限定,在此不再赘述。上述用于图像压缩的数据处理装置中的各个模
块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立
于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于
处理器调用执行以上各个模块对应的操作。
[0115] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和
数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包
括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据
库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算
机设备的数据库用于存储用于图像压缩的数据处理的数据。该计算机设备的网络接口用于
与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现用于图像压缩的数
据处理方法。
[0116] 本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设
备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0117] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
[0118] 将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;
[0119] 根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将各个所述第一中间矩阵
都进行存储;
[0120] 读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的元素与所述转换矩阵的元
素进行第三矩阵计算,获取第三中间矩阵;
[0121] 将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。
[0122] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0123] 将待压缩图像分割为多个图像矩阵,依次对所述图像矩阵的元素进行第一矩阵计算,获取第一中间矩阵;
[0124] 根据所述待压缩图像的分辨率与像素分量深度,配置存储空间尺寸,根据所述第一中间矩阵的矩阵数量,配置所述第一中间矩阵的存储地址,并将各个所述第一中间矩阵
都进行存储;
[0125] 读取所述第一中间矩阵,将所述第一中间矩阵的元素与预设的转换矩阵的元素进行第二矩阵计算,获取第二中间矩阵,并将所述第二中间矩阵的元素与所述转换矩阵的元
素进行第三矩阵计算,获取第三中间矩阵;
[0126] 将所述转换矩阵与所述第三中间矩阵进行第四矩阵计算,获取结果矩阵,通过对所述结果矩阵进行编码,获取压缩图像。
[0127] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM
(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括
随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,
诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强
型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM
(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0128] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛
盾,都应当认为是本说明书记载的范围。
[0129] 以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护
范围。因此,本申请专利的保护范围应以所附权利要求为准。