CN1679024A - 提供为特定客户机设备类型而优化的动态视口分层的成像系统 - Google Patents

提供为特定客户机设备类型而优化的动态视口分层的成像系统 Download PDF

Info

Publication number
CN1679024A
CN1679024A CNA038199270A CN03819927A CN1679024A CN 1679024 A CN1679024 A CN 1679024A CN A038199270 A CNA038199270 A CN A038199270A CN 03819927 A CN03819927 A CN 03819927A CN 1679024 A CN1679024 A CN 1679024A
Authority
CN
China
Prior art keywords
image
viewport
equipment
information
layer
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.)
Granted
Application number
CNA038199270A
Other languages
English (en)
Other versions
CN100461160C (zh
Inventor
V·伊斯沃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Credit Suisse Tcx
Pauusini Wells Tcx
Verisign Inc
Original Assignee
Lightsurf Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lightsurf Technologies Inc filed Critical Lightsurf Technologies Inc
Publication of CN1679024A publication Critical patent/CN1679024A/zh
Application granted granted Critical
Publication of CN100461160C publication Critical patent/CN100461160C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明描述了一种系统,其包括用于优化/定制请求图像的显示或渲染的方法。在一个实施例中,该系统提供了为特定设备类型定制的图像的请求式创建。该系统包括用作图像仓库的一个模块,每个图像包括排列在不同层的图像组件;用于处理来自一个设备的请求的模块,以从仓库检索一个特定的图像,该模块部分地基于包含在请求中的信息为该设备确定一种特定设备的设备类型;以及一个基于所确定的设备类型在该特定图像的不同层上单独地渲染图像组件的模块,以致该特定图像的不同层上的图像组件中的至少一些是为该设备定制的。

Description

提供为特定客户机设备类型而优化的 动态视口分层的成像系统
版权须知
本专利文件的公开内容的一部分含有属于版权保护的资料。版权所有者不反对任何人复制本专利文件或本专利公开内容,如同在专利商标局(Patent and Trademark Office)的专利文件或档案中所发表的一样,然而在别的方面,版权所有者保留所有版权。
发明背景
技术领域
本发明一般涉及数字图像处理,尤其是涉及在不同设备上渲染(render)数字图像的改进技术。
背景技术
现在,数字成像尤其是数字照相机形式的数字成像的流行是一个现实,其利用固态图像传感器而不是传统的胶卷,为拍摄图像提供了一种新方式。数字照相机是通过在某些类型的传感装置上记录入射光、然后处理该信息(基本上是模数转换)以创建目标照片的存储图像来发挥作用的。数字照相机最大的优点是它数字化地创建图像,这样,使所有类型的设备和应用工具之间的图像传输变得容易。例如,人们可容易地把数字图像插入到字处理文档中,通过电子邮件发送给朋友,或在一个网站上张贴,让世界上的任何人都可看到它们。另外,人们可利用照片编辑软件对数字图像进行处理,改进或修改它们。例如,人们能剪切数字图像,除去红眼(red-eye),改变颜色或对比度,甚至添加和删除元素。数字照相机还可提供对图像的直接存取,这样避免了处理胶卷的麻烦和延迟。总之,数字成像正变得越来越普遍,因为当用户想使用或分发图像时,数字成像会给他或她以很大的灵活性。
无论数字图像是在哪里发生的,用户常常会对它们进行处理。例如,在桌面计算机上利用Adobe Photoshop,用户通过在另一层的上面分层形成不同的对象可人工地创建一个图像。例如,一个图像的一层可包含图片,另一层可包含文本,另外一层可包含位图边框,等等。然后,具有独立各层的图像可以以Photoshop(原有的)文件格式存储,或以各种不同的文件格式之一存储。
利用Photoshop,人们可以预先产生一个给定图像的不同版本(即预先渲染该图像的不同层),这样该图像可为世界上每一种可能的(能够显示)设备而被正确地渲染。但是,该方法并不真正实用。各种设备具有各种约束,如文件大小(如小于5K字节)、位深度约束(如不大于每像素8个比特),和图像尺寸约束(如图像不能大于100×100像素)。这样,为数以千种的设备创建一个可接受版本的图像的任务是不实际的。
例如,考虑一项任务,在图片(如位图背景)的上面分层形成一个字符(如Disney字符),用于在能够显示JPEG的目标设备上显示。在这种情况下,该图片将需要被调整尺寸到该目标设备的屏幕尺寸。该字符则不得不在被调整大小的图片的上面被覆盖(分层),最后该图像将需要被保存为正确的JPEG质量。如果产生的图像文件对于目标设备来说太大,程序将必须被重复,包括重新调整背景图片的大小,在该图片的上面重新分层。利用当前具有的工具,该任务至少是乏味和费力的。此外,当人们处理静态图像时,前述的人工(即预先渲染)方法才是可能的。如果用户想要在一个现有图像上立即形成一个对象的分层,人工方法不能提供一个可能的解决方案。
现有的形成对象分层的方法依靠基于浏览器的在线技术。然而,那些方法基本上是上述桌面方法(即Adobe Photoshop方法)的在线版本。尤其是,那些方法没有考虑可能由一个给定目标设备例如一个手持设备造成的各种约束。相反,那些方法依靠具有固定的一组设备约束(即一个固定的视口)的一个环境。如果该图像是被传输给一个目标设备,则该图像可能必须被调整尺寸。由于图像不是动态地被重新创建,人们不能利用矢量图形;因此图像的特定特征将失去。例如,当文本在640×480分辨率的桌面浏览器上显示时,它看起来是好的,而当在具有100×100分辨率的屏幕的移动设备上显示而重新调整大小时,它看上去很糟糕。然而所希望的是,基于目标设备的最终屏幕分辨率以及任何其它应用的目标设备的约束,来渲染该文本(以及任何其它图形)。既然当前的方法具有这些以及其它限制,应该寻求一种更好的解决方案。
所需要的是一种系统,它提供了允许动态地重新形成一个逻辑视口和允许动态地调整编码参数、包括文件大小约束的方法,以致数字图像的渲染被动态地最优化或为不同的目标设备而定制。本发明满足该要求和其它要求。
术语表
为了说明的目的而不是限制,提供了下面的定义,以有助于理解下文中的讨论。
颜色空间校正(ColorSpace correction):颜色空间校正是调整一个图像中的R、G、B值的过程,以适应目标显示器的红、绿和蓝的颜色色度。例如参见Poynton,C.A.,"A Technical Introduction of DigitalVideo,"Chapter 7,John Wiley,New York,1996。
亮度校正(Gamma Correction):这是通过把显示器的非线性的倒数施加到源图像而补偿显示器非线性的过程。例如参见Poynton,C.A.,"A Technical Introduction of Digital Video,"Chapter 6,John Wiley,New York,1996。
HTML:Hypertext Markup Language(超文本链接标记语言)的缩写,用于在万维网上创建文档的著名的创作语言。HTML类似于SGML,尽管它不是一个严格的子集。HTML通过各种标签和属性来定义web文档的结构和布图。参见RFC 1866:Hypertext Markup Language-2.0
HTTP:HyperText Transfer Protocol(超文本传输协议)的缩写,这是万维网所用的底层协议。HTTP定义信息如何被格式化和传输,以及对应于各种命令Web服务器与浏览器应该采取哪些行动。例如,当用户在他的或她的浏览器中输入一个URL(Uniform Resource Locator,统一资源定位符),这实际上向Web服务器发送了一个HTTP命令,指示它取出和传输所请求的Web页。HTTP的进一步描述可在以下文献中得到:RFC2616:HyperText Transfer Protocol-HTTP/1.1。RFC2616在万维网联盟(W3)得到,现在通过因特网在www.w3.org/Protocols/上得到。
红眼补偿(Red eye Compensation):“红眼”效应是由照相机的闪光灯反射出人眼的视网膜引起的。将红色的饱和度降到更暗颜色的计算机算法可减少“发红”。例如参见Wang等人发表的、题为“Apparatusand a method for automatically detecting and reducing red-eye in a digitalimage”的美国专利号6278491。
锐化(Sharpen):这是对图像中的灰度边缘进行“勾边(crispening)”的过程,用于改进的外观或对模糊的显示进行补偿。这典型地是通过“模糊掩盖”来实现的。例如参见Jain,A.K.,"Fundamentals of ImageProcessing",Prentice Hall,Engelwood Cliffs,NJ,1989,其描述了一个图像的低通滤波版本是如何从该图像中减去的。
URL:Uniform Resource Locator(统一资源定位符)的缩写,万维网上的文档和其它资源的全球地址。地址的第一部分表示使用哪个协议,第二部分指明资源所处的IP地址或域名。
视口(Viewport):视口表示用户观看最终图像所用的一个目标显示器。例如,在移动的手持设备情况下,视口是该设备的屏幕。但是,视口取决于单独的目标设备,不必限于屏幕的物理尺寸。例如,如果设备具有滚动能力,那么视口的(逻辑)尺寸可超过屏幕的物理尺寸。
白点校正(Whitepoint Correction):白点校正是在一个给定环境中的“基准白色”的颜色坐标。人眼能够对白点进行“颜色适应”。白点校正是调整R、G、B颜色坐标的过程,以解决人眼对目标显示器白点的调整。例如参见Giorgianni,E.J.et a1.,"Digital Color Management,"Addison-Wesley,Reading,MA,1998。
XML:表示Extensible Markup Language(扩展标记语言),由W3C开发的一种规范。XML是SGML的简化版本,是特别为Web文档设计的。它允许设计者创建他们自己的定制标签,能够进行应用程序之间和组织之间的数据定义、传输、确认和解释。XML进一步的描述可参见例如“ExtensibleMarkup Language(XML)1.0”(2nd Edition,October 6,2000),这是W3C的一个推荐的规范。该规范的副本现在可通过因特网在www.w3.org/TR/2000/REC-xml-20001006得到。
发明内容
描述了一种请求式(on-demand)的创建图像的系统,这些图像是为特定的设备类型而定制。在一个实施例中,该系统包括一个用作图像仓库的模块,每个图像包括排列在不同层中的图像组件;一个用于处理来自一个设备的请求的模块,以从仓库检索一个特定的图像,该模块部分地基于包含在请求中的信息为该设备确定一种特定的设备类型;以及一个用于创建为该设备定制的特定图像的一个副本的模块,该模块基于所确定的设备类型在该特定图像的不同层上单独地渲染各个图像组件,以致该特定图像的不同层上的图像组件中的至少一些是为该设备定制的。
还描述了一种对传输到客户机设备的图像进行动态优化显示的方法。在一个实施例中,该方法包括步骤:从特定的客户机设备接收一个在线请求,以检索一个用于显示的目标图像,该请求包括有助于确定客户机设备的设备类型的信息,目标图像包括排列在单独层的图像组件;基于该请求,确定该特定客户机设备的设备类型;基于确定的设备类型,检索表示视口的信息和用于特定客户机设备的分层信息;基于视口和分层信息,创建目标图像的一个版本,其被优化以显示在特定的客户机设备上;将目标图像的所创建的版本传输到进行显示的客户机设备。
附图说明
图1是适于实现本发明的数字照相机的一个非常概括的方块图。
图2A是传统数字成像设备的一个方块图。
图2B是传统机载的处理器或计算机的一个方块图,该处理器或计算机被提供以用于控制数字照相机的操作和处理图像数据。
图3是表示一个典型的无线连接环境的一个方块图,本发明优选在其中实施。
图4表示了本发明的一种迭代优化/定制方法,其用于满足目标设备的约束,同时保持好的图像质量。
图5A表示了一个分层的API,提供该图是为了描述如何合并各层。
图5B表示一个优选采用的视口坐标系统。
图5C表示了本发明的一个XML API中所使用的对象的层次。
图6A-图6B包括一个流程图,表示支持动态视口分层的本发明所采用的总体方法。
具体实施方式
下面的描述将集中在本发明的当前优选实施例上,其在一个数字成像环境中实现。但是,本发明并不限于任何一种特定的应用或任何特定的环境。相反,本领域技术人员将发现本发明的系统和方法可以有利地使用在各种不同的设备上。因此,下文中典型实施例的描述是出于说明性的目的,而不是限制性的目的。
I.基于数字照相机的实施方式
A.数字照相机的基本构成
本发明可在媒体拍摄和记录系统例如一个数字照相机上实现。图1是适于实现本发明的一台数字照相机100的一个非常概括的方块图。如图所示,数字照相机100包括一个成像设备120、系统总线130、以及一个处理器或计算机140(例如基于微处理器的单元)。同样如图所示,一个对象或目标150,其图像被照相机100所拍摄。现在将描述在拍摄目标150的图像时,照相机100的这些部件的一般性操作。
如图所示,成像设备120被光学地耦合到目标150,即成像设备120可以拍摄该目标的光学图像。光耦合可包括光学器件的使用,例如一个透镜组件(未标出)以在成像设备120上聚焦目标150的一个图像。成像设备又与计算机140连接,例如通过系统总线130。计算机140为成像设备120提供总体控制。在操作中,计算机140控制成像设备120,这实际上是通过告诉它做什么和何时做来控制的。例如,计算机140提供一般的输入/输出(I/O)控制,其允许人们与数字照相机100的其它机电外围设备(例如闪光灯附加装置)一起协同控制成像设备120。
一旦摄影师或照相机使用者利用拍摄按钮或一些其它工具把成像设备120对准目标150(具有或不具有用户操作的调焦),指示照相机100拍摄目标150的图像,计算机140通过系统总线130命令成像设备120来拍摄表现目标150的图像。成像设备120基本上是通过捕获从目标150反射的光线并把该光线转换成图像数据来工作的。所拍摄的图像数据通过系统总线130传输给计算机140,计算机140在把图像存储在其内部存储器之前对图像数据执行各种图像处理功能。系统总线130还传输成像设备120和计算机140之间的各种状态和控制信号。现在将更详细地描述成像设备120和计算机140的组件和工作过程。
B.在成像设备上的图像拍摄
图2A是一台传统的数字成像设备120的一个方块图。如图所示,成像设备120包括一个具有光圈的透镜210,一个或多个滤光器215,一个图像传感器230(如CMOS、CCD等等),一个聚焦装置(如电动机)241,一个计时电路242,一个信号处理器251(如模拟信号处理器),一个模数(A/D)转换器253以及一个接口255。现在描述这些部件的操作。
在操作中,成像设备120通过沿光路220作用于图像传感器230的反射光来拍摄目标150的图像。透镜210包括把来自目标150的光线沿光路220聚焦到图像传感器230的光学器件。聚焦装置241可用于调节透镜210。滤光器215优选包括放置在图像传感器230上的一个或多个颜色滤光器,以分离出被目标150反射的光线的不同颜色成分。例如,图像传感器230可被红、绿和蓝色滤光器覆盖,这些颜色滤光器在图像传感器上按所设计的模式(“马赛克(mosaics)”)混合以产生更鲜明逼真的颜色。
尽管传统的照相机是通过对胶卷曝光来拍摄图像,而数字照相机是在一个图像传感器(如图像传感器230)即一种固态电子设备上来聚集光线。图像传感器230可被具体化为电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)传感器。CMOS和CCD图像传感器通过拍摄在其表面上的被称为光感应单元(photosites)(或发光二极管)的网格中的小单元上的光线来工作。一个图像传感器的表面典型地包括成数百个光感应单元,把照射在其上面的光线转变为电荷。依靠一个给定的图像,数量不断变化的光线照在光感应单元上,导致光感应单元上的电荷量的变化。这些电荷然后可被测量和转换为数字信息。适于包含在数字照相机的CCD传感器可从许多的厂家得到,包括纽约州罗彻斯特的Eastman Kodak、荷兰的Philips、日本的Sony。合适的CMOS传感器也可从许多厂家得到。代表性的厂家包括荷兰的STMicroelectronics(原来的VSLI Vision Ltd)、伊利诺斯州萧姆伯格的Motorola、以及加利福尼亚州圣塔克莱拉的Intel。
当图像传感器230被指示拍摄目标150的图像时,会分别产生代表被拍摄的目标150的一组原始图像数据(如用于CCD实施方式的CCD格式)。在利用CCD传感器的一个实施例中,例如,在图像传感器230上所拍摄的原始图像数据通过信号处理器251、模数(A/D)转换器253和接口255被发送。接口255具有用于控制信号处理器251、聚焦装置241和计时电路242的输出端。图像数据从接口255通过系统总线130传递到计算机140,如之前对图1所述的。现在将描述计算机140在处理该图像数据中的操作。
C.图像处理
提供一个传统的机载处理器或计算机140,用于控制数字照相机100的操作和处理在成像设备120上所拍摄的图像数据。图2B是该处理器或计算机140的一个方块图。如图所示,系统总线130提供成像设备120、一个(可选的)电源管理262、处理器(CPU)264、一个随机存取存储器(RAM)266,一个输入/输出(I/O)控制器280、一个非易失存储器282、一个可移动存储器接口283,和一个液晶显示器(LCD)控制器290之间的连接通路。可移动存储器284通过可移动存储器接口283连接到系统总线130。可替换地,照相机100(和机载计算机140)在没有可移动存储器284或可移动存储器接口283时可以被实现。电源管理262与电源272连接。也如图2B中所示,一个照相机用户接口195电连接到LCD控制器290和输入/输出控制器280。现在将更详细地描述每一个这样的部件。
处理器(CPU)264典型地包括一个传统的处理器设备(如微处理器),以控制照相机100的操作。处理器264的具体实现可以通过各种不同的方式来完成。例如,处理器264可被实现为一个微处理器(如从伊利诺斯州萧姆伯格的Motorola得到的MPC823微处理器),其具有DSP(数字信号处理)逻辑块、存储控制逻辑块、视频控制逻辑块和接口逻辑。可替换地,处理器264可实现为“在一个芯片(组)上的照相机”,例如,利用一个Raptor II芯片组(可从加利福尼亚州新港滩的Conextant Systems,Inc处获得)Sound Vision Clarity 2、3或4芯片组(可从马塞诸塞州韦兰德的Sound Vision Inc获得),或结合处理核心和图像处理外围器件的类似芯片组。处理器264典型地能够同时运行多个软件程序,以控制照相机100在多线程环境中的各种处理。
数字照相机100包括几个存储器部件。存储器(RAM)266是可被有选择地分配给各种存储功能的动态存储器的邻接块。动态随机存储器可从各个厂家得到,例如日本的Toshiba、美国爱达荷州博伊西的Micron Technology、日本的Hitachi和韩国的Samsung Electronics。非易失存储器282典型地包括一个传统的只读存储器或闪速存储器,它存储一组计算机可读程序指令以控制照相机100的操作。可移动存储器284可作为一个另外的图像数据存储区域,包括一个不可变设备、通过移动存储器接口293由照相机100用户来移动和代替。这样,具有多个可移动存储器284的用户可以空的可移动存储器284代替一个内容已满的可移动存储器284,以有效地扩大照相机100的拍照容量。可移动存储器284典型地是利用闪磁盘(flash disk)来实现的。例如,闪速存储器的厂家包括加利福尼亚州桑尼维尔的SanDisk Corporation和日本的Sony。本领域技术人员将意识到的是,数字照相机100可包含可容易地适应图像拍摄和本发明处理方法的其它存储器配置和设计。
典型地,数字照相机100还包括用于与照相机用户或与其它系统和设备连接的多个接口。例如,I/O控制器280是一个接口设备,其允许与计算机140进行通信。I/O控制器280允许一个外部主机(未标出)与计算机140连接并与之通信。如图所示,I/O控制器280还与多个按钮和/或拨号盘298以及一个可选的状态LCD 299接口,它们加上LCD屏幕296就构成了该设备的用户接口295的硬件部件。数字照相机100可包括用户接口295,例如,可从一个照相机用户接收输入和提供反馈。可替换地,对于一个媒体拍摄设备,这些部件可通过一个主机设备(如个人数字助理)来提供,媒体拍摄设备被实现为一个主机设备的一个客户机。对于不需要与用户交互的一个实施例,如一个监视照相机,上述用户接口部件可以不需要。LCD控制器290访问存储器(RAM)266,并向用于显示的LCD屏幕296传送处理后的图像数据。尽管用户接口295包括一个LCD屏幕296,但是除了LCD屏幕之外或作为LCD屏幕的替代,可使用一个光学探视镜(viewfinder)或直接观察显示器(direct view display)以向照相机用户提供反馈。用户接口295的部件可从多个厂家得到。例包括日本的Sharp、Toshiba和CitizenElectronics,韩国的Samsung Electronics和加利福尼亚州帕拉阿图的Hewlett-Packard。
电源管理262与电源272通信,协调照相机100的电源管理操作。电源272为照相机100的各种部件提供工作电源。在一个典型的配置中,电源272向主电源总线278和二级电源总线279提供工作电源。主电源总线278提供电源给成像设备120、I/O控制器280、非易失存储器282和可移动存储器284。二级电源总线279提供电源给电源管理262、处理器264和存储器(RAM)266。电源272被连接到电池275,以及辅助电池276。照相机用户也可根据需要把电源272连接到一个外部电源。在电源272的正常工作过程中,主电池275向电源272提供工作电源,然后电源272将工作电源供给照相机100,这是同时通过主电源总线278和二级电源总线279来实现的。在一个电源失效模式中,其中当主电池275已经失效(如当它们的输出电压已低于一个最小工作电压水平时),辅助电池276对电源276提供工作电源。在一个典型配置中,电源272只提供从辅助电池到照相机100的二级电源总线279的电源。
上述系统100只是为了说明基于媒体拍摄和记录系统(如数字照相机)的基本硬件的目的而示出的,媒体拍摄和记录系统可被用来实现本发明。然而,本发明并不只限于数字照相机设备,相反,本发明可有利地适用于各种设备,这些设备能够支持本发明方法和/或从本发明的方法中受益,这些在下文中描述。
D.系统环境
图3表示一个典型的无线连接环境300,本发明优选在其中实施。如图所示,环境300包括一个成像设备310(例如一台数字照相机,如数字照相机100),成像设备310包括一个中央处理单元(CPU)320,中央处理单元(CPU)320包括一个动态信号处理器(DSP)单元325,一个随机存取存储器(RAM)330(如DRAM,SRAM等等),以及用于存储一个或多个压缩图像的闪速存储器340。成像设备310的基本工作过程如下。用户操作的成像设备310可拍摄一张或多张数字图像(照片)和把图像文件存储在成像设备310的闪速存储器340中。照相机侧的图像处理(如压缩)是由DSP单元来处理的,与工作的存储器(即RAM330)协同工作。处理之后,图像则可通过无线网络360发送给一台服务器计算机370(如通过因特网)。在服务器370处,从成像设备310接收的图像数据可重新存入存储器(RAM)390(如DRAM,SRAM等等),以进行另外的处理(如图片重叠)。然后,处理后的图像可根据需要存储在服务器370上,或重新传回原始设备(如照相机100),或传送给其它设备。
II.动态视口分层
A.引言
内容创建者想要创建有趣的内容以添加到用户图片中。例如,内容创建者可能想要对具有有趣的文本或有趣的动画进行分层。这要求匆忙地(on the fly)创建内容。然而,当内容创建者匆忙地创建内容时,创建者面对一些另外的问题,如正确显示,或在具有不同显示特征的显示器上渲染内容。本发明的方法是创建一个解决方案,允许人们描述在最后的表现中所必须发生的。例如,一个典型的描述将指出,一个图像应该被显示为具有一个框架,在图像上具有动画,以及在最上层显示文本“生日快乐”。因此,该解决方案允许图像在具有不同显示特征的设备上被正确显示。
更特别的是,本发明采用两方面(two-pronged)的方法。首先,本发明的方法提供了一种描述语言,允许人们指出分层是如何被执行的。在目前优选的实施例中,描述语言遵守XML的格式,提供了形成给定图像的各层的一种分层描述。不同的层包括图像(如位图)、动画、文本、矢量图形等等。该描述语言包括一种语法,允许人们描述如何把不同的层合成在一起,如何在一个视口中显示这些层。该描述语言并不详细说明一个精确的布局,相反,而是适应各种目标设备的约束。一个特定图像的给定描述驻留在服务器中;它并不发送给目标设备。相反,目标设备接收最后的编码格式(图像)。因此,该描述语言适应于由一个特定目标设备所施加的编码约束。
本发明的方法的第二个方面是动态地重新形成或重新配置视口,以致该图像在目标设备上被正确地渲染。考虑一个给定目标设备的一组设备约束。这些约束指明特定的限制,如每个像素允许的最大位(如每个像素8位)、最大屏幕尺寸(如100像素X100像素),等等。根据本发明,视口被动态地重新配置以适应当前及以后的目标设备。而且,多个约束通常必须被满足。例如,一个目标设备可指明一个最大图像尺寸(如5K)。为适应该该约束,必须降低位深度(即每个像素的位数)。本发明的方法要求相互地满足一个设备的约束,以致,例如可使一个图像的位深度可以被变为每个像素4位,以适应5K文件大小的约束。但是,位深度将不被允许超过每个像素8位(即,该目标设备所支持的最大位深度)。总之,存在各种约束或参数,其可被潜在地调节以动态地使逻辑视口(以及图像)与该目标设备相匹配。
B.基本方法
本发明提供一个迭代优化(定制)方法,其用于满足目标设备的约束,同时保持好的图像质量。如图4中的401所示,分层方法被使用,其处每个层最初流过两个基本块:增强和视口预处理。前者代表增强,如红眼降低、对比度调节等等。后者代表视口颜色和外观约束被补偿的逻辑,这是通过使用了颜色修正、亮度、锐化等等。
在上述过程的末尾,各层(如层0和层1)准备被映射到视口,如403所示。文件大小控制块405,它与视口说明组件417通信,为该映射指明视口尺寸407。视口尺寸可以大于目标显示器(如由于滚动功能)。各层在映射之后被合并,如在409所示。该处理过程的下一步是在411中将视口剪切为一个剪切路径(clip-path)。剪切路径对应视口单位矩形(0.0,0.0,1.0,1.0),但它也可指示所渲染的层中的一个。然后,按照设备约束对所剪切的矩形进行编码,如颜色深度、编码方法、系统调色板,等等。映射413表示这个操作。如果所得到的文件大小符合文件大小约束(在415被测试),则图像被返回给目标(如,移动的)显示器。否则,文件大小控制块重新调整视口的大小,并且重新开始视口映射、合并等等,如通过循环回文件大小控制块405所示的。
C.图像变换API
下面将描述说明用于图像变换的接口。为了有效利用该接口,理解本发明所使用的成像模式是有用的,该成像模式基于分层范式。例如,这些层可包括图像、文本和矢量图形层。层具有空间和时间属性,
1)空间分层:这些层具有一个“order(顺序)”空间属性,指明各层如何彼此相对迭加。另外,Viewport_map子元素指明层所映射到的视口的分区。
2)时间分层:这些层具有时间属性,如start_time时间、duration(持续时间)等,指明各层如何按时间被安排。
1.空间分层
图像变换API是一个分层API,描述如何合成不同层(图像、文本、动画等)以创建特殊效果。图5A表示分层管线(pipeline)(暂时忽略时间分层):
1)首先这些层被渲染。
2)然后这些层被映射并迭加在视口上。视口是一个虚拟矩形,其尺寸由目标显示尺寸和层的映射方法来决定。
3)层迭加在视口中被合并。
4)所合并的视口图像被格式化,以匹配正请求的客户机的显示约束(如位深度、调色板、文件格式等)。
5)然后,格式化图像被返回给客户机。
6)客户机在其显示器上显示格式化图像。
视口坐标系统是一个“normalized(标准化)”系统(图5B),其中:
原点是视口的左上角。
X轴向右。
Y轴向下。
X坐标标准化为视口宽度。
Y坐标标准化为视口高度。
“视口单位矩形”551被定义为一个跨越坐标(0.0,0.0),(1.0,1.0)的矩形。每层通过其Viewport_map映射到视口的分区。一个示例的视口映射分区或窗口如图5B中的553所示。
2.时间分层
除了空间“order”属性,层还具有时间属性(全部以毫秒来表达):
1)start_time:指的是层呈现的开始时间。默认为0毫秒。
2)duration:层呈现的时间。默认值为无穷大(“INF”)。0值也被看作为无穷大时间。
3)repeat_period:重复呈现的周期速率。默认值为无穷大(“INF”)。0值也被看作为无穷大。两个值都将导致动画从不被重复。
3.XML方法
利用一个XML API就可获得分层。在该方法中,(arg,val)对(属值对)“enh=<XML_URL>”指的是要使用的XML URL。
例如:
http://eswitch.foo.com/es?src=http://source.foo.com/images/imgl.jpg&enh=http://source.foo.com/templates/enhance.xml
1)src图像(http://source.foo.com/image/imgl.jpg)成为源层,该层被插入任何背景层(层号0)和在XML增强型文件指明的其它层之间。
2)XML(配置)文件描述其它层。另外它描述了视口约束。
3)XML增强方法不能与URL线(arg,val)对一起被使用(即两种方法是相互排斥的)。
4.XML层次
在XML API中使用的对象的层次示于图5C中。灰线指向属性。黑线指向元素。在该层次中,属性表示简单类型,元素表示复杂类型。下文中的图表将更详细地描述该层次中的元素和属性。该层次中的某些元素和属性用于高级用户,以灰色(非强调性的)文本表示。
5.图像变换
图像变换包括一个元素标签,以覆盖图像分层操作的详细内容。
                         表:图像变换
