CN107680144B - 一种WebP文件转换的方法及装置 - Google Patents
一种WebP文件转换的方法及装置 Download PDFInfo
- Publication number
- CN107680144B CN107680144B CN201710958894.9A CN201710958894A CN107680144B CN 107680144 B CN107680144 B CN 107680144B CN 201710958894 A CN201710958894 A CN 201710958894A CN 107680144 B CN107680144 B CN 107680144B
- Authority
- CN
- China
- Prior art keywords
- execution queue
- execution
- file
- queue
- webp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 61
- 238000007906 compression Methods 0.000 claims description 54
- 230000006835 compression Effects 0.000 claims description 52
- 238000007781 pre-processing Methods 0.000 claims description 44
- 238000004806 packaging method and process Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 18
- 230000006837 decompression Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 4
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 239000000872 buffer Substances 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/007—Transform coding, e.g. discrete cosine transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种WebP文件转换的方法,包括将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各执行队列可相对独立执行;为各执行队列分配预设数量的线程;当接收到源格式图片文件流时,并行执行所有执行队列,得到对应的WebP文件流。该方法通过将各步转换操作设置为对应的执行队列,并为各执行队列分配预设数量的线程,当接收到源格式图片文件流时,并行执行所有执行队列,得到对应的WebP文件流,使得源格式图片文件转为WebP格式文件的整个处理流程的执行效率有很大提升。本申请同时还提供了一种WebP文件转换的装置、设备及计算机可读存储设备,具有上述有益效果。
Description
技术领域
本申请涉及WebP领域,特别涉及一种WebP文件转换的方法、装置、设备及计算机可读存储介质。
背景技术
随着手机、平板、数码相机等图像采集设备的发展及图片像素规模提升,导致互联网上图像数据规模呈指数级增长,这给数据中心服务器的数据存储和网络带宽带来严重的挑战。为了改变这一现状,Google在2010年发布了一种新的图像压缩格式WebP,能够在不影响用户体验的情况下减少图片文件的大小。
现有技术中,源格式图片文件转为WebP格式文件主要分为以下步骤:
源格式图片文件转RGB:对源格式图片文件进行转换,得到RGB格式的数据,循环解压直至文件结束;
RGB转YUV:将解压所得RGB数据转为YUV格式的数据
WebP有损压缩:对YUV数据进行WebP有损压缩,得到编码后的比特流
WebP文件封装:将压缩后的比特流按照WebP文件格式进行封装。
可知,源格式图片文件转为WebP格式文件是一个较为复杂的过程,导致了较大的性能开销,使得转换过程非常缓慢。
因此,如何提升源格式图片文件转为WebP格式文件的速度是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种WebP文件转换的方法、装置、设备及计算机可读存储介质,该方法能够提升源格式图片文件转为WebP格式文件的速度。
为解决上述技术问题,本申请提供一种WebP文件转换的方法,该方法包括:
将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各所述执行队列可相对独立执行;其中,所述执行队列包括预处理执行队列、处理执行队列、编码执行队列和封装执行队列;
为各所述执行队列分配预设数量的线程;
当接收到源格式图片文件流时,并行执行所有所述执行队列,得到对应的WebP文件流。
可选的,将源格式图片文件转换至WebP文件的各步转换操作拆分为对应的执行队列,包括:
将预处理操作设置为预处理执行队列,以使所述预处理执行队列对接收到的源格式图片文件流进行预处理,得到对应的RGB数据,并将所述RGB数据添加至处理执行队列;
将处理操作设置为所述处理执行队列,以使所述处理执行队列对RGB数据进行处理,得到压缩数据,并将所述压缩数据添加至编码执行队列;
将编码操作设置为所述编码执行队列,以使所述编码执行队列对压缩数据进行编码操作,得到比特数据流,并将所述比特数据流添加至封装执行队列;
将封装操作设置为所述封装执行队列,以使所述封装执行队列对比特数据流进行封装操作,输出得到的对应WebP文件流。
可选的,当接收到的源格式图片文件流为GIF文件流时,将预处理操作设置为预处理执行队列,包括:
将解压操作设置为解压执行队列,以使所述解压队列对接收到的GIF文件流进行解压,得到各数据帧,并将所述各数据帧添加至预处理执行队列;
将预处理操作设置为所述预处理执行队列,以使所述预处理执行队列对所述各数据帧进行预处理,得到对应的RGB数据,并将所述RGB数据添加至处理执行队列。
可选的,将处理操作设置为所述处理执行队列,以使所述处理执行队列对RGB数据进行处理,得到压缩数据,并将所述压缩数据添加至编码执行队列,包括:
将处理操作设置为所述处理执行队列,以使所述处理执行队列对RGB数据进行格式转换处理,得到YUV数据,并将所述YUV数据添加至压缩执行队列;
将FPGA端压缩操作设置为所述压缩执行队列,以使所述压缩执行队列对所述YUV数据进行压缩处理,得到压缩数据,并将所述压缩数据添加至编码执行队列。
可选的,所述FPGA端对所述YUV数据进行压缩处理,包括:
所述FPGA端调用压缩指令对所述YUV数据进行压缩处理;其中,所述压缩指令为接收到的采用OpenCL语言编写的压缩指令。
可选的,该方法还包括:
根据各所述执行队列的执行时间调整分配给各所述执行队列的线程数,以尽可能减少各所述执行队列的闲置时间之和。
可选的,所述根据各执行队列的执行时间调整分配给各所述执行队列的线程数,包括:
实时统计各所述执行队列的执行时间;
判断各所述执行时间是否高于所述压缩执行队列的压缩执行时间;
若是,则增加高于所述压缩执行时间的执行时间对应的执行队列的线程数,以使所述执行队列的执行时间低于或等于所述压缩执行队列的压缩执行时间。
本申请还提供一种WebP文件转换的装置,该装置包括:
设置单元,用于将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各所述执行队列可相对独立执行;其中,所述执行队列包括预处理执行队列、处理执行队列、编码执行队列和封装执行队列;
分配单元,用于为各所述执行队列分配预设数量的线程;
执行单元,用于当接收到源格式图片文件流时,并行执行所有所述执行队列,得到对应的WebP文件流。
本申请还提供一种WebP文件转换的设备,该设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述任一项所述WebP文件转换的方法的步骤。
本申请还提供一种WebP文件转换的计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述WebP文件转换的方法的步骤。
本申请所提供的一种WebP文件转换的方法,通过将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各执行队列可相对独立执行;其中,该执行队列包括预处理执行队列、处理执行队列、编码执行队列和封装执行队列;为各执行队列分配预设数量的线程;当接收到源格式图片文件流时,并行执行所有执行队列,得到对应的WebP文件流。
现有技术中,源格式图片文件转为WebP格式文件的整个处理流程是串行执行的,执行效率不高。而本申请所提供的技术方案,通过将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各执行队列可相对独立执行,并为各执行队列分配预设数量的线程,当接收到源格式图片文件流时,并行执行所有执行队列,得到对应的WebP文件流,使得源格式图片文件转为WebP格式文件的整个处理流程的执行效率有很大提升。本申请同时还提供了一种WebP文件转换的装置、设备及计算机可读存储设备,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种WebP文件转换的方法的流程图;
图2为图1所提供的一种WebP文件转换的方法中S101的一种实际表现方式的流程图;
图3为本申请实施例所提供的另一种WebP文件转换的方法的流程图;
图4为本申请实施例所提供的一种WebP文件转换的装置的结构图;
图5为本申请实施例所提供的另一种WebP文件转换的装置的结构图;
图6为本申请实施例所提供的一种WebP文件转换的设备的结构图。
具体实施方式
本申请的核心是提供一种WebP文件转换的方法、装置、设备及计算机可读存储介质,该方法能够提升源格式图片文件转为WebP格式文件的速度。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种WebP文件转换的方法的流程图。
其具体包括如下步骤:
S101:将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列;
现有技术中源格式图片文件转为WebP格式文件的各步转换操作需串行执行,即每个转换操作需根据上一转换操作得到的结果才能执行,在面对大量源格式图片文件需转换的情况时,会导致转换过程非常缓慢。而本申请所提供的技术方案将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各个执行队列可相对独立执行,打破现有技术中的固有串行执行方式;
由于源格式图片文件转为WebP格式文件需要经过预处理、处理、编码和封装四个操作,因此本申请实施例中执行队列包括预处理执行队列、处理执行队列、编码执行队列和封装执行队列;也可根据WebP文件转换的具体操作过程添加或减少相应的执行队列,本申请对于执行队列的数目和类别并不做具体限定;
可选的,将源格式图片文件转换至WebP文件的各步转换操作拆分为对应的执行队列,可以通过执行如下步骤来实现:
将预处理操作设置为预处理执行队列,以使预处理执行队列对接收到的源格式图片文件流进行预处理,得到对应的RGB数据,并将RGB数据添加至处理执行队列;
将处理操作设置为处理执行队列,以使处理执行队列对RGB数据进行处理,得到压缩数据,并将压缩数据添加至编码执行队列;
将编码操作设置为编码执行队列,以使编码执行队列对压缩数据进行编码操作,得到比特数据流,并将比特数据流添加至封装执行队列;
将封装操作设置为封装执行队列,以使封装执行队列对比特数据流进行封装操作,输出得到的对应WebP文件流。
S102:为各执行队列分配预设数量的线程;
为各执行队列分配预设数量的线程,以使所有的执行队列可以并行执行;
可选的,这里提到的预设数量可以为用户根据具体情况进行设置的;也可以为处理器通过分析历史线程数量得到的最优数量设置,当然这仅为本申请提供的一种优选的方式,本申请对此不做具体限定。
S103:当接收到源格式图片文件流时,并行执行所有执行队列,得到对应的WebP文件流;
当接收到输入的源格式图片文件流时,并行执行所有的执行队列,使得各个执行队列都处于执行状态,得到对应的WebP文件流;
可选的,当存在执行队列为空队列的情况时,该执行队列处于阻塞状态,但不会影响到后面执行队列的执行,使得源格式图片文件转为WebP格式文件的整个处理流程的执行效率提升。
基于上述技术方案,本申请所提供的一种WebP文件转换的方法,通过将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各执行队列可相对独立执行,并为各执行队列分配预设数量的线程,当接收到源格式图片文件流时,并行执行所有执行队列,得到对应的WebP文件流,使得源格式图片文件转为WebP格式文件的整个处理流程的执行效率有很大提升。
与通用处理器CPU相比,FPGA作为异构加速协处理器,具有良好的并行性、低功耗、可定制等特性,不仅具备良好的计算并行性和访存并行性,还可以通过深度定制的硬件电路结构实现深度流水并行,基于此,本申请还提供了另一种WebP文件转换的方法,该方法采用FPGA进行异构加速,将算法较为耗时且数据依赖关系较低(适合并行处理)的WebP压缩步骤,放在FPGA端实现,取得了良好的性能加速效果;
下面结合图2,对上一实施例中步骤S101的内容进行具体说明,图2为图1所提供的一种WebP文件转换的方法中S101的一种实际表现方式的流程图。
其具体包括以下步骤:
S201:将预处理操作设置为预处理执行队列;
当预处理执行队列处于执行状态时,对源格式图片文件流或数据帧流进行预处理,得到对应的RGB数据,并将RGB数据添加至处理执行队列;
可选的,针对于接收到的源格式图片文件流为GIF文件流时,还可将解压操作设置为解压执行队列;
由于GIF文件是通过一帧帧的图片压缩起来的形成的动态图像文件,所以在将GIF文件转为WebP文件时,需要先将GIF文件解压为一帧帧的图片再进行转化,因此本申请实施例将解压操作设置为解压执行队列,以使解压队列对接收到的GIF文件流进行解压,得到各数据帧,并将所述各数据帧添加至预处理执行队列。
S202:将处理操作设置为处理执行队列;
当处理执行队列处于执行状态时,对RGB数据进行格式转换处理,得到对应的YUV数据,并将YUV数据添加至压缩执行队列;
可选的,将YUV数据添加至压缩执行队列,可以为:
对YUV数据节点进行划分及预处理,并申请FPGA端的数据存储空间,即buffer,包括data_buffer及result_buffer,分别存储原始数据及压缩结果数据,并将预处理过的数据传输至FPGA端的data_buffer内,将上述申请的所有buffer作为一个结构体,添加至压缩执行队列。
S203:将FPGA端压缩操作设置为压缩执行队列;
当压缩执行队列处于执行状态时,对YUV数据进行压缩处理,得到对应的压缩数据,并将该压缩数据添加至编码执行队列;
可选的,压缩执行队列的执行过程具体为:
调用压缩指令对buffer节点进行WebP有损压缩算法中的压缩过程,执行完毕以后,FPGA申请主机端内存result_host,读取当前buffer节点内部result_buffer内部存储的数据,将该数据存储在result_host内,并将result_host添加至编码执行队列;
可选的,该压缩指令可以为接收到的采用OpenCL语言编写的压缩指令;
在诸如FPGA的集成电路中,通常使用VHDL或Verilog的低层次编程语言配置可编程逻辑。但采用低层次语言进行编程需处理大量底层细节,这可能对开发者造成障碍,OpenCL是由Khronos Group针对异构计算设备(heterogeneous device)进行并行计算所设计的标准API及程序语言,采用OpenCL等高层次语言进行编程,能够隐藏底层繁杂的实现细节,缩短开发周期。
S204:将编码操作设置为编码执行队列;
当编码执行队列处于执行状态时,对压缩数据进行编码操作,得到对应的比特数据流,并将该比特数据流添加至封装执行队列。
S205:将封装操作设置为封装执行队列。
当封装执行队列处于执行状态时,对比特数据流进行封装操作,输出得到的对应WebP文件流;
可选的,还可以根据源格式图片文件的类别进行对应的封装操作,例如,当源格式图片文件为GIF动图时,对比特数据流进行对应的封装操作,输出得到的对应WebP动图文件流;当源格式图片文件为一般格式图片时,对比特数据流进行对应的封装操作,输出得到的对应WebP图片文件流;
需要说明的是,上述各步骤之间并没有必然的顺序联系,为便于读者阅读,本申请实施例以源格式图片文件转换至WebP文件的操作顺序为依据对各步骤进行排列,本申请对各步骤之间的顺序并不做具体限定。
基于上述技术方案,本申请所提供的另一种WebP文件转换的方法,该方法采用现场可编程门阵列(Field Programmable Gate Array,FPGA)进行异构加速,进一步提高了源格式图片文件转为WebP格式文件的整个处理流程的执行效率。
请参考图3,图3为本申请实施例所提供的另一种WebP文件转换的方法的流程图。
其具体包括以下步骤:
S301:实时统计各执行队列的执行时间;
本申请实施例通过设置一个管理线程,实时统计各执行队列的执行时间。
S302:判断各执行时间是否高于压缩执行队列的压缩执行时间;
S303:增加高于该压缩执行时间的执行时间对应的执行队列的线程数。
对于多线程流水执行的程序来说,程序整体的吞吐率由多个线程中吞吐率最低的线程决定,具体至本实施例,由于FPGA板卡为临界资源,单个FPGA板卡每次只能对单个数据帧进行处理,而且各个执行队列的执行时间与当前帧的宽高相关,因此本实施例基于实时执行时间的统计结果,动态配置各个执行队列的线程数,以使各个执行队列的执行时间低于或等于压缩执行队列的压缩执行时间,即令各个执行队列的空闲时间最大限度的减少,更进一步的提高了源格式图片文件转为WebP格式文件的整个处理流程的执行效率。
请参考图4,图4为本申请实施例所提供的一种WebP文件转换的装置的结构图。
该装置可以包括:
设置单元100,用于将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各执行队列可相对独立执行;其中,该执行队列包括预处理执行队列、处理执行队列、编码执行队列和封装执行队列;
分配单元200,用于为各执行队列分配预设数量的线程;
执行单元300,用于当接收到源格式图片文件流时,并行执行所有执行队列,得到对应的WebP文件流。
请参考图5,图5为本申请实施例所提供的另一种WebP文件转换的装置的结构图。
该设置单元100可以包括:
预处理设置子单元,用于将预处理操作设置为预处理执行队列,以使预处理执行队列对接收到的源格式图片文件流进行预处理,得到对应的RGB数据,并将RGB数据添加至处理执行队列;
处理设置子单元,用于将处理操作设置为处理执行队列,以使处理执行队列对RGB数据进行处理,得到压缩数据,并将压缩数据添加至编码执行队列;
编码设置子单元,用于将编码操作设置为编码执行队列,以使编码执行队列对压缩数据进行编码操作,得到比特数据流,并将比特数据流添加至封装执行队列;
封装设置子单元,用于将封装操作设置为封装执行队列,以使封装执行队列对比特数据流进行封装操作,输出得到的对应WebP文件流。
该装置还可以包括:
解压设置单元,用于将解压操作设置为解压执行队列,以使解压队列对接收到的GIF文件流进行解压,得到各数据帧,并将各数据帧添加至预处理执行队列。
调整单元,用于根据各执行队列的执行时间调整分配给各执行队列的线程数,以尽可能减少各执行队列的闲置时间之和。
可选的,该调整单元还可以包括:
实时统计子单元,用于实时统计各执行队列的执行时间;
判断子单元,用于判断各执行时间是否高于压缩执行队列的压缩执行时间;
增加子单元,用于,若执行时间高于压缩执行队列的压缩执行时间,则增加执行时间对应的执行队列的线程数,以使执行队列的执行时间低于或等于压缩执行队列的压缩执行时间。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
请参考图6,图6为本申请实施例所提供的一种WebP文件转换的设备的结构图。
该设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在WebP文件转换的设备500上执行存储介质530中的一系列指令操作。
WebP文件转换的设备500还可以包括一个或一个以上电源525,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述图1至图3所描述的WebP文件转换的方法中的步骤由WebP文件转换的设备基于该图6所示的结构实现。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本申请所提供的一种WebP文件转换的方法、装置、设备及计算机可读存储设备进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (9)
1.一种WebP文件转换的方法,其特征在于,包括:
将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各所述执行队列可相对独立执行;其中,所述执行队列包括预处理执行队列、处理执行队列、编码执行队列和封装执行队列;
为各所述执行队列分配预设数量的线程;
当接收到源格式图片文件流时,并行执行所有所述执行队列,得到对应的WebP文件流;
其中,将源格式图片文件转换至WebP文件的各步转换操作拆分为对应的执行队列,包括:
将预处理操作设置为预处理执行队列,以使所述预处理执行队列对接收到的源格式图片文件流进行预处理,得到对应的RGB数据,并将所述RGB数据添加至处理执行队列;
将处理操作设置为所述处理执行队列,以使所述处理执行队列对RGB数据进行处理,得到压缩数据,并将所述压缩数据添加至编码执行队列;
将编码操作设置为所述编码执行队列,以使所述编码执行队列对压缩数据进行编码操作,得到比特数据流,并将所述比特数据流添加至封装执行队列;
将封装操作设置为所述封装执行队列,以使所述封装执行队列对比特数据流进行封装操作,输出得到的对应WebP文件流。
2.根据权利要求1所述的方法,其特征在于,当接收到的源格式图片文件流为GIF文件流时,将预处理操作设置为预处理执行队列,包括:
将解压操作设置为解压执行队列,以使所述解压队列对接收到的GIF文件流进行解压,得到各数据帧,并将所述各数据帧添加至预处理执行队列;
将预处理操作设置为所述预处理执行队列,以使所述预处理执行队列对所述各数据帧进行预处理,得到对应的RGB数据,并将所述RGB数据添加至处理执行队列。
3.根据权利要求1所述的方法,其特征在于,将处理操作设置为所述处理执行队列,以使所述处理执行队列对RGB数据进行处理,得到压缩数据,并将所述压缩数据添加至编码执行队列,包括:
将处理操作设置为所述处理执行队列,以使所述处理执行队列对RGB数据进行格式转换处理,得到YUV数据,并将所述YUV数据添加至压缩执行队列;
将FPGA端压缩操作设置为所述压缩执行队列,以使所述压缩执行队列对所述YUV数据进行压缩处理,得到压缩数据,并将所述压缩数据添加至编码执行队列。
4.根据权利要求3所述的方法,其特征在于,所述FPGA端对所述YUV数据进行压缩处理,包括:
所述FPGA端调用压缩指令对所述YUV数据进行压缩处理;其中,所述压缩指令为接收到的采用OpenCL语言编写的压缩指令。
5.根据权利要求3或4所述的方法,其特征在于,还包括:
根据各所述执行队列的执行时间调整分配给各所述执行队列的线程数,以尽可能减少各所述执行队列的闲置时间之和。
6.根据权利要求5所述的方法,其特征在于,所述根据各执行队列的执行时间调整分配给各所述执行队列的线程数,包括:
实时统计各所述执行队列的执行时间;
判断各所述执行时间是否高于所述压缩执行队列的压缩执行时间;
若是,则增加高于所述压缩执行时间的执行时间对应的执行队列的线程数,以使所述执行队列的执行时间低于或等于所述压缩执行队列的压缩执行时间。
7.一种WebP文件转换的装置,其特征在于,包括:
设置单元,用于将源格式图片文件转换至WebP文件的各步转换操作设置为对应的执行队列,以使各所述执行队列可相对独立执行;其中,所述执行队列包括预处理执行队列、处理执行队列、编码执行队列和封装执行队列;
分配单元,用于为各所述执行队列分配预设数量的线程;
执行单元,用于当接收到源格式图片文件流时,并行执行所有所述执行队列,得到对应的WebP文件流;
其中,所述设置单元包括:
预处理设置子单元,用于将预处理操作设置为预处理执行队列,以使所述预处理执行队列对接收到的源格式图片文件流进行预处理,得到对应的RGB数据,并将所述RGB数据添加至处理执行队列;
处理设置子单元,用于将处理操作设置为所述处理执行队列,以使所述处理执行队列对RGB数据进行处理,得到压缩数据,并将所述压缩数据添加至编码执行队列;
编码设置子单元,用于将编码操作设置为所述编码执行队列,以使所述编码执行队列对压缩数据进行编码操作,得到比特数据流,并将所述比特数据流添加至封装执行队列;
封装设置子单元,用于将封装操作设置为所述封装执行队列,以使所述封装执行队列对比特数据流进行封装操作,输出得到的对应WebP文件流。
8.一种WebP文件转换的设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述WebP文件转换的方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述WebP文件转换的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710958894.9A CN107680144B (zh) | 2017-10-16 | 2017-10-16 | 一种WebP文件转换的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710958894.9A CN107680144B (zh) | 2017-10-16 | 2017-10-16 | 一种WebP文件转换的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107680144A CN107680144A (zh) | 2018-02-09 |
CN107680144B true CN107680144B (zh) | 2021-06-29 |
Family
ID=61140882
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710958894.9A Active CN107680144B (zh) | 2017-10-16 | 2017-10-16 | 一种WebP文件转换的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107680144B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109005421A (zh) * | 2018-08-17 | 2018-12-14 | 青岛海信电器股份有限公司 | 图像处理方法及装置、计算机可读存储介质 |
CN109525796A (zh) * | 2018-12-12 | 2019-03-26 | 四川商通实业有限公司 | 一种Webp图片格式转换方法 |
CN110489387A (zh) * | 2019-08-13 | 2019-11-22 | 深圳大学 | 压缩解压方法、装置、电子设备及存储介质 |
CN111818339A (zh) * | 2020-07-10 | 2020-10-23 | 逢亿科技(上海)有限公司 | 基于FPGA的Webp图像压缩算法的多核处理方法 |
CN114187604B (zh) * | 2022-02-14 | 2022-05-17 | 山东信通电子股份有限公司 | 一种WebP图片的完整性校验方法、设备及介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101739293B (zh) * | 2009-12-24 | 2012-09-26 | 航天恒星科技有限公司 | 一种基于多线程的卫星数据产品生产任务并行调度方法 |
CN101968748B (zh) * | 2010-09-17 | 2014-04-02 | 北京星网锐捷网络技术有限公司 | 多线程数据调度方法、装置及网络设备 |
CN103942206B (zh) * | 2013-01-18 | 2018-06-22 | 阿里巴巴集团控股有限公司 | 访问网络图片、响应访问请求的方法及其装置、系统 |
CN104753711B (zh) * | 2013-12-31 | 2018-03-09 | 华为技术有限公司 | 调整网络设备资源配置的方法及装置 |
CN105763761A (zh) * | 2014-12-16 | 2016-07-13 | 广州市动景计算机科技有限公司 | 一种图片数据传输方法及装置 |
CN104657219B (zh) * | 2015-02-27 | 2017-10-20 | 西安交通大学 | 一种用于异构众核系统下的应用程序线程数动态调整方法 |
CN105404554B (zh) * | 2015-12-04 | 2019-09-13 | 东软集团股份有限公司 | 用于Storm流计算框架的方法和装置 |
CN105511950A (zh) * | 2015-12-10 | 2016-04-20 | 天津海量信息技术有限公司 | 大数据集的任务队列优先级的调度管理方法 |
CN107092676A (zh) * | 2017-04-18 | 2017-08-25 | 广东浪潮大数据研究有限公司 | 一种数据处理方法及装置 |
CN107154062A (zh) * | 2017-05-12 | 2017-09-12 | 郑州云海信息技术有限公司 | 一种WebP有损压缩算法的实现方法、装置及系统 |
CN107124615A (zh) * | 2017-05-15 | 2017-09-01 | 郑州云海信息技术有限公司 | 一种WebP有损压缩的方法及装置 |
-
2017
- 2017-10-16 CN CN201710958894.9A patent/CN107680144B/zh active Active
Non-Patent Citations (2)
Title |
---|
IMPACT OF JPEG-WEBP CONVERSION ON THE CHARACTERISTICS OF THE PHOTOGRAPHIC IMAGE;Mile Matijević 等;《Tehnički vjesnik》;20161231;第23卷(第2期);第505-509页 * |
OpenMP多线程负载均衡调度策略研究与实现;任小西 等;《计算机科学》;20101130;第37卷(第11期);第148-151、183页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107680144A (zh) | 2018-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107680144B (zh) | 一种WebP文件转换的方法及装置 | |
CN108012156B (zh) | 一种视频处理方法及控制平台 | |
CN108989811B (zh) | 云桌面系统、及其图像序列压缩编码方法和介质 | |
US11257252B2 (en) | Image coding apparatus, probability model generating apparatus and image compression system | |
US9836248B2 (en) | In-memory data compression complementary to host data compression | |
US20170214930A1 (en) | Gpu-assisted lossless data compression | |
CN103546158A (zh) | 压缩深度高速缓存 | |
US9612833B2 (en) | Handling compressed data over distributed cache fabric | |
CN114723033B (zh) | 数据处理方法、装置、ai芯片、电子设备及存储介质 | |
CN114610650A (zh) | 内存压缩方法、装置、存储介质及电子设备 | |
CN108769694B (zh) | 一种基于FPGA的Alpha通道编码的方法及装置 | |
US11960421B2 (en) | Operation accelerator and compression method | |
WO2020083019A1 (zh) | 一种基于多核处理器的解码方法、终端设备及存储介质 | |
JP2022525897A (ja) | ニューラルネットワークモデルの圧縮/解凍のための方法および装置 | |
CN112035266A (zh) | 资源分配方法、装置、设备及存储介质 | |
CN109697452B (zh) | 数据对象的处理方法、处理装置及处理系统 | |
CN112165572A (zh) | 图像处理方法、装置、终端及存储介质 | |
CN111158907B (zh) | 数据处理方法及装置、电子设备和存储介质 | |
US20160142723A1 (en) | Frame division into subframes | |
WO2023124428A1 (zh) | 芯片、加速卡以及电子设备、数据处理方法 | |
CN112882826A (zh) | 一种资源协同调度方法以及装置 | |
CN113792869B (zh) | 基于神经网络芯片的视频处理方法、装置和电子设备 | |
CN115983349A (zh) | 卷积神经网络的量化方法及装置、电子设备和存储介质 | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
US10021161B2 (en) | Compression of graphical commands for remote display |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |