Some content of this application is unavailable at the moment.
If this situation persist, please contact us atFeedback&Contact
1. (WO2019047628) MASSIVE PICTURE PROCESSING METHOD, DEVICE, ELECTRONIC APPARATUS AND STORAGE MEDIUM
Document

说明书

发明名称 0001   0002   0003   0004   0005   0006   0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   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   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124  

权利要求书

1   2   3   4   5   6   7   8   9   10  

附图

1   2   3   4   5   6   7  

说明书

发明名称 : 海量图片处理方法、装置、电子设备及存储介质

技术领域

[0001]
本公开涉及数据处理技术领域,具体而言,涉及一种海量图片处理方法、海量图片处理装置、电子设备以及计算机可读存储介质。

背景技术

[0002]
随着电子商务的迅速发展,对于各大网站平台而言,其内部系统会存储海量图片,例如电商网站中会存在海量商品图片以及商品详情图片等。由于海量图片以及数据的处理会消耗大量的存储介质及传输带宽,因此有必要对海量数据进行处理以提高存储和传输速度。
[0003]
相关技术中对海量图片的处理方式,大多从提高图片的存储、读取速度以及海量信息管理方面考虑。通过这种方式对海量图片的处理方法,由于图片存储量非常大,因此会占用大量存储空间以及网络传输带宽,导致传输速度慢的问题。
[0004]
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
[0005]
发明内容
[0006]
本公开的目的在于提供一种海量图片处理方法、海量图片处理装置、电子设备以及计算机可读存储介质,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
[0007]
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0008]
根据本公开的第一方面,提供一种海量图片处理方法,包括:
[0009]
获取海量图片中各图片的多个通道对应的矩阵,并对各所述矩阵进行按位分层;
[0010]
根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据,并生成一图层索引记录文件;其中,所述倒排索引结构包括多个图层索引;
[0011]
根据所述图层索引记录文件对所述图片的所有所述图层索引进行解码,并根据解码结果合成所述图片。
[0012]
在本公开的一种示例性实施例中,对各所述矩阵进行按位分层包括:
[0013]
将各通道对应的矩阵中的各十进制元素转化为二进制元素,并根据二进制位对各所述通道对应的矩阵进行按位分层。
[0014]
在本公开的一种示例性实施例中,对各所述矩阵进行按位分层后,所述方法还包括:
[0015]
对各所述通道每一层对应的矩阵进行相关性计算,并获取与所述相关性对应的差异矩阵;
[0016]
对所述差异矩阵进行行程长度编码,获取与各所述通道每一层对应的多个所述图片位层数据。
[0017]
在本公开的一种示例性实施例中,根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据包括:
[0018]
计算所述图片位层数据的索引值,并在所述倒排索引结构中查找与所述索引值匹配的索引行;
[0019]
在未查找到与所述索引值匹配的所述索引行时,在所述倒排索引结构中增加一行图层索引记录;
[0020]
在查找到与所述索引值匹配的所述索引行时,检测所述图片位层数据是否完全匹配。
[0021]
在本公开的一种示例性实施例中,检测所述图片位层数据是否完全匹配包括:
[0022]
在检测所述图片位层数据完全匹配时,将图层对应的标记添加至所述倒排索引结构中;
[0023]
在检测所述图片位层数据不完全匹配时,重新计算所述索引值。
[0024]
在本公开的一种示例性实施例中,对所述图片的所有所述图层索引进行解码包括:
[0025]
根据所述图层索引记录文件解码所述图片的所有所述图层索引,并根据所述图层索引查找压缩后的与所述图片对应的所述图片位层数据;
[0026]
对压缩后的所述图片位层数据进行行程长度解码,获取未压缩的与所述图片对应的原始图片位层数据矩阵;
[0027]
对所述原始图片位层数据矩阵进行异或运算,获取未分层的与所述图片的多个通道对应的原矩阵并根据所述原矩阵合成所述图片。
[0028]
在本公开的一种示例性实施例中,所述方法还包括:
[0029]
通过所述索引值对根据解码结果生成的所述图片进行校验。
[0030]
根据本公开的一个方面,提供一种海量图片处理装置,包括:
[0031]
分层模块,用于获取海量图片中各图片的多个通道对应的矩阵,并对各所述矩阵进 行按位分层;
[0032]
存储模块,用于根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据,并生成一图层索引记录文件;其中,所述倒排索引结构包括多个图层索引;
[0033]
解码模块,用于根据所述图层索引记录文件对所述图片的所有所述图层索引进行解码,并根据解码结果合成所述图片。
[0034]
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的海量图片处理方法。
[0035]
根据本公开的一个方面,提供一种电子设备,包括:
[0036]
处理器;以及
[0037]
存储器,用于存储所述处理器的可执行指令;
[0038]
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的海量图片处理方法。
[0039]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

[0040]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]
图1示意性示出本公开示例性实施例中一种海量图片处理方法的示意图;
[0042]
图2示意性示出本公开示例性实施例中一种图片的三个通道示意图;
[0043]
图3示意性示出本公开示例性实施例中三个通道分解矩阵的相关性示意图;
[0044]
图4示意性示出本公开示例性实施例中图片第8层二值图示意图;
[0045]
图5示意性示出本公开示例性实施例中一种海量图片处理装置的框图;
[0046]
图6示意性示出本公开示例性实施例中一种电子设备;
[0047]
图7示意性示出本公开示例性实施例中一种程序产品。

具体实施方式

[0048]
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特 征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
[0049]
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0050]
相关技术中的海量图片处理方式例如将结构化数据存储到Hbase,非结构化的图片数据直接存储到Hadoop分布式文件系统,将图片的存储地址存储到Hbase中。通过这种方式导致传输速度慢。
[0051]
本示例实施方式中,首先提供了一种海量图片处理方法,参考图1所示,所述海量图片处理方法可以包括以下步骤:
[0052]
步骤S110,获取海量图片中各图片的多个通道对应的矩阵,并对各所述矩阵进行按位分层;
[0053]
步骤S120,根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据,并生成一图层索引记录文件;
[0054]
步骤S130,根据所述图层索引记录文件对所述图片的所有所述图层索引进行解码,并根据解码结果合成所述图片。
[0055]
在本公开示例性实施例提供的海量图片处理方法中,通过将图片各通道的矩阵进行按位分层得到图片位层数据,并根据倒排索引结构将图片位层数据进行合并存储,一方面,通过将图片各通道的矩阵进行按位分层,避免了各图片之间重复信息的冗余存储,减少了图片存储量,节约了存储空间;另一方面,通过根据倒排索引结构将图片位层数据进行合并存储,减少了图片的传输量,进而提高了图片传输速度和效率。
[0056]
接下来,参考图1至图5对本示例实施方式中提供的海量图片处理方法中的各个步骤进行具体说明。
[0057]
在步骤S110中,获取海量图片中各图片的多个通道对应的矩阵,并对各所述矩阵进行按位分层。
[0058]
本示例性实施例中,海量图片例如可以包括电商网站中的商品图片、商品详情图片等,也可以包括其它网站上的海量图片。每张图片均是由通道组成,例如灰度图由一个通道组成,32位的RGB图像均由R、G、B三个通道组成,参考图2所示,本示例中以32位的RGB图像为例进行说明。各图片的多个通道对应的矩阵可以为部分矩阵,也可 以为完整矩阵,可以通过循环获取每个通道对应的所有矩阵。需要补充的是,每个通道都是由十进制数字矩阵组成,即矩阵中的每个元素均为十进制元素。本示例中,参考图2所示,可以将其中的原图分解为R通道、G通道和B通道,可以对任意一张图片对应的各个通道对应的矩阵进行按位分层。
[0059]
具体而言,本示例实施方式中,对各所述矩阵进行按位分层可以包括:将各通道对应的矩阵中的各十进制元素转化为二进制元素,并根据二进制位对各所述通道对应的矩阵进行按位分层。
[0060]
本示例性实施例中,每个通道对应的矩阵中的每个元素都是十进制元素,可以将所有十进制元素均转换为对应的二进制元素,具体地转换过程可以通过程序而执行。每个通道可以对应多个不同的矩阵,且每个矩阵中的每个元素可以对应一个像素。本示例中可以对各通道对应的所有矩阵中的元素进行转换,从而进行按位分层。例如,可以以R通道的部分矩阵为例说明按位分层的具体步骤。
[0061]
按位分层可以理解为按照二进制元素的位数,对矩阵中的各二进制元素进行分层,例如,二进制元素位数为8,则可以将每个二进制元素对应的分解为8个矩阵。
[0062]
例如,R通道的一小部分矩阵如公式(1)所示:
[0063]
[0064]
将公式(1)对应的矩阵中的各个元素转换的对应的二进制矩阵如公式(2)所示:
[0065]
[0066]
R通道矩阵的每个元素都可以按二进制位分层,每个通道都可以按照二进制位分解为8个矩阵。例如十进制55可以转换为二进制00110111,则元素55可以分解为[0 0 1 1 0 1 1 1];十进制167可以转换为二进制10100111,则元素167可以对应的分解为[1 0 1 0 0 1 1 1]。R通道对应的部分矩阵可以分解为如公式(3)所示的8个矩阵,由于这8个矩阵所有的元素只包含0和1,因此每个通道对应的矩阵均可以按照二进制位分解为8个01矩阵。
[0067]
[0068]
除此之外,也可以按照上述步骤对G通道和B通道对应的矩阵,根据二进制位进行按位分层,从而得到与G通道对应的8个01矩阵G1、G2、G3、G4、G5、G6、G7、G8;以及与B通道对应的8个01矩阵B1、B2、B3、B4、B5、B6、B7、B8。通过本示例中的按位分层,可以避免图片传输过程中大量冗余信息的影响,从而减少图片的存储量。
[0069]
进一步地,本示例实施方式中,对各所述矩阵进行按位分层后,所述方法还可以包括:对各所述通道每一层对应的矩阵进行相关性计算,并获取与所述相关性对应的差异矩阵;对所述差异矩阵进行行程长度编码,获取与各所述通道每一层对应的多个所述图片位层数据。
[0070]
本示例性实施例中,首先可以对分解的三个通道的图片进行灰度化处理,如图2所示。从图2中可以发现,各通道对应的灰度图具有相似性,因此可以预测分解的三组矩阵R1-8、G1-8和B1-8的对应层之间必然存在强相关性。为了验证三组分解矩阵之间的相关性,本示例中对各所述通道的每一层对应的矩阵进行相关性计算。具体步骤如下:
[0071]
具体而言,三组分解矩阵之间的对应关系如图3所示,由所述对应关系图可以看出,三个通道的相同层的分解矩阵之间一一对应,例如R1分别与G1和B1对应;R8分别与G8以及B8对应。
[0072]
在得出三个通道的相同层的分解矩阵之间相关性之后,可以用差异矩阵表示该相关性,所述差异矩阵可以使用异或操作完成。进一步地,G通道和B通道的每一层的分解矩阵都可以用R通道与该层对应的分解矩阵结合差异矩阵来表示。由图4可以看出,三 个通道在第8层的分解矩阵对应的二值图片之间也具有较强的相关性,例如R8对应的二值图像可以看作是由G8对应的二值图像和B8对应的二值图像组合而成。除此之外,三个通道第一层的分解矩阵R1、G1和B1可以如公式(4)所示。
[0073]
[0074]
由公式(4)可以看出,G1与R1之间只有一个元素不相同,B1与G1之间有两个元素不相同。因此,G1和B1均可以通过R1加上差异矩阵的形式进行表示,例如公式(5)所示,且差异矩阵可以通过异或操作完成。由此可以看出差异矩阵G1'和B1'都是稀疏矩阵,此时可以记录R1,G1'和B1'。需要注意的是,进行相关性计算并不要求必须使用R通道,也就是说,除此之外,也可以通过G通道与差异矩阵R'和B'描述三个通道的相同层的分解矩阵之间的相关性;还可以通过B通道与差异矩阵R'和G'描述三个通道的相同层的分解矩阵之间的相关性。
[0075]
[0076]
接下来可以对所述差异矩阵进行行程长度编码(RLE,Run Length Encoding),获取与各所述通道每一层对应的多个图片位层数据。所述行程长度编码方式是一种无损压缩方式,其可以将一扫描行中的颜色值相同的相邻像素用一个计数值和那些像素的颜色值来代替。例如:aaabccccccddeee,则可用3a1b6c2d3e来代替。同样的,字符串JJJJJJAAAAVVVVAAAAAA可以被编码为6J4A4V6A的形式,其中"6J"意味着6个字符J,"4A"意味着4个字符A,通过行程长度编码方式可以避免大量的冗余信息,使图片处 理过程更加简单,速度更快。
[0077]
本示例中,可以对所述差异矩阵进行行程长度编码,以得到与各所述通道每一层对应的多个图片位层数据,且图片位层数据与矩阵一一对应。图片位层数据可以为数据序列,例如,可以对各稀疏矩阵进行行程长度编码,得到24个数据序列且可以通过这24个数据序列完全表达所述图片。例如,矩阵B1'经过压缩编码后得到的数据序列为01410。所述24各数据序列用可以表示为:
[0078]
[0079]
在步骤S120中,根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据,并生成一图层索引记录文件。
[0080]
本示例性实施例中,可以首先建立一个倒排索引结构,所述倒排索引结构可以在实际应用中根据属性值来确定记录的位置。所述倒排索引结构可以为一索引表,所述索引表的第一列可以用于存储行程长度编码得到的图片位层数据;第二列可以用于存储根据图片位层数据计算的索引值,该索引值可以包括HashCode索引值或MD5索引值;所述索引表的第三列可以用于存储图层索引。如果图片为A、B、C、D,则倒排索引结构可以如表1所示。所述图层索引记录文件可以用于记录根据所述倒排索引结构存储所有图片位层数据的过程。
[0081]
[表0001]
位层数据 索引值 图层索引
序列1 486dfg4dfg4s3245 图A-R1,图D-R3
序列2 Dfg765gdfs76dgf7 图B-R1,图C-R7
序列3 gfGREdsfsdf89fds 图A-R2
序列4 H09jfjfdni0923h4 图C-B3
…… …… ……