属性 有效值 描述
xmlns “http://www.lightsurf.com/eswltch2/image-transform/1.0” 图像转换标记的名称空间和校对
子元素 描述
image_layer 一个图像层
text_layer 一个文本层
bezler Layer 利用Bezier曲线定义形状的层
Viewport 决定如何映射到输出的视口约束和性能。
6.各层的公共属性
各层具有用以描述空间和时间特性的公共属性。
a)空间特性
一个层的空间属性是由“order”属性和“viewport_map”子元素(child-element)决定的。
                    表:层的空间属性
属性 有效值 描述
order  1~n 这是一个相对值,指出在视口上表示的空间次序。具有较大顺序值(order)的层被叠放在较小顺序值的层的上面。
子元素 描述
Viewport_map 描述如何将该层映射到视口
ViewDort_map是所有层的公共元素。这决定如何将该层映射到视口。该映射是基于:
Window:这是在视口中层必须被映射的区域。缺省时,该窗口延伸到整个视口。
Mode:这描述层如何适合该窗口。缺省值为“fit(适应)”。
下面的(高级)元素对于映射后重新定位图像是有用的。
Align:这描述如何在窗口内对齐层。如果未指明,则假定是中心对齐。
Offset:这描述在层被影射到窗口之后,是否对该层进行偏移的量。如果没有指明,则假定具有一个(0.0,0.0)偏移。
                           表1 Viewport_map
