向计算终端提供图片数据的方法及服务器的制作方法

文档序号:7866544阅读:145来源:国知局
专利名称:向计算终端提供图片数据的方法及服务器的制作方法
技术领域
本发明涉及图像处理领域,具体涉及一种向计算终端提供图片数据的方法及服务器。
背景技术
随着移动设备的高速发展,移动设备的类型和功能也越来越丰富。目前,多数移动 设备都提供有图片浏览功能,因此,越来越多的人通过移动设备来浏览图片。随着图片种类的多样化,很多图片都包含多帧图片数据,这样的图片也叫动态图片。例如,常见的图像互换格式(Graphics Interchange Format,GIF)图片就可以将多巾贞图片数据保存为一个图片文件,从而形成动画。GIF图片可以包含多帧图片数据的特性虽然为用户带来了动态的视觉享受,但是,由于移动设备本身的局限性,例如,硬件配置和网络带宽远不如一些固定设备(例如PC机),因此,采用移动设备浏览动态图片很容易出现图片加载缓慢甚至加载失败的情形,从而浪费了用户的时间,还经常造成用户无法正常查看图片。而且,由于动态图片一般数据量较大,与浏览文字相比,浏览动态图片需要消耗更多的网络带宽和网络流量,但目前很多移动设备的网络带宽仍较低,网络流量对应的网络资费仍偏高,所以,频繁浏览动态图片很容易导致用户的网络资费严重超出预算。

发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的向计算终端提供图片数据的方法和相应的服务器。依据本发明的一个方面,提供了一种向计算终端提供图片数据的方法,包括步骤接收计算终端发送的图片访问请求,图片访问请求包括要访问的图片信息以及计算终端的终端类型信息;获取与图片访问请求中的图片信息相对应的原始图片数据,原始图片数据包含多帧图片数据;根据计算终端的终端类型信息确定要提供给计算终端的图片数据的帧数,从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据;以及将经处理后的图片数据发送给计算终端。可选地,图片访问请求还包括计算终端的网络类型信息;以及该方法还包括根据计算终端的网络类型信息来确定要提供给计算终端的图片数据的帧数。根据本发明的另一方面,提供了一种向计算终端提供图片数据的服务器,包括网络接口,适于接收计算终端发送的图片访问请求,图片访问请求包括要访问的图片信息以及计算终端的终端类型信息,并且将服务器处理后的图片数据传输给计算终端;帧数判定器,适于根据计算终端的终端类型信息确定要提供给计算终端的图片数据的帧数;图片处理器,适于获取与图片访问请求中的图片信息相对应的原始图片数据,原始图片数据包含多帧图片数据,从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据。可选地,图片访问请求还包括计算终端的网络类型信息,帧数判定器还适于根据计算终端的网络类型信息来确定要提供给计算终端的图片数据的帧数。
根据本发明的向计算终端提供图片数据的方法和相应的服务器,可以根据计算终端的终端类型信息来确定要提供给计算终端的图片数据的帧数并从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据,由此解决了移动终端访问动态图片时加载速度慢且消耗网络流量多的问题,取得了能够使移动终端快速地加载动态图片,且降低了动态图片访问时的流量消耗的有益效果。另外,根据本发明的方法和服务器,还可以根据计算终端的网络类型来确定要提供给计算终端的图片数据的帧数并从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据,当计算终端通过低速网络或者费用较高的网络访问动态图片时,可以减少图片数据传输量,从而解决了移动终端访问动态图片时加载速度慢且消耗网络流量多的问题,取得了能够使移动终端快速地加载动态图片,且降低了动态图片访问时的流量消耗的有益效果。上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的 、特征和优点能够更明显易懂,以下特举本发明的具体实施方式



