CN101714249A - 提高数字图像的可移植性 - Google Patents

提高数字图像的可移植性 Download PDF

Info

Publication number
CN101714249A
CN101714249A CN200910174921A CN200910174921A CN101714249A CN 101714249 A CN101714249 A CN 101714249A CN 200910174921 A CN200910174921 A CN 200910174921A CN 200910174921 A CN200910174921 A CN 200910174921A CN 101714249 A CN101714249 A CN 101714249A
Authority
CN
China
Prior art keywords
data
image
instruction
view data
group
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.)
Pending
Application number
CN200910174921A
Other languages
English (en)
Inventor
P·E·马蒂森
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN101714249A publication Critical patent/CN101714249A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4092Image resolution transcoding, e.g. by using client-server architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0008Connection or combination of a still picture apparatus with another apparatus
    • H04N2201/0065Converting image data to a format usable by the connected apparatus or vice versa
    • H04N2201/0068Converting from still picture data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0081Image reader
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0084Digital still camera
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0087Image storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3242Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of processing required or performed, e.g. for reproduction or before recording
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3252Image capture parameters, e.g. resolution, illumination conditions, orientation of the image capture device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3278Transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/333Mode signalling or mode changing; Handshaking therefor
    • H04N2201/33307Mode signalling or mode changing; Handshaking therefor of a particular mode
    • H04N2201/33378Type or format of data, e.g. colour or B/W, halftone or binary, computer image file or facsimile data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Image Processing (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Television Signal Processing For Recording (AREA)
  • Facsimile Image Signal Circuits (AREA)
  • Color Image Communication Systems (AREA)

Abstract

用来存储和转换不同自然格式数字图像(104a,104b,110)的技术,不必使成像设备的独立制造商在涉及图像的生成/捕捉和处理的因素方面达成共识。在传统的面向对象技术含义范围内,自然格式图像数据及其相关方法结合起来作为图像对象(108a,108b,108c)的一部分,并被传送到主机系统(102)。

Description

提高数字图像的可移植性
本申请是申请日为1999年8月17日、申请号为99812400.1、发明名称为“提高数字图像的可移植性”的专利申请的分案申请。
技术领域
本发明通常涉及数字成像领域,尤其是对可能处于不同自然格式的数字图像进行打包并把它们转换成通用格式的技术。
背景技术
诸如数码相机之类的数字成像设备使用日益增多,为个人计算机(PC)工业和摄影工业的结合创建了一个前所未有的机会。数码相机生成的图像非常适合PC使用,这使得数码相机和个人计算机的联姻看起来非常完美。然而,这个联合存在一个明显的障碍。
在数字摄影行业当前的实际是生产商彼此独立地发展数码相机。这种情况不可能改变。每一种这样的新相机一般都绑定一个全方位集成、允许在主机处理系统查看图像的软件包。该软件专门为那种相机工作设计,而不兼容支持其它类型或其它生产厂商的数码相机。在生产厂商之间几乎没有就相机如何存储数码图像、在存储它们之前应如何处理以及主机系统(例如PC)如何处理它们等方面达成协议。
在设备和主机之间传输图像的标准方面最接近的传统尝试是Twain驱动程序。Twain驱动程序是一个为应用程序提供从成像设备中收回数字图像的标准接口的软件模块。该模块将来自成像设备的自然格式图像转换成应用程序所使用的一些通用格式。这些通用格式的例子包括红、绿、蓝(RGB)位图和微软公司定义的设备无关位图(DIB)。
不同类型的数码相机经常使用不同的自然格式存储数字图像。给定的设备、自然格式和主机操作系统(OS)的组合所特有的Twain模块能存储在数码相机上。然后该Twain模块能和图像数据一起传送到每一新主机。然而由于数码相机的存储器资源有限,在数码相机上存储这样的模块是不切实际的。同时,这样的模块直接和主机操作系统相互作用,因为在相机中的病毒可能会传播到主机系统中,因此会造成一个安全危险。最后,Twain模块一般用一个特定的主机处理器所特有的代码编写,这使得Twain方案不能真正可移植。
因此希望有这样一种技术,它允许不同类型、以不同自然格式存储数字图像的成像设备与一个主机系统相连,并允许以主机所通用的格式来查看或处理这样的图像,而不必还载入一个体积庞大的设备-专用Twain驱动程序到主机系统中。
发明内容
本发明的一个实施例涉及一种成像设备,它具有用来生成传感器数据的图像传感器和用来存储图像对象的存储器。图像对象具有与传感器数据有关的图像数据,和由一抽象机执行以获得基于上述图像数据的转换图像数据的图像方法。
结合下面的详细描述、权利要求书和附图,本发明一个实施例的上述简要概括特征,以及其它实施例的其它特征和优点将阐述得更为清楚。
附图说明
图1是根据本发明一实施例的成像系统的总体系统视图。
图2表示了依据本发明另一实施例为提高数字图像的可移植性而执行的步骤。
图3表示了包括依据本发明另一实施例对软硬件进行配置的主机处理系统。
图4表示了包括依据本发明另一实施例对软硬件单元进行配置的成像设备的局部。
具体实施方式
象上面简要概述的那样,本发明的一个实施例使诸如数码相机等成像设备的制造商能够选择它们自身的自然格式来捕获和存储数字图像数据,而且同时也不必使主机系统具有用于生成图像的特定成像设备的具体知识。图像数据作为对象的一部分进行存储。因此,每一幅图像,不是以图像文件表示,而是作为传统意义上的面向对象软件中图像对象的一部分打包。图像对象包含图像数据和一种相关方法。这种方法是支持从自然格式向一种通用图像文件格式转换所需要的信息。每一种方法都定义了其相关图像数据自然格式所特有的转换。
主机系统中解释并执行图像方法的软件对所有的主机处理系统都可能会变成通用的,而不管硬件和操作系统,并能独立于成像设备而进行开发和分布。这样的软件实际上是诸如虚拟机之类的对象执行环境。由于在虚拟机和接收的图像数据之间没有依赖关系,新的和不同的成像设备可以不依赖于通用格式和应用软件的发展而独立进行开发。通用格式也消除了应用程序开发者识别和处理当前使用的不同图像文件格式的需要。图像对象使得成像设备制造商从不得不确定何为成像设备上存储图像的最佳方法、或是何为处理它们的最佳方法中摆脱出来。这样的解决方案是特别有益的,因为在虚拟机和/或通用图像文件格式中的转换或改进与在成像设备或应用软件中的转换相比,出现的可能要少得多。
图1表示本发明各种实施例的总体系统视图,其中图像对象先在不同的成像设备104a、104b和存储设备110中形成或存储,然后被传送到主机系统102中。每一对象108a、108b或108c包含至少一个数据部分,它是以用来捕获图像数据的特定类型成像设备的自然格式所表示的图像数据。例如,设备104a可以是一个扫描仪,用来生成一个表示用该设备获得的单一图像的对象108a。比较起来,设备104b可能是一个数码相机,用来生成一个单一对象108b,它具有两个数据部分114b1和114b2表示两幅静止图像。
一旦对象传送到主机系统102,它们的方法就被抽象机120解释和执行,从而得到数据文件116a(来自于对象108a)、116b1和116b2(来自于对象108b)、和116c(来自于对象108c)。这些文件将包含以预定义的通用格式表示的数字图像。然后由应用程序124访问这些数据文件从而操作或显示每一数据文件中的图像。可以将应用程序124设计用来进一步地把图像转换成其它多种文件格式之一,包括联合摄影专家组格式(JPEG)、图形交换格式(GIF)、可互换的文件格式(IFF)、标记图像文件格式(TIFF)。为方便起见,接下来的讨论将仅仅涉及设备104a、对象108a和相关的数据和方法114a、115a之间的交互作用。然而,还必须认识到该讨论并不仅仅局限于这一实施例,还可以应用到其它可供选择的设备、对象、数据和方法,并包含如图1中所示的那些部分。
将在图1的系统实施例中所执行的步骤在图2中表示出来,有助于更好地认识到在本发明实施例和使用Twain模块从设备传送图像数据到主机的传统技术之间的一些差异。依据本发明一实施例生成并传送可移植图像数据的技术可以从图2的步骤204开始,捕获原始传感器数据。根据与诸如数码相机等成像设备有关的公知技术这是可以实现的。接下来,在原始传感器数据的基础上形成预定义自然格式的图像数据114a。在一实施例中,如步骤208所示,由成像设备104a根据传统和/或专用操作,如噪音去除、颜色插值、图像压缩和对所获得的期望自然格式数据进行缩放等,对原始传感器数据进行处理。作为选择,可以跳过步骤208而不对原始传感器数据进行有效处理。在那种情况下,认为原始传感器数据是处于自然格式的。在步骤208中处理的数量涉及随后讨论的潜在性能权衡。然后以步骤212继续进行操作。
在步骤212中,成像设备104a形成一个包含图像数据114a和相关图像方法115a的对象108a。图像方法115a是一个由抽象机120执行、用来把图像数据从自然格式转换成预定义通用格式的程序或是指令列表。方法115a是以抽象机120的指令集为基础的。在大多数情况下,因为能够对抽象机的指令集进行优化以适应于图像处理,以及能够将如存储器分配等资源分配建立到抽象机120中而不是在方法中,因此都希望该方法能够比传统的Twain模块小得多。
在成像设备中已经形成图像对象108a以后,图2中的操作继续进行,将对象传送到主机系统。这可以通过使用诸如有线连接等适于传送图像数据的公知通信介质,或是诸如非易失性存储卡等可移动的存储设备110来实现。
介于通信介质和主机系统的抽象机120之间的接口是对象驱动程序122。对象驱动程序122在主机系统102中用适当的硬件和软件(包括操作系统)进行通信从而使对象108a可以用于抽象机中。对象驱动程序装入处于本机的OS下的抽象机,并最终使它能够执行该方法。在一实施例中,对象驱动程序122包含用来检索那些依据标记图像文件格式(TIFF)进行配置的文件的、公知的软件驱动程序。TIFF是一种用来在PC机和Macintosh计算机上存储位映像图像的通用格式,并能够被用来执行对象108a。其它用来执行对象108a及其相关驱动程序122的技术可以象本领域普通技术人员所公认的那样使用。
加载程序(未显示)将该方法载入到抽象机中并传送其向图像数据一指针。在步骤220中,加载程序还识别图像对象的一定信息组,如图像数量等,并重复初始化抽象机从而依次处理每一幅图像。这会使图像数据114a被转换和处理成通用格式的转换图像数据。转换数据通常放于独立数据文件116a中,并可以存储在如硬盘驱动器等大存储设备中。然后这个数据文件116a可以更进一步地被应用程序124处理成期望完成的形式。
从整体系统的观点已经对本发明一实施例进行了描述后,图3和图4说明了本发明的其它实施例,如成像设备104a和主机系统102。图3是主机处理系统102的一个实施例,它包含有为接受和处理图像对象108a而进行配置的软硬件。这个特殊实施例集中在总线332上并连接有一个处理器334。系统102可以是一个传统的具有Intel处理器、微软窗口图形用户界面和操作系统的个人电脑。尽管在存储器328中,操作系统软件340、对像驱动程序122和抽象机120示为独立载入的,但是本领域普通技术人员将会意识到这些软件组成部分有时可以全部或部分结合,并分布在存储器328、大存储设备338(如磁转盘)和如光盘等便携式存储器(未显示)之间。
处理器334执行在存储器328(如随机存取存储器(RAM))和大存储设备338中存储的指令。存储器328是任何一种机器可读介质如半导体集成电路,当其上加载的指令被处理器334执行时会引起对主机处理系统102的配置步骤,从而接受和处理来自不同成像设备和存储设备的对象。
主机处理系统102还包括一个通信接口316,它遵守任何一种传统计算机外围总线标准,包括RS-232串口、通用串行总线(USB)、和IEEE标准1394-1995。除了经由实线进行通信以外,还试图将无线通信介质例如红外线或射频用于数据传输。作为通信介质的另一种选择,可以考虑使用许多不同的可移动存储设备,包括个人电脑存储卡国际协会(PCMCIA)、英特尔公司的闪速小型插件和其它任何一种适于传送数字图像数据的非易失性存储介质。
图3中主机处理系统102还使一用户显示设备接口342有特色,如一个图形适配器插件,它能连接任何一种传统的显示设备,包括阴极射线管(CRT)、液晶显示器(LCD)、以及其它任何一种适于观察电子图像的显示技术。当然,主机处理系统102也可以附加的接口(未显示)用来执行附加的I/O(如网络接口控制器)为特色。
已经对本发明一系统实施例中的主机部分进行了讨论之后,图4说明了包含软硬件部分的成像设备104a。图4的实施例是再次基于总线432的,对其连接一处理器424和存储器428。作为选择,可以用微控制器来取代处理器424和存储器428。存储器可以是一诸如半导体集成电路RAM的机器可读介质,或者是一诸如只读存储器(ROM)的非易失性半导体存储器。存储器428载有处理器424执行的指令,从而使图像数据114a和方法115a结合起来作为图像对象108的一部分(见图1)。这样的指令在图4集中表示为对象形成软件412。通常图像方法115a可以象下面描述的那样发展成为一个独立的软件部分。
存储器428还可包括可选的信号处理软件408,用来将从图像传感器404处接收的原始传感器数据处理成为自然格式的图像数据114a。在处理原始传感器数据时为获得更好的性能,图像处理逻辑电路436还可以被包含在成像设备104中。可以将逻辑电路436集成在图像传感器404的电路小片中,在一实施例中该传感器可以是互补型金属氧化物半导体(CMOS)活动象素传感器。
尽管没有在图4中显示出来,存储器428还可存储由处理器424执行的软件,用来访问接口416和420从而和成像设备104a的外部设备进行通信。至通信介质的接口416遵守前面关于主机系统方面已经讨论过的计算机外围总线标准。同样,接口420可以连接一个可移动的存储设备,如闪速存储卡用于对图像对象108a的非易失性存储和传输。
图4中本发明实施例利用一个主要基于软件的处理器和总线结构来形成和传送图像对象108a到主机系统102。作为选择,也可以是一个主要基于硬件的结构,以门阵列和专用集成电路(ASICs)为基础,在形成和传输图像对象108a方面执行与前面描述相同的功能。
抽象机和图像对象
此次公开的剩余部分讨论了用来执行图像对象108a和抽象机120的技术,包括一组可以用来构造图像方法115a的指令。
如前面讨论的那样,对象108a可以实施成一标记图像文件格式(TIFF)/电子摄影(EP)结构或文件。TIFF文件包括一个文件头,其指向图像数据114a和相关方法115a的位置。TIFF文件和它的文件头能够被对象驱动程序122访问,并能够用在抽象机120中。
开发图像方法115a的过程可以由成像设备104a的开发者从对预定义自然格式和通用格式进行比较开始。开发一种算法用来将图像数据114a从自然格式转换成通用格式。这样的算法要么是众所周知的,要么是很容易被本领域普通技术人员开发出来的。然后可以通过使用高级编程语言例如C语言和/或如下所述的抽象机120低级指令集在程序中实现该算法。然后对该程序进行测试和选择性优化。然后将该程序编译成表示低级指令的字节码。这就成为所期望的图像方法115a。然后将该方法存储在成像设备104a上的非易失性存储器(如存储器428)中,做为对象形成软件412的一部分(见图4)。
驻留在成像设备104a中的图像对象108a所需的储存开销与在存储空间非常宝贵、诸如数码相机之类的便携应用有关。该存储空间依赖于,(1)用于将图像数据114a从自然格式转换为通用格式的处理过程的数量或复杂程度,以及(2)自然格式数据114a的大小。通过选用在计算上接近于预定义通用格式的自然格式,图像方法115a就变成简单数学或数据移动指令的相对简短列表。相比较而言,如果需要将图像数据114a从一个高压缩的自然格式(如JPEG或分形技术(fractal technology))解压成为通用格式,方法115a就可能会相对较大。在后面的情形中,任何通过压缩图像数据而获得的存储空间收益会被解压图像数据所需的更复杂和更长的方法所抵消。
着眼于储存空间的考虑,以构成每种方法为基础的抽象机指令集需要高度的优化。例如,隐含在抽象机120中使用的输入缓冲器(用于接收图像数据114a)和输出缓冲器(用于存储通用格式的转换数据)的位置。地址计算和大部分的数据移动可以通过抽象机120,而不是通过图像方法115a中的特定指令来隐含实现。因此,该方法仅仅需要关注将其相关的图像数据114a转换成通用格式所需的算法。
除了优化指令集以保持图像方法115a的紧凑之外,另一种节省成像设备上存储空间的方法是关联一份方法115a的拷贝和多套的图像数据,如图1中的对象108b所示。以这种方式,单个图像对象108b包含图像数据114b1和114b2中的多个图像,这实际上变得类似于传统胶片的卷动,其中执行方法115b大致相当于生成胶片。
除了存储空间以外,对于成像设备厂商而言另一个需要考虑的可能是在图像处理方法中保护知识产权。这些处理可能在原始传感器数据上执行以提高最终图像的质量,例如插值彩色滤光器阵列模式。γ矫正,白色平衡算法。成像设备104a的厂商可能希望让关键的图像处理功能在成像设备内部执行,而不是将这些图像处理算法植入方法115a中,这样当对象108a传输给主机系统102时,这些算法会暴露给潜在的竞争对手。这会导致图像数据114a是原始传感器数据的强烈处理版本。取这到一极端,那些希望强烈保护他们图像处理技术的厂商可能会在图像设备里面包含所有的这些处理过程,从而导致他们的图像数据114a已经是通用格式。在那种情况下,相应的方法115a仅仅需将数据114a拷贝到主机系统102的输出缓冲器中。在另一极端,在把图像数据114a打包成对象108a之前对原始传感器数据只不过没有进行任何处理,从而使成像设备104a中的图像处理过程保持绝对最小。方法115a将会定义所有需要用于得到通用格式的处理过程,以及在主机系统中抽象机120执行所有的这些处理过程以获得通用格式的图像数据。
虚拟机结构
抽象机120的一个例子为虚拟机。虚拟机是一自主式的操作环境,其行为类似于执行图像方法115a的单独计算机。虚拟机帮助主机系统隔离接收对象108a中可能存在的任何病毒。虚拟机可以有一个指令集、寄存器集和与主机处理系统102的硬件平台无关的存储器模型。一个可用的具有公知的解释器、编程语言和相关工具的虚拟机的例子是JAVATM虚拟机和编程语言。
一般而言,虚拟机必须进行优化以允许为图像方法115a编写相对小的代码。其他需求的特征为一个简单的虚拟机接口和快速的代码编译,用例如已知的及时代码转换技术来解释方法115a。虚拟机应允许动态存储器分配在执行方法115a时为临时数据存储创建缓冲区。这样在方法115a中用于存储器管理所需的开销能够最小化。同样的,主机系统102必须具有相对于图像对象108a的需求而言足够的可用资源(例如,存储器),这样主机系统能够同意图像对象108a的任何合理请求。
同样必须给出虚拟机的指令集。对于图1中和成像技术有关的实施例而言,指令集必须为图像处理进行优化。例如,可以不需要用于处理字符串、多任务执行或图形用户界面的指令。指令集必须设计成具有足够的灵活性来允许将图像数据114a从几个不同的自然格式转换成一通用格式。虚拟机提供的任何功能及其指令集必须假定不了解能够用于存储图像数据114a的任何自然格式。
对于指令集还有一个考虑是支持一个具有相对较深堆栈的面向堆栈流控制(调用/返回/入栈/出栈)。例如,执行虚拟机的主机系统102有能力为扩展的虚拟堆栈提供足够的资源,使之能够处理对象108a任何合理的堆栈用法。除此之外,虚拟机必须提供编程约束:如果主机系统102可利用的话,就能够利用并行处理支持的优点,这是因为对于图像处理算法而言,并行处理是一个关键的性能提高因素。最后,虚拟机同样提供灵活的异常处理,对每一个可能的异常提供已定义的缺省行为。同样期望支持高级流控制(if/for/while/case)来尽可能地简化编程和最小化对象108a中流控制的开销。在把一个类型的变量造型成另一类型时,灵活的类型检测是另一个必要特征。
示范虚拟机-虚拟图像处理器
在一实施例中虚拟机可以是下面所描述的虚拟图像处理器(VIP)。在该实施例中,由于没要求用户干预,VIP没有考虑传统的I/O支持。VIP仅仅是将图像数据114a作为自然格式的输入来进行处理,以及生成图像数据作为通用格式的输出。主机系统102通常提供用于这样一个任务所需的存储器资源,从而使图像对象108a的程序设计者不需要准确知道存储器资源是如何提供的。
从下面的描述中可以清楚看出,VIP的指令集和传统硬件微处理器的指令集毫无相似之处。这一部分是因为希望减少方法115a的代码大小,还因为非常强调图像数据114a的数学处理过程。VIP的指令集应允许图像处理所需要的操作给定尽可能少的空间。例如,由于相对大量的有关复杂性已建立在VIP中而不是在指令集中,流控制指令与传统微处理器中的相比要极大地简化。因此一个单一指令能够触发在传统硬件微处理器中实现起来非常复杂的事件。同样,用于VIP的指令可以有不同数量的操作数,并蕴涵远远多于他们在硬件微处理器中所蕴涵的内容。数学表达式不需要分解成一连串的,使用一组有限物理寄存器的分离数学操作的数据移动指令。相反的,表达式直接在图像方法115a中表示并由VIP解释。赋值表达式可表示为一个目标寄存器跟随一以逆波兰计数法(RPN)表示的表达式。因此运算符以表达式的一部分而不是以机器指令的形式直接编码到图像方法115a中。管理类型安排和自动转换的规则可隐含在任何表达式中。
在本实施例中打算有七种程序控制指令和五种数据操作指令。
  指令   描述
  goto   转移程序控制
  ifgoto   条件转移程序控制
  select   有索引的程序控制转移
  call   转移程序控制到一子程序
  return   从子程序中返回程序控制
  exit   正常中断VIP程序的执行
  abort   异常中断VIP程序的执行
  push   将基本数据变量压入数据堆栈中
  pop   从数据堆栈中弹出一基本数据变量
  move   移动数据并可选计算一表达式的
  create   为程序使用创建一个新数据单元。
  destroy   释放一个已创建的数据单元
程序控制指令用于指示程序执行流。不象在传统的微处理器中那样,这儿没有大量的条件分支指令。同样的,这儿具有对索引跳转的直接支持(相对应于c编程语言中的switch语句)。目标地址长度依赖于方法115a的总的长度是可变的。
数据移动指令实际上做转换和处理图像的工作。在一实施例中,没有指令直接执行数学或逻辑运算,因为这些运算嵌入在和每个指令相关的运算对象列表中。同样的,不象传统的微处理器那样,一个指令的运算对象列表可具有不同数量的运算对象。
push指令将一个数据变量压入数据堆栈中。注意数据堆栈不同于程序流控制堆栈。Push指令只能用于将单独的简单数据类型压入数据堆栈中。也就是说,它不能用来将整个数组压入堆栈中。Push指令的格式是一个运算符后面跟随表示要压入堆栈的数据的数据变量索引。数据变量的类型和大小编码在操作对象中。
pop指令从数据堆栈中弹出一数据变量。相关的数据变量并不需要和原先压入堆栈的数据具有相同的类型。如果变量类型和现在堆栈顶部的数据类型不匹配,根据用于定义方法115a的高级编程语言的管理类型造型的相同规则会执行自动的类型造型。
move指令将数据从它的源头传送到目的地,可选地计算在源内进行编码的表达式的值。那就是说,源不需要是一个单独的变量,它可以是用逆波兰计数法(RPN)编码的任意复杂的表达式。
creat指令动态地创建一个新的数据变量并分配给该变量一个标记。创建的变量可以是单个基本数据类型或者一基本数据变量的数组。destroy指令释放由create指令为数据变量分配的存储器。用于定义方法115a的高级编程语言的编译器可使用create和destroy指令来管理方法115a的子程序中所使用的自动变量的动态存储器。这不同于C编程语言中使用堆栈来创建自动变量的正常实践。因为VIP的目的不是为了象物理微处理器一样的执行,所以不需要任何硬件堆栈的推论。
VIP高级语言
由于VIP指令集为用于图像处理器的虚拟实现进行了优化,VIP中的低级编程语言如汇编语言可与微处理器中的传统汇编语言完全不同。由于上述讨论的适合成像优化的内在限制,它也不可能实现高级语言如C或C++的完整版本用来定义方法115a。因此一个适当的折衷办法可以是C语言的子集。利用这样一个C的子集为VIP所写的程序可没有连接步骤。反之,它们可以作为一个单一文件或者是作为一系列的包含文件(最终是一单一文件)进行编译。
说明
允许的数据类型和上述讨论的指令集一起使用。指针指向一定义的类型(即没有无效指针)。指向指针的指针是允许的,但是不能超过双重间接。多维数组和传统C语言中的说明相同。typedef和struct说明符就像期望的一样。复杂的数据类型如struct能够用来作为数组元素。某些传统功能如位字段在VIP实施例的上下文中实际上是没有意义的,因此为简化起见是不允许位字段的。
类型限定语
在VIP中是允许const类型限定语的,但是由于在VIP程序(即方法115a)范围之外的任何进程中变量都是不可见的,因此易失的限定语是没有意义的。用来处理复杂数据类型如struct的技术在方法115a中没有给出,但是可以从编译的VIP代码结构定义推理得出。这是VIP和传统微处理器之间的主要差别,例如:
struct
{
double real_part;
double imaginary_part;
}complex[10];
short index=1;
complex[index].real_part=0.0
使用传统的编译程序,上述代码段中所示的赋值语句可以被分成一系列指令,在它组成部分已知位移的基础上从它的基本地址计算结构字段的地址。然而,由于每一数据项指定了一个唯一的ID号,因此用VIP对线性地址空间没有直接的推论。数据项在存储器中可以是连接的,也可以是不连接的。VIP将复杂数据类型引用归结为一个单一ID号从而唯一区分所要求的变量。VIP能够在ID号和数组索引间进行区分,所以不会造成含糊不清。前面的例子是一个数组结构,每一结构包含两个数据项。在编译之后,可以表示为:
double real_part[10];
double imaginary_part[10];
这将导至等价的赋值语句:
real_part[index]=0.0;
在这种方式下,编译程序能够将结构定义和引用分成与VIP使用的存储方案相适合的基本类型。
存储类
象上面描述的那样,复杂数据类型的结构在数据中而不是在可执行代码中装入,且数据存取利用引用而不是地址计算来实现。在VIP实施例中有两个例外:输入数据缓冲区用来接受图像数据114a,输出数据缓冲区用于保持转换后的图像数据。在源文件编译形成方法115a的同时定义这些连接字节数组的大小。它们可以利用标准C语言中没有包括的存储类从其它的存储类型中区分出来。
有一输入缓冲区和一输出缓冲区。任何用输入存储类进行说明的变量都指的是输入缓冲区。任何用输出存储类进行说明的变量都指的是输出缓冲区。所有用这些存储类中之一来定义的类型都映射到各自的存储器数组,对于它的开始部分。在对方法115a给予VIP控制以前,由加载程序设置两个专用变量:input_size和output_size。它们定义了各自缓冲区的字节长度,并且能在方法115a中没有首先声明的情况下使用(它们通过定义是有效的)。在这个方面它们类似于标准C语言中定义的argc和argv变量该变量对VIP是无效的(它们是无意义的服务)。使用这些存储类和专用变量,程序员能够将任何一种数据类型映射到输入或输出缓冲区。例如:
    input unsigned integer raw_data[input_size/4];
    //Declares an array of integers representing the entire raw image
from image data 114a;
    input float raw_fdata[input_size/4];
    //Declares an array of floats representing the entire raw image
from image data 114a.
变量raw_data[n]和raw_fdata[n]指的是相同的数据,但是可以被解释成不同的类型。
单一方法115a能够通过有装入程序为每幅图像初始化输入、输出缓冲区和大小变量来处理多幅不同尺寸的图像。因为成像设备104a生成通用格式的图像,因此最简单可行的图像方法将是直接复制输入缓冲区到输出缓冲区。例如
main()
{
     input byte raw[input_size];
     output byte finished[output_size];
     finished=raw;
}
注意该赋值语句对C++类赋值语法的相似性。这种对标准C语法的偏离是为了允许隐含并行处理。
数组
在赋值语句或表达式中使用的,没有明确的索引的任何数组类型意味着操作在整个数组上进行,并且在数组元素之中没有数据相关性。考虑下面的代码片断:
short x[256];
short y[256];
x=y*1.414;
这会将在y数组中的每一个单元乘以常数1.414并把结果赋给在x数组中相应的单元。如果数组的大小不匹配,操作会对较小数组中单元的个数进行循环。隐含在其中的是如果可能操作和赋值可以并行执行。该语句意味着没有特定的索引排序。一个相同的标记可以是:
x[]=y[]*1.414;
这允许多维数组对某一维能够并行处理,如果需要的话。例如:
const short column=640;
const short row=480;
unsigned byte image[column][row];
image[][12]=255;
该代码片断会把值255赋给在图像数组12行中的所有单元。当为传统的微处理器编译该类型的高级代码时,编译器会生成一连串的机器指令来显式执行在语句中隐含的循环操作。然而VIP编译器,只是简单地记录一个隐含循环操作和需要的所有相关参数,VIP本身进行必须的索引重复。这会以性能为代价来减少在方法115a中存储代码的大小。这种权衡是可以接受的,如果安装VIP的主机系统102的性能足够以一个可接受速率来执行所需的功能。
总结而言,本发明的各种实施例可以描述为利用图像对象概念来提高静态图像数据可移植性的技术。可以预计所述的图像对象和抽象机技术可以适用于其他类型的,同样是相干的和有界的数据,例如某些类型的音频和视频。在那些例子中,图像方法可被通常用于压缩和解压缩音频/视频序列的音频/视频代码所替代。
上述本发明的实施例当然服从于在结构和实现方式的其它变化。例如,虽然图1说明在每一个成像或存储设备中有一个单一的对象,这样做仅仅是为了在给定实施例中简化说明本发明是如何工作的。的确,在本领域的一般技术人员都会明白每个设备可以创建多个对象并在需要时传输给主机系统以表示由每个设备生成的多个图像。同样的,对于如图3和4所示的计算结构会有许多其他的变化是可能完成图像捕获和图像对象格式。因此本发明的范围不由所述的实施例确定,而是由附加的权利要求和这些权利要求合法的等效方式说明来确定。

Claims (5)

1.一种方法,包含:
传送具有与第一方法的一组指令有关的第一图像数据的图像对象到处理系统;并且
包括在其内存储了第一方法的一组指令的存储器的所述处理系统中的抽象机执行第一方法从而以第一图像数据为基础生成第一转换图像数据。
2.如权利要求1所述的方法,还包含:
传送具有与第二方法的第二组指令有关的第二图像数据的第二对象到处理系统,第一和第二图像数据具有不同的格式;并且
抽象机执行第二方法的第二组指令从而以第二图像数据为基础生成第二转换图像数据,第一和第二转换图像数据具有相同的格式。
3.如权利要求1所述方法,包含:
传送与所述第一方法的一组指令有关的第二图像数据到处理系统;并且
抽象机执行所述第一方法的一组指令从而以第二图像数据为基础生成第二转换图像数据,第一和第二转换图像数据具有相同格式。
4.一种数据处理系统,包含:
处理器;
与处理器相连的存储器,具有指令,该指令在被处理器执行时会引起以下步骤:对系统进行配置从而分别从第一和第二成像设备接收第一和第二对象,每一对象具有图像数据和相应的方法的一组指令;以及
抽象机,用以执行每一对象的相应的所述方法的一组指令从而以图像数据为基础获得相应的转换数据。
5.如权利要求4所述的系统,其中转换数据是具有相同图像文件格式的第一和第二图像文件的一部分。
CN200910174921A 1998-08-27 1999-08-17 提高数字图像的可移植性 Pending CN101714249A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/141,210 US7010177B1 (en) 1998-08-27 1998-08-27 Portability of digital images
US09/141210 1998-08-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN99812400A Division CN1324469A (zh) 1998-08-27 1999-08-17 提高数字图像的可移植性

Publications (1)

Publication Number Publication Date
CN101714249A true CN101714249A (zh) 2010-05-26

Family

ID=22494675

Family Applications (2)

Application Number Title Priority Date Filing Date
CN99812400A Pending CN1324469A (zh) 1998-08-27 1999-08-17 提高数字图像的可移植性
CN200910174921A Pending CN101714249A (zh) 1998-08-27 1999-08-17 提高数字图像的可移植性

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN99812400A Pending CN1324469A (zh) 1998-08-27 1999-08-17 提高数字图像的可移植性

Country Status (9)

Country Link
US (1) US7010177B1 (zh)
JP (1) JP4377066B2 (zh)
KR (1) KR100579216B1 (zh)
CN (2) CN1324469A (zh)
AU (1) AU5567999A (zh)
DE (1) DE19983504B4 (zh)
GB (1) GB2357926B (zh)
TW (1) TW442759B (zh)
WO (1) WO2000013132A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105593897A (zh) * 2013-09-30 2016-05-18 慧与发展有限责任合伙企业 用于修改源数据的数据对象的覆盖

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963347B1 (en) * 2000-08-04 2005-11-08 Ati International, Srl Vertex data processing with multiple threads of execution
GB2382509B (en) * 2001-11-23 2003-10-08 Voxar Ltd Handling of image data created by manipulation of image data sets
JP4300767B2 (ja) * 2002-08-05 2009-07-22 ソニー株式会社 ガイドシステム、コンテンツサーバ、携帯装置、情報処理方法、情報処理プログラム、及び記憶媒体
JP2006053690A (ja) 2004-08-10 2006-02-23 Ricoh Co Ltd 画像処理装置、画像処理方法、画像処理プログラムおよび記録媒体
US20060259239A1 (en) * 2005-04-27 2006-11-16 Guy Nouri System and method for providing multimedia tours
CN102281372B (zh) * 2010-06-12 2014-02-19 虹光精密工业(苏州)有限公司 自动存取影像处理程序的扫描设备
US9779471B2 (en) * 2014-10-01 2017-10-03 Qualcomm Incorporated Transparent pixel format converter
US9749548B2 (en) 2015-01-22 2017-08-29 Google Inc. Virtual linebuffers for image signal processors
US9965824B2 (en) 2015-04-23 2018-05-08 Google Llc Architecture for high performance, power efficient, programmable image processing
US10291813B2 (en) 2015-04-23 2019-05-14 Google Llc Sheet generator for image processor
US9769356B2 (en) 2015-04-23 2017-09-19 Google Inc. Two dimensional shift array for image processor
US9772852B2 (en) 2015-04-23 2017-09-26 Google Inc. Energy efficient processor core architecture for image processor
US10095479B2 (en) 2015-04-23 2018-10-09 Google Llc Virtual image processor instruction set architecture (ISA) and memory model and exemplary target hardware having a two-dimensional shift array structure
US9785423B2 (en) 2015-04-23 2017-10-10 Google Inc. Compiler for translating between a virtual image processor instruction set architecture (ISA) and target hardware having a two-dimensional shift array structure
US9756268B2 (en) 2015-04-23 2017-09-05 Google Inc. Line buffer unit for image processor
US10313641B2 (en) 2015-12-04 2019-06-04 Google Llc Shift register with reduced wiring complexity
US9830150B2 (en) 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
US10204396B2 (en) 2016-02-26 2019-02-12 Google Llc Compiler managed memory for image processor
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10380969B2 (en) 2016-02-28 2019-08-13 Google Llc Macro I/O unit for image processor
US20180005346A1 (en) 2016-07-01 2018-01-04 Google Inc. Core Processes For Block Operations On An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register
US20180005059A1 (en) 2016-07-01 2018-01-04 Google Inc. Statistics Operations On Two Dimensional Image Processor
US10546211B2 (en) 2016-07-01 2020-01-28 Google Llc Convolutional neural network on programmable two dimensional image processor
US20180007302A1 (en) 2016-07-01 2018-01-04 Google Inc. Block Operations For An Image Processor Having A Two-Dimensional Execution Lane Array and A Two-Dimensional Shift Register

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5495581A (en) * 1992-02-25 1996-02-27 Tsai; Irving Method and apparatus for linking a document with associated reference information using pattern matching
US5907640A (en) * 1993-03-25 1999-05-25 Live Picture, Inc. Functional interpolating transformation system for image processing
US5450140A (en) 1993-04-21 1995-09-12 Washino; Kinya Personal-computer-based video production system
EP0653700B1 (en) * 1993-11-16 2002-01-30 Fujitsu Limited Network printer apparatus
JP3893480B2 (ja) * 1994-09-28 2007-03-14 株式会社リコー デジタル電子カメラ
JPH08297669A (ja) * 1994-12-27 1996-11-12 Internatl Business Mach Corp <Ibm> 複合ドキュメント内の複数のパートを自動的にリンクするシステムおよび方法
US5873077A (en) * 1995-01-13 1999-02-16 Ricoh Corporation Method and apparatus for searching for and retrieving documents using a facsimile machine
US5848413A (en) * 1995-01-13 1998-12-08 Ricoh Company, Ltd. Method and apparatus for accessing and publishing electronic documents
JPH0935032A (ja) * 1995-07-24 1997-02-07 Mitsubishi Electric Corp Icカードと情報機器端末
US5762552A (en) * 1995-12-05 1998-06-09 Vt Tech Corp. Interactive real-time network gaming system
GB9526129D0 (en) * 1995-12-21 1996-02-21 Philips Electronics Nv Machine code format translation
US5854693A (en) 1996-02-07 1998-12-29 Sharp Kabushiki Kaisha Image forming system
US5884262A (en) * 1996-03-28 1999-03-16 Bell Atlantic Network Services, Inc. Computer network audio access and conversion system
US5778378A (en) * 1996-04-30 1998-07-07 International Business Machines Corporation Object oriented information retrieval framework mechanism
US6005613A (en) * 1996-09-12 1999-12-21 Eastman Kodak Company Multi-mode digital camera with computer interface using data packets combining image and mode data
US6161148A (en) * 1996-09-27 2000-12-12 Kodak Limited Computer method and apparatus for interactive objects controls
JP4330665B2 (ja) * 1996-10-30 2009-09-16 株式会社リコー クライアントサーバシステムおよび画像処理装置
US6166729A (en) * 1997-05-07 2000-12-26 Broadcloud Communications, Inc. Remote digital image viewing system and method
US6215495B1 (en) * 1997-05-30 2001-04-10 Silicon Graphics, Inc. Platform independent application program interface for interactive 3D scene management
US6260021B1 (en) * 1998-06-12 2001-07-10 Philips Electronics North America Corporation Computer-based medical image distribution system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105593897A (zh) * 2013-09-30 2016-05-18 慧与发展有限责任合伙企业 用于修改源数据的数据对象的覆盖

Also Published As

Publication number Publication date
TW442759B (en) 2001-06-23
GB2357926A (en) 2001-07-04
KR20010072958A (ko) 2001-07-31
GB0104702D0 (en) 2001-04-11
JP2002524006A (ja) 2002-07-30
DE19983504T1 (de) 2001-07-26
DE19983504B4 (de) 2009-09-24
AU5567999A (en) 2000-03-21
KR100579216B1 (ko) 2006-05-11
CN1324469A (zh) 2001-11-28
WO2000013132A1 (en) 2000-03-09
JP4377066B2 (ja) 2009-12-02
US7010177B1 (en) 2006-03-07
GB2357926B (en) 2002-08-07

Similar Documents

Publication Publication Date Title
CN101714249A (zh) 提高数字图像的可移植性
US6438745B1 (en) Program conversion apparatus
US5754766A (en) Integrated circuit system for direct document execution
US6349297B1 (en) Information processing system for directing information request from a particular user/application, and searching/forwarding/retrieving information from unknown and large number of information resources
US8203733B2 (en) Image processing apparatus, storage medium in which image processing program is stored, and image processing method
US6424989B1 (en) Object-oriented transaction computing system
EP0949566A2 (en) Method and system for performing static initialization
WO1999030226A2 (en) Apparatus and method for allowing object-oriented programs created with different framework versions to communicate
CN111104120A (zh) 神经网络编译方法、系统及相应异构计算平台
US20080168431A1 (en) Program Code Generation Support Device and Method, Program Execution Device and Method, and Program Code Compression Processing Device and Method and Program Thereof
EP0889405A1 (en) Software debugging method
US5946222A (en) Method and apparatus for performing a masked byte addition operation
US20110283255A1 (en) Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof
EP0875825A2 (en) High speed assemble processing system
Escrivá et al. OpenCV 4 Computer Vision Application Programming Cookbook: Build complex computer vision applications with OpenCV and C++
JP7140935B1 (ja) リアルタイムアプリケーションのための決定的メモリ割り当て
US8881098B2 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
CN101432707B (zh) 用于实现交织图像数据的快速提取的系统和方法
JP2643091B2 (ja) 共通データ・タイプを有する複数の文書書式イメージの文字認識を管理するための方法およびシステム
Eriksson et al. ILIAD—a High Level Dialogue System for Picture Analysis
Krusemark et al. Image random file access routines
Gray Declarative specifications for automatically constructed compilers
CN118096927A (zh) 矢量图优化方法、装置、开发工具、设备、介质及产品
Glasgow et al. Data compatibility in a heterogeneous processor environment
Julian et al. A Distributed Host-Satellite System For List-Processing Programs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20100526