一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像编码方法、装置、设备及计算机可读介质与流程

2022-06-01 12:10:04 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,尤其涉及一种图像编码方法、装置、设备及计算机可读介质。


背景技术:

2.图像编解码比如jpeg一般是用软件或专门设计的图像编解码ip核实现,jpeg编码首先将图像按yuv的3通道分割成16*16或8*8宏块序列,对每个宏块进行二维离散余弦(dct)变换,二维dct变换可以分解为一维行dct变换和一维列dct变换的乘积。尽管离散余弦变换已经比离散傅里叶变换拥有更加出众的运算性能,但是运算过程中仍然需要多次乘法运算,编码效率低。
3.目前,相关技术中,为了减少乘法运算,一般使用蝶形变换来实现一维dct变换(行变换和列变换系数相同),最后对宏块变换后的系数进行量化和无损游程编码,但是蝶形运算能够提升的编码效率在日益强大的计算机算力面前也逐渐变得微乎其微。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本技术提供了一种图像编码方法、装置、设备及计算机可读介质,以解决图像dct变换的编码效率低的技术问题。
6.根据本技术实施例的一个方面,本技术提供了一种图像编码方法,包括:
7.获取待处理图像;
8.将待处理图像按照预设大小划分为多个像素块;
9.将每个像素块中的像素按照目标排列方式进行排列,并对排列后的每个像素块进行卷积运算,得到各个像素块的图像变换系数;
10.按照预设顺序对图像变换系数进行压缩,得到目标图像编码。
11.可选地,将待处理图像按照预设大小划分为多个像素块之前,该方法还包括:
12.确定神经网络处理器的输入缓冲区的承载量;
13.按照承载量确定卷积输入行数、卷积输入列数及可容纳的像素块的数量。
14.可选地,将每个像素块中的像素按照目标排列方式进行排列,并对排列后的每个像素块进行卷积运算,得到各个像素块的图像变换系数包括:
15.将每个像素块中的像素按列分为第一输入数据和第二输入数据,并将第一输入数据输入第一输入通道,将第二输入数据输入第二输入通道,第一输入数据和第二输入数据用于行离散余弦变换,第一输入通道和第二输入通道为行离散余弦变换的数据输入通道,第一输入通道和第二输入通道为神经网络处理器的输入缓冲区的数据通道;
16.将卷积权重系数装载至神经网络处理器中,以利用神经网络处理器对第一输入通道和第二输入通道的数据进行卷积运算,得到像素块的行离散余弦变换结果,并将像素块不同列对应的行离散余弦变换结果按列保存在多个输出通道中;
17.将按列保存在多个所述输出通道中的所述行离散余弦变换结果按行分为第三输入数据和第四输入数据,并将第三输入数据输入第三输入通道,将第四输入数据输入第四输入通道,第三输入数据和第四输入数据用于列离散余弦变换,第三输入通道和第四输入通道为列离散余弦变换的数据输入通道,第三输入通道和第四输入通道为神经网络处理器的输入缓冲区的数据通道;
18.利用神经网络处理器对第三输入通道和第四输入通道的数据进行卷积运算,得到像素块的列离散余弦变换结果,并将像素块不同行对应的列离散余弦变换结果按行保存在多个输出通道中,得到像素块的图像变换系数,一个输出通道中保存像素块中一行像素的图像变换系数。
19.可选地,将每个像素块中的像素按列分为第一输入数据和第二输入数据包括:
20.将像素块中每一行的第一目标列数的像素在第一输入通道的缓冲区排列,得到第一输入数据,并将像素块中每一行的第二目标列数的像素在第二输入通道的缓冲区排列,得到第二输入数据;
21.将按列保存在多个所述输出通道中的所述行离散余弦变换结果按行分为第三输入数据和第四输入数据包括:
22.从多个所述输出通道中将每一列的第一目标行数的行离散余弦变换结果在第三输入通道的缓冲区排列,得到第三输入数据,并将每一列的第二目标行数的行离散余弦变换结果在第四输入通道的缓冲区排列,得到第四输入数据。
23.可选地,得到像素块的行离散余弦变换结果之后,该方法还包括按照如下方式将像素块不同列对应的行离散余弦变换结果按列保存在多个输出通道中:
24.将行离散余弦变换结果按照像素块中的像素的排列顺序进行排列;
25.提取排列后行离散余弦变换结果的每一列,并将每一列分别存放到对应的输出通道中。
26.可选地,得到像素块的列离散余弦变换结果之后,该方法还包括按照如下方式将像素块不同行对应的列离散余弦变换结果按行保存在多个输出通道中:
27.将列离散余弦变换结果按照像素块中的像素的排列顺序进行排列;
28.提取排列后列离散余弦变换结果的每一行,并将每一行分别存放到对应的输出通道中。
29.可选地,将卷积权重系数装载至神经网络处理器之前,该方法还包括按照如下方式获取卷积权重系数:
30.获取快速蝶形变换系数,快速蝶形变换系数用于进行离散余弦变换;
31.将快速蝶形变换系数进行代换、展开及合并同类项操作中的至少一种,得到卷积权重系数。
32.可选地,按照预设顺序对图像变换系数进行压缩,得到目标图像编码包括:
33.按照zigzag顺序依次从各个输出通道中取出对应位置的图像变换系数进行游程编码;
34.在所有的像素块均编码完成后,得到待处理图像的目标图像编码。
35.根据本技术实施例的另一方面,本技术提供了一种图像编码装置,包括:图像获取模块,用于获取待处理图像;图像划分模块,用于将待处理图像按照预设大小划分为多个像
素块;图像变换模块,用于将每个像素块中的像素按照目标排列方式进行排列,并对排列后的每个像素块进行卷积运算,得到各个像素块的图像变换系数;图像编码模块,用于按照预设顺序对图像变换系数进行压缩,得到目标图像编码。
36.根据本技术实施例的另一方面,本技术提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
37.根据本技术实施例的另一方面,本技术还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
38.本技术实施例提供的上述技术方案与相关技术相比具有如下优点:
39.本技术技术方案为获取待处理图像;将待处理图像按照预设大小划分为多个像素块;将每个像素块中的像素按照目标排列方式进行排列,并对排列后的每个像素块进行卷积运算,得到各个像素块的图像变换系数;按照预设顺序对图像变换系数进行压缩,得到目标图像编码。本技术利用神经网络处理器对图像进行卷积运算,以通过卷积运算来实现图像编解码。将复杂的离散余弦变换转换为卷积运算,极大的加快了图像变换编码的速度,提升图像编码效率。
附图说明
40.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
41.为了更清楚地说明本技术实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
42.图1为一种jpeg的图像编码方法示意图;
43.图2为一种常用的标准3*3定点卷积示意图;
44.图3为根据本技术实施例提供的一种可选的图像编码方法硬件环境示意图;
45.图4为根据本技术实施例提供的一种可选的图像编码方法流程图;
46.图5为根据本技术实施例提供的一种可选的卷积转换示意图;
47.图6为根据本技术实施例提供的一种可选的行dct变换输入示意图;
48.图7为根据本技术实施例提供的一种可选的双通道卷积示意图;
49.图8为根据本技术实施例提供的一种可选的列dct变换输入示意图;
50.图9为根据本技术实施例提供的一种可选的图像编码装置框图;
51.图10为本技术实施例提供的一种可选的电子设备结构示意图。
具体实施方式
52.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
53.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为
了有利于本技术的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
54.相关技术中,如图1所示,jpeg编码首先将图像按yuv的3通道分割成16*16或8*8宏块序列,对每个宏块进行二维离散余弦(dct)变换,二维dct变换可以分解为一维行dct变换和一维列dct变换的乘积,为了减少乘法运算,一般使用蝶形变换来实现一维dct变换(行变换和列变换系数相同),最后对宏块变换后的系数进行量化和无损游程编码。
55.而如图2所示为最常用的标准3*3定点卷积,卷积窗口大小为3*3,共9个像素,窗口移动步长为1-2列或1-2行,每个输入通道的卷积窗口同时进行3*3卷积并加和,结果放在一个输出通道一个像素上。可以看到,对图像宏块的离散余弦变换和常用的标准定点卷积运算是有着较大差异的。需要采用本专利所用技术将图像宏块的dct变换转变成常用的标准定点卷积运算,以便利用npu定点卷积的巨大计算能力。
56.为了解决背景技术中提及的问题,根据本技术实施例的一方面,提供了一种图像编码方法的实施例。
57.可选地,在本技术实施例中,上述图像编码方法可以应用于如图3所示的由终端301和服务器303所构成的硬件环境中。如图3所示,服务器303通过网络与终端301进行连接,可用于为终端或终端上安装的客户端提供服务,可在服务器上或独立于服务器设置数据库305,用于为服务器303提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端301包括但不限于pc、手机、平板电脑等。
58.本技术实施例中的一种图像编码方法可以由服务器303来执行,还可以是由服务器303和终端301共同执行,如图4所示,该方法可以包括以下步骤:
59.步骤s402,获取待处理图像。
60.步骤s404,将待处理图像按照预设大小划分为多个像素块。
61.本技术实施例中,待处理图像可以按照图像通道(例如yuv等)分割成16*16或8*8宏块序列,即上述的像素块。
62.宏块(macroblock),是图像编码技术中的一个基本概念。通过将画面分成一个个大小相同块来实行压缩策略,一个宏块由一个亮度像素块和附加的两个色度像素块组成。一般来说,亮度块为16*16大小的像素块,而两个色度图像像素块的大小依据其图像的采样格式而定,如:对于yuv420采样图像,色度块为8*8大小的像素块。本技术实施例中以8*8大小的像素块为例进行说明。
63.可选地,将待处理图像按照预设大小划分为多个像素块之前,该方法还包括:
64.确定神经网络处理器的输入缓冲区的承载量;按照承载量确定卷积输入行数、卷积输入列数及可容纳的像素块的数量。
65.本技术实施例提供的图像编码方法旨在将图像宏块的dct变换转变成常用的标准定点卷积运算,以便利用npu定点卷积的巨大计算能力。因此可以对神经网络处理器(neural-network processing unit,npu)进行适应性配置。
66.根据神经网络处理器的输入缓冲区的大小确定卷积输入行、输入列以及可容纳的像素块的数量,以8*8像素块为例,卷积输入列可为4*图像通道数的整数倍,卷积输入行可取8的整数倍,其中,yuv格式的图像其图像通道数为3,即一个亮度通道,两个色度通道。如果图像通道为3,卷积输入通道为2,可取252输入列,卷积输入行则是(npu输入缓冲区大小/
(2*252)/8)*8,即输入缓冲区容量整除输入通道数再整除输入列,然后向下取8的整数倍,而可容纳的宏块数为(输入行/8)*(输入列/4)。
67.步骤s406,将每个像素块中的像素按照目标排列方式进行排列,并对排列后的每个像素块进行卷积运算,得到各个像素块的图像变换系数。
68.可选地,上述步骤s406具体可以包括以下步骤:
69.步骤1,将每个像素块中的像素按列分为第一输入数据和第二输入数据,并将第一输入数据输入第一输入通道,将第二输入数据输入第二输入通道,第一输入数据和第二输入数据用于行离散余弦变换,第一输入通道和第二输入通道为行离散余弦变换的数据输入通道,第一输入通道和第二输入通道为神经网络处理器的输入缓冲区的数据通道。
70.本技术实施例中,为了采用卷积运算来计算离散余弦变换(dct for discrete cosine transform),首先需要将图像按照标准卷积的排列方式作为神经网络处理器的卷积输入。如图5所示,本技术技术方案可以采用卷积转换方案1,即采用一个输入通道的3*3卷积核对应离散余弦变换的8个系数,乘积累加运算(multiply accumulate,mac)的利用率为8/(3x3)=89%,也可采用卷积转换方案2,即采用两个输入通道的3x3卷积核对应这8个变换系数,乘积累加运算的利用率为4/(3x3)=44%。然而一个输入通道的方案,其移动步长3不是常见步长,执行效率一般比常见步长1和2低,且无法进行输入通道的并行计算,所以总体效率反而不如双输入通道的方案。作为优选,本技术采用双输入通道的3x3卷积核,卷积步长为2的方案。
71.可选地,将每个像素块中的像素按列分为第一输入数据和第二输入数据包括:
72.将像素块中每一行的第一目标列数的像素在第一输入通道的缓冲区排列,得到第一输入数据,并将像素块中每一行的第二目标列数的像素在第二输入通道的缓冲区排列,得到第二输入数据。
73.以8*8大小的像素块为例,上述第一目标列数可以是前4列,上述第二目标列数可以是后4列。
74.本技术实施例中,按照双通道输入将每个像素块的像素按照标准卷积的排列方式排列,如图6所示,将8*8大小的每个像素块的64个像素按8行4列在2个输入通道交错排列,即每一行前4列排成2行2列放在行dct输入通道0(即第一输入通道),每一行后4列排成2行2列放在行dct输入通道1(即第二输入通道),第0行到第7行可按4*2、2*4、1*8、8*1多种方式排列,图示采用4*2的排列方式,所以在2个输入通道里各有32像素,这32个像素每4个像素一组按照8行4列排列。上述为一个像素块具体的排列,各个像素块则按先列后行的顺序放置,即先放置前8行,直至填满该8行的252列,而后再放置后续8行。
75.步骤2,将卷积权重系数装载至神经网络处理器中,以利用神经网络处理器对第一输入通道和第二输入通道的数据进行卷积运算,得到像素块的行离散余弦变换结果,并将像素块不同列对应的行离散余弦变换结果按列保存在多个输出通道中。
76.本技术实施例中,卷积运算的卷积核是3*3(右下侧5个系数为0,实际为2*2),卷积步长为2。
77.本技术实施例中,如图7所示,若行dct计算第0列的系数为c
00
、c
10