通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中图1示出了根据本发明一个实施例的向计算终端提供图片数据的方法流程图;图2示出了根据本发明提供的向计算终端提供图片数据的服务器以及与该服务器相连的计算终端的示意图。
具体实施例方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。图1示出了根据本发明一个实施例的向计算终端提供图片数据的方法流程图。如图1所示,该方法始于步骤S110,在步骤SllO中,接收计算终端发送的图片访问请求,该图片访问请求中包括要访问的图片信息以及计算终端的终端类型信息。可选地,步骤SllO可通过如下方式实现当计算终端的用户需要通过计算终端访问图片时,通常会通过计算终端上安装的浏览器点击某个超链接或输入某个搜索词等方式,从而由浏览器触发计算终端向提供服务的服务器等设备发送图片访问请求,该图片访问请求中至少需要包含用户要访问的图片信息,以便服务器能够找到该图片并提供给用户,以及计算终端的终端类型信息,以便于服务器了解计算终端的终端类型。可选地,计算终端发送的图片访问请求基于HTTP协议构造,而用于指示计算终端的终端类型信息的字段包含在HTTP协议的用户代理(user-agent,以下简称UA)部分中。也就是说,计算终端每次要访问图片时发送的图片访问请求中都包含UA信息。
为了便于理解本发明,下面先简单介绍一下UA信息的具体内容。UA是一个特殊的字符串头,该字符串头中可以包含一系列有关于计算终端的相关信息,例如,计算终端所使用的操作系统及版本、CPU类型、浏览器类型及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。通常情况下,UA的标准格式为浏览器标识;操作系统标识;加密等级标识;浏览器语言;渲染引擎标识;版本信息,其中,浏览器标识是形如Mozilla/5. O或Opera/7. 54等标记浏览器产品的字串;常见的操作系统标识包括FreeBSD、Linux、Mac、Solaris以及Windows等;加密等级标识例如用“N”表示无安全加密、用“ I ”表示弱安全加密以及“U”表示强安全加密等;浏览器语言即为浏览器的首选项的常规标签里的语言选项中指定的语言;渲染引擎例如可以为Presto渲染引擎,格式为=Presto/版本号;浏览器版本信息中显不浏览器的真实版本信息,格式为Version/版本号。在UA所包含的上述一系列信息中,与本发明最相关的是能够反映计算终端的终端类型的信息,例如,操作系统标识。通过操作系统标识可以很方便地识别出计算终端的终端类型。目前,市场上主流的移动终端的操作系统一般采用ios (苹果操作系统) 或Android (google安卓操作系统),因此,如果操作系统为上述两种类型,则可以确定出计算终端的终端类型为移动终端。例如,Android用户访问网页时发送的图片访问请求中包含的 UA 信息形如 Mozilla/5. O (Linux;U; Android 3.1; zh-cn;GT_P7310Build/HMJ37)AppleffebKit/534. 13(KHTML, like Gecko)Version/4. OMobile Safari/534. 1,其中,“Android”字段明确表示出发送该图片访问请求的计算终端设备所采用的操作系统为Android系统,因此,表不该计算终端的终端类型为移动终端;Iphone用户访问网页时发送的图片访问请求中包含的UA信息形如Mozilla/5. O (iPhone; CPU iPhone0S5_01ike Mac OS X)AppIeffebKit/534. 46(KHTML, like Gecko)Version/5.1Mobile/9A334Safari/7534. 48. 3,其中,“ iPhone ”字段明确表示出发送该图片访问请求的计算终端设备所采用的是iPhone设备,其对应的操作系统为iOS系统,因此,也表示该计算终端的终端类型为移动终端。另外,为了进一步提高类型判断的准确性,还可以进一步结合UA中的其他信息,例如版本信息等进行综合判断。上面描述的采用UA信息来指示计算终端的终端类型的方式只是一种示意性的方式,在实际情况中还可以采用其他多种方式来指示计算终端的终端类型,例如,也可以直接在图片访问请求中设置一个字段,专门用于指示终端类型。执行完上述步骤SllO之后,在步骤S120中,获取与图片访问请求中的图片信息相对应的原始图片数据,该原始图片数据包含多帧图片数据。在本实施例中,可以通过图片存储器来存储图片信息相对应的原始图片数据,通过访问该图片存储器获取与图片访问请求中的图片信息相对应的原始图片数据。其中,该图片存储器可以是一台单独的服务器,专门用于存储图片数据,也可以是若干台服务器,每台服务器存储部分图片数据。需要说明的是,本发明实施例主要适用于对包含多帧图片数据的图片的访问。也就是说,本发明实施例中,用户发送的图片访问请求中要访问的图片信息对应的原始图片数据应该是包含多帧图片数据的图片,例如多帧GIF图片,为了描述方便,也可以将这样的图片称为动态图片。由于原始图片数据包含多帧图片数据,为了节省用户的等待时间,并减少消耗的网络流量,在后续的步骤S130中,根据计算终端的终端类型信息确定要提供给计算终端的图片数据的帧数,从该原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据。具体地,步骤S130主要是根据不同类型的计算终端的特点,来决定适合于该计算终端显示的图片数据的帧数,并从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据。由于不同类型的计算终端之间的软硬件差异,导致其浏览图片时的性能也不完全相同。例如,移动终端的屏幕尺寸相对较小、分辨率相对较低,因此,对图片质量的敏感度也相对较低。所以,当计算终端的终端类型为移动终端时,可以将提供给计算终端的图片数据的帧数设置得稍微低一些,在一定程度上牺牲图片质量,为用户呈现较少的帧数以减少用户流量的使用,降低用户流量资费,缩短图片 在移动终端上的加载耗时。由于固定终端(例如台式PC机)的屏幕尺寸较大,分辨率也相对较高,所以,当计算终端的终端类型为固定终端时,可以将提供给计算终端的图片数据的帧数设置得稍微高一些,以提高图片质量,为用户呈现较多的帧数,可选地,可以将提供给计算终端的图片数据的帧数设置为原始图片数据的帧数,即不进行提取帧数的处理,维持原图,以便为用户提供最优质的图片。具体地,为了在步骤S130中方便地确定各种类型的计算终端对应的帧数,可以事先设置并存储一个终端类型与帧数之间的对照表,通过查找该对照表,确定与终端类型相对应的帧数。具体地,在从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据时,可以采用多种方式来提取,只要能够将原始图片数据处理为所确定帧数的数据即可。例如,可以按照逐帧提取方式,从原始图片数据中提取所确定帧数的图片数据,其中,所确定帧数的图片数据位于原始图片数据的首部、中部或尾部。在这种方式中,所提取的图片数据是由连续的若干帧数据组成的,这若干帧数据可以位于原始图片数据的任意位置处,优选地,可以位于原始图片数据中所反映的信息量较多,即帧与帧之间的图像差异较大的位置处。或者,也可以按照隔帧提取方式,从原始图片数据中提取所确定帧数的图片数据。在这种方式中,所提取的图片数据是由非连续的若干帧数据组成的,这非连续的若干帧数据可以按照一定的算法来提取,例如,每隔一帧或两帧提取一帧数据,或者,也可以根据原始图片数据的特点来提取,例如,挑选几帧有代表性的图片数据进行提取。从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据之后,在步骤S140中,将步骤S130中生成的经处理后的图片数据发送给计算终端。通过上面的方式就可以根据计算终端的类型特点,对要访问的原始图片数据进行一定的降帧处理,即减少原始图片数据的帧数,以达到节省用户的访问时间,减少网络流量的效果。另外,在步骤S130中确定要提供给计算终端的图片数据的帧数时,还可以进一步结合原始图片数据的大小来确定提供给计算终端的图片数据的帧数。这时,需要预先确定原始图片数据的大小,并根据计算终端的终端类型信息和原始图片数据的大小来确定要提供给计算终端的图片数据的帧数。其中,原始图片数据的大小可以通过字节数来表示。例如,在实际处理时,可以设置字节数越大的图片保留的帧数(即提供给计算终端的图片数据的帧数)越少,字节数越少的图片保留的帧数(即提供给计算终端的图片数据的帧数)越多,由此可以使传输的数据量基本控制在恒定的范围内,不会突然造成网络带宽的大量占用,也不会突然导致网络流量浪费太多,而且也可以保证用户每次浏览图片时所消耗的时间基本差不多,因而用户感受较好。例如,以移动终端类型的计算终端为例,当字节数小于等于IOOKB时,保留原始图片数据的前50帧;当字节数大于100KB小于等于200KB时,保留原始图片数据的前20帧;当字节数大于200KB小于等于IMB时,保留原始图片数据的前10帧;当字节数大于IMB时,仅保留原始图片数据的第一帧,以上数值均为经验值,实际情况中可根据需要对上述数值进行调整。其中,当仅保留原始图片数据的第一帧时,为了使用户知晓该图片实际上是一个由多帧图片数据构成的动态图片,可以为处理后的仅为一帧的图片数据添加动态图片标识。该动态图片标识可以为数字水印,例如,可以使用Imagemagick的compositelmage功能,在一张图片的特定区域叠加另外一张不透明图片,以遮挡住原始图 片。当原始图片数据为多帧GIF图片时,该数字水印可以为“GIF”的字样,以提示用户该图片为多帧GIF图片。另外,除了上述的字节数越大的图片保留的帧数越少,字节数越少的图片保留的帧数越多的设置方式外,在另外一些情况中,还可以反过来设置字节数越大的图片保留的帧数越多,字节数越少的图片保留的帧数越少,这样做的好处在于,字节数越大的图片通常情况下包含的帧数也越多,因此保留更多的帧数有利于用户了解该图片的大致动画过程。总之,结合字节数来确定要提供给计算终端的图片数据的帧数时,可以根据用户的需求来确定具体的帧数。下面,以用户要访问的图片为GIF文件为例,简单介绍一下GIF文件的结构特点,并结合GIF文件的结构特点描述一下步骤S130中从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据的处理过程。一个GIF文件的结构可分为文件头(File Header)、GIF数据流(GIF DataStream)和文件终结器(Trailer)三个部分。文件头包含GIF文件署名(Signature)和版本号(Version) ;GIF数据流由控制标识符、图象块(Image Block)和其他的一些扩展块组成;文件终结器只有一个值为0X3B的字符(”;”)表示文件结束。表I示出了一个GIF文件的组成结构表I
权利要求
1.一种向计算终端提供图片数据的方法,包括步骤 接收计算终端发送的图片访问请求,所述图片访问请求包括要访问的图片信息以及计算终端的终端类型信息; 获取与所述图片访问请求中的图片信息相对应的原始图片数据,所述原始图片数据包含多帧图片数据; 根据所述计算终端的终端类型信息确定要提供给计算终端的图片数据的帧数,从所述原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据;以及 将所述经处理后的图片数据发送给所述计算终端。
2.如权利要求1所述的方法,其中所述图片访问请求还包括所述计算终端的网络类型信息;以及所述方法还包括 根据所述计算终端的网络类型信息来确定要提供给计算终端的图片数据的帧数。
3.如权利要求1或2所述的方法,所述计算终端的终端类型信息包括下列中的一种或者多种便携式计算设备、PDA、平板计算设备、智能手机移动终端、膝上型计算机以及台式计算机;或者, 所述计算终端的终端类型信息包括计算终端的屏幕大小,和/或计算终端的屏幕的长宽比。
4.如权利要求2所述的方法,其中所述计算终端的网络类型信息包括下列中的一种或者多种GPRS、CDMA、3G、4G、WIFI网络以及各种有线网络链接。
5.如权利要求1-4中任一个所述的方法,所述图片访问请求基于HTTP协议,而用于指示计算终端的终端类型信息的字段包含在HTTP协议的用户代理部分中。
6.如权利要求5的方法,其中所述计算终端的网络类型信息以参数形式包含在所述图片访问请求中。
7.如权利要求1-6中任一个所述的方法,所述从所述原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据的步骤包括 按照逐帧提取方式,从所述原始图片数据中提取所确定帧数的图片数据,其中,所确定帧数的图片数据位于所述原始图片数据的首部、中部或尾部;或者 按照隔帧提取方式,从所述原始图片数据中提取所确定帧数的图片数据。
8.如权利要求1-7中任一个所述的方法,还包括 确定所述原始图片数据的大小;以及 所述根据所述计算终端的终端类型信息确定要提供给计算终端的图片数据的帧数还包括 根据所述计算终端的终端类型信息和所述原始图片数据的大小来确定要提供给计算终端的图片数据的帧数。
9.如权利要求1-8中任一个所述的方法,还包括,当所确定帧数为一帧时,为所述经处理后的图片数据添加动态图片标识。
10.一种向计算终端提供图片数据的服务器,包括 网络接口,适于接收计算终端发送的图片访问请求,所述图片访问请求包括要访问的图片信息以及计算终端的终端类型信息,并且将服务器处理后的图片数据传输给所述计算终端;帧数判定器,适于根据所述计算终端的终端类型信息确定要提供给计算终端的图片数据的帧数; 图片处理器,适于获取与所述图片访问请求中的图片信息相对应的原始图片数据,所述原始图片数据包含多帧图片数据,从所述原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据。
11.如权利要求10所述的服务器,其中, 所述图片访问请求还包括所述计算终端的网络类型信息, 所述帧数判定器还适于根据所述计算终端的网络类型信息来确定要提供给计算终端的图片数据的帧数。
12.如权利要求10或11所述的服务器,所述计算终端包括下列终端类型中的一种或者多种便携式计算设备、PDA、平板计算设备、智能手机移动终端、膝上型计算机以及台式计算机;或者, 所述计算终端的终端类型信息包括计算终端的屏幕大小,和/或计算终端的屏幕的长宽比。
13.如权利要求11所述的服务器,其中所述计算终端的网络包括下列网络类型中一种或者多种GPRS、CDMA、3G、4G、WIFI网络以及各种有线网络链接。
14.如权利要求10-13中任一个所述的服务器,所述图片访问请求基于HTTP协议,而用于指示计算终端的终端类型信息的字段包含在HTTP协议的用户代理部分中。
15.如权利要求14的服务器,其中所述计算终端的网络类型信息以参数形式包含在所述图片访问请求中。
16.如权利要求11-15中任一个所述的服务器,所述图片处理器进一步适于 按照逐帧提取方式,从所述原始图片数据中提取所确定帧数的图片数据,其中,所确定帧数的图片数据位于所述原始图片数据的首部、中部或尾部; 或者,按照隔帧提取方式,从所述原始图片数据中提取所确定帧数的图片数据。
17.如权利要求11-15中任一个所述的服务器,所述帧数判定器还适于根据所述计算终端的终端类型信息和所述原始图片数据的大小来确定要提供给计算终端的图片数据的帧数。
18.如权利要求11-15中任一个所述的服务器,当所述帧数判定器所确定的帧数为一帧时,所述图片处理器进一步适于为所述经处理后的图片数据添加动态图片标识。
19.如权利要求10-18中任一个所述的服务器,还包括 图片存储器,适于存储所述图片信息相对应的原始图片数据。
全文摘要
本发明公开了一种向计算终端提供图片数据的方法及服务器,该方法包括接收计算终端发送的图片访问请求,图片访问请求包括要访问的图片信息以及计算终端的终端类型信息;获取与图片访问请求中的图片信息相对应的原始图片数据,原始图片数据包含多帧图片数据;根据计算终端的终端类型信息确定要提供给计算终端的图片数据的帧数,从原始图片数据中提取所确定帧数的数据以构成经处理后的图片数据;以及将经处理后的图片数据发送给计算终端。由此解决了移动终端访问动态图片时加载速度慢且消耗网络流量多的问题,能够使移动终端快速地加载动态图片,且降低了动态图片访问时的流量消耗。
文档编号H04L29/08GK103002026SQ201210487689
公开日2013年3月27日 申请日期2012年11月26日 优先权日2012年11月26日
发明者吕本伟, 杨涛 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1