属性 有效值 描述
mode 下列值之一:·Fit(缺省值)·Fill·Force·As-is 一个将层映射到窗口的方法。该方法定义了层到窗口的初始映射。在窗口之外的层的区域被剪切到(clip to)窗口中。·Fit:表示层被缩放以适合窗口。该层的纵横比被保持。图像将只在一个方向上填满窗口。·Fill:Fill将缩放图像以填满窗口。部分图像可能会被剪掉。·Force:将缩放并改变层的纵横比以填满窗口。·AS-is:在映射过程中不执行任何缩放。·Fit-to-Width:表示层的宽度被调整到视口的宽度。该层的纵横比被保持。该层可能在高度方向上溢出视口(因而,可能会被剪掉)。
子元素 用法 描述
window <windowx="<LT_X>"y="<LT_Y>"width="<WIDTH>"height="<HEIGHT>"/> 其中映射了层的视口的一个子区域。(x,y)属性定义了左上角,width(宽度)和height(高度)属性定义了大小。<LT_X>:左上角x坐标。缺省值为0.0<LT_Y>:左上角y坐标。缺省值为0.0<WIDTH>:窗口宽度。缺省值为1.0<HEIGHT>:窗口高度。缺省值为1.0
Align <alignxalign="<ALIGNX>"yalign="<ALIGNY>"/> 该子元素描述该层在映射过程中在窗口中的X和Y轴应如何对齐。<ALIGNX>:可以是“left(左)”、“right(右)”或“center(中心)”之一。缺省值是“center”。<ALIGNY>:可以是“top(上)”、“bottom(下)”或“center(中心)”之一。缺省值是“center”
Offset <offsetx=“<OFFSET_X>”y=“<OFFSET_Y>”/> 映射和对齐之后,要对该层进行偏移的量。<OFFSET_X>:X方向的偏移量。缺省值是0.0。<OFFSET_Y>:Y方向的偏移量。缺省值是0.0。注意:在映射、对齐和偏移之后,该层被剪切到窗口的视口中,即该层的任何落在窗口之外的部分将不可见。
b)时间特性
时间特性:start_time、duration、repeat_period均被各层支持。
                  表:层的时间特性
属性 有效值 缺省值 描述
start_time >=0ms  0ms 层呈现的开始时间
duration >0ms  INFINITY 呈现的持续时间
repeat_period  0ms 各层应满足以下约束。·start_time+duration<=repeat_period
7.图像层
图像层的属性和子元素决定它:
如何被创建;
如何映射到视口内的一个窗口。
              表:图像层的属性和元素
属性 有效值 缺省值 描述
order 参见第6部分
start_time
duration
repeat_period
src 一个URL 源图像
子元素 描述
Viewport_map 描述该层如何映射到视口
a)源图像层
由“src=<IMAGE_URL>”属值对所指定的图像成为“源”层。该层被插入任何背景(层号0)和其余层之间。该层具有缺省属性和Viewport_map的子元素值。
8.文本层
该层支持文本重现。
         表:文本层的属性和元素
属性 有效值 缺省值 描述
order 参见上文
start_time
 duration
 repeat_period
 text  UTF-8Unicode(统一字符编码)string(字符串) None(空值) 文本字符串被定义为UTF-8。该格式可支持Unicode标准所定义的任何字符。只要表示的字体文件提供给字符一个Unicode值,该字符就被支持。
Centerx  Yes(是),No(否) Yes 在X方向居中·“No”值将把文本与左边框对齐
Centery  Yes,No Yes 在Y方向居中·“No”值将把文本与底边框对齐
font_file  在字体路径下的一个TrueTvpe(微软 None 字体文件必须是TrueType文件。该文件可以是单个字型文件(*.ttf)或多个字型TrueType集合(*.ttc)
和Apple公司共同研制的字型标准)文件名 文件。
font_color 一种颜色 0x000000(黑色) 颜色是以十六进制格式表示为0xRRGGGBB(RR=红色GG=绿色BB=蓝色)
font_mode ·Auto(自动)·fixed Auto ·Autoo字体大小是自动决定的以在窗口中适应表示的文本o font_size_min属性被执行·fixedo font_size是以“points(点)”表示(1point=1/64")o font_size_min属性被忽略。
font_size  4~128 12 字体的大小用于固定模式的字体。以points来表示。
font_size_min  4+ 6 该参数在“自动”模式下使用,其中它可被用于保证字体大小不会低于该水平,从而即使在小显示器中也可导致“智能”文本
子元素 描述
Viewport_map 映射、对齐和偏移被忽略(即只有窗口元素被使用)。
9.Bezier层
Bezier层被用于覆盖矢量图形。该层的目的是支持具有动态文本插入功能的矢量图形。
                      表:Bezier层的属性和元素
属性 有效值 缺省值 描述
order 参见上文
start_time
duration
repeat_period
src 一个URL 必须指定 一个文件的路径名,该文件指明Adobe Illustrator A18 EPS文件格式的Bezier曲线。该路径名应具有.eps扩展名
order 1~n 必须指定 该顺序定义当产生最后的输出时的层的堆叠。较大数字的层在较小数
字的层的上面被渲染。
Opacity 0~100  100 图片的总不透明性
子元素 描述
Text_box 描述了必须插入到Bezier层的文本
Viewport_map 与图像层相同
                表:Bezier层的Text_box元素
属性 有效值 缺省值 描述
Text 与文本层中相应属性相同
Centerx
Centery
font_file
font_color
font_mode
font_size
font_size_min
子元素 描述
bounding_box 这是文本的边框,以Adobe Illustrator文件的point坐标空间来表示。·用 法:<bounding_box x="<IIx>"  y="<ury>"width="<width>"height="<height>"ο<IIx>:左下角X坐标(点)ο<ury>:右上角Y坐标(点)ο<width>:边框的宽度(点)ο<height>:边框的高度(点)确定文本边框的程序:·打开Adobe Illustrator中感兴趣的图片。·选择File->Document Setup->Units->Points。·以Rectangle(矩形)工具画出文本边框。·用Selection(选择)工具来选择矩形。ο激活(高亮)该矩形,在“info(信息)”面板上显示边框信息。这是被输入到XML层说明中的边框信息。“info”面板中的(X,Y,W,H)对应于IIx、IIy、width、height。·删除矩形——它不再需要(它只是在决定文本边框时有用)。
10.视口
一旦各层映射到视口并被合并,所产生的图像按照视口元素所指明的约束被映射到客户机的优选图像格式中。
                             表:视口元素
属性 有效值 缺省值 描述
aspect_layer 一个图像层序号或-1 最低图像层 方位(“锚(anchor)”)层决定了当定位所有其它层时作为锚的层。方位层决定视口的纵横比(参见上文)。
force_colors 一个URL 颜色不是强制的 该元素定义被强制的颜色。被强制的颜色组是以下面格式之一来指定(参见上文):·ACT(.act):Adobe活动表格式(.act)·GIF(.gif)·PNG(.png)
a)方位/锚层
本发明将视口的宽度设置为目标设备的宽度。但是视口高度是基于由aspect_layer定义的纵横比来决定的:
aspect_layer=-1:这是最简单的情形。在该情形下,纵横比与目标设备的显示器相同。
例如:目标移动设备为100×120。然后,本发明将创建一个100×120的视口。
aspect_layer=某一图像层的顺序号:该图像层的纵横比决定视口的高度。
例如:图像为640×480。移动设备为100×100。然后,本发明将创建一个100×75的视口。由于坐标系统被标准化到视口,然后所有层将相对于这个图像层。
aspect_layer未指定(默认):如果方位层未指定,“最低下的”(按照“order”)图像层被用做方位层。如果没有图像层,则aspect_layer被设置为-1。
虽然初始视口尺寸是通过上述方法来决定的,但是尺寸可调整到符合文件大小约束。当视口被调整大小时,保持纵横比。
b)Force_colors
被强制的颜色组以下面格式之一来指定:
1)ACT(.act):Adobe活动表格式(.act)。这定义一个颜色表。颜色表中的颜色组被使用。
2)GIF(.gif):颜色组是出现在GIF图像中的第一颜色调色板。
3)PNG(.png):颜色组是出现在PNG图像中的第一颜色调色板。移动设备通常具有下列颜色模式中的一种:
7)真彩色:在该模式中,系统能够显示任何颜色。Force_colors在该情形下无效。
8)索引颜色:在该模式中,系统能够显示有限数量的颜色。以下是索引颜色模式的两个子模式:
a.固定调色板:具有固定调色板的设备是不可变更的并且与“force_colors”不兼容。这些设备的force_colors指示被忽略。
b.自适应调色板:很大一类设备只能适应一小组颜色(即256色),但是颜色可以是任何颜色。Force_colors在该情形下是最有用的。
如果系统能支持比force_colors更多的颜色,则force_colors中的所有颜色被使用。如果系统能支持比force_colors更少的颜色,则force_colors的一个子集被使用。
11.类定义
ImageTransform类、ImageLayer类和Viewport类的C++类定义如下所示。
a)ImageTransform
/**
*class ImageTransform
**/
class ImageTransform
{
    friend class Layer;
    friend class Viewport;
public:
    ///Constructor
    ImageTrans form();
    ///Destructor
    ~ImageTransform();
///Get the viewport object
    Viewport*  GetViewport();
    ///  Set the Output File Name
    ITERR SetOutputFileName(const std::string&outFileName);
    /// Creating a layer
ImageLayer*   CreateImageLayer   (int32_t Stackorder);
TextLayer*    CreateTextLayer    (int32_t Stackorder);
BezierLayer*  CreateBezierLayer  (int32_t Stackorder);
///Get the aspect/anchor layer.  This is the layer that determines
///"anchor"when displaying all other layers.
Layer*GetAspectLayer();
///----------Encoding-----------------------------------
///Enable (or disable) encoding MIME type image/gif images
///compressed with the LZW algorithm
void EnableLzwGifEncoding(bool enable=true);
///Enable  (or disable)  decoding MIME type image/gif images
///  compressed with the LZW algorithm
void EnableLzwGifDecoding(bool enable=true);
///--------Rendering----------------------------
///  Render the image transform
ITERR    Render();
///Getting rendered parameters
int32_t    GetRenderedWidth();
int32_t    GetRenderedHeight();
int32_t    GetRenderedContentLength();
std∷string GetRenderedMimeType();
///Typedef for a UrlAccess call-back which is plugged into the
///image transform object to access media by URL-It returns the
///HTTP status codefrom the access.
typedef int32_t(UrlAccessFunction)(std∷string url,
                                  std∷stream*fromUrlStream,
                                  void*ref,
                                  std∷string*resStr=NULL);
///Set the Url Accessor funciton which is called to accessing
///media by URL
void SetUrlAccessFunction(UrlAccessFunction*fxn,void*ref=NULL);
//Anchor to Display Mapping Mode.This mode decides how an anchor
//layer is mapped tothe display:
//CLAMP_TO_WINDOW:Clamp to fit withing display window
//CLAMP_TO_WIDTH: Allow height to exceed display height,
//                 but clamp to Width
typedef enum
{
   CLAMP_TO_WINDOW,
   CLAMP_TO_WIDTH
}AnchorToDisplayMapMode;
ITERR SetAnchorToDisplayMapMode(AnchorToDisplayMapMode Mode);
AnchorToDisplayMapMode GetAnchorToDisplayMapMode() const;private:
   //Fetch a"media"or other object and return a temp file name
std∷string FetchUrlObject(const std∷string& url);
//Private rendering functions:
//Load the layers
ITERR   LoadLayers();
//Just  size the layers
ITERR   SizeLayers();
//Compute Viewport size -previous to enforcing file sizeconstraint
ITERR  ComputeViewportSize(int32_t*pWidth,int32_t*pHeight);
//Do the actual rendering to output
ITERR    RenderOutput();
//Internal rendering to memory
ITERR    RenderToMemory(IMG_IOHANDLER*pIO);
//Render with no output:Useful to compute Rendered parameters
ITERR    RenderParameters();
//Setting rendered parameter values
ITERR    SetRenderedWidth(int32_t Width);
ITERR    SetRenderedHeight(int32_t Height);
ITERR    SetRenderedContentLength(int32_t ContentLength);
ITERR    SetRenderedMimeType(IMG_type MimeType);
///Animation
void SetAnimatedFlag(bool AnimatedFlag);
bool GetAnimatedFlag() const;
///The layers to be stacked
typedef std∷map<int32_t,Layer*>LayerMap;
LayerMap                       mLayerMap;
  /// Viewport
  Viewport                       mViewport;
  ///Output filename
  std∷string                    mOutFileName;
///Parameters that are set after rendering
int32_t                         mRenderedWidth;
int32_t                         mRenderedHeight;
int32_t                         mRenderedContentLength;
IMG_type                        mRenderedMimeType;
///temporary file streams for input media
std∷vector<LSCC∷FileStream>   mFileStreams;
UrlAccessFunction*              mUrlAccessFxn;
void*                           mUrlAccessRef;
//The enable which allows MIME types of image/gif to be decoded
//using LZW decompression
bool                            mEnableLzwGifDecode;
//animation
bool                            mAnimatedFlag;
//Anchor to display mapping mode
AnchorToDisplayMapMode          mAnchorToDisplayMapMode;};
            b)  Layer class