、c
70
,计算第n列的系数为c
0n
、c
1n


、c
7n
,宏块第m行输入是a
m0
、a
m1


、a
m7
,则行dct的第m行第n列的输出为a
m0
*c
0n
a
m1
*c
1n


a
m7
*c
7n
,转换成标准的2输入通道3*3卷积为:
78.a
m0
*c
0n
a
m1
*c
1n
a
0x
*0 a
m2
*c
2n
a
m3
*c
3n
a
1x
*0 a
x0
*0 a
x1
*0 a
x2
*0(第一输入通道);
79.a
m4
*c
4n
a
m5
*c
5n
a
0x
*0 a
m6
*c
6n
a
m7
*c
7n
a
1x
*0 a
x0
*0 a
x1
*0 a
x2
*0(第二输入通道)。
80.本技术实施例中,上述卷积权重系数可以按照如下方式获取:
81.获取快速蝶形变换系数,快速蝶形变换系数用于进行离散余弦变换;
82.将快速蝶形变换系数进行代换、展开及合并同类项操作中的至少一种,得到卷积权重系数。
83.卷积权重系数在8行或8列输入对应的通道中对各个通道中的数据加权卷积,由快速蝶形变换系数转换为卷积权重系数可以按照下表所示:
[0084][0085][0086]
其中,f001=1.0,f038=0.383,f054=0.541,f071=0.707,f131=1.307为dct的
蝶形变换系数。
[0087]
可选地,得到像素块的行离散余弦变换结果之后,该方法还包括按照如下方式将像素块不同列对应的行离散余弦变换结果按列保存在多个输出通道中:
[0088]
将行离散余弦变换结果按照像素块中的像素的排列顺序进行排列;
[0089]
提取排列后行离散余弦变换结果的每一列,并将每一列分别存放到对应的输出通道中。
[0090]
本技术实施例中,在进行行离散余弦变换后,将其结果放在卷积的8个输出通道中,如图7上半部分所示。按照像素块中的像素的排列顺序,行离散余弦变换结果的不同列放在不同输出通道里,即输出通道0每4行2列包含一个像素块第0列的8个系数(行离散余弦变换结果),输出通道n每4行2列包含该像素块第n列的8个系数。
[0091]
步骤3,将按列保存在多个所述输出通道中的所述行离散余弦变换结果按行分为第三输入数据和第四输入数据,并将第三输入数据输入第三输入通道,将第四输入数据输入第四输入通道,第三输入数据和第四输入数据用于列离散余弦变换,第三输入通道和第四输入通道为列离散余弦变换的数据输入通道,第三输入通道和第四输入通道为神经网络处理器的输入缓冲区的数据通道。
[0092]
本技术实施例中,在计算完行离散余弦变换后,还需要进行列离散余弦变换,此时将行离散余弦变换结果排列后输入神经网络处理器。
[0093]
可选地,将按列保存在多个所述输出通道中的所述行离散余弦变换结果按行分为第三输入数据和第四输入数据包括:
[0094]
从多个所述输出通道中将每一列的第一目标行数的行离散余弦变换结果在第三输入通道的缓冲区排列,得到第三输入数据,并将每一列的第二目标行数的行离散余弦变换结果在第四输入通道的缓冲区排列,得到第四输入数据。
[0095]
实际上,就是将行离散余弦变换的每个输出通道分为两组,提取的第一组列像素放在第三输入通道的缓冲区中,第二组列像素放在第四输入通道的缓冲区中,多个输出通道按照目标排列方式在第三输入通道和第四输入通道中排列。
[0096]
以8*8大小的像素块为例,上述第一目标行数可以是前4行,上述第二目标行数可以是后4行。
[0097]
本技术实施例中,按照双通道输入将各通道的行离散余弦变换结果按照标准卷积的排列方式排列,如图8所示,将8个输出通道合并成两个输入通道,即行离散余弦变换结果每一列的前4行从8个输出通道取出放在列dct输入通道0(第三输入通道),行离散余弦变换结果每一列的后4行从8个输出通道取出放在列dct输入通道1(第四输入通道),每个输入通道可按4*2、2*4、1*8、8*1多种方式排列,图示采用4*2的排列方式,也就是两个输入通道里各有32个系数(行离散余弦变换结果),这32个系数每4个系数一组按照8行4列排列。
[0098]
步骤4,利用神经网络处理器对第三输入通道和第四输入通道的数据进行卷积运算,得到像素块的列离散余弦变换结果,并将像素块不同行对应的列离散余弦变换结果按行保存在多个输出通道中,得到像素块的图像变换系数,一个输出通道中保存像素块中一行像素的图像变换系数。
[0099]
本技术实施例中,卷积运算的卷积核是3*3(右下侧5个系数为0,实际为2*2),卷积步长为2。
[0100]
本技术实施例中,进行列离散余弦变换的卷积运算所用的卷积权重系数可以按照前述表格所示。
[0101]
可选地,得到像素块的列离散余弦变换结果之后,该方法还包括按照如下方式将像素块不同行对应的列离散余弦变换结果按行保存在多个输出通道中:
[0102]
将列离散余弦变换结果按照像素块中的像素的排列顺序进行排列;
[0103]
提取排列后列离散余弦变换结果的每一行,并将每一行分别存放到对应的输出通道中。
[0104]
本技术实施例中,列dct按卷积方式计算完成后将列离散余弦变换结果放在卷积的8个输出通道中,按照不同行放在不同输出通道里,即输出通道0每4行2列包含一个像素块进行列dct后输出第0行的8个系数(列离散余弦变换结果),输出通道n每4行2列包含该像素块进行列dct后输出第n行的8个系数,列dct输出的该系数即为图像变换系数,一个输出通道中保存像素块中一行像素的图像变换系数。
[0105]
步骤s408,按照预设顺序对图像变换系数进行压缩,得到目标图像编码。
[0106]
可选地,步骤s408按照预设顺序对图像变换系数进行压缩,得到目标图像编码可以包括:
[0107]
按照zigzag顺序依次从各个输出通道中取出对应位置的图像变换系数进行游程编码;
[0108]
在所有的像素块均编码完成后,得到待处理图像的目标图像编码。
[0109]
本技术实施例中,上述zigzag顺序可以按照图1所示中量化和游程编码所示的顺序进行。
[0110]
采用本技术技术方案,利用神经网络处理器对图像进行卷积运算,以通过卷积运算来实现图像编解码。将复杂的离散余弦变换转换为卷积运算,极大的加快了图像变换编码的速度,提升图像编码效率。利用npu卷积运算的高算力大大加快图像变换编码的速度,可得到10-50倍加速,同时实现了功能复用,不需要另外设计图像编码ip。
[0111]
根据本技术实施例的又一方面,如图9所示,提供了一种图像编码装置,包括:图像获取模块901,用于获取待处理图像;图像划分模块903,用于将待处理图像按照预设大小划分为多个像素块;图像变换模块905,用于将每个像素块中的像素按照目标排列方式进行排列,并对排列后的每个像素块进行卷积运算,得到各个像素块的图像变换系数;图像编码模块907,用于按照预设顺序对图像变换系数进行压缩,得到目标图像编码。
[0112]
需要说明的是,该实施例中的图像获取模块901可以用于执行本技术实施例中的步骤s402,该实施例中的图像划分模块903可以用于执行本技术实施例中的步骤s404,该实施例中的图像变换模块905可以用于执行本技术实施例中的步骤s406,该实施例中的图像编码模块907可以用于执行本技术实施例中的步骤s408。
[0113]
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图3所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
[0114]
可选地,该图像编码装置,还包括神经网络处理器配置模块,用于:
[0115]
确定神经网络处理器的输入缓冲区的承载量;
[0116]
按照承载量确定卷积输入行数、卷积输入列数及可容纳的像素块的数量。
[0117]
可选地,该图像变换模块,具体用于:
[0118]
将每个像素块中的像素按列分为第一输入数据和第二输入数据,并将第一输入数据输入第一输入通道,将第二输入数据输入第二输入通道,第一输入数据和第二输入数据用于行离散余弦变换,第一输入通道和第二输入通道为行离散余弦变换的数据输入通道,第一输入通道和第二输入通道为神经网络处理器的输入缓冲区的数据通道;
[0119]
将卷积权重系数装载至神经网络处理器中,以利用神经网络处理器对第一输入通道和第二输入通道的数据进行卷积运算,得到像素块的行离散余弦变换结果,并将像素块不同列对应的行离散余弦变换结果按列保存在多个输出通道中;
[0120]
将按列保存在多个所述输出通道中的所述行离散余弦变换结果按行分为第三输入数据和第四输入数据,并将第三输入数据输入第三输入通道,将第四输入数据输入第四输入通道,第三输入数据和第四输入数据用于列离散余弦变换,第三输入通道和第四输入通道为列离散余弦变换的数据输入通道,第三输入通道和第四输入通道为神经网络处理器的输入缓冲区的数据通道;
[0121]
利用神经网络处理器对第三输入通道和第四输入通道的数据进行卷积运算,得到像素块的列离散余弦变换结果,并将像素块不同行对应的列离散余弦变换结果按行保存在多个输出通道中,得到像素块的图像变换系数,一个输出通道中保存像素块中一行像素的图像变换系数。
[0122]
可选地,该图像变换模块,还用于:
[0123]
将像素块中每一行的第一目标列数的像素在第一输入通道的缓冲区排列,得到第一输入数据,并将像素块中每一行的第二目标列数的像素在第二输入通道的缓冲区排列,得到第二输入数据;
[0124]
从多个所述输出通道中将每一列的第一目标行数的行离散余弦变换结果在第三输入通道的缓冲区排列,得到第三输入数据,并将每一列的第二目标行数的行离散余弦变换结果在第四输入通道的缓冲区排列,得到第四输入数据。
[0125]
可选地,该图像变换模块,还用于:
[0126]
将行离散余弦变换结果按照像素块中的像素的排列顺序进行排列;
[0127]
提取排列后行离散余弦变换结果的每一列,并将每一列分别存放到对应的输出通道中。
[0128]
可选地,该图像变换模块,还用于:
[0129]
将列离散余弦变换结果按照像素块中的像素的排列顺序进行排列;
[0130]
提取排列后列离散余弦变换结果的每一行,并将每一行分别存放到对应的输出通道中。
[0131]
可选地,该图像编码模块,还包括卷积系数获取模块,用于:
[0132]
获取快速蝶形变换系数,快速蝶形变换系数用于进行离散余弦变换;
[0133]
将快速蝶形变换系数进行代换、展开及合并同类项操作中的至少一种,得到卷积权重系数。
[0134]
可选地,该图像编码模块,具体用于:
[0135]
按照zigzag顺序依次从各个输出通道中取出对应位置的图像变换系数进行游程编码;
[0136]
在所有的像素块均编码完成后,得到待处理图像的目标图像编码。
[0137]
根据本技术实施例的另一方面,本技术提供了一种电子设备,如图10所示,包括存储器1001、处理器1003、通信接口1005及通信总线1007,存储器1001中存储有可在处理器1003上运行的计算机程序,存储器1001、处理器1003通过通信接口1005和通信总线1007进行通信,处理器1003执行计算机程序时实现上述方法的步骤。
[0138]
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
[0139]
存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0140]
上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0141]
根据本技术实施例的又一方面还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质。
[0142]
可选地,在本技术实施例中,计算机可读介质被设置为存储用于所述处理器执行以下步骤的程序代码:
[0143]
获取待处理图像;
[0144]
将待处理图像按照预设大小划分为多个像素块;
[0145]
将每个像素块中的像素按照目标排列方式进行排列,并对排列后的每个像素块进行卷积运算,得到各个像素块的图像变换系数;
[0146]
按照预设顺序对图像变换系数进行压缩,得到目标图像编码。
[0147]
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0148]
本技术实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
[0149]
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(application specific integrated circuits,asic)、数字信号处理器(digital signal processing,dsp)、数字信号处理设备(dsp device,dspd)、可编程逻辑设备(programmable logic device,pld)、现场可编程门阵列(field-programmable gate array,fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本技术所述功能的其它电子单元或其组合中。
[0150]
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
[0151]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟
以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0152]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0153]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0154]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0155]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0156]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0157]
以上所述仅是本技术的具体实施方式,使本领域技术人员能够理解或实现本技术。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献