图片下载设备和方法、图片下载加速器及介质与流程

文档序号:17818206发布日期:2019-06-05 22:00阅读:192来源:国知局
图片下载设备和方法、图片下载加速器及介质与流程

本发明涉及图片下载技术,尤其涉及图片下载设备和方法、图片下载加速器及介质。



背景技术:

用户使用播放器的前进、后退功能时,播放器会提供小窗口的预览图页面,显示对应时间的预览图帧画面,以方便用户准确定位所需前进、后退的时间。

由此可知,预览图下载的速度越快,用户体验越好,而一旦预览图下载速度慢,会导致该功能的实用性下降,用户体验变差。

传统的顺序下载预览图方式导致下载速度慢,并且不能优先获得用户期望的图片。

传统的异步下载预览图方式需要使用多线程服务,而且这些多线程服务需要等待系统分配资源,当系统资源不足和/或本下载任务优先级较低时,会导致下载速度慢,而且导致过多占用资源。

因此,亟需一种既不过多占用资源、又能提升图片下载速度、优先获得用户需要的图片的解决方案。



技术实现要素:

为了解决以上问题之一,本发明提供了一种图片下载设备和方法、图片下载加速器及介质,以在不过多占用系统资源的同时,最大化提高图片下载速度,提升客户体验。

根据本发明的一个实施例,提供一种图片下载设备,包括:队列管理器,被配置为对图片的下载进行单线程双队列管理,其中,第一队列是当前下载队列,用于控制实际下载顺序,第二队列是预下载队列,用于调整下载缓冲池的预下载顺序,并且第一队列和第二队列均为串行队列。

可选地,上述第一队列用于放置当前已下载和正在下载的图片的序号,第二队列用于放置下载缓冲池的图片的序号。

可选地,上述图片下载设备还包括:预下载调整器,被配置为一旦用于选中目标图片集合中的图片的图片选中操作被触发,则调整第二队列中的图片预下载顺序,以使该选中图片的序号以及在目标图片集合中与该选中图片相邻的图片的序号在预下载顺序上前移。

可选地,上述第一队列中的图片序号取自第二队列中预下载顺序靠前的图片序号。

根据本发明的另一个实施例,提供一种图片下载方法,包括:对图片的下载进行单线程双队列管理,其中,第一队列是当前下载队列,用于控制实际下载顺序,第二队列是预下载队列,用于调整下载缓冲池的预下载顺序,并且第一队列和第二队列均为串行队列。

可选地,上述第一队列用于放置当前已下载和正在下载的图片的序号,第二队列用于放置下载缓冲池的图片的序号。

可选地,上述图片下载方法还包括:一旦用于选中目标图片集合中的图片的图片选中操作被触发,则调整第二队列中的图片预下载顺序,以使该选中图片的序号以及在目标图片集合中与该选中图片相邻的图片的序号在预下载顺序上前移。

可选地,上述第一队列中的图片序号取自第二队列中预下载顺序靠前的图片序号。

根据本发明的一个实施例,提供一种图片下载方法,包括:创建均为串行队列的当前下载队列和预下载队列,其中,当前下载队列为空,预下载队列中包括目标图片集合中的各图片的序号,这些序号在预下载队列中按顺序排列;当需要下载目标图片集合中的图片时,将所需图片的序号装入下载队列,并将该所需图片的序号从预下载队列中删除;并且当该所需图片下载完成后,从预下载队列头部取出第一个序号,装入当前下载队列的尾部,下载该第一个序号对应的图片,并将该第一个序号从预下载队列中删除。

可选地,其中,当图片选中操作被触发时,实时调整和更新预下载队列中的图片序号,即,将用户选中的图片的序号x插入到预下载队列的头部,同时将该序号x前后相邻的两张图片的序号(x+1)、(x-1)插入到预下载队列中的该序号x的后面。

根据本发明的一个实施例,提供一种图片下载设备,包括:队列创建装置,被配置用于创建均为串行队列的当前下载队列和预下载队列,其中,当前下载队列为空,预下载队列中包括目标图片集合中的各图片的序号,这些序号在预下载队列中按顺序排列;队列管理器,当需要下载目标图片集合中的图片时,将所需图片的序号装入下载队列,并将该所需图片的序号从预下载队列中删除,并且当该所需图片下载完成后,从预下载队列头部取出第一个序号,装入当前下载队列的尾部,下载该第一个序号对应的图片,并将该第一个序号从预下载队列中删除。

可选地,上述图片下载设备还包括预下载管理器,被配置用于当图片选中操作被触发时,所述预下载管理器将用户选中的图片的序号x插入到预下载队列的头部,同时将与该选中的图片前后相邻的两张图片的序号(x+1)、(x-1)插入到预下载队列中的该序号x的后面。