Layer类是所有层从其中派生的基类/**
*class Layer
**/class Layer{public:
///Layer Type
typedef enum
{
    LAYER_TYPE_IMAGE,
    LAYER_TYPE_TEXT,
    LAYER_TYPE_BEZIER,
    LAYER_TYPE_ANIMATION,
    LAYER_TYPE_UNKNOWN
}  LayerType;
///Constructor
Layer(class ImageTransform* imgXfm);
///Destructor
virtual~Layer();
///Get the type of layer
virtual LayerType GetLayerType() const ;
///Set the layer order-layers with a larger order number will
///be more visible when the layers are stacked(i.e.stacked
///later)
void SetLayerNumber(intl6_t number);
///Get the layer order number.
int32_t GetLayerOrder()const;
///Set opacity
ITERR    SetOpacity(double OpacityPercent);
///Get   Opacity
double   GetOpacity()const;
///Get   aspect ratio
virtual  ITERR GetAspectRatio(double*pAspectRatio)const;
///Get the layers size(width and height)
virtual  ITERR GetSize(int32_t*pWidth,int32_t*pHeight)const;
///Decode a layervirtual ITERR Load(const Viewport & viewport);///Size a layervirtual ITERR size(const Viewport & viewport);///Enhancevirtual ITERR Enhance();///EnhanceSizevirtual ITERR EnhanceSize();///Apply PreProcessing to accomodate viewport constraintsvirtual ITERR PreProcess(const Viewport & viewport);///Render all the frames in a Layervirtual ITERR Render(const Viewport & viewport);///Get the count of the number if frames this layer hasvirtual uint32_t GetFrameCount() const;///Get a pointer to a particular framevirtual const ImageFrame *GetFrame(uint32_t index)const;///Get the viewport MapViewportMap*GetViewportMap();///Set the identifier for this layervoid SetId(const std∷string & id);///Get the identifier for this layerstd∷string GetId()const;///Set the time to start displaying this frame(aka Time of///arrival [TOA]) -time is in msvoid SetStartTime(int32_t time);///Get the time to set for starting to displaying the frameint32_t GetStartTime()const;///Set the duration this frame will be displayed for - time is  in///ms
void SetDuration(int32_t time);
///Get the duration this frame will be displayed for.
int32_t GetDuration()const;
///Set the display count for how many times to display this frame
void SetDisplayCount(int32_t count);
///Get the display count for this frame.
int32_t GetDisplayCount()const;
///Set the repeat period which is the duration between starting to
///reshow this frame
void SetRepeatPeriod(int32_t time);
///Get the repeat period for this frame.
int32_t GetRepeatPeriod()const;
///Is the layer"animated"
bool IsAnimated()const;protected:
//Is it okay to Load a LZW GIF file
bool IsLzwGifDecodeOK();
//Fetch a "media"or other obj ect and return a temp file name
std∷string FetcbUrlObject(const std∷string & url);
///Opacity of a layer
double         mOpacity;
///Viewport mapping parameters
ViewportMap    mViewportMap;private:
ImageTransform*mParentTransformObj;
std∷string    mLayerId;
int16_t        mLayerNumber;
uint32_t       mStartTime;    ///display start(presentatin)time
uint32_t       mDuration;    ///display duration(in ms)
uint32_t    mRepeatPeriod;    /// repeat period(in ms)
uint32_t    mDisplayCount;  /// display count};
         c)Image Layer class
ImageLayer从Layer类派生/***class ImageLayer**/class ImageLayer:public Layer{public:
///Constructor
ImageLayer(class ImageTransform*imgXfm);
/// Destructor
~ImageLayer();
/// return the layer type (i.e.LAYER_TYPE_IMAGE)
LayerType GetLayerType()  const;
///-------Setting of parameters-------------
/// Set the source file name
ITERR SetSrc(const std∷string & srcFileName);
/// Set enhancement string
ITERR SetEnhance(const std∷string & enhanceString);
///-------Getting of parameters-------------
/// Get aspect ratio.Call only afterimage
/// has been loaded.
ITERR GetAspectRatio(double*pAspectRatio)const;
ITERR GetSize(int32_t*pWidth,int32_t*pHeight)const;
///-------Processing --------------
/// Set the Load Clamp Rectangle,i.e.the image that is loaded
/// will be pre-clamped to ClampWidth,ClampHeight.This function
/// is typically used to minimize processing overhead,as fewer
/// pixels need be processed during subsequent processing.
ITERR SetLoadClamp(int32_t ClampWidth,int32_t ClampHeight=0);
/// Load a source image
ITERR Load(const Viewport & viewport);
///Size a layer
ITERR Size(const Viewport & viewport);
///Apply enhancements
ITERR Enhance();
///Compute the size effects of enhancements
ITERR EnhanceSize();
///Apply PreProcessing to accomodate viewport"appearance "
///constraints,like color etc.
ITERR PreProcess(const Viewport & viewport);
///Render a ImageLayer
ITERR Render(const Viewport  & viewport);
///Get the count of the number if frames this layer has
uint32_t GetFrameCount() const;
///Get a pointer to a particular frame
const ImageFrame*GetFrame(uint32_t index)const ;private:
///Is this an LZW TIF Image?
bool    IsLzwTIF(const std∷string &filenam);
///Verify if this is a valid"allowed" image(for e.g.LZW
///may be disallowed and the image could be LZW GIF
///Also Compute the"preclamp"dimensions
ITERR VerifyImageAndComputePreclamp(const std∷string & pFileName,
                      int32_t             DisplayWidth,
                      int32_t             DisplayHeight,
                      int32_t             *pClampWidth,
                      int32_t             *pClampHeight);
std∷string   mSrcFileName;
int32_t       mLoadClampWidth;
int32_t       mLoadClampHeight;
std∷string   mEnhanceString;
IMG_image     mImg;
ImageFrame    mRenderedImage;};
               d)The Viewport Class/***Class Viewport**/class Viewport{public:
///Constructor
Viewport(class ImageTransform*parent);
///Destructor
~Viewport();
///-------------Viewport initialization------------------
///Initialization
ITERR    Init(){return ReInit();};
///Reinitialization
ITERR    ReInit();
///-------------adaptive vs.custom palette
bool     UseAdaptivepalette();
///------------Viewport external params------
///preprocessing parameter- sharpen
ITERR    SetSharpen(double Sharpen);
double   GetSharpen()const;
///adaptation:Variable params
///Only set the width
ITERR    SetDisplaySize(int32_t Width);
///Set the width and height
ITERR    SetDisplaySize(int32_t Width,int32_t Height);
///**WARNING*:This returns the raw device display size without
///considering any scaling.
void     GetDisplaySize(int32_t*pWidth,int32_t*pHeight)const;
///**WARNING*:This returns the effective display size after
///considering any scaling.
void     GetEffectiveDisplaySize(int32_t*pWidth,int32_t*pHeight)const;
///scaling of display
ITERR        SetDisplaySizeScale(double ScaleX,double ScaleY);
void         GetDisplaySizeScale(double*pScalex,double*pScaleY)const;
///bits per pixel
ITERR        SetBitsPerPixel(int32_tBitsPerPixel);
int32_t      GetBitsPerPixel()const;
///Amount of error diffusion
ITERR        SetDiffuseLevel(int32_t DiffuseLevel);
int32_t      GetDiffuseLevel()const;
///quality level for JPEG output
ITERR        SetJPEGQuality(int32_t JPEGQuality);
int32_t      GetJPEGQuality()const ;
///Maximum file size allowed
ITERR        SetFileSize(int32_t FileSize);
///**WARNING*:This returns the raw device file size without
///considering any scaling.
int32_t      GetFileSize()const ;
///**WARNING*:This returns the effective file size after
///considering any scaling.
ITERR       GetEffectiveFileSize(int32_t*pEffFileSize)const ;
ITERR       SetFileSizeScale(double FileSizeScale);
double      GetFileSizeScale()const ;
///Mime type for static(un-animated) output
ITERR       SetMimeType(const std∷string & mimeType);
IMG_type    GetMimeType()const ;
///Dots per inch of device
ITERR       SetDPI(double DotsPerInch);
double      GetDPI()const;
///Color capability of device
ITERR       SetColorFlag(bool ColorFlag);
bool        GetColorFlag()const;
///System palette
ITERR       SetSystemPalette(const std∷string & sysPalFileName);
char         *GetSystemPalette()const;
///Force color palette
ITERR        SetForceColorPalette(const std∷string & fCPalFileName);
char         *GetForceColorPalette()const;
///Animation parameter:Mime type for animated output
ITERR        SetAnimationMimeType(const std∷string & mimeType);
IMG_type     GetAnimationMimeType()const;
///Animation parameter:Animation capable?
void         SetAnimationCapable(bool AnimationCapable);
bool         GetAnimat ionCapable()const;
///Animation parameter:Animation Max Frames
ITERR        SetAnimationMaxFrames(const std∷string & MaxFrames);
int32_t      GetAnimationMaxFrames()const;
///Animation parameter:Animation Max Repeat  Count
ITERR        SetAnimationMaxRepeatCount(const std∷string &MaxRepeatCount);
int32_t      GetAnimationMaxRepeatCount()const;
///-----------Viewport:internal params-------
ITERR        SetViewportSi ze(int32_t Width,int32_t Height=0);
void         GetViewportSize(int32_t*pWidth,int32_t*pHeight)const;
ITERR        SetIntBitsPerPixel(int32_t BitsPerPixel);
int32_t      GetIntBitsPerPixel()const;
ITERR        SetIntDiffuseLevel(int32_t DiffuseLevel);
int32_t      GetIntDiffuseLevel()const;
ITERR        SetIntJPEGQuality(int32_t JPEGQuality);
int32_t      GetIntJPEGQuality()const;
///Aspect Layer
ITERR        SetAspectLayerNumber(int32_t LayerNumber);
int32_t      GetAspectLayerNumber()const;
///Mime type for output
void         SetOutputMimeType(IMG_type mimeType);
IMG_type     GetOutputMimeType()const;
///------------Viewport save to memory-----------------
ITERR     Save(IMG_IOHANDLER*pIO=NULL);
///Enable(or disable)encoding MIME type image/gif images
///compressed with the LZW algorithm
void EnableLzwGifEncoding(bool enable=true);
///Is it okay to do LzwGifEncoding Okay?
bool IsLzwGifEncodeOK()const;
///Add the ftame to the image frame held by the viewport
void AddFrame(constImageFrame*frame);private:
///-----------Viewport params:External--------
///        Preprocessing
double             mSharden;
///       adaptation:variable
int32_t            mDisplayWidth;
int32_t            mDisplayHeight;
double             mDisplayScaleX;
double             mDisplayScaleY;
int32_t            mReqBitsPerPixel;
int32_t            mReqDiffuseLevel;
int32_t            mReqJPEGQuality;
///       adaptation:fixed
bool               mColorFlag;
int32_t            mFileSize;
double             mFileSizeScale;
IMG_type           mMimeType;
double             mDPI;
std∷string        mFCPalFileName;///force color palette
std∷string        mSysPalFileName;
IMG_colorPalette   mPalette;
bool               mJPEGThumbSave;
int32_t            mJPEGThumbClamp;
int32_t            mJPEGThumbQuality;
///Animation parameters
bool               mAnimationCapable;
uint32_t            mAnimationMaxFrames;
uint32_t            mAnimationMaxRepeatCount;
IMG_type            mAnimationMimeType;
///Output Mime type:Output mime type is set to oneof the
///mMimeType or mAnimationMimeType based on:
///If the image seq.to be rendered has more than one frame
///       and the device is animation capable:
///then set tomAnimationMimeType
///else use mMimeType.
IMG_type           mOutputMimeType;
///----------Viewport parameters:Internal----------
///       adaptation:variable
int32_t            mViewportWidth;
int32_t            mViewportHeight;
int32_t            mBitsPerPixel;
int32_t            mDiffuseLevel;
int32_t            mJPEGQuality;
///The layer that determines the aspect ratio of the viewport.
///The significance of this is that the viewport coordinates
///are now effectively normalized relative to this layer.
int32_t           mAspectLayerNumber;
///  Substitution for transparency for devices that do not supporttransp.
uint8              mTrans_R;
uint8              mTrans_G;
uint8              mTrans_B;
///Drawing Canvas
double             mCanvasX;
double             mCanvasY;
double             mCanvasW;
double             mCanvasH;
FrameMap           mFrameMap;
//The enable which allows MIME types of image/gif to be encoded
//using LZW compression
bool                  mEnableLzwGifEncode;
class ImageTransform * mParent;};
12.分层示例
以下小节示出利用基于API的XML的一些示例
a)图形重叠
本示例示出了在下面的约束条件下如何在一个源图像上重叠图形:
ο图像适合于视口。
ο图形被在右下角以“as-is”的方式粘贴在视口上。
请求的URL是:
   http://eswitch.foo.com/es?src=http://source.foo.com/boy.jpg&enh=http://source.foo.com/enhance.xml
