具有多于一个操作模式的数据文件的制作方法

文档序号:6349073阅读:167来源:国知局
专利名称:具有多于一个操作模式的数据文件的制作方法
技术领域
本发明涉及具有多于一个操作模式的数据文件,具体而言涉及用于存储图像、文本、音频和/或视频内容的数据文件。
背景技术
传统上,用数码相机拍摄的每张照片被存储为图像文件。通常,图像文件是JPEG 文件格式的。有时,对于不同的用途需要同一图像的不同文件格式。例如,摄影比赛可能需要 JPEG压缩图像用于查看和评估,并且需要标记图像文件格式(TIFF)的同一图像用于打印。 另外,有时可能需要在拍摄照片时由相机生成的具有完全分辨率的未压缩的原始图像。对于计算机图形,图像可具有两个分开的文件,一个栅格版本用于查看,一个矢量版本用于更高分辨率下的更精确再现。已观察到,当存在表示同一图像的不同格式的许多文件时,因为涉及许多文件,文件管理可能是麻烦的。相关图像的图像文件的文件管理也可能是麻烦的。例如,在高动态范围摄影中,可能存在以不同曝光率拍摄的几张相关的照片。在全景摄影中,可能有要被拼接在一起以形成全景图像的几张相关的照片。因此需要提供一种至少解决上述问题的数据文件。

发明内容
根据本发明的一个方面,提供了一种具有多于一个操作模式的数据文件,该数据文件包括图像成分,用于存储图像作为数据文件的代表;以及附加到图像成分的一个或多个数据成分,图像成分包括与一个或多个数据成分相关联的元数据,其中,在第一操作模式中,在图像成分是数据文件的一部分的同时,数据文件的图像成分能够被图像查看器读取以便查看图像,在第一操作模式中一个或多个附加的数据成分不能被图像查看器读取, 并且在第二操作模式中,图像成分和一个或多个附加的数据成分能够被文件读取器读取。图像成分可以基于JPEG文件格式、GIF (GIF89a版本)文件格式、TIFF文件格式或 PNG文件格式,并且能够通过相应的图像查看器来查看。数据文件还可包括应用片段,该应用片段包括签名字段,用于包含签名以将应用片段与存在于图像成分中的其他应用片段区分开来。应用片段还可包括版本字段,用于指示可应用到应用片段的技术标准的版本。数据文件还可包括内容检查器,用于验证一个或多个数据成分的数据完整性。元数据可包括一个或多个标签,每个标签包括标签类型标识符,用于指示该标签的类型;以及标签名称字段,其可包括描述该标签的类型的文本数据。一个或多个数据成分可以是图像数据、文本数据、音频数据或视频数据。每个数据成分可包括图像成分中存储的图像的数据与数据成分的原始数据之间的差异的数据。
每个数据成分可包括一个或多个数据成分中的两个数据成分的原始数据之间的差异的数据。数据成分中的一个或多个可包括对图像成分中存储的图像做出的改变的历史的数据。图像可以是拼接的全景照片,并且一个或多个数据成分可包括拼接的全景照片的不同部分的预拼接的快照。图像可以是生成的HDR照片,并且一个或多个数据成分可包括用于生成HDR照片的以不同曝光率拍摄的照片。图像可以是栅格化的图像,并且一个或多个数据成分可包括矢量图形信息。用来存储作为数据文件的代表的图像可以是用户可选择的。元数据可包括与图像成分相关联的元数据。根据本发明的第二方面,提供了一种用于创建具有多于一个操作模式的数据文件的方法,该方法包括选择图像;将所选图像作为数据文件的代表存储在数据文件的图像成分中;创建与一个或多个数据成分相关联的元数据;将元数据结合到图像成分中;以及将一个或多个数据成分附加到结合了元数据的图像成分以形成数据文件,其中,在数据文件的第一操作模式中,在图像成分是数据文件的一部分的同时,图像成分能够被图像查看器读取以便查看所选图像,在数据文件的第二操作模式中,图像成分和一个或多个附加的数据成分能够被文件读取器读取。图像成分可基于JPEG文件格式、GIF(GIF89a版本)文件格式、TIFF文件格式或 PNG文件格式,并且能够被相应的文件读取器读取。将所选图像作为数据文件的代表存储在数据文件的图像成分中的步骤可包括从所选图像创建图像文件作为数据文件的图像成分。将元数据结合到图像成分中的步骤可包括读取图像文件中的用于放在元数据之前的数据并且将所读取的用于放在元数据之前的数据写入到新文件;读取图像文件中的用于放在元数据之后的数据并且将所读取的用于放在元数据之后的数据写入到新文件;以及将所构造的元数据结合到新文件中。将所选图像作为数据文件的代表存储在数据文件的图像成分中的步骤可包括从所选图像创建具有分配的数据空间的图像文件作为数据文件的图像成分。将元数据结合到图像成分中的步骤可包括将元数据插入到图像文件的分配的数据空间中。根据本发明的第三方面,提供了一种用于读取具有多于一个操作模式的数据文件的方法,该数据文件包括图像成分,用于存储图像作为数据文件的代表;以及附加到图像成分的一个或多个数据成分,图像成分包括与一个或多个数据成分相关联的元数据,该方法包括在第一操作模式中,读取图像成分以查看数据文件的图像成分中存储的图像,在第一操作模式中一个或多个附加的数据成分不能被读取;以及在第二操作模式中,读取数据文件的图像成分或一个或多个附加的数据成分,在第二操作模式中图像成分和一个或多个附加的数据成分能够被读取。


