小波逆变换电路和方法
版权申明
本专利文件披露的内容包含受版权保护的材料。该版权为版权所有人所有。版权所有人不反对任何人复制专利与商标局的官方记录和档案中所存在的该专利文件或者该专利披露。
技术领域
本申请涉及图像解码领域,更为具体地,涉及一种小波逆变换电路和方法。
背景技术
联合图像专家小组(joint photographic experts group,JPEG)2000是常用的图像编码标准。
JPEG 2000采用小波变换,并基于优化截取内嵌码块编码(embedded blockcoding with optimized truncation,EBCOT)进行熵编码,具有比JPEG更高的压缩比,并支持渐进式下载和显示。
传统JPEG 2000的解码器的小波逆变换电路针对同级的小波变换编码码块,按照行序优先、列序次之的顺序进行解码,小波逆变换过程的计算效率较低。
发明内容
本申请提供一种小波逆变换电路和方法,能够提高小波逆变换过程的计算效率。
第一方面,提供了一种小波逆变换电路,包括:第一接口电路,用于获取解码后的码块数据;逆变换电路,用于按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行对所述码块数据的第j级小波变换的数据执行小波逆变换,得到所述码块数据的第j级小波逆变换的结果,N和j均为大于1的正整数,所述N+1行的数据对应的频率分量与所述第1行的数据对应的频率分量不同。
第二方面,提供了一种小波逆变换方法,包括:获取解码后的码块数据;按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行对所述码块数据的第j级小波变换的数据执行小波逆变换,得到所述码块数据的第j级小波逆变换的结果,N和j均为大于1的正整数。
第三方面,提供了一种解码器,所述解码器包括第一方面所述的小波逆变换电路。
第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第二方面所述的方法。
第五方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第二方面所述的方法。
本申请实施例的小波逆变换电路和方法,通过按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行执行小波逆变换,即调整小波逆变换的处理顺序,使得小波列逆变换和小波行逆变换能够并行进行,能够提高小波逆变换过程的计算效率。
附图说明
图1是本申请实施例提供的解码器的结构示意图。
图2是本申请实施例提供的另一解码器的结构示意图。
图3是图像块的小波变换的原理示意图。
图4是本申请实施例的小波逆变换电路的结构示意图。
图5是本申请实施例的另一种小波逆变换电路的结构示意图。
图6是本申请实施例的一种解码模式的示意图。
图7是本申请实施例的另一种解码模式的示意图。
图8是本申请实施例的另一种解码模式的示意图。
图9是本申请实施例的另一种解码模式的示意图。
图10是本申请实施例提供的小波逆变换方法的示意性流程图。
具体实施方式
本申请可应用于图像编解码领域、视频编解码领域、硬件视频编解码领域、专用电路视频编解码领域、实时视频编解码领域。
本申请提供的解码器可用于对图像有损压缩(lossy compression)进行解码,也可用于对图像无损压缩(lossless compression)进行解码。该无损压缩可以是视觉无损压缩(visually lossless compression),也可以是数学无损压缩(mathematicallylossless compression)。
为了便于理解,下文结合图1,对本申请实施例提供的解码器1的结构进行举例说明。
如图1所示,解码器1可以包括以下电路中的一种或多种:码流读取电路11,码流解析电路12,解码电路13,逆量化电路14,逆变换电路15,输出电路16。
码流读取电路11可用于读取待解码的码流。该码流读取电路11例如可以利用高级可扩展接口(advanced eXtensible interface,AXI)从外部存储器(如内存)中读取该待解码的码流。
码流解析电路12也可称为码流头部解析电路(header parser)。码流解析电路12可以解析码流中的各种类型的头部信息,并从中分离出与解码相关的参数和码流数据,供后级的解码电路13使用。
解码电路13可以包括一个解码单元,也可以包括并行的多路解码单元(具体数量可以根据实际需要配置,如可以配置并行地1路解码单元)。解码电路13中的每个解码单元可以独立地对一个码块进行熵解码。
可选地,在某些实施例中,在解码电路13之前,还可以设置预处理电路。预处理电路可用于将码流解析电路12输出的解码参数、码流数据等分配给并行的多路解码单元。
可选地,在某些实施例中,在解码电路13之后,还可以设置后处理电路。后处理电路可用于对解码电路13输出的熵解码数据进行重新组织,并将组织好的数据输出给后级电路。
逆量化电路14可用于对解码电路13熵解码得到的数据进行逆量化。
小波逆变换电路15可用于对逆量化电路14输出的数据进行小波逆变换。
输出电路16可用于将小波逆变换电路15输出的数据写入到外部的存储器中。例如,可以通过AXI将小波逆变换电路15输出的数据写入到外部的存储器中。
可选地,在某些实施例中,解码器1还可以包括软件配置接口。通过该软件配置接口可以配置或改变解码器1内部的寄存器中的信息,从而控制解码器1的解码方式。
在本文中,将解码器1执行的操作统称为“解码”,将解码电路13执行的操作称为“熵解码”,若没有明确指出,“解码”均指由解码器1执行的操作,后面实施例中不再赘述。
图2示出了本申请实施例提供的另一解码器2的结构示意图。图2所示的解码器2包括以下模块:Din模块21,头解析(Header parser)模块22,预处理(Pre-organizer)模块23,并行解码电路24,后处理(Post-organizer)模块25,IQUANT模块26,IDWT模块27,Dout模块28,Reg接口29。
Din模块21用于通过AXI从外部存储器中读取码流,对应图1中的码流读取电路11。
Header parser模块22用于对码流进行解析,对应图1中的码流解析电路12。
Pre-organizer模块23用于将Header parser模块22输出的解码参数、码流数据等分配给并行解码电路24。Pre-organizer模块23也可以称为预处理电路。
并行解码电路24包括8个解码单元,包括解码单元0、解码单元1、…、解码单元7,例如可以分别为DEC unit 0、DEC unit 1、…、DEC unit 7,每个解码单元可以独立地对一个码块的数据进行熵解码。并行解码电路24对应图1中的解码电路13。
Post-organizer模块25用于对并行解码电路24熵解码后的数据重新组织,并将组织好的数据输出给后级电路。Post-organizer模块25也可以称为后处理电路。
IQUANT模块26用于对来自Post-organizer模块25的数据进行逆量化,对应图1中的逆量化电路14。
IDWT模块27用于对逆量化后的数据进行小波逆变换,对应图1中的小波逆变换电路15。
Dout模块28用于将小波逆变换后恢复的图像写入到外部存储器中,对应图1中的输出电路16。
Reg接口29即为解码器2的软件配置接口,可以通过外围总线(advancedperipheral bus,APB)(或高性能总线(advanced high performance Bus,AHB),或AXI)配置解码器2相关控制寄存器,控制解码器2的解码行为。
应理解,解码器2中仅示出了部署8个解码单元的情况,在700Mhz频率下工作能够实现8192x4320 12bit 15fps规格的RAW图像解码。如果要支持更高规格,如30fps等,只需要增加并行解码电路24中解码单元的个数,前后处理模块稍作调整即可,此处不再赘述。
本申请实施例提供的解码器1和解码器2可以以图像块(tile)为单位进行解码。以解码器1为例,解码器1从外部的存储器读入码流之后,整个解码过程可以在片上进行(由于本申请实施例以图像块为单位进行解码,中间数据不会太大,可以通过片上缓存进行临时存储),不与外部存储器进行交互,以节省系统带宽。此外,解码器1中的各级电路可以采用流水线的方式工作,以提高解码效率。解码器2类似,不再赘述。
本申请实施例的解码器1和解码器2基于JPEG2000标准,针对各种图像(例如RAW域图像)实现硬件解码,可以支持分辨率下采样解码,且支持分层解码。
JPEG 2000采用小波变换,并基于优化截取内嵌码块编码(embedded blockcoding with optimized truncation,EBCOT)进行熵编码,具有比JPEG更高的压缩比,并支持渐进式下载和显示。传统JPEG 2000的解码器(例如上述解码器1、解码器2)的小波逆变换电路针对同级的小波变换编码码块,按照行序优先、列序次之的顺序进行解码,小波逆变换过程的计算效率较低。
有鉴于此,本申请实施例提供了一种新的小波逆变换电路,能够提高小波逆变换过程的计算效率。
由于小波逆变换是基于小波变换的操作,是小波变换的逆序,因此,为便于理解本申请实施例中的小波逆变换,先介绍一下小波变换的原理。小波变换一般是由小波变换电路执行的,与小波逆变换电路部署在上述解码器1和/或解码器2对应,小波变换电路部署在编码器中。
图3是图像块的小波变换的原理示意图。假设图3所示的图像块的大小为256×256,小波变换电路通常会将该图像块分为若干个块进行变换,每次变换后会产生4个中间结果,即4个码块。其中,对于最后一次变换,产生的4个码块将同时输出,其他情况下,会输出3个码块(即频率分量为HL、LH、HH对应的码块)。
具体而言,图3示出的图像块是进行了三次小波变换后的结果,在本申请实施例中,第一级小波变换产生的结果为1LL、1HL、1LH、1HH对应的码块(大小分别为128×128)。对左上角的1LL的码块继续进行第二级小波变换,产生的结果为2LL、2HL、2LH、2HH对应的码块(大小分别为64×64)。继续对左上角的2LL的码块进行第三级小波变换,产生的结果为3LL、3HL、3LH、3HH对应的码块(大小分别为32×32)。
应理解,小波变换分为小波行变换和小波列变换,小波变换电路是可以先进行小波行变换,再进行小波列变换,也可以先进行小波列变换,再进行小波行变换。则对应地,小波逆变换分为小波行逆变换和小波列逆变换,若小波变换电路先对图像块进行了小波行变换,后进行了小波列变换,则小波逆变换电路需要先进行小波列逆变换,再进行小波行逆变换;若小波变换电路先对图像块进行了小波列变换,后进行了小波行变换,则小波逆变换电路需要先进行小波行逆变换,再进行小波列逆变换。
下面将结合图4至图10,对本申请中的技术方案进行描述。
图4示出了本申请实施例的小波逆变换电路的结构示意图。图4所示的小波逆变换电路15包括:第一接口电路31和逆变换电路32。其中,第一接口电路31用于获取解码后的码块数据;逆变换电路32用于按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行对所述码块数据的第j级小波变换的数据执行小波逆变换,得到所述码块数据的第j级小波逆变换的结果,N和j均为大于1的正整数,所述N+1行的数据对应的频率分量与所述第1行的数据对应的频率分量不同。
上述小波逆变换操作是针对至少两个不同的频率分量的行数据交替执行的。因为编码的原因,小波变换操作会通过解交织得到4个频率分量(分别为LL、HL、LH和HH),交替进行小波逆变换的过程相当于一个数据重新交织的过程,因此,在本申请实施例中,交织和小波逆变换可以同时进行,与分开独立进行交织和小波逆变换操作相比,更加节省内存等硬件资源,有利于提高计算效率。
应理解,上述第j级小波变换可以是第三级小波变换的数据(例如,3LL、3HL、3LH和3HH),也可以是第二级小波变换(例如,2LL、3HH、2HL、2LH和2HH)的数据,本申请实施例对此不作限定。
本申请实施例的小波逆变换电路,按照规定的顺序对码块数据的第j级小波变换的数据执行小波逆变换,使得小波行逆变换进行了一段时间后,即小波行逆变换输出的数据满足小波列逆变换的数据处理个数之后,开始进行小波列逆变换,小波列逆变换和剩余数据的小波行逆变换能够并行进行,能够提高小波逆变换过程的计算效率。
可选地,所述1行的数据和所述第N+1行的数据均属于第j-1级小波变换后的频率分量LL中的数据。
可选地,考虑到小波逆变换需要进行小波行逆变换和小波列逆变换,因此,图5示出了本申请实施例的另一种小波逆变换电路的结构示意图。在图5中,上述逆变换电路可以包括:第一逆变换电路41、转置电路43和第二逆变换电路44。
其中,第一逆变换电路41用于:按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行对所述码块数据的第j级小波变换的数据执行小波行逆变换,得到所述码块数据的第j级小波行逆变换的结果,所述第j级小波变换的数据的行数为2N,N为大于1的正整数,j为正整数;转置电路43用于:对所述码块数据的第j级小波行逆变换的结果进行转置;第二逆变换电路44用于:按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行对转置后的所述码块数据的第j级小波行逆变换的结果执行小波列逆变换,得到所述码块数据的第j级小波逆变换的结果。
在上述实施例中,上述小波逆变换电路是先对第j级小波变换的数据执行了小波行逆变换,再对第j级小波行逆变换的结果进行转置,执行小波列逆变换。应理解,小波逆变换电路也可以先对第j级小波变换的数据执行小波列逆变换,再对第j级小波列逆变换的结果进行转置,执行小波行逆变换,本申请实施例对此不作限定。
可选地,上述转置电路43可以在所述码块数据的第j级小波行逆变换的结果包括M行数据之后,对所述M行数据进行转置,以便第二逆变换电路44提前对转置后的码块数据执行小波列逆变换。其中,M表示所述第二逆变换电路44在每个时钟周期最多能够处理M个数据,M为正整数。
由于小波行逆变换是按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序逐行进行的,在小波行逆变换执行了M行数据之后,小波列逆变换即可开始执行,此时,第一逆变换电路可以继续对剩余数据执行小波行逆变换,这样,小波列逆变换和小波行逆变换会并行执行,提高了小波逆变换电路的计算效率。
可选地,所述小波逆变换电路还包括:第一缓存42,用于存储所述码块数据的第j级小波行逆变换的结果。
可选地,所述转置电路43还用于:从所述第一缓存42中获取所述码块数据的第j级小波行逆变换的结果。
应理解,在一种可能的设计中,上述第一缓存42和转置电路43也可以为一套电路,例如,第一缓存可以为转置电路43中的全部或部分内存,本申请实施例对此不作限定。
可选地,所述小波逆变换电路还包括:第二缓存45,用于存储所述码块数据的第j级小波逆变换的结果。
在一种可能的设计中,j大于1,所述第一逆变换电路41还用于:从所述第二缓存45中获取所述码块数据的第j级小波逆变换的结果;将所述第j级小波逆变换的结果作为第j-1级小波变换的LL数据,结合所述码块数据的第j-1级小波变换的HL数据、LH数据和HH数据,作为所述码块数据的第j-1级小波变换的数据;所述逆变换电路还用于:按照第1行、第2N+1行、第2行、第2N+2行、…、第2N行、第4N行的顺序,逐行对所述码块数据的第j-1级小波变换的数据执行小波逆变换,得到所述码块数据的第j-1级小波逆变换的结果。
示例性地,在本实施例中,若j等于2,那么第1行的数据和第2N+1行的数据均属于原始图像块(即小波变换之前的图像块)中的数据。若j大于2,那么第1行的数据和第2N+1行的数据均属于第j-2级小波变换后的频率分量LL中的数据。
应理解,若编码器执行了第j级小波变换,解码器在解码第j-1级小波变换的数据时,需要先解码第j级小波变换的数据,第j级小波变换的数据的小波逆变换结果会存储在第二缓存45中。因此,在进行第j-1级小波逆变换的处理时,逆变换电路可以结合第二缓存45中存储的第j级小波逆变换的结果和第j-1级的剩余数据,进行小波逆变换。
在上述实施例中,图5所示的第一逆变换电路41可以用于:按照第1行、第2N+1行、第2行、第2N+2行、…、第2N行、第4N行的顺序,逐行对所述码块数据的第j-1级小波变换的数据执行小波行逆变换,得到所述码块数据的第j-1级小波行逆变换结果;转置电路43可以用于:对所述码块数据的第j-1级小波行逆变换的结果进行转置;第二逆变换电路44可以用于:按照第1行、第2N+1行、第2行、第2N+2行、…、第2N行、第4N行的顺序,逐行对转置后的所述码块数据的第j-1级小波行逆变换的结果执行小波列逆变换,得到所述码块数据的第j-1级小波逆变换的结果。
应理解,第j-1级数据的具体处理过程与第j级数据的类似,上述转置电路43也可以在所述码块数据的第j-1级小波行逆变换的结果包括M行数据之后,对所述M行数据进行转置,以便第二逆变换电路44提前对转置后的码块数据执行小波列逆变换,此处不再赘述。
下面,结合图6至图9对本申请实施例进行详细说明。
假设小波逆变换电路每个时钟周期能处理8个数据,即内部计算能力为8point/cycle。在其它实施例中,小波逆变换电路的内部计算能力也可以为12point/cycle、16point/cycle等,本方案不做限制。针对图3所示的三级小波变换的编码模式,解码器1或解码器2在解码的时候可以根据需求从如下四种解码模式中选择适当的解码模式:
1)只解码3LL的分量
对于这种解码模式,如图6所示,小波逆变换电路将对3LL的分量(大小为32×32)不进行任何运算,直接输出。
2)解码第三级小波变换的所有分量,即3LL、3HL、3LH和3HH
解码第三级小波变换的所有分量相当于解码2LL(大小为64×64),如图7所示,小波逆变换电路会先输入3LL+3HL的第一行数据(对应图中的执行顺序0),共64个数据,每个时钟周期输入8个数据,总开销为8个时钟周期。在上述每个时钟周期输入的8个数据中,4个数据属于3LL分量,4个数据属于3HL分量,即对不同频率分量的数据同时进行交织和逆变换。这样,能够交织还原出小波变换之前的数据。接着,小波逆变换电路输入3LH+3HH的第一行数据(对应图中的执行顺序1),再输入3LL+3HL的第二行数据(对应图中的执行顺序2),再输入3LH+3HH的第二行数据(对应图中的执行顺序3),以此类推,直到将第三级小波变换的所有分量全部输入完毕。
3)解码第二级小波变换的所有分量,即3LL、3HL、3LH、3HH、2HL、2LH和2HH
解码第二级小波变换的所有分量需要先解码第三级小波变换的所有分量(即3LL、3HL、3LH和3HH),再解码第二级小波变换的剩余分量(即2HL、2LH和2HH)。
具体地,如图8所示,解码第三级小波变换的所有分量如2)所述,在完成了第三级小波变换的所有分量的解码之后,已经有了2LL的数据。小波逆变换电路可以输入2HL的第一行数据(共64个数据),结合2LL的第一行的64个数据进行处理(对应图中的执行顺序00),每个时钟周期输入8个数据,总开销为16个时钟周期。在上述每个时钟周期输入的8个数据中,4个数据属于2LL分量,4个数据属于2HL分量。接着,小波逆变换电路输入2LH+2HH的第一行数据(对应图中的执行顺序11),再输入2LL+2HL的第二行数据(对应图中的执行顺序22),再输入2LH+2HH的第二行数据(对应图中的执行顺序33),以此类推,直到将第二级小波变换的所有分量全部输入完毕。
4)解码所有的分量,即3LL、3HL、3LH、3HH、2HL、2LH、2HH、1HL、1LH和1HH
解码所有的分量需要先解码第三级小波变换的所有分量(即3LL、3HL、3LH和3HH),再解码第二级小波变换的剩余分量(即2HL、2LH和2HH),最后解码第一级小波变换的剩余分量(即1HL、1LH和1HH)。
具体地,如图9所示,解码第三级小波变换的所有分量如2)所述,解码第二级小波变换的所有分量如3)所述,在完成了第二级小波变换的所有分量的解码之后,已经有了1LL的数据。小波逆变换电路可以输入1HL的第一行数据(共128个数据),结合1LL的第一行的128个数据进行处理(对应图中的执行顺序000),每个时钟周期输入8个数据,总开销为32个时钟周期。在上述每个时钟周期输入的8个数据中,4个数据属于1LL分量,4个数据属于1HL分量。接着,小波逆变换电路输入1LH+1HH的第一行数据(对应图中的执行顺序111),再输入1LL+1HL的第二行数据(对应图中的执行顺序222),再输入1LH+1HH的第二行数据(对应图中的执行顺序333),以此类推,直到将第一级小波变换的所有分量全部输入完毕。
本申请实施例的小波逆变换电路,按照规定的顺序对码块数据的第j级小波变换的数据执行小波逆变换,使得小波列逆变换和小波行逆变换能够并行进行,能够提高小波逆变换过程的计算效率。
本申请实施例还提供了一种小波逆变换方法。该小波逆变换方法可以由上文提及的解码器1、解码器2或小波逆变换电路15执行。如图10所示,该小波逆变换方法包括:
S91,获取解码后的码块数据;
S92,按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行对所述码块数据的第j级小波变换的数据执行小波逆变换,得到所述码块数据的第j级小波逆变换的结果,N和j均为大于1的正整数,所述N+1行的数据对应的频率分量与所述第1行的数据对应的频率分量不同。
可选地,所述1行的数据和所述第N+1行的数据均属于第j-1级小波变换后的频率分量LL中的数据。
可选地,所述逐行对所述码块数据的第j级小波变换的数据执行小波逆变换,包括:按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行对所述码块数据的第j级小波变换的数据执行小波行逆变换,得到所述码块数据的第j级小波行逆变换的结果,所述第j级小波变换的数据的行数为2N,N为大于1的正整数,j为正整数;对所述码块数据的第j级小波行逆变换的结果进行转置;按照第1行、第N+1行、第2行、第N+2行、…、第N行、第2N行的顺序,逐行对转置后的所述码块数据的第j级小波行逆变换的结果执行小波列逆变换,得到所述码块数据的第j级小波逆变换的结果。
可选地,所述对所述码块数据的第j级小波行逆变换的结果进行转置,包括:在所述码块数据的第j级小波行逆变换的结果包括M行数据之后,对所述M行数据进行转置,M表示每个时钟周期最多能够处理M个数据,M为正整数。
可选地,在所述得到所述码块数据的第j级小波行逆变换的结果之后,所述方法还包括:将所述码块数据的第j级小波行逆变换的结果存储至第一缓存器中。
可选地,在所述存储所述码块数据的第j级小波行逆变换的结果之后,所述方法还包括:从所述第一缓存器中获取所述码块数据的第j级小波行逆变换的结果。
可选地,在所述得到所述码块数据的第j级小波逆变换的结果之后,所述方法还包括:将所述码块数据的第j级小波逆变换的结果存储至第二缓存器中。
可选地,j大于1,所述方法还包括:从所述第二缓存器中获取所述码块数据的第j级小波逆变换的结果;将所述第j级小波逆变换的结果作为第j-1级小波变换的LL数据,结合所述码块数据的第j-1级小波变换的HL数据、LH数据和HH数据,作为所述码块数据的第j-1级小波变换的数据;按照第1行、第2N+1行、第2行、第2N+2行、…、第2N行、第4N行的顺序,逐行对所述码块数据的第j-1级小波变换的数据执行小波逆变换,得到所述码块数据的第j-1级小波逆变换的结果。
可选地,所述逐行对所述码块数据的第j-1级小波变换的数据执行小波逆变换,包括:按照第1行、第2N+1行、第2行、第2N+2行、…、第2N行、第4N行的顺序,逐行对所述码块数据的第j-1级小波变换的数据执行小波行逆变换,得到所述码块数据的第j-1级小波行逆变换结果;对所述码块数据的第j-1级小波行逆变换的结果进行转置;按照第1行、第2N+1行、第2行、第2N+2行、…、第2N行、第4N行的顺序,逐行对转置后的所述码块数据的第j-1级小波行逆变换的结果执行小波列逆变换,得到所述码块数据的第j-1级小波逆变换的结果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。