增强的XML是:<image_transform xmlns="http://www.lightsurf.com/image_transform/1.0"><!--Graphics  layer----><image_layer src=http://www.image.com/flower.png order="2">
  <Viewport_map mode="as-is">
     <align xalign="right"yalign="bottom"/>
  </Viewport_map></image_layer></image_transform>
b)成帧
本节是在一个图像上重叠一帧的示例。
请求的URL是:
http://eswitch.foo.com/es?enh=http:/source.foo.com/enhance.xml
增强的XML如下所示:
视口的aspect_laayer属性被设置为2。这使得视口具有与图像层2(即Image_layer2)相同的纵横比。
Image_layer2被映射到完全的视口。
Image_layer1被映射到一个子窗口,该子窗口与“flower”中的透明性对齐。image_transform xmlns="http://www.lightsurf.com/image_transform/1.0"><!--Image layer---><image_layer src=http://www.image.com/boy.jpg order="1">
  <Viewport_map mode="fit">
    <window x="0.45"y="0.16"width="0.37"height="0.29"/>
  </Viewport_map>
</image_layer>
<!--Graphics  layer--->
<image_layer src=http://www.image.com/frame.gif order="2">
</image_layer>
<!--Force the anchor/aspect layer tobe the"frame"--->
<Viewport aspect_layer="2"/></image_transform>
c)文本重叠
该示例将文本重叠在视口下部20%上。<image_transform xmlns="http://www.lightsurf.com/image_transfotm/1.0"><!-- The text layer--->
<text_layer order="2"text="hello world"fontfile="arial.ttf"font color="0x000000"font size="12"  font size min="6">
<Viewport_map>
    <window x="0.0"y="0.8"width="1.0"height="0.2"/>
</Viewport_map></text_layer></image_transform>
D.内部操作概述
1.总体操作
图6A-图B包括一个流程图,说明了支持动态视口分层的本发明所利用的总方法600。在开始时,用一个在线请求(如HTML请求)来调用股票HTTP服务器(例如,Apache服务器),如来自(浏览器)客户机的URL,用来检索目标图像(如从图像仓库),如步骤601所示。来自客户机的这个HTTP调用(在线请求)包括一个HTTP GET指令,它包括URL和报头(包括一个识别客户机浏览器类型的报头)。URL本身可包括一个典型的基于Web的URL,例如指明一个位置和附带名/值对。当客户机直接调用HTTP服务器时,HTTP服务器可被看作为系统的前端。插件模块(eSwitchTM处理程序)用于派生/分叉(fork)输入请求,如步骤602所示。目前,eSwitchTM处理程序可检查HTTP GET报头,以识别浏览器客户机,如步骤603所示,并且根据这个识别,处理程序可推断客户机设备的类型或特性(即设备类型)。在该步骤的操作过程中,处理程序查询设备数据库,以使报头与适当的设备匹配,如在上文所引用的共同拥有的2000年6月6号提交的申请序列号09/588,875和2001年11月8日提交的申请序列号10/010,616中所描述的。
在识别设备之后,在步骤604中,处理程序继续读取一个XML(配置)文件。客户机提交的(在步骤601中)URL指定一个特定XML文件(作为名/值对中的一个),该XML文件以分级方式存储图像变换树(描述视口和层)的值。在步骤605中,现在可利用股票XML剖析程序(如libXML2)来解析所取得的XML文件。然后,被解析的值/属性用于创建图像变换树的一个存储器中的副本(in-memory copy)。
下一步是将从客户机数据库获得的视口信息与图像变换树中所有属性及其值(如分层信息)进行合并,如步骤606所示。在步骤607中,当调用了图像变换模块时,该方法开始实际渲染图像(即,动态创建一个为客户机优化或定制的版本)。特别地,按照图像变换树中的分层和视口信息,感兴趣的图像被渲染到所识别的客户机设备的视口上;通过将图像转换为所要求的格式,可实施客户机的任何图像格式考虑(如JPEG格式要求)。前述过程可以迭代方式出现。例如,如果动态创建的版本被认为对于客户机来说太大,或具有的位深度超出客户机的能力,则重复该步骤,以创建一个合适的版本。在一个给定的迭代过程中,编码/渲染参数(如,图像尺寸)可被动态地调整,以达到为客户机优化图像的请求式的生成。最后,如步骤608所示,该方法生成一个完全渲染的图像(按照约束),然后该图像以合适格式被发送回客户机设备(如,通过无线连接、通过Internet连接、通过无线Internet连接,等等)。可根据需要存储该图像,以便将来检索(如被相同的设备类型检索)。
2.Image Transform Object(图像变换对象)
Image Transform Object类定义(class ImageTransform)严格地反映XML描述,包括负责创建/支持各种图像层的数据成员。每个层本身就是一个对象。当Image Transform Object被实例化时,所有的嵌入对象也被实例化。Image Transform Object包括一个“渲染”方法,Render()。在基本操作中,“渲染”方法调用每个嵌入对象的相应渲染方法,以便每层被正确渲染。渲染的发生是依赖视口的存储器中的版本(例如,规范格式,如位图)即视口对象。最后,根据视口对象,每个嵌入对象被渲染以生成“候选”图像。然后,候选图像被编码(如,JPEG编码)为一个适合客户机的格式,以生成一个候选变换图像。一旦候选图像被变换,为了符合适当的约束,最后所得到的图像被检验,如前面在图4中所述的。例如,如果完全渲染的图像被转换为JPEG,那么如果最后所得到的JPEG文件超过最大指定文件大小,则该JPEG文件并不会被接受为最后的输出结果。因此,该过程可能会重复或迭代,包括“重新映射”视口,及重新渲染图像(如果必要),以生成可应用于目标客户机的符合约束的最终图像文件。在内部,文件大小控制块估计不同组的(控制)参数(如,减小视口大小、位深度、JPEG质量等),以获得一个新的文件大小。例如,如果转换的候选图像的文件大小太大,则该方法可重新设置视口为一个较小的屏幕,以便生成转换的候选图像为一个较小的文件大小。
虽然参照一个优选实施例和某些替换方案详细描述了本发明,但并无意将本发明限于那个特定实施例或那些特定的替换方案。例如,已经介绍了一些实例,它们关注如何在客户机设备上“显示”图像。本领域中的技术人士将意识到,其它客户机端的输出或渲染,如打印,可从本发明的应用中受益。因此,本领域中的技术人士将意识到,在不脱离本发明范围的情况下,可对优选实施例做出若干修改。

Claims (50)

1.一种动态地优化图像显示的方法,所述图像被传输到一个客户机设备,所述方法包括:
从一个特定的客户机设备接收一个在线请求,以检索一个用于显示的目标图像,所述的请求包括帮助确定客户机设备的设备类型的信息,所述的目标图像包括排列在各单独层的图像组件;
基于所述的请求,为所述特定客户机设备确定设备类型;
基于所确定的设备类型,为所述特定客户机设备检索指定视口和分层信息的信息;
基于所述视口和分层信息,创建为所述特定客户机设备的显示而优化的所述目标图像的一个版本;和
传输所述目标图像的所创建的版本到所述客户机设备进行显示。
2.根据权利要求1所述的方法,其中所述的确定设备类型的步骤包括:
查询一个设备数据库以确定客户机设备的设备类型。
3.根据权利要求2所述的方法,其中所述的查询设备数据库的步骤包括:
从所述设备数据库中检索信息,所述设备数据库指示一个特定配置文件,其用来优化所述特定客户机设备的图像显示。
4.根据权利要求3所述的方法,其中所述特定配置文件指定了有关所述特定客户机设备的显示性能信息。
5.根据权利要求3所述的方法,其中所述特定配置文件包括一个XML文件,其指定了所述特定客户机设备的视口和分层信息。
6.根据权利要求1所述的方法,其中所述在线请求包括基于Web的请求。
7.根据权利要求1所述的方法,其中所述在线请求包括基于HTML的请求。
8.根据权利要求1所述的方法,其中所述在线请求包括识别一个特定目标图像的信息。
9.根据权利要求1所述的方法,其中所述在线请求是由在所述特定客户机设备上运行的浏览器启动,并包括识别客户机设备的特定类型的信息。
10.根据权利要求1所述的方法,其中所述在线请求包括一个URL。
11.根据权利要求1所述的方法,其中所述的帮助确定所述特定客户机设备的设备类型的信息包括,利用所述在线请求所传输的标题信息。
12.根据权利要求11所述的方法,其中所述的利用所述在线请求所传输的标题信息被与一个设备类型数据库相比较,以确定所述特定客户机设备是哪种特定类型的设备。
13.根据权利要求1所述的方法,其中所述的帮助确定所述特定客户机设备的设备类型的信息包括,HTTP标题信息。
14.根据权利要求1所述的方法,其中所述的为所述特定客户机设备指定视口和分层信息的信息以分层方式保存在一个XML文件中。
15.根据权利要求14所述的方法,其中所述XML文件包括基于所述特定客户机设备的设备限制的约束值。
16.根据权利要求15所述的方法,其中所述约束值指示可在特定客户机设备上显示的一个最大图像尺寸。
17.根据权利要求1所述的方法,其中所述的创建为所述特定客户机设备的显示而优化的所述目标图像的一个版本的步骤包括:
在所述各单独层中渲染所述图像组件,渲染方式是遵守所述特定客户机设备的所述视口和分层信息。
18.根据权利要求1所述的方法,其中所述的创建为所述特定客户机设备的显示而优化的所述目标图像的一个版本的步骤包括:
基于所述视口和分层信息,重复地创建所述目标图像的不同版本,直到得到一个为所述客户机设备的显示而优化的适当的目标图像。
19.根据权利要求1所述的方法,进一步包括:
在将所述目标图像的所创建的版本传输到所述特定客户机设备之前,将所创建的版本转换为适于所述客户机的文件格式。
20.根据权利要求19所述的方法,其中所述文件格式包括JPEG兼容文件格式。
21.根据权利要求1所述的方法,其中所述层中的每一个含有一种给定类型的图像组件。
22.根据权利要求21所述的方法,其中一个给定层含有从位图、动画、文本和矢量图形之一选择的图像组件。
23.一种具有处理器可执行指令的计算机可读介质,其中所述指令用于执行权利要求1中的方法。
24.可下载的一组处理器可执行指令,用于执行权利要求1中的方法。
25.一种请求式的创建图像的系统,所述图像是为特定的设备类型而定制的,所述系统包括:
一个用作图像仓库的模块,每个图像包括排列在不同层中的图像组件;
一个用于处理来自一个设备的请求的模块,以从所述仓库中检索一个特定的图像,所述模块部分地基于包含在所述请求中的信息,决定所述设备的特定设备类型;和
一个用于创建为所述设备定制的特定图像的副本的模块,所述模块基于所确定的设备类型在所述特定图像的不同层上单独地渲染图像组件,以致所述特定图像的不同层上的图像组件中的至少一些是为所述设备定制的。
26.根据权利要求25所述的系统,其中所述特定图像的所述副本是以遵守所述设备的视口约束的方式而创建的。
27.根据权利要求25所述的系统,其中所述特定图像的所述副本是以遵守所述设备的图像尺寸约束的方式而创建的。
28.根据权利要求25所述的系统,进一步包括:
一个将所述特定图像的副本转换为与所述设备兼容的图像格式的模块。
29.根据权利要求25所述的系统,其中处理所述请求的所述模块运行在一台服务器计算机上。
30.根据权利要求29所述的系统,其中所述服务器计算机包括因特网连接。
31.根据权利要求25所述的系统,其中所述设备通过无线连接与系统通信。
32.根据权利要求25所述的系统,其中所述设备通过连接到因特网的无线连接与系统通信。
33.根据权利要求25所述的系统,进一步包括一个图像高速缓冲存储器,用于缓存为所述设备而定制的所述特定图像的副本。
34.根据权利要求25所述的系统,其中所述请求包括一个HTML请求。
35.根据权利要求25所述的系统,其中所述请求是由在所设备上运行的浏览器启动。
36.根据权利要求25所述的系统,其中所述请求包括允许确定设备类型的标题信息。
37.根据权利要求36所述的系统,进一步包括:
一个设备数据库,用于帮助基于所述标题信息识别设备类型。
38.根据权利要求37所述的系统,其中所述设备数据库指示一个可用配置文件,其对与创建为所述设备而定制的所述特定图像的副本是有用的。
39.根据权利要求25所述的系统,其中所述配置文件包括一个XML文件,其为所述设备指定分层和视口信息。
40.根据权利要求25所述的系统,其中所述的用于创建副本的模块重复地创建所述特定图像的不同候选,直到创建了一个为所述设备的显示而优化的适当图像。
41.一种图像检索方法,其包括对所请求图像优化显示的改进,所述改进包括:
将每个图像组织在不同的层,每个层具有一种特定类型的图像组件;
存储信息,所述信息指示如何为所述给定图像要被显示的特定类型的设备而优化一个给定的层;
当接收到一个检索特定图像的请求时,识别哪种类型的设备正在请求所述的特定图像;
基于正在请求所述特定图像的所述设备类型,检索已存储的信息,所述信息指示如何为所述给定图像要被显示的特定类型的设备而优化一个给定的层;和
基于所检索的信息,渲染所述图像的各个层,以动态地产生一个为所述设备的显示而优化的渲染图像。
42.根据权利要求41所述的改进,进一步包括:
为不同类型的设备保存视口信息,这样,可以遵照适于所述设备的约束条件的方式来执行渲染步骤。
43.根据权利要求41所述的改进,其中如果动态产生的渲染图像的图像尺寸对正在请求特定图像的设备而言太大,所述渲染步骤被重复以产生一个较小图像尺寸的图像。
44.根据权利要求41所述的改进,其中一个给定层含有从位图、动画、文本和矢量图形之一选择的图像组件。
45.根据权利要求44所述的改进,其中一个层专门用于渲染边框。
46.根据权利要求41所述的改进,其中所述的为一个特定类型的设备指示如何优化每个层的信息存储在设备类型特定的配置文件中。
47.根据权利要求46所述的改进,其中所述设备类型特定的配置文件包括XML文件,每个文件存储有关一个特定设备类型的图像渲染的信息。
48.根据权利要求46所述的改进,其中每个所述设备类型特定的配置文件包括一个特定设备类型的分层和视口信息。
49.根据权利要求41所述的改进,其中所述请求包括从一个连接到因特网的设备中接收的浏览器请求。
50.根据权利要求41所述的改进,其中所述的哪种类型的设备正在请求所述特定图像的步骤包括,解析所述请求,以获得帮助识别设备类型的信息。
CNB038199270A 2002-07-23 2003-07-21 提供为特定客户机设备类型而优化的动态视口分层的成像系统 Expired - Fee Related CN100461160C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US39821102P 2002-07-23 2002-07-23
US60/398,211 2002-07-23
US10/273,670 US7051040B2 (en) 2002-07-23 2002-10-18 Imaging system providing dynamic viewport layering
US10/273,670 2002-10-18