根据本发明的再一个实施例,提供一种图片下载加速器,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上面描述的方法之一。

根据本发明的又一个实施例,提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行上面描述的方法之一。

本发明通过采用单线程双队列来管理图片的下载过程,既能够避免传统的异步下载方式导致的多线程占用资源和速度过慢的问题,也能够避免传统的顺序下载方式导致的速度过慢和用户期望的图片不能及时下载的问题,从而实现了能够在不过多占用系统资源的同时,大大提高图片下载速度,有效提升客户体验。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的附图标记通常代表相同部件。

图1给出了根据本发明的一个示例性实施例的图像下载设备的示意性框图。

图2给出了根据本发明的一个示例性实施例的初始化的两个串行队列的示意图。

图3给出了根据本发明的一个示例性实施例的按照顺序下载图片的双队列运行和管理机制的示意图。

图4给出了根据本发明的一个示例性实施例的优先下载的双队列运行和管理机制的示意图。

图5给出了一个调整第二队列的排序的具体示例。

图6给出了根据本发明的一个示例性实施例的图像下载管理方式的示意图。

图7给出了根据本发明的一个示例性实施例的图像下载方法的示意性流程图。

图8给出了根据本发明的另一个示例性实施例的图像下载设备的示意性框图。

图9给出了根据本发明的一个示例性实施例的图像下载加速器的示意性框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。这里需要说明的是,本申请中的数字、序号以及附图标记仅是为了方便描述而出现的,对于本发明的步骤、顺序等等均不构成任何限制,除非在说明书中明确指出了步骤的执行有特定的先后顺序。

如前所述,为了解决传统的顺序下载预览图或者异步下载预览图会导致下载速度慢、过多占用资源的问题,本发明提供一种既不过多占用资源、又能提升预览图下载速度、优先获得用户想要的预览图的解决方案。

图1给出了根据本发明的一个示例性实施例的图片下载设备的示意性框图。

在本发明中,对图片(例如预览图)的下载进行单线程双队列管理,其中一个队列是当前下载队列,用于控制实际下载顺序,另一个队列是预下载队列,用于调整下载缓冲池的预下载顺序。

如图1所示,根据本发明的一个示例性实施例的图像下载设备100可以包括队列管理器110,该队列管理器110可以被配置为对图片的下载进行单线程双队列管理。

其中,队列管理器110所管理的第一队列是当前下载队列,用于控制实际下载顺序,队列管理器110所管理的第二队列是预下载队列,用于调整下载缓冲池的预下载顺序,并且第一队列和第二队列均为串行队列,如图2所示。

另外,可选地,上述图像下载设备100还可以包括预下载调整器120,预下载调整器120可以被配置为一旦用于选中图片的图片选中操作被触发,则调整第二队列中的图片预下载顺序,以使该选中图片的序号以及在目标图片集合中与该选中图片相邻的图片的序号在预下载顺序上前移。

为了使得本发明更清楚和更容易理解,图2给出了根据本发明的一个示例性实施例的初始化的两个串行队列的示意图。

如图2所示,第一队列(队列1)和第二队列(队列2)均为串行队列,其中,第一队列在初始化状态下可以为空,第二队列在初始化状态下可以包括目标图片集合的图片序号的全部或者其一部分。

第一队列是当前下载队列,包括当前已经下载和正在下载的图片的序号,即,可以在每当要实际下载一个图片之前,将该图片的序号放入第一队列,以用于记录和控制图片的实际下载顺序。其中,当前下载队列(第一队列)中的图片的序号可以按照图中从左到右的顺序来依次记录已经下载和正在下载的图片,这样,当有新的图片要下载时,新的图片的序号可以被放入该队列的尾部(最右侧)。

第二队列是预下载队列,即,将还未下载的图片的序号记录在第二队列中,并且可以在每当要实际下载一个图片之前,将第二队列中的该图片的序号删除(可以与将该图片的序号放入第一队列相对应)。而且,可以在该第二队列中调整下载缓冲池的预下载顺序,即,可以根据需要调整第二队列中的图片序号的排列顺序,以使期望的图片能够优先下载。其中,预下载队列(第二队列)中的图片的序号可以按照图中从左到右的顺序来依次记录可能将要被下载的图片,这样,当有新的图片要下载时,预下载队列中的头部(最左侧)的图片的序号可以被放入当前下载队列的尾部(当前下载队列的最右侧)。

请注意,上面举出的第一队列和第二队列中的图片的序号的排序方式仅是一种示意的例子,也可以按照其它的方式来对图片的序号进行排序,本发明对此不作任何限制。