[0082]
表1
[0083]
具体地,本示例实施方式中,根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据可以包括:计算所述图片位层数据的索引值,并在所述倒排索引结构中查找与所述索引值匹配的索引行;在未查找到与所述索引值匹配的所述索引行时,在所述倒排索引结构中增加一行图层索引记录;在查找到与所述索引值匹配的所述索引行时,检测所述图片位层数据是否完全匹配。
[0084]
本示例性实施例中,可以首先计算各个图片位层数据对应的索引值,即各通道各层对应的数据序列中存储的数据值,该索引值可以包括HashCode索引值或MD5索引值,例如可以通过函数循环计算和获取各通道各层对应的数据序列的索引值。具体地,可以根据上述步骤对图片进行按位分层,获取24个图片位层数据。以分解图片A为例进行 说明:
[0085]
[0086]
接下来可以在上述索引表中查找与计算的索引值对应或者匹配的索引行。如果未查找到与所述索引值匹配的所述索引行,可以在所述倒排索引结构中增加一行图层索引记录。参考表1进行说明,例如当前计算的图A-R3的索引值为486dgf4dfg4s3246,与表1中的所有索引行均不匹配,则可以将该数据序列,索引值,以及对应的图层索引添加至索引表中。在查找到与所述索引值匹配的所述索引行时,可以检测所述图片位层数据是否完全匹配。依然参考表1进行说明,例如当前计算的图片A第二层R通道的索引值为gfGREdsfsdf89fds,可以继续检测用于计算的数据序列与索引表中存储的数据序列是否完全匹配,此时,可以通过判断数据序列对应的矩阵中的每个元素而判断。
[0087]
进一步地,本示例实施方式中,检测所述图片位层数据是否完全匹配可以包括:在检测所述图片位层数据完全匹配时,将图层对应的标记添加至所述倒排索引结构中;在检测所述图片位层数据不完全匹配时,重新计算所述索引值。
[0088]
本示例性实施例中,在检测到当前计算的所述图片位层数据与索引表中存储的图片位层数据不完全匹配或者是完全不匹配时,为了提高查找的准确率,可以重新计算所述索引值;在检测到当前计算的所述图片位层数据与索引表中存储的图片位层数据完全匹配时,可以将该索引值对应的图片的通道和层数标记在索引表中。例如,计算的图片A第二层R通道的索引值为gfGREdsfsdf89fds,且用于计算的数据序列对应的矩阵中的每个元素均与索引表中存储的数据序列的每个元素相同,因此可以将图片A第二层R通道对应的标记图A-R2记录在索引表的图层索引列。
[0089]
需要补充的是,上述所有的查询与索引过程均可以被记录在图层索引记录文件中,图层索引记录文件中的所有记录可以用于表示完整的图片。
[0090]
在步骤S130中,根据所述图层索引记录文件对图片的所有所述图层索引进行解码,并根据解码结果生成所述图片。
[0091]
本示例性实施例中,可以对步骤S120中生成的图层索引记录文件进行解码,根据解码结果生成的所述图片即为被按位分层的图片。解码过程为编码过程的逆过程,因此,编码方法与解码方法可以相互对应。本示例中,可以对某一图片对应的索引表中存储的所有图层索引进行解码,得到最初的与该图片三个通道对应的图片数据,进而得到原始图片。
[0092]
具体而言,本示例实施方式中,对图片的所有所述图层索引进行解码可以包括:根据所述图层索引记录文件解码图片的所有所述图层索引,并根据所述图层索引查找压缩后的与所述图片对应的所述图片位层数据;对压缩后的所述图片位层数据进行行程长度解码,获取未压缩的与所述图片对应的原始图片位层数据矩阵;对所述原始图片位层数据矩阵进行异或运算,获取未分层的与所述图片的多个通道对应的原矩阵并根据所述原 矩阵合成所述图片。
[0093]
本示例性实施例中,可以从最底层的数据着手,一层一层地获取可以表示图片的原始数据。首先可以根据所述图层索引记录文件解码图片的所有图层索引,例如获取与图A对应的所有图层索引包括:图A-R1-8,图A-G1-8,图A-B1-8;接下来根据所述图层索引查找压缩后的与所述图层对应的所述图片位层数据,即在索引表中查找与图片A的所有图层索引对应的数据序列,例如得到数据序列01410,需要注意的是,此处获取的数据序列为经过行程长度编码压缩过的数据序列。
[0094]
进一步地,可以对获取的压缩过的数据序列进行行程长度解码,以获取未经编码压缩处理的原始数据矩阵。例如,可以对数据序列01410进行行程长度解码,得到对应的原始矩阵B1',此处可以对得到的24个数据序列循环进行解码,以得到未压缩的24个原始图片位层数据矩阵:
[0095]
[0096]
由于上述的得到的24个原始图片位层数据矩阵中的差异矩阵G1'和B1'均可以通过异或操作得到,因此可以对差异矩阵G1'和B1'再次进行异或操作,使其恢复未经过任何处理的原始矩阵 此处 分别表示R、G、B三个通道第一层到第八层对应的矩阵,可以分别用于表示RGB三个通道,最后可以通过三个通道合成最初的原始图片。通过将图片信息编码压缩,可以节约网络传输带宽,从而提高图片传输速率,再通过将图片信息进行解码,可以节省存储空间。
[0097]
此外,本示例实施方式中,所述方法还可以包括:通过所述索引值对根据解码结果生成的所述图片进行校验。
[0098]
本示例性实施例中,为了保证图片传输的准确性,可以对解码后生成的图片进行校验,判断该图片与原始的被按位分层的图片是否一致;当然也可以不进行校验,具体的校验过程可以通过程序完成,此处不再赘述。
[0099]
需要补充的是,本示例中具体描述的只是对一张图片的处理过程,进一步地可以通过循环结合本示例中的按位分层、编码存储以及解码等过程,对海量图片进行处理。本示例中,从减少海量图片信息之间的冗余信息入手,对图片进行按层分解并以层的维度进行合并存储,减少了图片存储量和传输量,节约了存储空间,进而提高了传输效率。
[0100]
本示例实施方式中还提供了一种海量图片处理装置,参考图5所示,所述装置500可以包括:
[0101]
分层模块501,可以用于获取海量图片中各图片的多个通道对应的矩阵,并对各所述矩阵进行按位分层;
[0102]
存储模块502,可以用于根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据,并生成一图层索引记录文件;其中,所述倒排索引结构包括多个图层索 引;
[0103]
解码模块503,可以用于根据所述图层索引记录文件对所述图片的所有所述图层索引进行解码,并根据解码结果合成所述图片。
[0104]
上述海量图片处理装置中各模块的具体细节已经在对应的海量图片处理方法中进行了详细描述,因此此处不再赘述。
[0105]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0106]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0107]
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
[0108]
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0109]
下面参照图6来描述根据本公开的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0110]
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630。
[0111]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,所述处理单元610可以执行上述步骤。
[0112]
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
[0113]
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0114]
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结 构的局域总线。
[0115]
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0116]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0117]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
[0118]
参考图7所示,描述了根据本公开的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0119]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0120]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中 承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0121]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
[0122]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0123]
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
[0124]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。