Publications (2)

Publication Number Publication Date
CN1679024A true CN1679024A (zh) 2005-10-05
CN100461160C CN100461160C (zh) 2009-02-11

Family

ID=30772623

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038199270A Expired - Fee Related CN100461160C (zh) 2002-07-23 2003-07-21 提供为特定客户机设备类型而优化的动态视口分层的成像系统

Country Status (8)

Country Link
US (2) US7051040B2 (zh)
EP (1) EP1532548A1 (zh)
JP (1) JP4852674B2 (zh)
KR (1) KR20050029311A (zh)
CN (1) CN100461160C (zh)
AU (1) AU2003261216A1 (zh)
CA (1) CA2493200C (zh)
WO (1) WO2004010341A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101448167B (zh) * 2007-11-28 2011-12-28 新奥特(北京)视频技术有限公司 任意区域的色彩校正特技调节方法及其系统
CN104106032A (zh) * 2012-02-15 2014-10-15 微软公司 多轮的提前推测性呈现和高速缓存

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7051040B2 (en) * 2002-07-23 2006-05-23 Lightsurf Technologies, Inc. Imaging system providing dynamic viewport layering
WO2004038641A2 (en) * 2002-10-21 2004-05-06 Applied Global Technologies, Inc. System and method for sharing, viewing, and controlling mutliple information systems
JP2004179953A (ja) * 2002-11-27 2004-06-24 Matsushita Electric Ind Co Ltd 画像サーバと画像サーバシステム、カメラ画像のネットワーク伝送及び表示方法
US7130461B2 (en) * 2002-12-18 2006-10-31 Xerox Corporation Systems and method for automatically choosing visual characteristics to highlight a target against a background
WO2004068320A2 (en) * 2003-01-27 2004-08-12 Vincent Wen-Jeng Lue Method and apparatus for adapting web contents to different display area dimensions
US7860309B1 (en) 2003-09-30 2010-12-28 Verisign, Inc. Media publishing system with methodology for parameterized rendering of image regions of interest
US20070143700A1 (en) * 2003-10-29 2007-06-21 Tetsuji Fukada Electronic document viewing system
JP4444623B2 (ja) * 2003-10-29 2010-03-31 富士フイルム株式会社 動画像変換装置および方法、動画像配信装置、メール中継装置並びにプログラム
JP4547906B2 (ja) * 2003-12-19 2010-09-22 ソニー株式会社 描画装置および描画方法、プログラム、並びに記録媒体
JP4311648B2 (ja) * 2004-02-19 2009-08-12 富士フイルム株式会社 代表色選択装置および方法、減色画像生成装置および方法並びにプログラム
US20060026181A1 (en) 2004-05-28 2006-02-02 Jeff Glickman Image processing systems and methods with tag-based communications protocol
US7542034B2 (en) 2004-09-23 2009-06-02 Conversion Works, Inc. System and method for processing video images
US20080259073A1 (en) * 2004-09-23 2008-10-23 Conversion Works, Inc. System and method for processing video images
US20060069591A1 (en) * 2004-09-29 2006-03-30 Razzano Michael R Dental image charting system and method
US7593024B2 (en) * 2005-01-15 2009-09-22 International Business Machines Corporation Screen calibration for display devices
US8583627B1 (en) 2005-07-01 2013-11-12 Google Inc. Display-content alteration for user interface devices
US8086253B1 (en) 2005-12-15 2011-12-27 Google Inc. Graphical mobile e-mail
TWI292108B (en) * 2005-12-28 2008-01-01 Via Tech Inc Fault-tolerant methods and systems for managing webpage presentation
KR100698845B1 (ko) * 2005-12-28 2007-03-22 삼성전자주식회사 인물 외형 추출 알고리즘을 이용한 영상 편집 방법 및 그장치
US7853988B2 (en) * 2006-05-16 2010-12-14 Waterstone Environmental Hydrology & Engineering, Inc. State saver/restorer for a geospatial decision management system
GB0619887D0 (en) * 2006-10-07 2006-11-15 Ibm Data processing system and method
US20080307498A1 (en) * 2006-12-27 2008-12-11 Waterstone Environmental Hydrology & Engineering, Inc. Access control for server-based geographic information system
US8036703B2 (en) * 2006-12-29 2011-10-11 Texas Instruments Incorporated Image capture reporting based on content-associated wireless identification
US8655052B2 (en) * 2007-01-26 2014-02-18 Intellectual Discovery Co., Ltd. Methodology for 3D scene reconstruction from 2D image sequences
US20080228449A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. Systems and methods for 2-d to 3-d conversion using depth access segments to define an object
US20080225042A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. Systems and methods for allowing a user to dynamically manipulate stereoscopic parameters
US20080225040A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. System and method of treating semi-transparent features in the conversion of two-dimensional images to three-dimensional images
US20080226194A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. Systems and methods for treating occlusions in 2-d to 3-d image conversion
US8274530B2 (en) 2007-03-12 2012-09-25 Conversion Works, Inc. Systems and methods for filling occluded information for 2-D to 3-D conversion
US20080225059A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. System and method for using off-screen mask space to provide enhanced viewing
US20080226128A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. System and method for using feature tracking techniques for the generation of masks in the conversion of two-dimensional images to three-dimensional images
US20080226160A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. Systems and methods for filling light in frames during 2-d to 3-d image conversion
US20080226181A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. Systems and methods for depth peeling using stereoscopic variables during the rendering of 2-d to 3-d images
US20080225045A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. Systems and methods for 2-d to 3-d image conversion using mask to model, or model to mask, conversion
US20080313210A1 (en) * 2007-06-15 2008-12-18 Microsoft Corporation Content Publishing Customized to Capabilities of Device
US7746098B2 (en) * 2008-03-10 2010-06-29 Qimonda North America Corp. Termination switching based on data rate
US20100013641A1 (en) * 2008-07-17 2010-01-21 Reed Chad M System for providing remote signals from a patient monitor
US8086275B2 (en) 2008-10-23 2011-12-27 Microsoft Corporation Alternative inputs of a mobile communications device
US8411046B2 (en) 2008-10-23 2013-04-02 Microsoft Corporation Column organization of content
US8214742B2 (en) * 2008-12-23 2012-07-03 International Business Machines Corporation Method of rapidly creating visual aids for presentation without technical knowledge
US20100169059A1 (en) * 2009-02-13 2010-07-01 Grant Thomas-Lepore Layered Personalization
US8175653B2 (en) 2009-03-30 2012-05-08 Microsoft Corporation Chromeless user interface
US8355698B2 (en) 2009-03-30 2013-01-15 Microsoft Corporation Unlock screen
US20100313252A1 (en) * 2009-06-08 2010-12-09 Erie Trouw System, method and apparatus for creating and using a virtual layer within a web browsing environment
US8532435B1 (en) * 2009-08-18 2013-09-10 Adobe Systems Incorporated System and method for automatically adapting images
WO2012068793A1 (zh) * 2010-11-26 2012-05-31 深圳市同洲软件有限公司 数字电视接收终端与移动终端交互方法、终端和系统
CA2781298C (en) 2011-11-08 2017-01-03 Research In Motion Limited Improved block zoom on a mobile electronic device
US8582876B2 (en) * 2011-11-15 2013-11-12 Microsoft Corporation Hybrid codec for compound image compression
US9280601B1 (en) 2012-02-15 2016-03-08 Google Inc. Modifying search results
US9286122B2 (en) 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9235925B2 (en) 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
GB2504490A (en) * 2012-07-30 2014-02-05 Ibm Shortening a name for display
US9152313B2 (en) * 2012-08-06 2015-10-06 Shutterfly, Inc. Unified picture access across devices
US9058662B2 (en) * 2012-08-16 2015-06-16 Facebook, Inc. Systems and methods for non-destructive editing of digital images
US8965880B2 (en) 2012-10-05 2015-02-24 Google Inc. Transcoding and serving resources
US9183319B2 (en) * 2012-10-17 2015-11-10 Cloudflare, Inc. Method and apparatus for automatically optimizing the loading of images in a cloud-based proxy service
US9098477B2 (en) 2013-05-15 2015-08-04 Cloudflare, Inc. Method and apparatus for automatically optimizing the loading of images in a cloud-based proxy service
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
CN104346156B (zh) * 2013-08-05 2018-01-26 北大方正集团有限公司 显示文本块、文本块处理的方法和装置
US9952747B1 (en) * 2013-09-24 2018-04-24 Amazon Technologies, Inc. Updating data fields in a user interface
WO2015044236A1 (en) 2013-09-27 2015-04-02 Koninklijke Philips N.V. Simultaneously displaying video data of multiple video sources
US20150103092A1 (en) * 2013-10-16 2015-04-16 Microsoft Corporation Continuous Image Optimization for Responsive Pages
US9489757B2 (en) 2013-10-16 2016-11-08 Microsoft Technology Licensing, Llc Resizable text backing shapes for digital images
US8924850B1 (en) 2013-11-21 2014-12-30 Google Inc. Speeding up document loading
WO2015103140A1 (en) 2014-01-03 2015-07-09 Thomson Licensing Method and apparatus for the generation of metadata for video optimization
CN104900176B (zh) * 2014-03-07 2018-10-19 腾讯科技(北京)有限公司 多媒体数据的显示控制方法及装置
US20150262386A1 (en) * 2014-03-14 2015-09-17 LEAP Computing, Inc. Systems and methods for streaming graphics across a network
EP3107279B1 (en) * 2015-06-15 2018-08-22 Coherent Synchro, S.L. Method, device and installation for composing a video signal
US10416952B2 (en) * 2017-06-27 2019-09-17 Salesforce.Com, Inc. Identifying a viewport within a browser window
US10360704B2 (en) 2017-08-11 2019-07-23 Microsoft Technology Licensing, Llc Techniques for providing dynamic multi-layer rendering in graphics processing
US10810327B2 (en) * 2018-01-05 2020-10-20 Intel Corporation Enforcing secure display view for trusted transactions
US10834201B2 (en) * 2018-11-27 2020-11-10 International Business Machines Corporation Device identification and reconfiguration in a network
US12014119B2 (en) * 2019-02-11 2024-06-18 Oracle International Corporation Enhancing a construction plan with data objects
US10924750B2 (en) * 2019-03-01 2021-02-16 Alibaba Group Holding Limited Palette size constraint in palette mode for video compression system
EP4200792A1 (en) 2020-08-21 2023-06-28 Mobeus Industries, Inc. Integrating overlaid digital content into displayed data via graphics processing circuitry
US11481933B1 (en) 2021-04-08 2022-10-25 Mobeus Industries, Inc. Determining a change in position of displayed digital content in subsequent frames via graphics processing circuitry
US11475610B1 (en) 2021-04-30 2022-10-18 Mobeus Industries, Inc. Controlling interactivity of digital content overlaid onto displayed data via graphics processing circuitry using a frame buffer
US11477020B1 (en) 2021-04-30 2022-10-18 Mobeus Industries, Inc. Generating a secure random number by determining a change in parameters of digital content in subsequent frames via graphics processing circuitry
US11601276B2 (en) 2021-04-30 2023-03-07 Mobeus Industries, Inc. Integrating and detecting visual data security token in displayed data via graphics processing circuitry using a frame buffer
US11586835B2 (en) 2021-04-30 2023-02-21 Mobeus Industries, Inc. Integrating overlaid textual digital content into displayed data via graphics processing circuitry using a frame buffer
US11483156B1 (en) 2021-04-30 2022-10-25 Mobeus Industries, Inc. Integrating digital content into displayed data on an application layer via processing circuitry of a server
US11682101B2 (en) * 2021-04-30 2023-06-20 Mobeus Industries, Inc. Overlaying displayed digital content transmitted over a communication network via graphics processing circuitry using a frame buffer
US11562153B1 (en) 2021-07-16 2023-01-24 Mobeus Industries, Inc. Systems and methods for recognizability of objects in a multi-layer display
US11756264B2 (en) * 2021-11-23 2023-09-12 Adobe Inc. Continuous optimization of discrete parameters using a unified stress indicator