也就是说,本发明至少支持两种下载方式,即顺序下载方式和优先下载方式,如图6所示。具体而言,如果不调整第二队列中的图片序号的排序,那么可以按照图片序号在第二队列中的原有顺序(例如,按照目标图片集合中的图片的序号大小的顺序)依次下载对应的各图片,如图3所示;当需要调整第二队列中的图片序号的排序,例如当用户选中图片的操作发生时,则触发调整第二队列中的图片序号的排序的动作。例如,当用户使用播放器的前进、后退功能时,播放器会提供小窗口的预览图页面,显示对应时间的预览图帧画面,方便用户准确定位所需前进、后退的时间,而且用户可以方便地选取感兴趣的时间点或时间段的预览图(例如通过进度条或播放器的前进、后退按钮等等)。当用户选中了感兴趣的预览图时,该预览图越快下载下来,用户体验越好。此时,如果能够优先下载用户选中的该预览图,则用户体验可以得到极大提升。而通过本发明的如图4所示的优先下载方式,可以实现该功能。

图3给出了根据本发明的一个示例性实施例的按照顺序下载图片的双队列运行和管理机制的示意图。

如图3所示,队列1中已经按顺序放置了0,1,2,......,n-1这n个图片序号,队列2中按顺序放置了n,n+1,...,m这m-n+1个图片序号,这表示0,1,2,......,n-1这n个图片已被下载或者正在被下载(例如可能是前n个图片已被下载,图片n正在被下载),n,n+1,...,m这m-n+1个图片尚未被下载,即,还处在下载缓冲池。

如果继续顺序下载方式,那么可以在队列1中的最后一个图片n-1被下载完成之后,从第二队列中取排在前面的图片n(如图4所示),放入队列1中以开始下载图片n,同时从队列2中删除n。

在本例中,队列1和2中的图片序号是按照大小顺序排列的,按照大小顺序进行排列的方式比较符合播放预览图的要求。但是,请注意,队列1和2中的图片序号当然也可以根据需求、按照其它的方式进行排序,本发明对此不作任何限制。

图4给出了根据本发明的一个示例性实施例的优先下载的双队列运行和管理机制的示意图,并且图5示出了一个调整队列2中的排序的具体示例,以更清楚地说明队列2的队列调整操作。

如图4所示,当图片选中操作被触发,例如,当用户点击了后退按钮或者拖拽了进度条,此时要下载的图片(其图片序号为x)可能已经不能按照上面的顺序下载放来下载了,即需要优先下载用户通过按钮或进度条选中的图片帧画面x(例如,如图5所示的图片5),此时,将图片序号x插入到队列2的头部,可以同时在图片序号x后面放置与该图片相邻的两个图片的序号x+1,x-1,以在下载用户选中的图片之后,继续及时下载用户接下来可能最想看的两帧画面。

队列1中现在已经放置了0,1,2,......,n这n+1个图片序号,队列2中放置了x,x+1,x-1,n+1,...,m这些图片序号,其中x,x+1,x-1(例如,如图8所示的5,6,4)这三个图片序号的排序已经通过用户选中操作而触发了顺序调整,从而它们的排序前移,即发生了顺序调整。这里,考虑到用户选中的图片下载之后,用户可能接下来最想看与该图片前后相邻的两张图片,所以在队列2中也将这两张相邻图片的序号进行了前移,以方便后续的及时下载。

此时已经开始了优先下载方式,即先对图片序号进行了调整之后,接下来在队列1中尾部放置图片序号x,然后开始下载图片x,同时从队列2的头部删除图片序号x。

在下载图片x之后,如果图片选中操作没有被触发,则可以执行顺序下载方式,即将图片序号x+1放入队列1尾部,开始下载图片x+1,然后从队列2头部删除x+1。

而如果图片选中操作被触发,则继续执行优先下载方式,即将选中的图片的序号前移,例如前移到队列2头部,同时将与其前后相邻的两张图片的序号也前移,例如,紧接在选中图片序号的后面,然后将该选中图片的序号放入队列1,开始下载该选中图片,同时从队列2中删除该图片的序号。

由上面的描述可知,本发明可以支持顺序下载和优先下载两种方式,而且通过对图片的下载进行单线程双阵列管理,能够实现既不过多占用系统资源,又能快速下载,且能更及时地获取用户期望的图片。

请注意,上面的图3和图4给出的示例均不能构成对本发明的限制,本发明对于顺序下载方式和优先下载方式的支持不存在支持顺序上的限制,即,可以先进行顺序下载,随时切换成优先下载方式,也可以直接先进行优先下载,随时切换成顺序下载方式。