权利要求书

[权利要求 1]
一种海量图片处理方法,其特征在于,包括: 获取海量图片中各图片的多个通道对应的矩阵,并对各所述矩阵进行按位分层; 根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据,并生成一图层索引记录文件;其中,所述倒排索引结构包括多个图层索引; 根据所述图层索引记录文件对所述图片的所有所述图层索引进行解码,并根据解码结果合成所述图片。
[权利要求 2]
根据权利要求1所述的海量图片处理方法,其特征在于,对各所述矩阵进行按位分层包括: 将各通道对应的矩阵中的各十进制元素转化为二进制元素,并根据二进制位对各所述通道对应的矩阵进行按位分层。
[权利要求 3]
根据权利要求1所述的海量图片处理方法,其特征在于,对各所述矩阵进行按位分层后,所述方法还包括: 对各所述通道每一层对应的矩阵进行相关性计算,并获取与所述相关性对应的差异矩阵; 对所述差异矩阵进行行程长度编码,获取与各所述通道每一层对应的多个所述图片位层数据。
[权利要求 4]
根据权利要求1所述的海量图片处理方法,其特征在于,根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据包括: 计算所述图片位层数据的索引值,并在所述倒排索引结构中查找与所述索引值匹配的索引行; 在未查找到与所述索引值匹配的所述索引行时,在所述倒排索引结构中增加一行图层索引记录; 在查找到与所述索引值匹配的所述索引行时,检测所述图片位层数据是否完全匹配。
[权利要求 5]
根据权利要求4所述的海量图片处理方法,其特征在于,检测所述图片位层数据是否完全匹配包括: 在检测所述图片位层数据完全匹配时,将图层对应的标记添加至所述倒排索引结构中; 在检测所述图片位层数据不完全匹配时,重新计算所述索引值。
[权利要求 6]
根据权利要求1所述的海量图片处理方法,其特征在于,对所述图片的所有所述图层索引进行解码包括: 根据所述图层索引记录文件解码所述图片的所有所述图层索引,并根据所述图层索引查找压缩后的与所述图片对应的所述图片位层数据; 对压缩后的所述图片位层数据进行行程长度解码,获取未压缩的与所述图片对应的原始图片位层数据矩阵; 对所述原始图片位层数据矩阵进行异或运算,获取未分层的与所述图片的多个通道对应的原矩阵并根据所述原矩阵合成所述图片。
[权利要求 7]
根据权利要求4所述的海量图片处理方法,其特征在于,所述方法还包括: 通过所述索引值对根据解码结果生成的所述图片进行校验。
[权利要求 8]
一种海量图片处理装置,其特征在于,包括: 分层模块,用于获取海量图片中各图片的多个通道对应的矩阵,并对各所述矩阵进行按位分层; 存储模块,用于根据一倒排索引结构存储按位分层后的各所述通道对应的图片位层数据,并生成一图层索引记录文件;其中,所述倒排索引结构包括多个图层索引; 解码模块,用于根据所述图层索引记录文件对所述图片的所有所述图层索引进行解码,并根据解码结果合成所述图片。
[权利要求 9]
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述的海量图片处理方法。
[权利要求 10]
一种电子设备,其特征在于,包括: 处理器;以及 存储器,用于存储所述处理器的可执行指令; 其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的海量图片处理方法。

附图

[ 图 1]  
[ 图 2]  
[ 图 3]  
[ 图 4]  
[ 图 5]  
[ 图 6]  
[ 图 7]