Family Cites Families (190)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3035965A1 (de) * 1980-09-24 1982-05-13 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Datenuebertragungssystem
JPH0636182B2 (ja) * 1988-02-06 1994-05-11 大日本スクリーン製造株式会社 画像ファイリング・検索方法および装置
EP0336317B1 (en) 1988-04-08 1995-07-19 Fuji Photo Film Co., Ltd. Electronic still camera capable of selecting recording media
US5065447A (en) * 1989-07-05 1991-11-12 Iterated Systems, Inc. Method and apparatus for processing digital data
US5761655A (en) * 1990-06-06 1998-06-02 Alphatronix, Inc. Image file storage and retrieval system
US5756982A (en) * 1990-09-11 1998-05-26 Metrologic Instruments, Inc. Body-wearable automatic laser scanner with power-conserving control subsystem
US5172227A (en) 1990-12-10 1992-12-15 Eastman Kodak Company Image compression with color interpolation for a single sensor image system
US5548789A (en) 1991-01-24 1996-08-20 Canon Kabushiki Kaisha Message communication processing apparatus for selectively converting storing and transmitting messages of different lengths
US5249053A (en) 1991-02-05 1993-09-28 Dycam Inc. Filmless digital camera with selective image compression
US5469542A (en) * 1991-07-22 1995-11-21 International Business Machines Corporation Serial diagnostic interface bus for multiprocessor systems
US5309257A (en) * 1991-12-31 1994-05-03 Eastman Kodak Company Method and apparatus for providing color matching between color output devices
US5552824A (en) 1993-02-18 1996-09-03 Lynx System Developers, Inc. Line object scene generation apparatus
US5657077A (en) 1993-02-18 1997-08-12 Deangelis; Douglas J. Event recording system with digital line camera
JPH06303607A (ja) * 1993-04-15 1994-10-28 Canon Inc テレビ会議システムおよびその制御方法
US5956044A (en) 1993-05-07 1999-09-21 Eastman Kodak Company Imaging device to media compatibility and color appearance matching with flare, luminance, and white point comparison
CN1113302C (zh) * 1993-07-30 2003-07-02 佳能株式会社 通过通信线路控制设备的控制器和方法
JP3320859B2 (ja) * 1993-09-24 2002-09-03 旭光学工業株式会社 Ccdディジタルカメラ
US5412427A (en) * 1993-10-29 1995-05-02 Eastman Kodak Company Electronic camera utilizing image compression feedback for improved color processing
US7113615B2 (en) * 1993-11-18 2006-09-26 Digimarc Corporation Watermark embedder and reader
US8505108B2 (en) * 1993-11-18 2013-08-06 Digimarc Corporation Authentication using a digital watermark
DE4415167A1 (de) 1994-04-29 1995-11-02 Siemens Ag Telekommunikationsanordnung zum Übertragen von Bildern
FI115739B (fi) 1994-05-19 2005-06-30 Nokia Corp Laite henkilökohtaiseen viestintään, tietojenkeruuseen ja -käsittelyyn ja piirikortti
JPH0877356A (ja) * 1994-09-09 1996-03-22 Fujitsu Ltd 三次元多眼画像の処理方法及び処理装置
JP3525353B2 (ja) * 1994-09-28 2004-05-10 株式会社リコー デジタル電子スチル・カメラ
JP3893480B2 (ja) 1994-09-28 2007-03-14 株式会社リコー デジタル電子カメラ
US5613017A (en) * 1994-09-29 1997-03-18 Kabushiki Kaisha Toshiba Apparatus for processing image data among media having different image output sizes
US6181837B1 (en) * 1994-11-18 2001-01-30 The Chase Manhattan Bank, N.A. Electronic check image storage and retrieval system
US6275869B1 (en) 1994-11-22 2001-08-14 Eastman Kodak Company System for network communication of image information between imaging devices according to multiple protocols
GB2295936B (en) * 1994-12-05 1997-02-05 Microsoft Corp Progressive image transmission using discrete wavelet transforms
JPH08161250A (ja) 1994-12-06 1996-06-21 Canon Inc 情報処理装置
JP3534465B2 (ja) 1994-12-28 2004-06-07 パイオニア株式会社 サブバンド符号化方法
US6072902A (en) * 1995-05-03 2000-06-06 Apple Computer, Inc. Method and system for color matching between digital display devices
US6016520A (en) * 1995-07-14 2000-01-18 Microsoft Corporation Method of viewing at a client viewing station a multiple media title stored at a server and containing a plurality of topics utilizing anticipatory caching
US6067383A (en) * 1995-09-12 2000-05-23 Matsushita Electric Industrial Co., Ltd. Coding method, coding apparatus, wavelet transform apparatus, and wavelet reverse transform apparatus
JP2000500887A (ja) * 1995-09-25 2000-01-25 アドビ システムズ インコーポレイテッド 電子文書への最適アクセス
US6507864B1 (en) * 1996-08-02 2003-01-14 Symbol Technologies, Inc. Client-server software for controlling data collection device from host computer
US5903723A (en) * 1995-12-21 1999-05-11 Intel Corporation Method and apparatus for transmitting electronic mail attachments with attachment references
US5781901A (en) * 1995-12-21 1998-07-14 Intel Corporation Transmitting electronic mail attachment over a network using a e-mail page
US5915112A (en) * 1996-01-02 1999-06-22 International Business Machines Corporation Remote procedure interface with support for multiple versions
US5841432A (en) 1996-02-09 1998-11-24 Carmel; Sharon Method and system of building and transmitting a data file for real time play of multimedia, particularly animation, and a data file for real time play of multimedia applications
US6628325B1 (en) 1998-06-26 2003-09-30 Fotonation Holdings, Llc Camera network communication device
US5652621A (en) * 1996-02-23 1997-07-29 Eastman Kodak Company Adaptive color plane interpolation in single sensor color electronic camera
US6072598A (en) * 1996-02-27 2000-06-06 Intel Corporation Method for enhancing usability of fax on small device
US5682152A (en) 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5835580A (en) 1996-04-04 1998-11-10 At&T Corp Method and apparatus for automated provisioning and billing of communication services
US5675382A (en) 1996-04-08 1997-10-07 Connectix Corporation Spatial compression and decompression for video
US5734831A (en) * 1996-04-26 1998-03-31 Sun Microsystems, Inc. System for configuring and remotely administering a unix computer over a network
US5826023A (en) 1996-06-03 1998-10-20 International Business Machines Corporation Communications tunneling
US5918013A (en) 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5818525A (en) 1996-06-17 1998-10-06 Loral Fairchild Corp. RGB image correction using compressed flat illuminated files and a simple one or two point correction algorithm
US6031964A (en) * 1996-06-20 2000-02-29 Apple Computer, Inc. System and method for using a unified memory architecture to implement a digital camera device
AU3496797A (en) 1996-06-21 1998-01-07 Integrated Computing Engines, Inc. Network based programmable media manipulator
US5737491A (en) * 1996-06-28 1998-04-07 Eastman Kodak Company Electronic imaging system capable of image capture, local wireless transmission and voice recognition
US5883640A (en) * 1996-08-15 1999-03-16 Hsieh; Paul Computing apparatus and operating method using string caching to improve graphics performance
US5790878A (en) 1996-08-23 1998-08-04 Apple Computer, Inc. System and method for recovering from a power failure within a digital camera device
US5913088A (en) * 1996-09-06 1999-06-15 Eastman Kodak Company Photographic system capable of creating and utilizing applets on photographic film
TW347498B (en) 1996-09-30 1998-12-11 Casio Computer Co Ltd Information supply system
FI104222B1 (fi) 1996-10-03 1999-11-30 Nokia Mobile Phones Ltd Modulaarinen matkaviestinjärjestelmä
US6202060B1 (en) * 1996-10-29 2001-03-13 Bao Q. Tran Data management system
US5896502A (en) * 1996-12-10 1999-04-20 International Business Machines Corporation Internet data transfer control via a client system to reduce delay
US6185625B1 (en) * 1996-12-20 2001-02-06 Intel Corporation Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object
AUPO472897A0 (en) 1997-01-22 1997-02-20 Canon Information Systems Research Australia Pty Ltd A method for digital image compression
US6157746A (en) 1997-02-12 2000-12-05 Sarnoff Corporation Apparatus and method for encoding wavelet trees generated by a wavelet-based coding method
US5917542A (en) * 1997-02-18 1999-06-29 Eastman Kodak Company System and method for digital image capture and transmission
US5928325A (en) * 1997-02-24 1999-07-27 Motorola, Inc. Method of dynamically establishing communication of incoming messages to one or more user devices presently available to an intended recipient
US6421733B1 (en) 1997-03-25 2002-07-16 Intel Corporation System for dynamically transcoding data transmitted between computers
US6311215B1 (en) 1997-03-25 2001-10-30 Intel Corporation System for dynamic determination of client communications capabilities
US5848193A (en) 1997-04-07 1998-12-08 The United States Of America As Represented By The Secretary Of The Navy Wavelet projection transform features applied to real time pattern recognition
JPH114367A (ja) 1997-04-16 1999-01-06 Seiko Epson Corp 高速画像選択方法および高速画像選択機能付デジタルカメラ
JP4086360B2 (ja) 1997-04-24 2008-05-14 キヤノン株式会社 印刷制御システム
US6023714A (en) 1997-04-24 2000-02-08 Microsoft Corporation Method and system for dynamically adapting the layout of a document to an output device
US6023585A (en) * 1997-05-02 2000-02-08 Webtv Networks, Inc. Automatically selecting and downloading device drivers from a server system to a client system that includes one or more devices
US6417882B1 (en) * 1997-05-06 2002-07-09 Texas Instruments Incorporated CMOS sensor camera with on-chip image compression
US6914622B1 (en) 1997-05-07 2005-07-05 Telbotics Inc. Teleconferencing robot with swiveling video monitor
US6459816B2 (en) 1997-05-08 2002-10-01 Ricoh Company, Ltd. Image processing system for compressing image data including binary image data and continuous tone image data by a sub-band transform method with a high-compression rate
US6043837A (en) * 1997-05-08 2000-03-28 Be Here Corporation Method and apparatus for electronically distributing images from a panoptic camera system
EP0881542A1 (en) * 1997-05-26 1998-12-02 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Lithography system
JPH1115761A (ja) * 1997-06-02 1999-01-22 Internatl Business Mach Corp <Ibm> 赤外線通信機能を持つ情報処理装置及びその制御方法
US6020920A (en) * 1997-06-10 2000-02-01 Flashpoint Technology, Inc. Method and system for speculative decompression of compressed image data in an image capture unit
US6094454A (en) * 1997-06-19 2000-07-25 International Business Machines Corporation Multi-spectral image compression and transformation
JP3448462B2 (ja) 1997-06-25 2003-09-22 三洋電機株式会社 画像データ圧縮装置
US6125201A (en) 1997-06-25 2000-09-26 Andrew Michael Zador Method, apparatus and system for compressing data
KR100261607B1 (ko) * 1997-06-30 2000-07-15 이중구 원격 통신이 가능한 디지탈 스틸 카메라
US6009201A (en) 1997-06-30 1999-12-28 Intel Corporation Efficient table-lookup based visually-lossless image compression scheme
JPH1132295A (ja) * 1997-07-09 1999-02-02 Olympus Optical Co Ltd デジタルカラープリンタ、デジタルカメラ及びそれらを用いたデジタルカラープリントシステム
AUPO797897A0 (en) * 1997-07-15 1997-08-07 Silverbrook Research Pty Ltd Media device (ART18)
US6421069B1 (en) 1997-07-31 2002-07-16 Sony Corporation Method and apparatus for including self-describing information within devices
US6101320A (en) 1997-08-01 2000-08-08 Aurora Communications Exchange Ltd. Electronic mail communication system and method
JPH11136394A (ja) * 1997-08-26 1999-05-21 Casio Comput Co Ltd データ出力システムおよびデータ出力方法
US6226642B1 (en) 1997-09-11 2001-05-01 International Business Machines Corporation Content modification of internet web pages for a television class display
AU8073298A (en) 1997-09-11 1999-03-29 Intel Corporation A method for directly compressing a color image and tailoring the compression based on the color filter array, optics, and sensor characteristics
US6886013B1 (en) * 1997-09-11 2005-04-26 International Business Machines Corporation HTTP caching proxy to filter and control display of data in a web browser
US6091777A (en) * 1997-09-18 2000-07-18 Cubic Video Technologies, Inc. Continuously adaptive digital video compression system and method for a web streamer
US6031934A (en) * 1997-10-15 2000-02-29 Electric Planet, Inc. Computer vision system for subject characterization
JPH11127340A (ja) 1997-10-24 1999-05-11 Fuji Xerox Co Ltd 画像処理装置および画像処理方法
US6085249A (en) * 1997-10-24 2000-07-04 Pictra, Inc. Method and apparatuses for transferring data for multiple applications through a single communication link in response to authentication information
US5870383A (en) * 1997-10-27 1999-02-09 At&T Corp Provisioning technique for customer service
JP3884840B2 (ja) * 1997-10-27 2007-02-21 キヤノン株式会社 画像読取方法及び装置
US6167441A (en) 1997-11-21 2000-12-26 International Business Machines Corporation Customization of web pages based on requester type
US7057648B2 (en) * 1997-11-24 2006-06-06 Eastman Kodak Company Capturing digital images to be transferred to a service provider for storage
US6128413A (en) 1997-12-04 2000-10-03 Agfa Corporation Method and apparatus for data compression
US6081883A (en) * 1997-12-05 2000-06-27 Auspex Systems, Incorporated Processing system with dynamically allocatable buffer memory
JP3750771B2 (ja) * 1997-12-25 2006-03-01 富士写真フイルム株式会社 画像記録方法および装置
US6014763A (en) * 1998-01-15 2000-01-11 International Business Machines Corporation At-speed scan testing
US6348929B1 (en) * 1998-01-16 2002-02-19 Intel Corporation Scaling algorithm and architecture for integer scaling in video
US6278491B1 (en) * 1998-01-29 2001-08-21 Hewlett-Packard Company Apparatus and a method for automatically detecting and reducing red-eye in a digital image
AU6169898A (en) * 1998-02-12 1999-08-30 Digital Paper Corporation Network image view server using efficient client-server, tiling and caching architecture
US6094689A (en) * 1998-02-13 2000-07-25 Hewlett-Packard Company System for coupling a host computer to an image scanner in which high level functions are migrated to the attached host computer
US6392699B1 (en) * 1998-03-04 2002-05-21 Intel Corporation Integrated color interpolation and color space conversion algorithm from 8-bit bayer pattern RGB color space to 12-bit YCrCb color space
US6141686A (en) 1998-03-13 2000-10-31 Deterministic Networks, Inc. Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control
AUPP248498A0 (en) * 1998-03-20 1998-04-23 Canon Kabushiki Kaisha A method and apparatus for encoding and decoding an image
US6163604A (en) 1998-04-03 2000-12-19 Lucent Technologies Automated fraud management in transaction-based networks
US6567983B1 (en) 1998-04-10 2003-05-20 Fuji Photo Film Co., Ltd. Electronic album producing and viewing system and method
US6092114A (en) 1998-04-17 2000-07-18 Siemens Information And Communication Networks, Inc. Method and system for determining the location for performing file-format conversions of electronics message attachments
JP3942267B2 (ja) 1998-04-21 2007-07-11 東芝テック株式会社 電子メールシステム
US6385772B1 (en) * 1998-04-30 2002-05-07 Texas Instruments Incorporated Monitoring system having wireless remote viewing and control
US6389460B1 (en) * 1998-05-13 2002-05-14 Compaq Computer Corporation Method and apparatus for efficient storage and retrieval of objects in and from an object storage device
US6154493A (en) 1998-05-21 2000-11-28 Intel Corporation Compression of color images based on a 2-dimensional discrete wavelet transform yielding a perceptually lossless image
US6556875B1 (en) * 1998-06-30 2003-04-29 Seiko Epson Corporation Device control system
JP3740322B2 (ja) 1998-07-02 2006-02-01 キヤノン株式会社 変換装置およびその方法
US6300947B1 (en) 1998-07-06 2001-10-09 International Business Machines Corporation Display screen and window size related web page adaptation system
US6028807A (en) * 1998-07-07 2000-02-22 Intel Corporation Memory architecture
US6256666B1 (en) * 1998-07-14 2001-07-03 International Business Machines Corp. Method and system for remotely managing electronic mail attachments
US6330073B1 (en) 1998-07-20 2001-12-11 Nw Coughlin System and method for merging multi-platform documents
US6925595B1 (en) * 1998-08-05 2005-08-02 Spyglass, Inc. Method and system for content conversion of hypertext data using data mining
US6198941B1 (en) * 1998-08-07 2001-03-06 Lucent Technologies Inc. Method of operating a portable communication device
KR100307906B1 (ko) 1998-08-29 2001-11-30 김덕우 복수의가입자번호를사용하는무선호출시스템및무선호출기
US6278449B1 (en) 1998-09-03 2001-08-21 Sony Corporation Apparatus and method for designating information to be retrieved over a computer network
US6493758B1 (en) 1998-09-08 2002-12-10 Microsoft Corporation Offline viewing of internet content with a mobile device
US6064437A (en) * 1998-09-11 2000-05-16 Sharewave, Inc. Method and apparatus for scaling and filtering of video information for use in a digital system
US6195026B1 (en) * 1998-09-14 2001-02-27 Intel Corporation MMX optimized data packing methodology for zero run length and variable length entropy encoding
US6285775B1 (en) 1998-10-01 2001-09-04 The Trustees Of The University Of Princeton Watermarking scheme for image authentication
US6195696B1 (en) * 1998-10-01 2001-02-27 International Business Machines Corporation Systems, methods and computer program products for assigning, generating and delivering content to intranet users
US6563517B1 (en) 1998-10-02 2003-05-13 International Business Machines Corp. Automatic data quality adjustment to reduce response time in browsing
US6414679B1 (en) * 1998-10-08 2002-07-02 Cyberworld International Corporation Architecture and methods for generating and displaying three dimensional representations
US6583813B1 (en) * 1998-10-09 2003-06-24 Diebold, Incorporated System and method for capturing and searching image data associated with transactions
US6289375B1 (en) 1998-10-30 2001-09-11 International Business Machines Corporation Method and apparatus for invoking network agent functions using a hash table
US6463177B1 (en) 1998-11-04 2002-10-08 Sharp Laboratories Of America, Inc. Dynamic management of embedded coded images in a digital storage device
US6393470B1 (en) * 1998-11-13 2002-05-21 International Business Machines Corp. Non intrusive automatic remote support for freeing overloaded storage in portable devices
US6509910B1 (en) * 1998-11-18 2003-01-21 Eastman Kodak Company Method and system for interfacing with a digital media frame network
US6512919B2 (en) * 1998-12-14 2003-01-28 Fujitsu Limited Electronic shopping system utilizing a program downloadable wireless videophone
JP2000196986A (ja) * 1998-12-25 2000-07-14 Olympus Optical Co Ltd 電子的撮像装置
US6487717B1 (en) 1999-01-15 2002-11-26 Cummins, Inc. System and method for transmission of application software to an embedded vehicle computer
US6411685B1 (en) * 1999-01-29 2002-06-25 Microsoft Corporation System and method for providing unified messaging to a user with a thin web browser
US6785730B1 (en) 1999-02-16 2004-08-31 Rebecca S. Taylor Generic communications protocol translator
US6615224B1 (en) 1999-02-23 2003-09-02 Lewis B. Davis High-performance UNIX file undelete
US6480853B1 (en) 1999-03-08 2002-11-12 Ericsson Inc. Systems, methods and computer program products for performing internet searches utilizing bookmarks
US6546143B1 (en) * 1999-03-12 2003-04-08 Hewlett-Packard Development Company Efficient wavelet-based compression of large images
US6438576B1 (en) 1999-03-29 2002-08-20 International Business Machines Corporation Method and apparatus of a collaborative proxy system for distributed deployment of object rendering
US6519617B1 (en) * 1999-04-08 2003-02-11 International Business Machines Corporation Automated creation of an XML dialect and dynamic generation of a corresponding DTD
US6351547B1 (en) * 1999-04-28 2002-02-26 General Electric Company Method and apparatus for formatting digital images to conform to communications standard
US6505236B1 (en) * 1999-04-30 2003-01-07 Thinmail, Inc. Network-based mail attachment storage system and method
US6724721B1 (en) * 1999-05-07 2004-04-20 Cisco Technology, Inc. Approximated per-flow rate limiting
GB9911941D0 (en) 1999-05-21 1999-07-21 Eidos Technologies Limited Electronic mail system
US6850946B1 (en) * 1999-05-26 2005-02-01 Wireless Valley Communications, Inc. Method and system for a building database manipulator
US6473794B1 (en) 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US7372485B1 (en) 1999-06-08 2008-05-13 Lightsurf Technologies, Inc. Digital camera device and methodology for distributed processing and wireless transmission of digital images
US6910068B2 (en) * 1999-06-11 2005-06-21 Microsoft Corporation XML-based template language for devices and services
SE513804C2 (sv) 1999-06-28 2000-11-06 Ericsson Telefon Ab L M Metod och anordning i ett telekommunikationssystem
DE19934787B4 (de) 1999-07-27 2004-08-05 T-Mobile Deutschland Gmbh Verfahren zur automatischen Anpassung der von einer datenbereitstellenden Einrichtung zu einer datenabrufenden Einrichtung zu übertragenden Daten an die Fähigkeiten dieses Endgerätes
US6553412B1 (en) 1999-09-10 2003-04-22 Avantgo, Inc. System, method, and computer program product for web content aggregation and development, and web content delivery to clients
US6360252B1 (en) * 1999-09-20 2002-03-19 Fusionone, Inc. Managing the transfer of e-mail attachments to rendering devices other than an original e-mail recipient
US6684257B1 (en) 1999-10-15 2004-01-27 International Business Machines Corporation Systems, methods and computer program products for validating web content tailored for display within pervasive computing devices
US7103357B2 (en) 1999-11-05 2006-09-05 Lightsurf Technologies, Inc. Media spooler system and methodology providing efficient transmission of media content from wireless devices
US6449658B1 (en) 1999-11-18 2002-09-10 Quikcat.Com, Inc. Method and apparatus for accelerating data through communication networks
US6477529B1 (en) 1999-12-06 2002-11-05 Research In Motion Limited Apparatus and method for dynamically limiting information sent to a viewing device
JP2001166909A (ja) 1999-12-14 2001-06-22 Nec Corp データ転送表示方法
US6400903B1 (en) * 1999-12-23 2002-06-04 Paul Conoval Remote camera relay controller method and apparatus
JP3893442B2 (ja) * 2000-01-14 2007-03-14 富士フイルム株式会社 プリント注文方法および装置ならびに印刷装置
US6742043B1 (en) * 2000-01-14 2004-05-25 Webtv Networks, Inc. Reformatting with modular proxy server
CN1205571C (zh) 2000-02-04 2005-06-08 美国联机股份有限公司 提供和呈现可缩放web文档的系统和方法
GB2365177A (en) 2000-02-07 2002-02-13 Hewlett Packard Co System and method for exchange of digital data from personal appliances
US7054905B1 (en) * 2000-03-30 2006-05-30 Sun Microsystems, Inc. Replacing an email attachment with an address specifying where the attachment is stored
US6704712B1 (en) * 2000-04-14 2004-03-09 Shutterfly, Inc. Remote film scanning and image transfer system, protocol and method
US6598076B1 (en) 2000-05-02 2003-07-22 Openshark, Inc. Method and apparatus for electronically communicating an electronic message having an electronic attachment
US6760762B2 (en) 2000-07-17 2004-07-06 Tele Services Solutions, Inc Intelligent network providing network access services (INP-NAS)
US6745235B2 (en) * 2000-07-17 2004-06-01 Teleservices Solutions, Inc. Intelligent network providing network access services (INP-NAS)
KR20000063801A (ko) 2000-08-04 2000-11-06 김대원 무선 단말기를 이용한 이메일 접속 및 서비스 장치 및 방법
WO2002015128A1 (en) 2000-08-18 2002-02-21 Amcor Limited System for creating an artwork
GB0023570D0 (en) 2000-09-26 2000-11-08 Volantis Systems Ltd Web server
JP2002202935A (ja) 2000-10-31 2002-07-19 Mishou Kk サーバ装置
EP1202188A3 (en) * 2000-10-31 2003-09-10 Mishou Co., Ltd. Server devices for displaying web pages
US6423892B1 (en) 2001-01-29 2002-07-23 Koninklijke Philips Electronics N.V. Method, wireless MP3 player and system for downloading MP3 files from the internet
US7185063B1 (en) * 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US20030110234A1 (en) * 2001-11-08 2003-06-12 Lightsurf Technologies, Inc. System and methodology for delivering media to multiple disparate client devices based on their capabilities
AUPR947701A0 (en) 2001-12-14 2002-01-24 Activesky, Inc. Digital multimedia publishing system for wireless devices
US6769771B2 (en) * 2002-03-14 2004-08-03 Entertainment Design Workshop, Llc Method and apparatus for producing dynamic imagery in a visual medium
US7003136B1 (en) * 2002-04-26 2006-02-21 Hewlett-Packard Development Company, L.P. Plan-view projections of depth image data for object tracking
US7051040B2 (en) * 2002-07-23 2006-05-23 Lightsurf Technologies, Inc. Imaging system providing dynamic viewport layering
US7149370B2 (en) 2003-03-07 2006-12-12 Nokia Corporation Method and device for image surfing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101448167B (zh) * 2007-11-28 2011-12-28 新奥特(北京)视频技术有限公司 任意区域的色彩校正特技调节方法及其系统
CN104106032A (zh) * 2012-02-15 2014-10-15 微软公司 多轮的提前推测性呈现和高速缓存
CN104106032B (zh) * 2012-02-15 2017-08-25 微软技术许可有限责任公司 多轮的提前推测性呈现的方法及装置