从以下结合附图的、仅作为示例的书面描述中,本领域的普通技术人员将更好地理解并且容易清楚本发明的实施例,附图中图1示出了本发明的示例性实施例的组件的框图。图2示出了本发明的示例性实施例的组件的框图。
图3示出了本发明的示例性实施例的流程图。图4示出了本发明的示例性实施例的流程图。图5示出了本发明的示例性实施例的流程图。图6示出了本发明的示例性实施例的流程图。图7示出了本发明的示例性实施例的流程图。图8示出了本发明的示例性实施例的流程图。图9示出了本发明的示例性实施例的流程图。
具体实施例方式参考图1,提供了根据本发明的示例性实施例的数据文件100。数据文件100具有多于一个操作模式。数据文件包括图像成分102,用于存储图像104作为数据文件100的代表。一个或多个数据成分106被附加到图像成分102。图像成分102包括与附加到图像成分102的一个或多个数据成分106相关联的元数据。在第一操作模式中,在图像成分102是数据文件100的一部分的同时,数据文件100的图像成分102可被图像查看器读取以便查看图像104。在第一操作模式中,一个或多个附加的数据成分106不可被图像查看器读取。 在第二操作模式中,图像成分102和一个或多个附加的数据成分106可被文件读取器读取。 一个或多个数据成分106可以是图像数据、文本数据、音频数据或视频数据。另外,用户可经由适当的软件选择图像。要明白,在另一示例性实施例中,上述元数据可包括与图像成分 102相关联的元数据。在示例性实施例中,图像成分102是基于JPEG文件格式的,JPEG文件格式是能够被安装在诸如个人计算机、膝上型计算机、移动电话、个人数字助理等等之类的大多数电子设备中的JPEG图像查看器很容易地读取的常见图像文件格式。有利地,在数据文件100的第一操作模式中,可以利用传统的JPEG图像查看器 (即图像查看器)从数据文件100中读取图像成分102,而不必去除一个或多个附加的数据成分(图1中的106)或操纵数据文件100。由于传统的JPEG图像查看器不能够读取一个或多个附加的数据成分106,所以一个或多个附加的数据成分106不能被其读取。在数据文件100的第二操作模式中,可以利用能够辨识数据文件100的语法的专有软件来读取数据文件100中的图像成分102和一个或多个附加的数据成分106。要明白,其他示例性实施例可包括其他操作模式。例如,数据成分106中的一些但不是全部能够被适当的软件读取,而图像成分102可以能够被此软件读取,也可以不能够被此软件读取。数据文件100的语法包括图像开始(SOI)标记108、帧片段104、图像结束(EOI) 标记112以及附加的一个或多个数据成分106。根据JPEG 标准(参考JPEG IS0/IEC 10918-1 ITU-T Recommendation Τ. 81) 及其扩展,即 JFIF 规范[参考HAMILT0N(E.),JPEG File Interchange Format Version 1. 02,C-Cube Microsystems, 1992],以及其他JPEG语法,帧片段104包括表规格和杂项标
7记片段语法110。表规格和杂项标记片段语法110可包括量化表规格语法、哈夫曼表规格语法、算术调节表规格语法、重启间隔定义语法、评论语法、应用数据语法以及定义行数语法。在包含为应用用途预留的APPn(应用)片段的应用数据语法下,在示例性实施例中提供了应用片段(以下称为"APP9片段”)(图2中的200),用于包含与一个或多个数据成分106相关联的元数据。要明白,在其他实施例中,APPi、APP2、APP3等等也可用于包含元数据。参考图2,APP9片段200按顺序包括用于指示APP9片段200的开头的APP9标记 202(大小16比特)、用于以字节数为单位指示APP9片段200的大小的APP9块长度字段 204(大小16比特)以及用于包含签名以将实施例的APP9片段200与可存在的用于其他目的的其他APP9片段区分开来的签名字段206 (大小32比特)。在签名字段206之后是用于指示可应用到APP9片段200的专有技术标准的版本的版本字段208 (大小16比特)、 用于指示附加到(即顺次接连串接到)图像成分102的末尾(即在EOI标记112之后)的数据成分(图1中的106)的数目的成分数目字段210(大小16比特)、以及与附加的一个或多个数据成分(图1中的106)相关联的一个或多个标签列表212(大小可变)。要明白,在另一示例性实施例中,除了仅用于一个或多个附加的数据成分(图1中的106)的标签列表212以外,标签列表212中的一个或多个还可与图像成分(图1中的102)相关联。另外,要明白,在另一示例性实施例中,一个或多个数据成分(图1中的106)可附加到图像成分102的前面(即在SOI标记108之前)。与使得一个或多个数据成分(图1 中的106)位于图像成分之内相比,将一个或多个数据成分(图1中的106)附加到图像成分(图1中的102)外部有利地降低了用于对数据成分(图1中的106)做出改变、创建数据文件(图1中的100)和从数据文件(图1中的100)中提取一个或多个数据成分的软件的复杂度。当一个或多个数据成分(图1中的106)被附加到图像成分(图1中的102) 时,将图像成分(图1中的102)与数据成分(图1中的106)分开更容易且涉及的步骤更少。另外,由于在文件中经常使用空或零字符作为特定数据块的终止符,所以如果数据成分 (图1中的106)位于图像成分(图1中的102)之内,则可能就必须将具有空或零字符的某些数据替换为另外的字符以便将这些数据与终止符区分开来。在示例性实施例中,数据成分(图1中的106)可以按其原始形式被附加到图像成分(图1中的102),而完全无需替换空或零字符。在示例性实施例中,一个或多个标签列表212中的标签列表214(图2中的标签列表#1)包括用于指示数据成分长度字段218的字节数目的数据成分长度字段大小字段 216 (大小8比特)。数据成分长度字段218指示与标签列表214相关联的数据成分(图1 中的106)的实际大小,并且其以字节为单位的大小是可变的,取决于数据成分长度字段大小字段216中指定的字节数目。标签列表214还包括第一字节内容检查器220 (8比特),用于验证与标签列表214相关联的数据成分(图1中的106)的第一字节的数据完整性。标签列表214还包括最末字节内容检查器222 (8比特),用于验证与标签列表214相关联的数据成分(图1中的106)的最末字节的数据完整性。另外,在标签列表214中提供了标签数目字段224(大小16比特),用于指示与标签列表214相关联的数据成分(图1中的106) 的标签的数目。在标签列表214中有一个或多个标签226。这一个或多个标签中的标签228(图2中的标签#1)包括用于指示标签228的类型的标签类型标识符230(大小32比特)。标签2 还包括具有可变大小的标签名称字段232并且结束于“\0”(即,空)字符。标签名称字段232与标签类型标识符230相关联并且由描述标签228的类型的文本数据构成。例如,标签类型标识符230可包含十六进制数的“0000”并且这指的是标签名称字段232中的文本数据“常规静止照片”。另一个示例是标签类型标识符230可包含十六进制数的“0001” 并且这指的是标签名称字段232中的文本数据“记录的音频”。在示例性实施例中,可用于标签类型标识符230的十六进制数中的某一比例(例如50%)被预留来供用户定义其自己的标签类型标识符230。可用于标签类型标识符230的其余十六进制数可被预留来用于预定的用途。一个或多个标签2 有利地提供了关于与之相关联的数据成分(图1中的106) 的信息。参考图3来描述用于创建参考图1描述的数据文件100的步骤如下。在示例性实施例中,这些步骤可通过在处理单元上运行示例性实施例的文件创建应用来执行。该处理单元可以是桌面型计算机、移动电话、个人数字助理、膝上型计算机、相机,等等。在步骤302,为由用户利用文件创建应用选择的图像创建图像文件,即在此实施例中创建JPEG文件。该JPEG文件将形成图像成分(图1中的102)。注意,在数据文件(图 1中的100)的第一操作模式中,在图像成分(图1中的102)是数据文件(图1中的100) 的一部分的同时,图像成分(图1中的102)能够被图像查看器(即,在此情况下是JPEG图像查看器)读取以便查看其中包含的图像。要明白,在另一示例性实施例中,文件创建应用可被配置为具有自动选择图像的选项,而不需要用户做出选择。在步骤304,读取所创建的JPEG文件的要被放置在APP9片段(图2中的200)之前的部分(即,数据)并且将所读取的部分写入在新文件中。在步骤306,利用从一个或多个数据成分(图1中的106)得出的信息构造
段(图2中的200),并且将APP9片段(图2中的200)附加到在步骤304创建的新文件。在步骤308,读取JPEG文件的要被放置在APP9片段(图2中的200)之后的部分 (即,数据)并且将所读取的部分附加到已经历了步骤306的该新文件。在步骤310,将一个或多个数据成分(图1中的106)恰好附加在已经历了步骤308 的新文件的图像结束标记(图1中的11 之后。从而在步骤310创建了示例性实施例的数据文件(图1中的100)。参考图4,参考图3描述的在步骤308构造APP9片段(图2中的200)的步骤如下。 类似地,可通过运行文件创建应用来执行这些步骤。在步骤402,利用预定的签名生成签名字段(图2中的206)。在步骤404,利用预定的版本号生成版本字段(图2中的208)。在步骤406,对被用户选择来附加到图像成分(图1中的102)的数据成分(图1 中的106)的数目计数,将图像成分(图1中的102)包括在该计数中,并且基于该计数来生成成分数目字段(图2中的210)。例如,如果只有一个数据成分(图1中的106),则包括图像成分在内的成分数目字段(图2中的210)将为2。在步骤408,获得每个数据成分(图1中的106)的大小,以为每个数据成分(图1 中的106)的标签列表(图2中的214)生成数据成分长度字段(图2中的218)。在步骤410,利用每个数据成分(图1中的106)的大小计算数据成分长度字段大小,以生成数据成分长度字段大小字段(图2中的216)。在步骤412,取得每个数据成分(图1中的106)的第一字节,以生成每个数据成分 (图1中的106)的第一字节内容检查器(图2中的220)。第一字节内容检查器(图2中的220)包含第一字节的值。在步骤414,取得每个数据成分(图1中的106)的最末字节,以生成每个数据成分 (图1中的106)的最末字节内容检查器(图2中的222)。最末字节内容检查器(图2中的22 包含最末字节的值。在步骤416,允许用户通过以下操作来为每个数据成分(图1中的106)创建一个或多个标签(图2中的226)首先,指派用于标识标签(图2中的226)的类型的预定的标签类型标识符(图2中的230),其次,创建包括用于描述标签(图2中的226)的类型的文本数据的标签名称字段(图2中的232)。标签名称字段(图2中的232)将被附加以 “\0”(即,空)字符,以表示标签(图2中的226)的结束。对于要附加到图像成分(图1中的102)的N个数据成分重复步骤408至416。要明白,在另一示例性实施例中,与图像成分相关联的一个或多个标签(图2中的226)也可被创建来用于结合到APP9片段(图2中的200)中。在步骤418,将APP9标记、APP9块长度字段、在步骤402至406中生成的所有字段以及在步骤408至416中为N个数据成分生成的所有字段放在一起,以形成APP9片段(图 2中的200)。在另一示例性实施例中,参考图5来描述用于创建参考图1描述的数据文件100 的步骤如下。在步骤502,创建图像文件,即在此实施例中创建JPEG文件,其中分配有数据空间用于APP9片段(图2中的200)。该JPEG文件包含由用户选择的图像。对于此示例性实施例,如果该图像最初不是JPEG文件格式的,则其可能需要被从其他文件格式转换到JPEG格式。要明白,在另一示例性实施例中,文件创建应用可被配置为具有自动选择图像的选项, 而不需要用户做出选择。在步骤504,通过经历参考图4描述的步骤402至418来构造APP9片段(图2中的 200)。在步骤506,将APP9片段(图2中的200)插入到所创建的JPEG文件的分配的数据空间中。在步骤508,将一个或多个数据成分(图1中的106)恰好附加在结合了所构造的 APP9片段(图2中的200)的JPEG文件的图像结束标记(图1中的112)之后。从而在步骤508之后创建了示例性实施例的数据文件(图1中的100)。参考图6描述的以下步骤可被进行来读取被附加到数据文件(图1中的100)的数据成分(图1中的106)的内容。这些步骤例示了数据文件(图1中的100)的第二操作模式。这些步骤可通过在先前所述的处理单元上运行示例性实施例的文件读取器应用来执行。在步骤602,在接收到要读取数据文件(图1中的100)中的特定数据成分(图1 中的106)的内容的用户请求之后,基于所输入的用户请求在包含数据文件(图1中的100) 的文件存储设备中寻找该数据文件(图1中的100)。在示例性实施例中,该用户请求是从对文件读取器应用的用户输入获得的。对数据文件(图1中的100)的文件名和对特定数据成分的用户输入可以是数据成分的文件名,其采取文本串的形式。一旦定位到数据文件 (图1中的100),就着手在数据文件(图1中的100)的开头定位SOI标记(图1中的108)。 要明白,文件读取器应用可被配置为显示其在解析数据文件(图1中的100)时能够识别的所有完整数据成分(图1中的106)的列表,在此情况下用户输入可以就简单地是选择该列表中的列表项之一。在定位到数据文件(图1中的100)的SOI标记(图1中的108)之后,在步骤604 扫描整个数据文件(图1中的100)以定位APP9标记(图2中的202)。在定位到APP9标记(图2中的202)之后,在步骤606,通过将APP9片段(图2中的200)的签名字段(图2中的206)与预定的签名相比较来检查该签名字段(图2中的 206),以验证当前定位到的APP9片段(图2中的200)是否属于正确的专有人。如果签名认证不成功,则在步骤608在数据文件中继续搜索包含正确的签名的另一 APP9片段。如果没有找到包含正确的签名的APP9片段(图2中的200),则文件读取器应用在步骤610结束。如果签名认证成功,则在步骤612着手从版本字段(图2中的208)中取得版本号并且根据版本号指示的软件的版本执行后续的操作。接下来的步骤614至630是根据在步骤612确定的软件的版本来执行的。在步骤612取得版本号之后,在步骤614从成分数目字段(图2中的210)得到数据成分(图1中的106)的数目。在步骤616,解析一个或多个标签列表(图2中的212)以定位用户请求的所期望的数据成分(图1中的106)的标签列表(图2中的214)。一旦在标签列表(图2中的 214)中找到用户请求中的期望数据成分索引,就定位到了期望数据成分(图1中的106)的标签列表(图2中的214)。在解析的同时,被解析的一个或多个标签列表(图2中的212) 的数据成分长度字段(图2中的218)中指示的所有数据成分长度都被提取和累积。只有期望数据成分(图1中的106)的标签列表之前的标签列表的数据成分长度字段(图2中的218)中的数据成分长度被累积。在步骤618,利用在步骤616获得的所累积的数据成分长度的数据来得出期望数据成分(图1中的106)的第一字节的位置。在步骤620,从期望数据成分(图1中的106)的标签列表中的数据成分长度字段大小字段216得到数据成分长度字段大小。这将决定数据成分长度字段(图2中的218) 中的字节的数目。在步骤622,从数据成分长度字段(图2中的218)得到期望数据成分(图1中的 106)的实际数据成分长度。在步骤624,基于在步骤622获得的实际数据成分长度来得出期望数据成分(图1 中的106)的最末字节的位置。在步骤626,分别利用第一字节内容检查器(图2中的220)和最末字节内容检查器(图2中的22 验证在步骤618和6 得出的第一字节和最末字节。如果所得出的第一字节和最末字节中的一者或两者与检查器(分别是图2中的220和22 不同,则文件读取器应用在步骤632生成差错消息。如果在步骤6 验证的第一字节和最末字节与检查器(分别是图2中的220和 222)相同,则在步骤拟8着手取得期望数据成分(图1中的106)的标签类型标识符(图2 中的230)和标签名称字段(图2中的232)信息以用于进一步的应用使用。例如,如果需要将标签名称字段(图2中的232)中的标签名称显示在文件读取器应用的用户界面中,则取得标签名称。在步骤630,将文件指针定位在第一字节位置,并着手读取期望数据成分(图1中的106)的数据内容。关于在数据文件(图1中的100)的第一操作模式下用于读取图像成分(图1中的102)以查看图像成分(图1中的102)中的图像的步骤,这些步骤与利用传统JPEG图像查看器读取典型JPEG文件所进行的步骤类似。注意,传统JPEG图像查看器不能够读取附加的数据成分(图1中的106)。图7示出了(一个或多个)数据成分(图1中的106)的添加/插入。图7中的步骤可通过在先前所述的处理单元上运行示例性实施例的文件编辑应用来执行。在步骤702,定位并提取数据文件(图1中的100)的APP9片段(图2中的200)。在步骤704,通过累积在APP9片段(图2中的200)的一个或多个标签列表(图 2中的21 中找到的所有数据成分长度字段的值,来确定已经附加到数据文件(图1中的 100)的数据成分(图1中的106)的总数据长度。在步骤706,读取数据文件(图1中的100)的位于APP9片段(图2中的200)之前的部分(即,数据),并将所读取的部分写入在新文件中。在步骤708,为新添加的数据成分(图1中的106)创建新的标签列表。在步骤710,将与新添加的数据成分相对应的新创建的标签列表添加到APP9片段 (图2中的200)。在步骤712,利用APP9片段200的新的大小来更新APP9块长度字段204,并且利用附加到数据文件(图1中的100)的数据成分(图1中的106)的新的数目来更新成分数目字段210。在步骤714,将经更新的APP9片段(图2中的200)附加到新文件。在步骤716,读取数据文件(图1中的100)的位于APP9片段(图2中的200)之后的、除数据成分(图1中的106)以外的部分(即,数据),并将所读取的部分附加到新文件。在步骤718,将现有数据成分包括一个或多个新数据成分(图1中的106)按用户选择的顺序附加到新文件。要明白,文件编辑应用可包括允许用户选择附加现有和新数据成分的顺序的用户界面。通过步骤702至718创建的新文件将是具有添加/插入的(一个或多个)数据成分的新数据文件(图1中的100)。关于从数据文件(图1中的100)中去除一个或多个数据成分(图1中的106),参考图8来描述这些步骤如下。这些步骤可通过运行先前所述的文件编辑应用来执行。在步骤802,定位并提取数据文件(图1中的100)的APP9片段(图2中的200)。步骤804,读取数据文件(图1中的100)的位于APP9片段(图2中的200)之前的部分(即,数据),并将所读取的部分写入在新文件中。在步骤806,解析一个或多个标签列表(图2中的212)以定位需要去除的数据成分(图1中的106)的标签列表(图2中的214)。在解析的同时,被解析的一个或多个标签列表(图2中的212)的数据成分长度字段(图2中的218)中指示的所有数据成分长度都被提取和累积。只有期望数据成分(图1中的106)的标签列表之前的标签列表的数据成分长度字段(图2中的218)中的数据成分长度被累积。在步骤808,利用在步骤808获得的所累积的数据成分长度的数据来得出要去除的数据成分(图1中的106)的第一字节的位置。在步骤810,从要去除的数据成分(图1中的106)的标签列表中的数据成分长度字段大小字段216得到数据成分长度字段大小。这将决定数据成分长度字段(图2中的 218)中的字节的数目。在步骤812,从数据成分长度字段(图2中的218)得到要去除的数据成分(图1 中的106)的实际数据成分长度。在步骤814,利用在步骤812获得的实际数据成分长度来得出要去除的数据成分 (图1中的106)的最末字节的位置。在步骤816,分别利用要去除的数据成分(图1中的106)的标签列表(图2中的 214)中的第一字节内容检查器(图2中的220)和最末字节内容检查器(图2中的222)验证在步骤808和814得出的第一字节和最末字节。如果所得出的第一字节和最末字节中的一者或两者与检查器(分别是图2中的 220和222)不同,则文件编辑应用在步骤818生成差错消息。如果在步骤816验证的第一字节和最末字节与检查器(分别是图2中的220和 222)相同,则在步骤820着手删除要去除的所附加的数据成分(图1中的106)的标签列表 (图2中的214)。在步骤822,更新APP9块长度字段(图2中的204)以指示APP9片段(图2中的 200)的新大小,并且更新成分数目字段(图2中的210)以指示附加到数据文件(图1中的 100)的数据成分(图1中的106)的新数目。在步骤824,将经更新的APP9片段(图2中的200)附加到新文件。在步骤826,读取数据文件(图1中的100)的位于APP9片段(图2中的200)之后的、包括未去除的数据成分(图1中的106)在内的部分(即,数据),并将所读取的部分附加到新文件。通过步骤802至拟6创建的新文件将是去除了所选择的(一个或多个)数据成分的新数据文件(图1中的100)。参考图9描述如下的步骤用于对数据文件(图1中的100)中的图像成分(图1 中的102)和数据成分(图1中的106)进行重排序。具体而言,图像成分(图1中的102) 中的图像被与另一图像交换,该另一图像是数据成分(图1中的106)。这些步骤可通过运行先前所述的文件编辑应用来执行。在步骤902,读取并随后提取包含要与图像成分(图1中的102)中的图像交换的图像的所选数据成分(图1中的106)。对所选数据成分(图1中的106)的读取可例如通过应用参考图6描述的步骤来执行。
在步骤904,从数据文件(图1中的100)中去除所选数据成分(图1中的106)。 对所选数据成分的去除可例如通过应用参考图8描述的步骤来执行。在步骤906,利用所选数据成分的图像来创建新的图像成分。在步骤908,将先前附加到先前图像成分(图1中的102)的数据成分(图1中的 106)和先前图像成分(图1中的10 附加到新的图像成分以形成新的经重排序的数据文件(图1中的100)。数据文件(图1中的100)的各种用途被描述如下。示例性实施例的数据文件(图1中的100)能够在单个文件内存储与同一图像有关的不同格式的图像文件并且将这些图像文件之一作为该图像的代表来进行显示。文件管理变得容易得多,因为所有相关的图像文件全都被存储在单一一个文件中。例如,示例性实施例的数据文件(图1中的100)可用于存储多个照片,这多个照片是相关的并且相互之间仅因为取景、不同角度和/或其他摄影考虑因素而不同。最佳的照片拍摄可被用户选择来作为图像成分(图1中的102)的图像,其可被常见的图像查看器和文件浏览器显示,因为图像成分102是流行的JPEG格式的,而其余拍摄则可出于记录目的而被存储为数据成分(图1中的106),以防将来可能要使用它们。示例性实施例的数据文件(图1中的100)的另一个基于摄影的应用是在图像成分(图1中的102)中显示拼接的全景照片,并且将拼接的全景照片的不同部分的所有预拼接快照作为数据成分(图1中的106)附加到图像成分(图1中的102)。如果需要在预拼接快照上工作,则它们方便地位于显示拼接的全景照片的同一文件中。示例性实施例的数据文件(图1中的100)可类似地用于存储高动态范围(HDR) 照片。即,选择所生成的HDR照片作为图像成分(图1中的102)中的图像,并将用于生成 HDR照片的以不同曝光率拍摄的照片作为数据成分(图1中的106)附加到图像成分(图1 中的102)。数据文件(图1中的100)还可用于存储多个分辨率的同一图像,包括有和没有版权印记的版本。例如,在典型的图像购买网站中,有所提供的不同大小的图像被展示。网站的购买选项允许客户以不同的价格购买有/没有版权印记的图像大小S、M、L、XL。传统上, 可能将创建“样本”文件夹用于存储网站上要展示的图像,将创建“版权保护”文件夹用于存储图像的带版权印记的版本,并且将创建“无版权保护”文件夹用于存储图像的没有版权印记的版本。另外,为了获得更好的分类和文件整洁,在“版权保护”和“无版权保护”文件夹下,可创建以下子文件夹S、M、L、XL,并且相应大小的图像将被相应地存储在这些子文件夹的每一个中。如果例如对于一个图像文件存在文件名的改变,则子文件夹中的同一图像的所有文件都必须被逐一重命名。这是非常易于出错且麻烦的。如果使用示例性实施例的数据文件(图1中的100),则要明白只需要一个文件夹。样本图像可以是图像成分(图1 中的102)中的图像,并且具有或不具有版权印记的不同大小的图像可作为数据成分(图1 中的106)被附加到图像成分(图1中的102)。在此情况下,对文件名的任何改变只需要改变一个数据文件的文件名。经常,需要同一图像的多个格式。例如,在摄影比赛的情况下,对于短列表处理可能要求JPEG图像,而对于打印可能要求TIFF图像。使用示例性实施例的数据文件(图1 中的100)将JPEG图像存储在图像成分(图1中的102)中用于显示并且将TIFF图像存储为数据成分(图1中的106),是有利的。示例性实施例的数据文件(图1中的100)的另一个应用是在图像成分(图1中的10 中显示经更新或完成的技术设计图并将该技术设计的所有工作文件作为数据成分 (图1中的106)附加到图像成分(图1中的102)。如果需要在这些工作文件上工作,则这些文件将方便地位于显示经更新或完成的技术设计图的同一文件中。另外,已观察到,用于存储技术设计图的大多数文件格式不会以缩略图的形式出现在操作系统(OS)(例如Windows OS)的文件管理器中。如果使用示例性实施例的数据文件(图1中的100),则由于JPEG兼容的图像成分(图1中的102),大多数文件管理器(几乎都支持JPEG文件)可显示技术设计图的缩略图。另外,有利地,对象技术图的原始图像文件(任何格式的)可“按原样”(即不经修改地)被附加到图像成分(图1中的102),并且可被参考图6描述的文件读取器应用很容易地访问。示例性实施例的数据文件(图1中的100)的另一个有用的特征是其能够通过利用标签(图2中的226)来指示可说明图像成分(图1中的102)和数据成分(图1中的 106)之间的联系的有意义信息。标签(图2中的226)可指示(一个或多个)数据成分中包含的信息的种类。例如,具有标签“mp3”、“在录音棚中录制”、“男声独唱”的存储音频数据的数据成分(图1中的106)将指示此音频数据是mp3格式的,是在录音棚中而不是在室外录制的,并且主要音频内容是男歌手独唱的。传统上,栅格化图像及其相应的矢量图形信息是分开存储的,并且当涉及大量图像时文件管理可能是困难的。此问题的一个解决方案是使用示例性实施例的数据文件(图 1中的100)来存储JPEG压缩的栅格图像作为图像成分(图1中的102)中的图像并存储矢
量图形信息作为数据成分(图1中的106)。这样,将大大减少需要存储和管理的文件的数目。要明白,示例性实施例的数据文件(图1中的100)还可用于将对象图像存储在图像成分(图1中的102)中用于显示,并且将对该对象图像做出的改变的历史的数据存储为数据成分(图1中的106)。例如,对象图像可以是栅格化的图像,并且撤消历史可以是矢量图形信息。在此情况下,通过适当的应用,可以基于作为数据成分(图1中的106)存在于数据文件(图1中的10 中的数据来撤消对对象图像做出的改变。这是非常有用的特征, 因为撤消历史与对象图像保持在一起。与之不同,传统上,撤消历史数据被大多应用临时缓存并且一旦该应用结束就将被擦除。示例性实施例的数据文件(图1中的100)的另一个应用是将其用于将具有音乐乐谱或和弦图的音乐录制存储为图像成分(图1中的102)中的图像,并且将文本文件格式的歌词存储为数据成分(图1中的106)。如果需要查阅歌词,则它们方便地位于显示音乐乐谱或和弦图的同一文件中。音乐录制的音频文件也可作为数据成分(图1中的106)被附加到图像成分(图1中的102)。另外,示例性实施例的数据文件(图1中的100)可用作电子书文件,其中电子书的封面页是图像成分(图1中的102)中的图像,并且文本和图形内容是附加到图像成分 (图1中的102)的数据成分(图1中的106)。这样,由于数据文件(图1中的100)是单个文件,所以销售电子书的网站不需要维护单独的图像文件来用于在网站上展示电子书的图示。可利用先前参考图6描述的文件读取器应用来访问电子书的内容。
15
另外,示例性实施例的数据文件(图1中的100)可用于将某人的照片存储为图像成分(图1中的102)中的图像。关于该人的数据可作为一个或多个数据成分(图1中的 106)被附加到图像成分(图1中的102)。有利地,常见的图像查看器可显示该人的照片, 因为图像成分(图1中的102)是流行的JPEG格式的。可利用先前参考图6描述的文件读取器应用来方便地访问关于该人的数据。已经观察到,某些文件浏览器将提取视频文件的第一帧,并将其显示为代表该视频文件的内容的缩略图。很多时候第一视频帧是无意义的,并不代表视频文件中的内容。如果使用示例性实施例的数据文件(图1中的100),则将能够选择是特定视频的内容的更好代表的帧或图像来存储在图像成分(图1中的10 中供显示。另外,主要视频可作为第一数据成分(图1中的106)被附加到图像成分(图1中的102),并且其他次要的、评论性的或相关的视频可进一步作为数据成分(图1中的106)被附加到第一数据成分(图1中的 106)。该视频的所有相关文件从而就方便地存在于仅单一一个文件中。示例性实施例的数据文件(图1中的100)还可用于使得即时消息传递应用更加高效。例如,用户的简档图片可被存储为图像成分(图1中的102)中的图像,并且(一个或多个)交谈日志可被存储为数据成分(图1中的106)。这比使得简档图片和交谈日志被存储为不同文件夹中的分开的文件更好。另外,显示简档图片使得更容易识别哪个(哪些)交谈日志属于哪个人。示例性实施例的数据文件(图1中的100)的另一个应用可以是将其用于把一年的日历存储为图像成分(图1中的102)中的图像。在此情况下,完整的日历充当“封面页”。 每月的日历可作为数据成分(图1中的106)被附加到图像成分(图1中的102),并且可利用先前参考图6描述的文件读取器应用来方便的提取或读取。这种文件结构对于与组织器相关的软件应用将是有用的。要明白,在另一示例性实施例中,图像成分(图1中的102) 中的图像可以是一年的当前月的日历,并且数据成分(图1中的106)将包含该年的其他月的日历的图像。当一个月结束时,在适当的软件的帮助下,通过应用参考图9描述的用于重排序的步骤,图像成分(图1中的102)中的图像可被更新为来自数据成分(图1中的106) 的下一月的图像,这样,当前月可有利地被任何JPEG查看器显示。此外,示例性实施例的数据文件(图1中的100)的另一个应用是将其用于存储科学信息和相关文档。图像成分(图 1中的102)可存储特定动物物种的图像,并且关于该物种的信息可作为数据成分(图1中的106)以文本、视频、图像和/或音频格式被附加到图像成分(图1中的102)。参考图1至9描述的示例性实施例的数据文件(图1中的100)的一些优点被描述如下。示例性实施例的数据文件(图1中的100)具有能够被所有JPEG图像查看器读取的图像成分(图1中的102)。因此,存在代表该数据文件(图1中的100)的易于访问的 JPEG图像。有利地,数据文件(图1中的100)中与数据成分(图1中的106)相关联的一个或多个标签(图2中的226)(其可以是单独的文件)是与数据成分(图1中的106)分开的,从而使得能够在不修改数据成分(图1中的106)的情况下添加标签(图2中的226)。另外,有利地,数据文件(图1中的100)将包括文本、视频、音频和图像在内的相关数据聚集在一起并存储在单个文件中,从而使得文件处理容易地多并且有条理的多。
另外,与其他文件格式相比,数据文件(图1中的100)有利地包含定义的信息类型(通过图2中的标签2 定义),例如图像、技术设计图、矢量图形数据、音乐录制、音乐乐谱、和弦图、歌词、电子书、关于人的数据、视频、即时消息传递日志、科学信息等等,而诸如 TIFF之类的其他文件格式允许除图像以外的信息类型被存储在文件中,但不定义其中的任何一个。虽然JPEG规范中规定APP9片段(图2中的200)具有64KB限度,但实际上,数据文件(图1中的100)不具有最大文件大小限度,因为64KB完全足以在数据文件(图1中的100)中定义非常大的数据成分(图1中的106)。与之不同,诸如TIFF之类的文件格式只具有4G字节文件大小限制。要明白,在另一示例性实施例中,如果一个或多个数据成分(图1中的106)的原始数据与图像成分(图1中的102)中的图像的数据类似,则只有关于图像成分(图1中的 102)中的图像与数据成分(图1中的106)的原始数据之间的差异的数据被存储为数据成分(图1中的106)。在此情况下,可以大大减小数据文件(图1中的100)的文件大小。类似地,如果第一数据成分(图1中的106)的原始数据类似于第二数据成分(图 1中的106)的原始数据,则关于第一和第二数据成分(图1中的106)两者的原始数据之间的差异的数据可被存储为第一或第二数据成分(图1中的106)的数据。要明白,以上参考图3至9描述的文件读取器应用、文件创建应用和文件编辑应用可以是适合于执行以下操作中的至少一个的图形用户界面(GUI)(其可被总称为“文件读取器”)-将数据成分(图1中的106)包括到数据文件(图1中的100)中-从数据文件(图1中的100)中提取数据成分(图1中的106)-读取数据文件(图1中的100)中的数据成分(图1中的106)-读取图像成分(图1中的102)-去除数据成分(图1中的106)-重排列数据成分(图1中的106)的顺序-复制数据成分(图1中的106)-将一个数据文件(图1中的100)的数据成分(图1中的106)移动到另一数据文件(图1中的100)-为数据成分(图1中的106)创建一个或多个标签(图2中的226)-得到被附加到数据文件(图1中的100)的数据成分(图1中的106)的数目-在⑶I中以文本串的形式显示所有标签类型标识符(图2中的230)。这些文本串可从相应的标签名称字段(图2中的232)取得。要明白,在本说明书选择了 JPEG标准来用于例示,因为其有利地包含应用数据语法,这允许了用户包括其自己的专有数据。在这里描述的示例性实施例中,专有数据指的是 APP9片段(图2中的200)。要明白,具有允许添加专有数据的语法的其他图像文件格式也可适当地用作本发明的示例性实施例中的图像成分(图1中的102)。例如,图形交换格式 (GIF) (GIF89a版本),TIFF格式(TIFF修订版6. 0规范)、便携式网络图形(PNG) [IS0/IEC 15948 :2003 (E)],等等。GIF(GIF89a版本)文件包含应用扩展片段,其允许了添加专有数据。应用扩展片段包括8字节长的标识符字段和3字节长的认证码字段。这两个字段可用于包含先前参考图2描述的示例性实施例的签名字段(图2中的206)和版本字段(图2中的208)。另外, 应用扩展片段包含应用数据片段。要明白,应用数据片段可用于包含先前参考图2描述的成分数目字段(图2中的210)和一个或多个标签列表(图2中的212)。类似地,一个或多个数据成分(图1中的106)可被附加到GIF(GIF89a版本)文件。另外,注意,应用扩展片段终止于一终止符,即空或零字符。因此,必须将存在于终止符前的具有空或零字符的任何数据替换为空或零的另一表示以免GIF文件读取器误解。要明白,这里描述的用于基于 JPEG文件格式创建和操纵数据文件(图1中的100)的方法可类似地应用于GIF(GIF89a版本)文件格式。TIFF文件包含一个或多个图像文件目录(IFD),这允许了添加专有数据。IFD包括标签字段。标签字段包含数据偏移量字段,这是用于指向文件中包含的专有数据的指针。 要明白,专有数据可包含先前参考图2描述的签名字段(图2中的206)、版本字段(图2中的208)、成分数目字段(图2中的210)和一个或多个标签列表(图2中的212)。类似地, 一个或多个数据成分(图1中的106)可被附加到TIFF文件。注意,TIFF文件的大小具有约4GB大小限度,并且这将是对TIFF文件能够包含的数据成分的数目的限制。要明白,这里描述的用于基于JPEG文件格式创建和操纵数据文件(图1中的100)的方法可类似地应用于TIFF文件格式。关于PNG文件格式,有组块(Chunk)类型(gIFx)片段,这允许了添加专有数据。组块类型(gIFx)片段包括GIF应用扩展片段。GIF应用扩展片段进而包含数据片段。数据片段包括8字节长的应用标识符(ID)字段和3字节长的认证码字段。这两个字段可用于包含先前参考图2描述的示例性实施例的签名字段(图2中的206)和版本字段(图2中的208)。另外,数据片段包含应用数据片段。要明白,应用数据片段可用于包含先前参考图2描述的成分数目字段(图2中的210)和一个或多个标签列表(图2中的212)。类似地,一个或多个数据成分(图1中的106)可被附加到PNG文件。要明白,这里描述的用于基于JPEG文件格式创建和操纵数据文件(图1中的100)的方法可类似地应用于PNG文件格式。在理解了以上描述的公开以及附图后,本领域的技术人员可对这里描述的数据文件(图1中的100)和方法做出许多修改和其他实施例。因此,要理解,数据文件(图1中的 100)及其效用并不仅限于这里包含的以上描述,并且可能的修改将被包括在本公开的权利要求中。
18
权利要求
1.一种具有多于一个操作模式的数据文件,该数据文件包括 图像成分,用于存储图像作为所述数据文件的代表;以及附加到所述图像成分的一个或多个数据成分,所述图像成分包括与所述一个或多个数据成分相关联的元数据,其中,在第一操作模式中,在所述图像成分是所述数据文件的一部分的同时,所述数据文件的所述图像成分能够被图像查看器读取以便查看所述图像,在所述第一操作模式中所述一个或多个附加的数据成分不能被所述图像查看器读取,并且在第二操作模式中,所述图像成分和所述一个或多个附加的数据成分能够被文件读取器读取。
2.如权利要求1中要求保护的数据文件,其中,所述图像成分是基于JPEG文件格式、 GIF(GIF89a版本)文件格式、TIFF文件格式或PNG文件格式的,并且能够通过相应的图像查看器来查看。
3.如权利要求1中要求保护的数据文件,所述数据文件还包括 应用片段,该应用片段包括签名字段,用于包含签名以将所述应用片段与存在于所述图像成分中的其他应用片段区分开来。
4.如权利要求3中要求保护的数据文件,其中,所述应用片段还包括 版本字段,用于指示可应用到所述应用片段的技术标准的版本。
5.如权利要求1中要求保护的数据文件,所述数据文件还包括 内容检查器,用于验证所述一个或多个数据成分的数据完整性。
6.如权利要求1中要求保护的数据文件,其中,所述元数据包括 一个或多个标签,每个标签包括标签类型标识符,用于指示该标签的类型;以及标签名称字段,包括描述该标签的类型的文本数据。
7.如权利要求1中要求保护的数据文件,其中,所述一个或多个数据成分是图像数据、 文本数据、音频数据或视频数据。
8.如权利要求1中要求保护的数据文件,其中,每个数据成分包括所述图像成分中存储的图像的数据与所述数据成分的原始数据之间的差异的数据。
9.如权利要求1中要求保护的数据文件,其中,每个数据成分包括 所述一个或多个数据成分中的两个数据成分的原始数据之间的差异的数据。
10.如权利要求1中要求保护的数据文件,其中,所述数据成分中的一个或多个包括 对所述图像成分中存储的图像做出的改变的历史的数据。
11.如权利要求1中要求保护的数据文件,所述图像是拼接的全景照片,并且所述一个或多个数据成分包括所述拼接的全景照片的不同部分的预拼接的快照。
12.如权利要求1中要求保护的数据文件,所述图像是生成的HDR照片,并且所述一个或多个数据成分包括用于生成所述HDR照片的以不同曝光率拍摄的照片。
13.如权利要求1中要求保护的数据文件,所述图像是栅格化的图像,并且所述一个或多个数据成分包括矢量图形信息。
14.如权利要求1中要求保护的数据文件,其中,用来存储作为所述数据文件的代表的图像是用户可选择的。
15.如权利要求1中要求保护的数据文件,其中,所述元数据包括与所述图像成分相关联的元数据。
16.一种用于创建具有多于一个操作模式的数据文件的方法,该方法包括 选择图像;将所选图像作为所述数据文件的代表存储在所述数据文件的图像成分中; 创建与所述一个或多个数据成分相关联的元数据; 将所述元数据结合到所述图像成分中;以及将一个或多个数据成分附加到结合了所述元数据的所述图像成分以形成所述数据文件,其中在所述数据文件的第一操作模式中,在所述图像成分是所述数据文件的一部分的同时,所述图像成分能够被图像查看器读取以便查看所述所选图像,在所述数据文件的第二操作模式中,所述图像成分和所述一个或多个附加的数据成分能够被文件读取器读取。
17.如权利要求16中要求保护的方法,其中,所述图像成分是基于JPEG文件格式、 GIF(GIF89a版本)文件格式、TIFF文件格式或PNG文件格式的,并且能够被相应的文件读取器读取。
18.如权利要求16中要求保护的方法,其中,将所选图像作为所述数据文件的代表存储在所述数据文件的图像成分中的步骤包括从所述所选图像创建图像文件作为所述数据文件的所述图像成分。
19.如权利要求18中要求保护的方法,其中,将所述元数据结合到所述图像成分中的步骤包括读取所述图像文件中的用于放在所述元数据之前的数据并且将所读取的用于放在所述元数据之前的数据写入到新文件;读取所述图像文件中的用于放在所述元数据之后的数据并且将所读取的用于放在所述元数据之后的数据写入到所述新文件;以及将所构造的元数据结合到所述新文件中。
20.如权利要求16中要求保护的方法,将所选图像作为所述数据文件的代表存储在所述数据文件的图像成分中的步骤包括从所述所选图像创建具有分配的数据空间的图像文件作为所述数据文件的所述图像成分。
21.如权利要求20中要求保护的方法,其中,将所述元数据结合到所述图像成分中的步骤包括将所述元数据插入到所述图像文件的分配的数据空间中。
22.一种用于读取具有多于一个操作模式的数据文件的方法,该数据文件包括 图像成分,用于存储图像作为所述数据文件的代表;以及附加到所述图像成分的一个或多个数据成分, 所述图像成分包括与所述一个或多个数据成分相关联的元数据,所述方法包括在第一操作模式中,读取所述图像成分以查看所述数据文件的所述图像成分中存储的图像,在所述第一操作模式中所述一个或多个附加的数据成分不能被读取;以及在第二操作模式中,读取所述数据文件的所述图像成分或一个或多个所述附加的数据成分,在所述第二操作模式中所述图像成分和所述一个或多个附加的数据成分能够被读取。
全文摘要
具有多于一个操作模式的数据文件。该数据文件包括用于存储图像作为数据文件的代表的图像成分,以及附加到图像成分的一个或多个数据成分。图像成分包括与一个或多个数据成分相关联的元数据。在第一操作模式中,在图像成分是数据文件的一部分的同时,数据文件的图像成分能够被图像查看器读取以便查看图像。在第一操作模式中一个或多个附加的数据成分不能被图像查看器读取。在第二操作模式中,图像成分和一个或多个附加的数据成分能够被文件读取器读取。
文档编号G06T9/00GK102414721SQ201080019500
公开日2012年4月11日 申请日期2010年4月19日 优先权日2009年5月1日
发明者弗朗西斯科·乔纳斯·萨利姆, 李泰齐, 陈玮伦 申请人:创新科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1