图7给出了根据本发明的一个示例性实施例的图像下载方法的示意性流程图。

如图7所示,在步骤s110,初始化创建两个队列,一个是当前正在下载队列a(即第一队列),一个是预下载队列b(即第二队列),并规定a、b队列均为串行队列。并且,a的初始化下载数据可以为空,b的初始化下载数据可以为[0,1,2…,m](即,可以按图片序号来顺序排列)。

在步骤s120,当需要获取图片时,可以先将图片序号n(n为大于或等于0的整数)装入a,并将图片序号n从b中删除。

在步骤s130,当序号为n的图片下载完成后,从b的头部取出第一个序号,装入a的尾部,下载该相应图片,并将该序号从b中删除。

在步骤s140,当图片选中操作被触发时,实时调整和更新队列b中的序号,即,将用户选中的图片的序号x插入到队列b的头部,同时将其前后相邻的两张图片的序号(x+1),(x-1)插入到队列b中的x的后面。

通过上述步骤,能够保证在网络资源耗费最少的情况下,优先下载用户选中的图片,达到快速展示的目的。从而,本发明能够在最小占用网络资源的同时,加速用户想看的图片的下载及展示。

另外,如前所述,其它的图片下载管理方式可以是并行队列处理,但由于下载图片文件相对耗时较大,其它播放所需的资源比预览图下载的优先级更高,因此需要避免采用并行方式下载图片,占用网络资源。另外,关于串行的方式,也可以是一个队列,采用顺序下载,但这种方式会导致用户想看的图片不能迅速加载出来,相对等待延迟较长。

而本发明采用串行队列方式,能够将预览图下载需要使用的网络资源减少到最小,给其它优先级更高的业务节省出更多的网络资源;而且,本发明还采用双队列控制,可以动态调整队列的排序,保证用户选中的图片能够优先下载及展示,提升用户体验。

图8给出了根据本发明的另一个示例性实施例的图像下载设备的示意性框图。

如图8所示,根据本发明的另一个示例性实施例的图片下载设备200可以包括队列创建装置205、队列管理器210。

其中,队列创建装置205被配置用于创建均为串行队列的当前下载队列和预下载队列,其中,当前下载队列为空,预下载队列中包括目标图片集合中的各图片的序号,这些序号在预下载队列中按顺序排列。

队列管理器210被配置用于,当需要下载目标图片集合中的图片时,将所需图片的序号装入下载队列,并将该所需图片的序号从预下载队列中删除,并且当该所需图片下载完成后,从预下载队列头部取出第一个序号,装入当前下载队列的尾部,下载该第一个序号对应的图片,并将该第一个序号从预下载队列中删除。

另外,可选地,上述图片下载设备200还可以包括预下载管理器220,预下载管理器220被配置用于当图片选中操作被触发时,所述预下载管理器将用户选中的图片的序号x插入到预下载队列的头部,同时将与该选中的图片前后相邻的两张图片的序号(x+1)、(x-1)插入到预下载队列中的该序号x的后面。

请注意,虽然图1和图8中示出的例子中,队列管理器与预下载管理器是彼此分开的部件,但是它们也可以是集成在一起的部件,例如,预下载管理器可以是包含在队列管理器中的部件,或者也可以说,队列管理器包括预下载管理器。总之,本发明对于队列管理器与预下载管理器的实现方式不作任何限制。

本发明中采用创建并使用两个串行队列的方法,能够动态调整下载队列的排序,保证用户选中的图片能够优先下载及展示,并且还能够将预览图下载需要使用的网络资源减少到最小,给其它优先级更高的业务节省出更多的网络资源,从而有效提升了用户体验。

图9给出了根据本发明的一个示例性实施例的图像下载加速器的示意性框图。

参见图9,该图像下载加速器1包括存储器10和处理器20。

处理器20可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器20可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(gpu)、数字信号处理器(dsp)等等。在一些实施例中,处理器20可以使用定制的电路实现,例如特定用途集成电路(asic,applicationspecificintegratedcircuit)或者现场可编程逻辑门阵列(fpga,fieldprogrammablegatearrays)。

存储器10上存储有可执行代码,当所述可执行代码被所述处理器20执行时,使所述处理器20执行上面描述的数据迁移方法之一。其中,存储器10可以包括各种类型的存储单元,例如系统内存、只读存储器(rom),和永久存储装置。其中,rom可以存储处理器20或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器10可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(dram,sram,sdram,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器10可以包括可读和/或写的可移除的存储设备,例如激光唱片(cd)、只读数字多功能光盘(例如dvd-rom,双层dvd-rom)、只读蓝光光盘、超密度光盘、闪存卡(例如sd卡、minsd卡、micro-sd卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图等等显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1