Also Published As

Publication number Publication date
US7051040B2 (en) 2006-05-23
KR20050029311A (ko) 2005-03-25
JP4852674B2 (ja) 2012-01-11
CA2493200A1 (en) 2004-01-29
EP1532548A1 (en) 2005-05-25
US20040017393A1 (en) 2004-01-29
CA2493200C (en) 2010-10-19
WO2004010341A1 (en) 2004-01-29
AU2003261216A1 (en) 2004-02-09
CN100461160C (zh) 2009-02-11
US20070009179A1 (en) 2007-01-11
JP2005534108A (ja) 2005-11-10
US7792876B2 (en) 2010-09-07

Similar Documents

Publication Publication Date Title
CN1679024A (zh) 提供为特定客户机设备类型而优化的动态视口分层的成像系统
CN1163837C (zh) 网络访问管理系统和方法
CN100342691C (zh) 多模式对话处理方法
CN1167265C (zh) 图像通信系统及其方法
CN100346286C (zh) 用于改变网络浏览器的布局和功能的方法
CN1138215C (zh) 用于归档和访问电子报文的数据处理系统和方法
CN1273931C (zh) 改进图象质量的方法和系统
CN1230767C (zh) 数字内容作成方法
CN1783083A (zh) 动态概要模块
CN1749958A (zh) 使用形状的公用图表
CN1669018A (zh) 手持终端框架系统
CN1551012A (zh) 编排系统、编排程序和编排方法
CN1856036A (zh) 字幕产生设备和方法
CN1577324A (zh) 文档管理方法和程序、记录介质和文档管理装置
CN1501285A (zh) 排版系统、排版程序和排版方法
CN1609795A (zh) 用于计算机平台的编程接口
CN1804835A (zh) 多级设备性能分层结构
CN1781089A (zh) 构建包含预编页码文档的包的方法和系统
CN1672158A (zh) 使用多个传递媒体的成批通信过程
CN1823330A (zh) 模块化文档格式
CN1795453A (zh) 实时墨迹作图
CN1910577A (zh) 图像文件一览显示装置
CN1140981A (zh) 卡片生成系统及方法
CN1761956A (zh) 基于片段的串行化系统与方法
CN1609793A (zh) 用于计算机平台的编程接口

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: VERISIGN INC.

Free format text: FORMER OWNER: LIGHTSURF TECHNOLOGIES INC.

Effective date: 20110916

Owner name: VERISIGN TCX INC.

Free format text: FORMER OWNER: VERISIGN INC.

Effective date: 20110916

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: XINI WEI'ERSI TCX CO.

Free format text: FORMER NAME: VERISIGN TCX INC.

CP01 Change in the name or title of a patent holder

Address after: Delaware

Patentee after: Pauusini Wells TCX

Address before: Delaware

Patentee before: Credit Suisse TCX

TR01 Transfer of patent right

Effective date of registration: 20110916

Address after: Delaware

Patentee after: Credit Suisse TCX

Address before: Delaware

Patentee before: VeriSign

Effective date of registration: 20110916

Address after: Delaware

Patentee after: VeriSign

Address before: California, USA

Patentee before: Lightwave Technology

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090211

CF01 Termination of patent right due to non-payment of annual fee