專利名稱:用于數(shù)字圖像的可擴(kuò)展元數(shù)據(jù)體系結(jié)構(gòu)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計算機(jī)系統(tǒng),尤其涉及用于數(shù)字圖像的可擴(kuò)展元數(shù)據(jù)體系結(jié) 構(gòu)的改進(jìn)的系統(tǒng)和方法。
背景技術(shù):
隨著數(shù)字圖像的普及度的增長,數(shù)字圖像的圖像格式持續(xù)發(fā)展。隨著數(shù)字圖 像的應(yīng)用的擴(kuò)展,對用于描述數(shù)字圖像的元數(shù)據(jù)格式的擴(kuò)展在開發(fā)用于特定圖像格 式的工業(yè)標(biāo)準(zhǔn)時定期出現(xiàn)。然而,用于對圖像格式編碼和解碼的編解碼器的現(xiàn)有實 現(xiàn)通常具有用于標(biāo)準(zhǔn)圖像類型的固定元數(shù)據(jù)格式。例如,用于將元數(shù)據(jù)包括在圖像 數(shù)據(jù)內(nèi)的一種常見方法是留出用于元數(shù)據(jù)的一數(shù)據(jù)塊。當(dāng)在圖像格式中引入附加元 數(shù)據(jù)時,為該圖像格式構(gòu)建的編解碼器中的編碼器和解碼器的實現(xiàn)必須被更新來處 理該附加的元數(shù)據(jù)。不幸的是,用于更新編解碼器的過程是昂貴且耗時的。
此外,編解碼器的現(xiàn)有實現(xiàn)不能提供對第三方元數(shù)據(jù)格式的支持。而且,編 解碼器與特定圖像格式之間的緊耦合和依賴性阻止了對具有多個圖像的單個圖像
文件中所包括的不同圖像格式的元數(shù)據(jù)進(jìn)行編碼和解碼的可執(zhí)行碼的簡便重用。需 要一種使計算機(jī)系統(tǒng)能容易地適用于圖像格式的附加元數(shù)據(jù)的引入而不必發(fā)布編 解碼器的新實現(xiàn)來支持圖像格式的附加元數(shù)據(jù)類型的方式。這樣的系統(tǒng)和方法也應(yīng) 能支持使用圖像格式和對現(xiàn)有圖像格式的擴(kuò)展的第三方實現(xiàn)的應(yīng)用。
發(fā)明概述
簡要地,本發(fā)明提供一種用于數(shù)字圖像的可擴(kuò)展元數(shù)據(jù)體系結(jié)構(gòu)的改進(jìn)的系 統(tǒng)和方法。為此,可擴(kuò)展軟件代碼可被操作上耦合至元數(shù)據(jù)査詢讀取器和元數(shù)據(jù)査 詢寫入器以便請求用于操縱圖像文件中的元數(shù)據(jù)的操作。元數(shù)據(jù)査詢讀取器可被操 作上耦合至含有用于標(biāo)識圖像文件中的元數(shù)據(jù)塊并將元數(shù)據(jù)讀取器與每一元數(shù)據(jù) 塊相關(guān)聯(lián)的塊讀取器的解碼器。每一元數(shù)據(jù)讀取器然后可枚舉與該元數(shù)據(jù)讀取器相 關(guān)聯(lián)的元數(shù)據(jù)塊中的元數(shù)據(jù)。元數(shù)據(jù)查詢寫入器可操作上耦合至含有用于將元數(shù)據(jù)寫入器與要寫到圖像文件的每一元數(shù)據(jù)塊相關(guān)聯(lián)的塊寫入器的編碼器。每一元數(shù)據(jù)
寫入器然后可將元數(shù)據(jù)寫入與該元數(shù)據(jù)寫入器相關(guān)聯(lián)的元數(shù)據(jù)塊中。
每一元數(shù)據(jù)讀取器和每一元數(shù)據(jù)寫入器可被操作上耦合至可包括帶有一個或
多個嵌套元數(shù)據(jù)塊的元數(shù)據(jù)塊的圖像文件。在一個實施例中,元數(shù)據(jù)塊可包括不同
圖像類型的嵌套元數(shù)據(jù)塊。每一嵌套元數(shù)據(jù)塊又可包括一個或多個嵌套元數(shù)據(jù)塊,
使得元數(shù)據(jù)塊可被嵌套任何數(shù)目的層次。相應(yīng)地,元數(shù)據(jù)讀取器和/或元數(shù)據(jù)寫入 器可與嵌套元數(shù)據(jù)塊的分層結(jié)構(gòu)內(nèi)的每一元數(shù)據(jù)塊相關(guān)聯(lián)。
而且,該系統(tǒng)和方法支持査詢語言,使得元數(shù)據(jù)査詢讀取器和元數(shù)據(jù)査詢寫 入器可接收査詢串。如果所指定的查詢串不對應(yīng)于完全合格的位置,則該請求可由 可操作上耦合至元數(shù)據(jù)查詢讀取器和元數(shù)據(jù)査詢寫入器的策略組件解析。策略組件 可通過將查詢串映射到元數(shù)據(jù)分層結(jié)構(gòu)內(nèi)的特定位置來解析該査詢串。
有利的是,該系統(tǒng)和方法允許添加要被添加到圖像文件的新元數(shù)據(jù)類型,且 可容易地添加新元數(shù)據(jù)讀取器和寫入器以便對圖像文件中與該新元數(shù)據(jù)類型相關(guān) 聯(lián)的元數(shù)據(jù)進(jìn)行解碼和編碼。所提供的框架因此可支持圖像格式和對現(xiàn)有圖像格式 的擴(kuò)展的第三方實現(xiàn)。而且,可使用快速元數(shù)據(jù)編碼器來對元數(shù)據(jù)執(zhí)行原地編輯以 容易地改變所枚舉的元數(shù)據(jù)項而無需使用單獨(dú)的圖像流來將經(jīng)修改的元數(shù)據(jù)寫到 圖像文件。通過結(jié)合附圖考慮以下詳細(xì)描述,其它優(yōu)點(diǎn)將是顯而易見的,附圖中
附圖簡述
圖1是一般示出其中可結(jié)合本發(fā)明的計算機(jī)系統(tǒng)的框圖2是根據(jù)本發(fā)明的一方面, 一般表示用于數(shù)字圖像的可擴(kuò)展元數(shù)據(jù)體系結(jié) 構(gòu)的一個實施例中的各系統(tǒng)組件的示例性體系結(jié)構(gòu)的框圖3是根據(jù)本發(fā)明的一方面, 一般表示一個實施例中用于讀取圖像文件中的 元數(shù)據(jù)所采取的示例性步驟的流程圖4是根據(jù)本發(fā)明的一方面, 一般表示在一個實施例中用于將元數(shù)據(jù)寫入圖 像文件所采取的示例性步驟的流程圖5是根據(jù)本發(fā)明的一方面, 一般表示在用于將元數(shù)據(jù)快速寫入圖像文件的 可擴(kuò)展元數(shù)據(jù)體系結(jié)構(gòu)的一個實施例中的各系統(tǒng)組件的示例性體系結(jié)構(gòu)的框圖;以 及
圖6是根據(jù)本發(fā)明的一方面, 一般表示在一個實施例中用于將元數(shù)據(jù)快速寫 入圖像文件所采取的示例性步驟的流程圖。詳細(xì)描述
示激絲凝伊界裙
圖1示出了可在其上實現(xiàn)本發(fā)明的合適的計算系統(tǒng)環(huán)境100的示例。計算系 統(tǒng)環(huán)境IOO只是合適的計算環(huán)境的一個示例,并不旨在對本發(fā)明的使用范圍或功能 提出任何限制。也不應(yīng)該把計算環(huán)境100解釋為對示例性操作環(huán)境100中示出的任
一組件或其組合有任何依賴性或要求。
本發(fā)明可用眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置來操作。適合在本發(fā)明
中使用的公知的計算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于個人計算機(jī)、
服務(wù)器計算機(jī)、手持或膝上型設(shè)備、圖形輸入板設(shè)備、無頭服務(wù)器、多處理器系統(tǒng)、
基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、大型
機(jī)、包含上述系統(tǒng)或設(shè)備中的任一個的分布式計算機(jī)環(huán)境等。
本發(fā)明可在諸如程序模塊等由計算機(jī)執(zhí)行的計算機(jī)可執(zhí)行指令的通用語境中 描述。 一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行 特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。本發(fā)明也可以在分布式計算環(huán)境中實現(xiàn),其中 任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式計算環(huán)境中,程序模塊可 以位于包括存儲器存儲設(shè)備在內(nèi)的本地和/或遠(yuǎn)程計算機(jī)存儲介質(zhì)中。
參考圖1,用于實現(xiàn)本發(fā)明的一個示例性系統(tǒng)包括計算機(jī)110形式的通用計算 設(shè)備。計算機(jī)110的組件可以包括,但不限于,處理單元120、系統(tǒng)存儲器130和 將包括系統(tǒng)存儲器在內(nèi)的各種系統(tǒng)組件耦合至處理單元120的系統(tǒng)總線121。系統(tǒng) 總線121可以是若干類型的總線結(jié)構(gòu)中的任一種,包括存儲器總線或存儲器控制 器、外圍總線和使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。作為示例,而非限 制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA) 總線、擴(kuò)展的ISA (EISA)總線、視頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(VESA)局部總線和外 圍部件互連(PCI)總線(也被稱為Mezzanine總線)。
計算機(jī)110通常包括各種計算機(jī)可讀介質(zhì)。計算機(jī)可讀介質(zhì)可以是能夠被計
算機(jī)IIO訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、可移動和不可移動
介質(zhì)。作為示例,而非限制,計算機(jī)可讀介質(zhì)可以包括計算機(jī)存儲介質(zhì)和通信介質(zhì)。 計算機(jī)存儲介質(zhì)包括以任何方法或技術(shù)實現(xiàn)的用于存儲諸如計算機(jī)可讀指令、數(shù)據(jù)
結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和不可移動介質(zhì)。 計算機(jī)存儲介質(zhì)包括,但不限于,RAM、 ROM、 EEPROM、閃存或其它存儲器技
7術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存 儲或其它磁性存儲設(shè)備、或能用于存儲所需信息且可以由計算機(jī)110訪問的任何其 它介質(zhì)。通信介質(zhì)通常具體化為諸如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號中的計 算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術(shù)語 "已調(diào)制數(shù)據(jù)信號"指的是這樣一種信號,其一個或多個特征以在信號中編碼信息 的方式被設(shè)定或更改。作為示例,而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接線 連接的有線介質(zhì),以及諸如聲學(xué)、RF、紅外線和其它無線介質(zhì)的無線介質(zhì)。上述 中任一個的組合也應(yīng)包括在計算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲器130包括易失性和/或非易失性存儲器形式的計算機(jī)存儲介質(zhì),諸 如只讀存儲器(ROM) 131和隨機(jī)存取存儲器(RAM) 132。基本輸入/輸出系統(tǒng) 133(BIOS)包含有助于諸如啟動時在計算機(jī)110中元件之間傳遞信息的基本例程, 它通常被存儲在ROM 131中。RAM 132通常包含處理單元120可以立即訪問和/ 或目前正在操作的數(shù)據(jù)和/或程序模塊。作為示例,而非限制,圖1示出了操作系 統(tǒng)134、應(yīng)用程序135、其它程序模塊136和程序數(shù)據(jù)137。
計算機(jī)110也可以包括其它可移動/不可移動、易失性/非易失性計算機(jī)存儲介 質(zhì)。僅作為示例,圖l示出了從不可移動、非易失性磁介質(zhì)中讀取或向其寫入的硬 盤驅(qū)動器141,從可移動、非易失性磁盤152中讀取或向其寫入的磁盤驅(qū)動器151, 以及從諸如CD ROM或其它光學(xué)介質(zhì)等可移動、非易失性光盤156中讀取或向其 寫入的光盤驅(qū)動器155??梢栽谑纠圆僮鳝h(huán)境下使用的其它可移動/不可移動、易 失性/非易失性計算機(jī)存儲介質(zhì)包括,但不限于,盒式磁帶、閃存卡、數(shù)字多功能 盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤驅(qū)動器141通常由諸如接口 140 等不可移動存儲器接口連接至系統(tǒng)總線121,磁盤驅(qū)動器151和光盤驅(qū)動器155通 常由諸如接口 150等可移動存儲器接口連接至系統(tǒng)總線121。
以上描述和在圖1中示出的驅(qū)動器及其相關(guān)聯(lián)的計算機(jī)存儲介質(zhì)為計算機(jī) 110提供了對計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其它數(shù)據(jù)的存儲。例如,在 圖1中,硬盤驅(qū)動器141被示為存儲操作系統(tǒng)144、應(yīng)用程序145、其它程序模塊 146和程序數(shù)據(jù)147。注意,這些組件可以與操作系統(tǒng)134、應(yīng)用程序135、其它程 序模塊B6和程序數(shù)據(jù)137相同或不同。操作系統(tǒng)144、應(yīng)用程序145、其它程序 模塊146和程序數(shù)據(jù)147在這里被給定了不同的標(biāo)號是為了說明至少它們是不同的 副本。用戶可以通過輸入設(shè)備,諸如圖形輸入板或電子數(shù)字化儀164、麥克風(fēng)163、 鍵盤162和定點(diǎn)設(shè)備161 (通常指鼠標(biāo)、跟蹤球或觸摸墊)向計算機(jī)110輸入命令和信息。圖1中未示出的其它輸入設(shè)備可以包括操縱桿、游戲墊、圓盤式衛(wèi)星天線、 掃描儀、或包括含有生物測定傳感器、環(huán)境傳感器、位置傳感器或其它類型的傳感 器的設(shè)備在內(nèi)的其它設(shè)備。這些和其它輸入設(shè)備通常由耦合至系統(tǒng)總線的用戶輸入
接口 160連接至處理單元120,但也可以由其它接口或總線結(jié)構(gòu),諸如并行端口、 游戲端口或通用串行總線(USB)連接。監(jiān)視器191或其它類型的顯示設(shè)備也經(jīng)由 接口,諸如視頻接口 190連接至系統(tǒng)總線121。監(jiān)視器191也可與經(jīng)由觸摸屏接口 192連接至系統(tǒng)總線121的觸摸屏面板等集成。注意到,監(jiān)視器和/或觸摸屏面板可 物理耦合至其中包括計算設(shè)備110的外殼,諸如在圖形輸入板類型的個人計算機(jī)中 那樣。此外,諸如計算設(shè)備110等計算機(jī)也可包括其它外圍輸出設(shè)備,諸如揚(yáng)聲器 194和打印機(jī)195,它們可以通過輸出外圍接口 193等連接。
計算機(jī)110可使用至一個或多個遠(yuǎn)程計算機(jī),諸如遠(yuǎn)程計算機(jī)180的邏輯連 接在網(wǎng)絡(luò)化環(huán)境下操作。遠(yuǎn)程計算機(jī)180可以是個人計算機(jī)、服務(wù)器、路由器、網(wǎng) 絡(luò)PC、對等設(shè)備或其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),且通常包括上文相對于計算機(jī)IIO描述 的許多或所有元件,盡管在圖1中只示出存儲器存儲設(shè)備181。圖1中所示邏輯連 接包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但也可以包括其它網(wǎng)絡(luò)。這樣 的連網(wǎng)環(huán)境在辦公室、企業(yè)范圍計算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。當(dāng)在 LAN連網(wǎng)環(huán)境中使用時,計算機(jī)IIO通過網(wǎng)絡(luò)接口或適配器170連接至LAN 171。 當(dāng)在WAN連網(wǎng)環(huán)境中使用時,計算機(jī)110通常包括調(diào)制解調(diào)器172或用于通過諸 如因特網(wǎng)等WAN 173建立通信的其它裝置。調(diào)制解調(diào)器172可以是內(nèi)置或外置的, 它可以通過用戶輸入接口 160或其它合適的機(jī)制連接至系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán) 境中,相對于計算機(jī)110描述的程序模塊或其部分可以存儲在遠(yuǎn)程存儲器存儲設(shè)備 中。作為示例,而非限制,圖1示出了遠(yuǎn)程應(yīng)用程序185駐留在存儲器設(shè)備181 上??梢岳斫猓镜木W(wǎng)絡(luò)連接是示例性的,且可以使用在計算機(jī)之間建立通信鏈 路的其它手段。
教字微游,展元數(shù)薪沐微銜
本發(fā)明一般針對一種用于數(shù)字圖像的可擴(kuò)展元數(shù)據(jù)體系結(jié)構(gòu)的系統(tǒng)和方法。 如此處所使用的,元數(shù)據(jù)可以指可描述諸如圖像等多媒體內(nèi)容的屬性的數(shù)據(jù),這些 屬性包括但不限于,作者、創(chuàng)建日期、寬度、高度、快門速度等。多媒體內(nèi)容一般 可指包括但不限于數(shù)字圖像或數(shù)字視頻的任何類型的視頻內(nèi)容、包括但不限于數(shù)字 音樂的任何類型的音頻內(nèi)容、或視頻和音頻內(nèi)容的組合。該系統(tǒng)和方法可有利地允許添加要被添加到圖像文件的新元數(shù)據(jù)類型,且可容易地添加新元數(shù)據(jù)讀取器和寫 入器以便對圖像文件中與該新元數(shù)據(jù)類型相關(guān)聯(lián)的元數(shù)據(jù)進(jìn)行解碼和編碼。所提供 的框架因此可支持圖像格式和對現(xiàn)有圖像格式的擴(kuò)展的第三方實現(xiàn)。為此,本發(fā)明 可提供可與圖像文件內(nèi)的元數(shù)據(jù)塊相關(guān)聯(lián)的一個或多個元數(shù)據(jù)塊讀取器。如此處所 使用的,元數(shù)據(jù)塊可指可以相關(guān)或可以不相關(guān)的一個或多個元數(shù)據(jù)項的集合。例如, 某些成像格式可指定各自由關(guān)鍵字和值對表示的元數(shù)據(jù)項的集合。
本發(fā)明也可提供可與要被寫到圖像文件的元數(shù)據(jù)塊相關(guān)聯(lián)的一個或多個元數(shù) 據(jù)塊寫入器。如可見到的,可使用快速元數(shù)據(jù)編碼器來執(zhí)行對元數(shù)據(jù)的原地編輯以 容易地改變所枚舉的元數(shù)據(jù)項,而無需使用用于將經(jīng)修改的元數(shù)據(jù)寫到圖像文件的 單獨(dú)的圖像流。如可以理解的,此處所述的各個框圖、流程圖和情形僅是示例,且 存在本發(fā)明可應(yīng)用的眾多其它情形。
轉(zhuǎn)向附圖的圖2,示出了一般表示數(shù)字圖像的可擴(kuò)展元數(shù)據(jù)體系結(jié)構(gòu)的一個實 施例中的各系統(tǒng)組件的示例性體系結(jié)構(gòu)的框圖。本領(lǐng)域的技術(shù)人員可以理解,在該 圖中所示的框內(nèi)實現(xiàn)的功能可被實現(xiàn)為單獨(dú)的組件,或者若干或所有框的功能可在
單個組件內(nèi)實現(xiàn)。作為示例,解碼器212的功能可在與編解碼器210分開的組件中實現(xiàn)。
圖2中所示的可執(zhí)行軟件202可對圖像文件執(zhí)行任何數(shù)目的操作,包括從圖 像文件中讀取元數(shù)據(jù)和將元數(shù)據(jù)寫到圖像文件??蓤?zhí)行軟件202可操作上耦合至元 數(shù)據(jù)査詢讀取器204以便請求從圖像文件中讀取元數(shù)據(jù),且可操作上耦合至元數(shù)據(jù) 查詢寫入器208以便請求將元數(shù)據(jù)寫到圖像文件。在一個實施例中,元數(shù)據(jù)查詢讀 取器204可提供可由可執(zhí)行軟件202調(diào)用來使用查詢語言請求從圖像文件中讀取元 數(shù)據(jù)的MetaDataQueryReader應(yīng)用程序編程接口 (API),且元數(shù)據(jù)查詢寫入器208 可提供可由可執(zhí)行軟件202調(diào)用來使用査詢語言請求將元數(shù)據(jù)寫到圖像文件的 MetaDataQueryWriter API。策略組件206也可被操作上耦合至元數(shù)據(jù)查詢讀取器 204和元數(shù)據(jù)查詢寫入器208以便解析對元數(shù)據(jù)項的非完全合格的查詢??蓤?zhí)行軟 件202、元數(shù)據(jù)査詢讀取器204、元數(shù)據(jù)査詢寫入器208和策略組件206各自可以 是任何可執(zhí)行軟件代碼,包括應(yīng)用程序或應(yīng)用組件、鏈接庫組件、對象等。元數(shù)據(jù) 查詢讀取器204也可被操作上耦合至編解碼器210的解碼器212,且元數(shù)據(jù)査詢寫 入器208也可被操作上耦合至編解碼器210的編碼器216。
可能存在諸如編解碼器210等為計算機(jī)系統(tǒng)所支持的每一類型的圖像文件設(shè) 置的編解碼器。例如,可能有用于GIF、 JPEG、 PNG、 TIFF和其它圖像文件格式的編解碼器。每一編解碼器可包括用于對圖像進(jìn)行解碼的解碼器212和用于對圖像
進(jìn)行編碼的編碼器216。解碼器212可包括可操作上耦合至一個或多個元數(shù)據(jù)讀取 器220的元數(shù)據(jù)塊讀取器214。元數(shù)據(jù)塊讀取器214可標(biāo)識圖像文件224內(nèi)的可識 別元數(shù)據(jù)塊226。每一元數(shù)據(jù)讀取器220然后可提供用于剖析圖像文件內(nèi)所識別的 一類元數(shù)據(jù)塊的功能。在一個實施例中,解碼器因此可通過使用元數(shù)據(jù)塊讀取器來 標(biāo)識圖像文件內(nèi)的可識別元數(shù)據(jù)塊以讀取該圖像文件中的元數(shù)據(jù),然后可使用相同 或不同的元數(shù)據(jù)讀取器來對每一元數(shù)據(jù)塊中的元數(shù)據(jù)項進(jìn)行解碼。在各個實施例 中,解碼器也可使用一個或多個元數(shù)據(jù)讀取器來剖析可包括嵌套元數(shù)據(jù)塊228的元 數(shù)據(jù)塊226。可使用相同或不同的元數(shù)據(jù)讀取器來對每一嵌套元數(shù)據(jù)塊中的元數(shù)據(jù) 項進(jìn)行解碼。以此方式,解碼器可提供元數(shù)據(jù)查詢讀取器為可執(zhí)行碼請求的元數(shù)據(jù) 項。
而且,編碼器216可包括可操作上耦合至一個或多個元數(shù)據(jù)寫入器222的元 數(shù)據(jù)塊寫入器218。元數(shù)據(jù)塊寫入器218可以為要寫入圖像文件224內(nèi)的每一元數(shù) 據(jù)塊226標(biāo)識并添加元數(shù)據(jù)寫入器222。每一元數(shù)據(jù)寫入器222然后可提供用于寫 入要寫入圖像文件內(nèi)的一類元數(shù)據(jù)塊的元數(shù)據(jù)項的功能。在一個實施例中,編碼器 因此可通過使用元數(shù)據(jù)塊寫入器來為要寫入圖像文件內(nèi)的每一元數(shù)據(jù)塊標(biāo)識并添 加元數(shù)據(jù)寫入器來將元數(shù)據(jù)寫入圖像文件中。因此,編碼器可使用元數(shù)據(jù)查詢寫入 器來寫入可執(zhí)行碼所請求的元數(shù)據(jù)項。
元數(shù)據(jù)讀取器220和元數(shù)據(jù)寫入器222可被操作上耦合至可包括元數(shù)據(jù)塊226 和圖像數(shù)據(jù)塊230的圖像文件224。元數(shù)據(jù)塊226可包括一個或多個嵌套元數(shù)據(jù)塊 228。在一個實施例中,元數(shù)據(jù)塊可包括圖像類型不同于元數(shù)據(jù)塊的嵌套元數(shù)據(jù)塊。 每一嵌套元數(shù)據(jù)塊又可包括一個或多個嵌套元數(shù)據(jù)塊,使得元數(shù)據(jù)塊可被嵌套任何 數(shù)目的層次。相應(yīng)地,元數(shù)據(jù)讀取器可與嵌套元數(shù)據(jù)塊分層結(jié)構(gòu)內(nèi)的每一元數(shù)據(jù)塊 相關(guān)聯(lián)。
本領(lǐng)域的技術(shù)人員可以理解,圖2中所示的元數(shù)據(jù)體系結(jié)構(gòu)僅是用于實現(xiàn)本 發(fā)明的一個示例性實施例,且可使用其它計算系統(tǒng)配置來實現(xiàn)本發(fā)明。例如,可提 供應(yīng)用程序的解碼器而不提供編碼器,它可讀取圖像文件中的元數(shù)據(jù)信息但不可將 元數(shù)據(jù)信息寫到圖像文件。作為另一示例,可通過使用元數(shù)據(jù)塊讀取器來從圖像文 件中讀取元數(shù)據(jù)塊然后使用元數(shù)據(jù)塊寫入器來對元數(shù)據(jù)塊中的元數(shù)據(jù)項執(zhí)行原地 編輯以便寫回圖像文件以實現(xiàn)快速元數(shù)據(jù)寫入器。在又一示例中,可執(zhí)行軟件代碼 可實例化元數(shù)據(jù)塊讀取器、元數(shù)據(jù)塊寫入器、元數(shù)據(jù)讀取器、和/或元數(shù)據(jù)寫入器,以便在無需解碼器和/或編碼器的情況下對圖像文件中的元數(shù)據(jù)執(zhí)行操作。
圖3呈現(xiàn)了一般表示在一個實施例中用于讀取圖像文件中的元數(shù)據(jù)而采取的 示例性步驟的流程圖。本領(lǐng)域的技術(shù)人員可以理解, 一種實現(xiàn)可選擇以不同的順序 來執(zhí)行這些步驟或者可為效率或靈活性起見選擇僅執(zhí)行這些步驟中的某一些,而同 時達(dá)到相同的效果且不背離本發(fā)明的范圍。在步驟302處,可接收打開圖像文件的
請求。然后在步驟304處,可找到用于讀取該圖像文件的解碼器。可能存在為計算
機(jī)系統(tǒng)所支持的每一類型的圖像文件設(shè)置的解碼器。基于圖像文件的類型,為該圖 像類型設(shè)置的解碼器可被實例化。
一旦找到解碼器之后,可在步驟306處例如由所實例化的解碼器剖析該文件 圖像中所存儲的圖像流以確認(rèn),該解碼器能夠讀取該圖像文件中的元數(shù)據(jù)。在步驟 308處,可找到用于該圖像文件的元數(shù)據(jù)塊讀取器。在一個實施例中,解碼器可使 用API來基于圖像文件的類型査找并實例化元數(shù)據(jù)塊讀取器。接著,可在步驟310 處,由元數(shù)據(jù)塊讀取器從該圖像文件中讀取元數(shù)據(jù)塊,然后在步驟312處,可找到 可對該元數(shù)據(jù)塊中的元數(shù)據(jù)項進(jìn)行解碼的元數(shù)據(jù)讀取器。例如,在一個實施例中, 元數(shù)據(jù)讀取器可由可標(biāo)識它可解碼的元數(shù)據(jù)塊的類型的元數(shù)據(jù)GUID來注冊。在一 個實施例中,如果不能找到用于元數(shù)據(jù)塊的讀取器,則可為元數(shù)據(jù)塊實例化用于該 元數(shù)據(jù)塊的未知讀取器。
在步驟314處,然后可枚舉該元數(shù)據(jù)塊中的元數(shù)據(jù)。 一旦枚舉了該元數(shù)據(jù)塊 中的元數(shù)據(jù)之后,可在步驟316處確定是否從該圖像文件中讀取了最后一個元數(shù)據(jù) 塊。如果否,則可通過返回至步驟310來讀取另一元數(shù)據(jù)塊。對圖像文件中的每一 元數(shù)據(jù)塊,可執(zhí)行步驟310到314。因此,在一個實施例中,可讀取元數(shù)據(jù)讀取器 找到的每一元數(shù)據(jù)塊,且可枚舉該元數(shù)據(jù)塊中的元數(shù)據(jù)。如果在步驟316處確定已 經(jīng)讀取了最后一個元數(shù)據(jù)塊,則可在步驟318處顯示所枚舉的元數(shù)據(jù),或者為任何 其它目的而由應(yīng)用程序使用該元數(shù)據(jù),并可結(jié)束用于從文件讀取元數(shù)據(jù)的處理。
在一個實施例中,可通過使用圖3中所述的步驟來構(gòu)造表示元數(shù)據(jù)分層結(jié)構(gòu) 的非循環(huán)樹。每一元數(shù)據(jù)塊可表示樹中的一節(jié)點(diǎn),且元數(shù)據(jù)塊內(nèi)的嵌套元數(shù)據(jù)塊可 表示該樹中表示該元數(shù)據(jù)塊的節(jié)點(diǎn)的子節(jié)點(diǎn)。可能存在與由樹中的節(jié)點(diǎn)表示的每一 元數(shù)據(jù)塊相關(guān)聯(lián)的元數(shù)據(jù)讀取器。通過使用中序遍歷來走查該樹,可通過請求與每 一節(jié)點(diǎn)處的元數(shù)據(jù)塊相關(guān)聯(lián)的元數(shù)據(jù)讀取器來枚舉該元數(shù)據(jù)塊的屬性來完整地枚 舉圖像文件內(nèi)的元數(shù)據(jù)。在一個實施例中,可懶惰地構(gòu)建樹,使得元數(shù)據(jù)塊的屬性 在其需要被讀取之前不會被讀取。例如,可請求諸如"作者"等元數(shù)據(jù)項。盡管懶惰地構(gòu)建了該樹,但與處于該樹第二層的表示元數(shù)據(jù)塊的節(jié)點(diǎn)相關(guān)聯(lián)的元數(shù)據(jù)讀取 器可枚舉"作者"的屬性。如果之后未請求任何其它屬性,則圖像文件不需被進(jìn)一
步讀取也不需對任何其它元數(shù)據(jù)塊進(jìn)行解碼。
圖4呈現(xiàn)了一般表示一個實施例中用于將元數(shù)據(jù)寫入圖像文件而采取的示例
性步驟的流程圖。在步驟402處,可接收創(chuàng)建圖像文件的請求。在步驟404處,可 找到用于將元數(shù)據(jù)寫入該圖像文件的編碼器。可能存在為計算機(jī)系統(tǒng)所支持的每一 類型的圖像文件設(shè)置的編碼器?;趫D像文件的類型,可實例化為該圖像類型設(shè)置 的編碼器。
一旦找到編碼器之后,可在步驟406處找到用于該圖像文件的元數(shù)據(jù)塊寫入 器。在一個實施例中,編碼器可使用API來基于圖像文件的類型査找并實例化元 數(shù)據(jù)塊寫入器。接著,在步驟408處,可例如由所實例化的編碼器確定可根據(jù)圖像 文件的格式寫入的元數(shù)據(jù)塊的順序。
然后,可在步驟310處找到將元數(shù)據(jù)項寫入元數(shù)據(jù)塊中的元數(shù)據(jù)寫入器。在 一個實施例中,可調(diào)用API來査找并實例化該元數(shù)據(jù)塊的元數(shù)據(jù)寫入器。然后可 在步驟412處,將該元數(shù)據(jù)塊寫入該圖像文件的元數(shù)據(jù)流中。 一旦元數(shù)據(jù)塊被寫入 該圖像文件的元數(shù)據(jù)流中,即可在步驟414處確定是否已經(jīng)將要被寫入元數(shù)據(jù)流的 元數(shù)據(jù)塊順序中的最后一個元數(shù)據(jù)塊寫入該圖像文件的元數(shù)據(jù)流。如果否,則可通 過返回至步驟410來找到另一元數(shù)據(jù)寫入器。對要被寫入圖像文件的元數(shù)據(jù)流的元 數(shù)據(jù)順序中的每一元數(shù)據(jù)塊,可執(zhí)行步驟410至412。
因此在一個實施例中,對順序中的每一元數(shù)據(jù)塊,可找到一元數(shù)據(jù)讀取器, 元數(shù)據(jù)可被寫入該元數(shù)據(jù)塊,且該元數(shù)據(jù)塊可被串行寫入該圖像文件的元數(shù)據(jù)流。 如果在步驟414處確定已寫入了順序中的最后一個元數(shù)據(jù)塊,則在步驟416處,包 括所寫入的元數(shù)據(jù)流的圖像文件可被持久存儲或可為任何其它目的由應(yīng)用程序使 用,并且可結(jié)束用于將元數(shù)據(jù)寫入圖像文件的處理。
圖5呈現(xiàn)了一般表示在用于將元數(shù)據(jù)快速寫入圖像文件的可擴(kuò)展元數(shù)據(jù)體系 結(jié)構(gòu)的一個實施例中的各系統(tǒng)組件的示例性體系結(jié)構(gòu)的框圖。在該實施例中,對元 數(shù)據(jù)塊中的元數(shù)據(jù)項的原地編輯可通過首先使用元數(shù)據(jù)塊讀取器來從圖像文件中 讀取元數(shù)據(jù)塊然后使用快速元數(shù)據(jù)塊寫入器來對元數(shù)據(jù)塊中的元數(shù)據(jù)執(zhí)行原地編 輯以便寫回圖像文件來實現(xiàn)。如此處所使用的,對元數(shù)據(jù)塊的原地編輯可以指在圖 像流內(nèi)對元數(shù)據(jù)塊重新編碼。
從而,可執(zhí)行軟件202可請求元數(shù)據(jù)査詢讀取器204從諸如圖5中所示的TIFF圖像文件504等圖像文件中讀取元數(shù)據(jù)項。如果由元數(shù)據(jù)塊查詢讀取器所接收的請 求對該元數(shù)據(jù)項不是完全合格的查詢,則策略組件206可解析該查詢,使其成為對 該元數(shù)據(jù)項完全合格的査詢。然后可實例化為TIFF圖像類型設(shè)置的解碼器,諸如 解碼器212。
操作上耦合至解碼器212的元數(shù)據(jù)塊讀取器214可查找并實例化一個或多個 元數(shù)據(jù)讀取器220以便剖析元數(shù)據(jù)塊來對每一元數(shù)據(jù)塊中的元數(shù)據(jù)項進(jìn)行解碼。例 如,能夠剖析元數(shù)據(jù)塊506的一個元數(shù)據(jù)讀取器可被實例化,且可建立指向元數(shù)據(jù) 塊506的引用514。元數(shù)據(jù)塊506可表示TIFF圖像文件504內(nèi)標(biāo)記為IFD A的圖 像文件目錄(IFD),且可提供關(guān)于圖像數(shù)據(jù)塊508所請求的元數(shù)據(jù)信息。例如, 圖像數(shù)據(jù)塊508可表示傳真的一頁,且可執(zhí)行碼202所請求的元數(shù)據(jù)項可以是該傳 真圖像的作者。
在接收到所請求的元數(shù)據(jù)項之后,可執(zhí)行碼可請求元數(shù)據(jù)査詢寫入器208改 變該傳真頁的作者的姓名。可實例化快速元數(shù)據(jù)編碼器502以便對元數(shù)據(jù)塊506 執(zhí)行原地編輯??焖僭獢?shù)據(jù)編碼器502可以是為將元數(shù)據(jù)寫到TIFF圖像文件而設(shè) 置的編碼器??焖僭獢?shù)據(jù)編碼器502可包括可操作上耦合至一個或多個元數(shù)據(jù)寫入 器222的元數(shù)據(jù)塊寫入器218。
為此,元數(shù)據(jù)塊寫入器218可使用操作上耦合至元數(shù)據(jù)塊讀取器214的一列 元數(shù)據(jù)讀取器220來實例化用對每一元數(shù)據(jù)塊的引用來初始化的相應(yīng)元數(shù)據(jù)寫入 器222。例如,可對應(yīng)于帶有至元數(shù)據(jù)塊506的引用514的元數(shù)據(jù)讀取器的元數(shù)據(jù) 寫入器可被實例化并使用指向元數(shù)據(jù)塊506的引用516來初始化。而可對應(yīng)于帶有 至元數(shù)據(jù)塊510的引用518的元數(shù)據(jù)讀取器的另一元數(shù)據(jù)寫入器可被實例化,并使 用指向元數(shù)據(jù)塊510的引用520來初始化。以此方式,元數(shù)據(jù)塊寫入器218可標(biāo)識 并添加用于元數(shù)據(jù)塊506的元數(shù)據(jù)寫入器222,元數(shù)據(jù)塊506包括請求對TIFF圖 像文件504內(nèi)的圖像塊數(shù)據(jù)508改變的作者元數(shù)據(jù)項。作為實例化元數(shù)據(jù)寫入器 222的一部分,可建立至元數(shù)據(jù)塊506的引用516來執(zhí)行原地編輯以改變該TIFF 圖像文件流504內(nèi)的作者元數(shù)據(jù)項。
在一個實施例中,可提供一種用于向元數(shù)據(jù)塊添加填充符(padding)以允許 有足夠的空間供快速元數(shù)據(jù)編碼器使用附加元數(shù)據(jù)寫入元數(shù)據(jù)塊而不必寫入整個 圖像文件的機(jī)制。例如,當(dāng)編碼成圖像文件時可添加填充符。從而,諸如應(yīng)用程序 程序等可執(zhí)行碼可通過使用査詢語言來標(biāo)識元數(shù)據(jù)分層結(jié)構(gòu)內(nèi)要添加填充符的位 置來設(shè)置填充符量。例如,在TIFF圖像的情況中,應(yīng)用程序可使用值4096來設(shè)置元數(shù)據(jù)項,諸如"/ifd/PaddingSchema:padding",以分配4K的填充符。然后, 當(dāng)元數(shù)據(jù)寫入器可寫到圖像文件時,它可包括4K的附加空間供將來元數(shù)據(jù)更新使 用。
在各個實施例中,也可使用跟蹤機(jī)制來記錄當(dāng)移除元數(shù)據(jù)項時變?yōu)榭捎玫目?閑空間。例如,空閑空間可作為已刪除數(shù)據(jù)的偏移量和大小被記錄在數(shù)據(jù)結(jié)構(gòu)中。 當(dāng)在原地編輯期間添加新元數(shù)據(jù)時,該元數(shù)據(jù)可被寫入從該數(shù)據(jù)結(jié)構(gòu)中分配的可用 空閑空間。
圖6呈現(xiàn)一般表示在一個實施例中用于將元數(shù)據(jù)快速寫入圖像文件中所采取 的示例性步驟的流程圖。在步驟602處,可接收打開圖像文件的請求。然后可在步 驟604處,找到用于讀取該圖像文件的解碼器?;趫D像文件的類型,為該圖像類 型設(shè)置的解碼器可被實例化。 一旦找到解碼器之后,可找到用于該圖像文件的元數(shù) 據(jù)塊讀取器。接著,可由元數(shù)據(jù)塊讀取器從該圖像文件中讀取元數(shù)據(jù)塊,然后可在 步驟608處找到可對該元數(shù)據(jù)塊中的元數(shù)據(jù)項進(jìn)行解碼的元數(shù)據(jù)讀取器并將其實 例化。然后可在步驟610處由該元數(shù)據(jù)讀取器枚舉該元數(shù)據(jù)塊中的元數(shù)據(jù)。
一旦枚舉了該元數(shù)據(jù)塊中的元數(shù)據(jù)之后,可在步驟612處實例化帶有元數(shù)據(jù) 塊寫入器的快速元數(shù)據(jù)編碼器以便將元數(shù)據(jù)寫入圖像文件。在步驟614處,可實例 化對應(yīng)于該元數(shù)據(jù)讀取器的元數(shù)據(jù)寫入器。在一個實施例中,快速元數(shù)據(jù)編碼器的 元數(shù)據(jù)塊寫入器可使用操作上耦合至該元數(shù)據(jù)塊讀取器的一列元數(shù)據(jù)讀取器來實 例化以至由每一相應(yīng)的元數(shù)據(jù)讀取器所引用的每一元數(shù)據(jù)塊的引用初始化的相應(yīng) 元數(shù)據(jù)寫入器。在使用至元數(shù)據(jù)塊的引用初始化了元數(shù)據(jù)寫入器之后,在步驟616 處可在元數(shù)據(jù)塊中修改元數(shù)據(jù)。最后,經(jīng)修改的元數(shù)據(jù)塊可被寫到可被持久存儲的 圖像文件,并且可結(jié)束用于將元數(shù)據(jù)快速寫入圖像文件的處理。
有利的是,用于將元數(shù)據(jù)快速寫入圖像文件的系統(tǒng)和方法可允許對元數(shù)據(jù)的 原地編輯而不使用用于將經(jīng)修改的元數(shù)據(jù)寫到圖像文件的單獨(dú)的圖像流。相反,快 速元數(shù)據(jù)編碼器可使用解碼器所讀取的同一圖像流。在一個實施例中,可提供用于 將填充符添加到元數(shù)據(jù)塊以容納稍后可能添加的元數(shù)據(jù)的機(jī)制。這也可提供足夠的 空間供快速元數(shù)據(jù)編碼器使用附加元數(shù)據(jù)來簡單地寫元數(shù)據(jù)塊而不必寫整個圖像 文件。
而且,該系統(tǒng)和方法支持查詢語言,使得元數(shù)據(jù)査詢讀取器和元數(shù)據(jù)査詢寫 入器可接收査詢串并將該串解析成元數(shù)據(jù)分層結(jié)構(gòu)內(nèi)的特定位置。在一個實施例 中,查詢串可以是標(biāo)識通過元數(shù)據(jù)分層結(jié)構(gòu)的導(dǎo)航路徑的一列名字。每一名字可以指可以是該分層結(jié)構(gòu)內(nèi)的特定元數(shù)據(jù)塊的元數(shù)據(jù)名字空間。例如,査詢串
"/ifd/exif/xmp/exif:Author"可對應(yīng)于導(dǎo)航路徑=> "IFD reader (IFD讀取器)"-> "EXIF reader (EXIF讀取器)"—> "XMP reader (XMP讀取器)"—> "exif"模 式中的屬性"Author (作者)"。通過遵循導(dǎo)航路徑,屬性"Author"的值可在"exif" 模式內(nèi)檢索到。在一個實施例中,每一元數(shù)據(jù)名字空間也可由可代替名字空間名使 用的元數(shù)據(jù)全局唯一標(biāo)識符(GUID),例如"/{GUID}/[n]{GUID}/{GUID}: Value" 來唯一標(biāo)識。
如果所指定的查詢串不對應(yīng)于完全合格的位置,則該請求可由策略組件解析, 后者可將關(guān)鍵字映射到完全合格的位置。策略組件也可負(fù)責(zé)將對元數(shù)據(jù)的高層請求 映射到底層元數(shù)據(jù)分層結(jié)構(gòu)內(nèi)的特定位置。例如,元數(shù)據(jù)分層結(jié)構(gòu)內(nèi)可能存在可存 儲元數(shù)據(jù)項的若干位置。例如,"Author"可被存儲在若干不同的元數(shù)據(jù)塊中。策 略組件可應(yīng)用一組規(guī)則,諸如為特定元數(shù)據(jù)項指定的位置的優(yōu)選順序,以便將對元 數(shù)據(jù)項的請求映射到該元數(shù)據(jù)內(nèi)的特定位置。
如從前述詳細(xì)描述可見,本發(fā)明提供了一種用于數(shù)字圖像的可擴(kuò)展元數(shù)據(jù)體 系結(jié)構(gòu)的改進(jìn)的系統(tǒng)和方法。該系統(tǒng)和方法可有利地允許添加要被添加到圖像文件 的新元數(shù)據(jù)類型,且可容易地添加新元數(shù)據(jù)讀取器和寫入器以便對圖像文件中與該 新元數(shù)據(jù)類型相關(guān)聯(lián)的元數(shù)據(jù)進(jìn)行解碼和編碼。而且,可使用快速元數(shù)據(jù)編碼器來 對元數(shù)據(jù)執(zhí)行原地編輯以改變所枚舉的元數(shù)據(jù)項。本發(fā)明也支持用于將對元數(shù)據(jù)項 的高層請求映射到該元數(shù)據(jù)分層結(jié)構(gòu)內(nèi)的特定位置的查詢語言。如現(xiàn)在所理解的, 該系統(tǒng)和方法因此提供當(dāng)代計算中所需的顯著優(yōu)點(diǎn)和好處。
盡管本發(fā)明易于作出各種修改和替換構(gòu)造,但其某些示出的實施例在附圖中 示出并在以上詳細(xì)描述。然而,應(yīng)理解不旨在將本發(fā)明限于所公開的特定形式,而 是相反,本發(fā)明旨在覆蓋落入本發(fā)明的精神和范圍內(nèi)的所有修改、替換構(gòu)造和等效 方案。例如,本發(fā)明可用于可包括元數(shù)據(jù)的任何類型的多媒體內(nèi)容,諸如數(shù)字視頻、 音頻等。
1權(quán)利要求
1. 一種用于操縱數(shù)字多媒體內(nèi)容的元數(shù)據(jù)的計算機(jī)系統(tǒng),包括可執(zhí)行軟件代碼,用于請求對包括多媒體內(nèi)容的文件中的元數(shù)據(jù)執(zhí)行操作;操作上耦合至所述可執(zhí)行軟件代碼的解碼器,所述解碼器含有用于標(biāo)識所述文件中的元數(shù)據(jù)塊并將一元數(shù)據(jù)讀取器與所述元數(shù)據(jù)塊相關(guān)聯(lián)的操作上耦合的元數(shù)據(jù)塊讀取器;操作上耦合至所述元數(shù)據(jù)塊讀取器的元數(shù)據(jù)讀取器,用于枚舉所述元數(shù)據(jù)塊中的元數(shù)據(jù);操作上耦合至所述可執(zhí)行軟件代碼的編碼器,所述編碼器含有用于將一元數(shù)據(jù)寫入器與所述元數(shù)據(jù)塊相關(guān)聯(lián)的操作上耦合的元數(shù)據(jù)塊寫入器;以及操作上耦合至所述元數(shù)據(jù)塊寫入器的元數(shù)據(jù)寫入器,用于將元數(shù)據(jù)寫入所述元數(shù)據(jù)塊。
2. 如權(quán)利要求l所述的系統(tǒng),其特征在于,還包括操作上耦合至所述可執(zhí)行 軟件代碼的元數(shù)據(jù)查詢讀取器,用于接收對所述文件中的元數(shù)據(jù)執(zhí)行操作的請求。
3. 如權(quán)利要求l所述的系統(tǒng),其特征在于,還包括操作上耦合至所述可執(zhí)行 軟件代碼的元數(shù)據(jù)査詢寫入器,用于接收對所述文件中的元數(shù)據(jù)執(zhí)行操作的請求。
4. 如權(quán)利要求2所述的系統(tǒng),其特征在于,還包括操作上耦合至所述元數(shù)據(jù) 査詢讀取器的策略組件,用于解析對所述文件中的元數(shù)據(jù)項的查詢。
5. 如權(quán)利要求l所述的系統(tǒng),其特征在于,還包括操作上耦合至所述元數(shù)據(jù) 讀取器的所述文件,所述文件含有一個或多個元數(shù)據(jù)塊。
6. 如權(quán)利要求l所述的系統(tǒng),其特征在于,還包括一操作上耦合至所述元數(shù) 據(jù)寫入器的文件,所述文件含有一個或多個元數(shù)據(jù)塊。
7. —種含有構(gòu)成如權(quán)利要求1所述的系統(tǒng)的計算機(jī)可執(zhí)行組件的計算機(jī)可讀 介質(zhì)。
8. —種用于操縱數(shù)字多媒體內(nèi)容的元數(shù)據(jù)的方法,包括以下步驟 接收打開包括多媒體內(nèi)容的文件的請求; 査找用于所述文件的類型的解碼器; 査找用于所述文件的類型的塊讀取器; 査找用于所述文件中的元數(shù)據(jù)塊的元數(shù)據(jù)讀取器;以及枚舉所述文件中的元數(shù)據(jù)塊中的元數(shù)據(jù)。
9. 如權(quán)利要求8所述的方法,其特征在于,還包括剖析來自所述文件的內(nèi)容流。
10. 如權(quán)利要求8所述的方法,其特征在于,所述查找元數(shù)據(jù)讀取器包括讀 取所述元數(shù)據(jù)塊并將所述元數(shù)據(jù)讀取器與所述元數(shù)據(jù)塊相關(guān)聯(lián)。
11. 如權(quán)利要求8所述的方法,其特征在于,還包括查找用于所述文件中的 附加元數(shù)據(jù)塊的附加元數(shù)據(jù)讀取器。
12. 如權(quán)利要求ll所述的方法,其特征在于,所述査找用于所述文件中的附 加元數(shù)據(jù)塊的附加元數(shù)據(jù)讀取器包括讀取所述附加元數(shù)據(jù)塊,并將所述附加元數(shù)據(jù) 讀取器與所述附加元數(shù)據(jù)塊相關(guān)聯(lián)。
13. 如權(quán)利要求ll所述的方法,其特征在于,還包括枚舉所述文件中的所述 附加元數(shù)據(jù)塊中的元數(shù)據(jù)。
14. 一種含有用于執(zhí)行如權(quán)利要求8所述的方法的計算機(jī)可執(zhí)行指令的計算 機(jī)可讀介質(zhì)。
15. —種用于操縱數(shù)字多媒體內(nèi)容的元數(shù)據(jù)的方法,包括以下步驟 接收創(chuàng)建包括多媒體內(nèi)容的文件的請求; 查找用于所述文件的類型的編碼器; 査找用于所述文件的類型的塊寫入器;査找用于要被寫入所述文件中的元數(shù)據(jù)塊的元數(shù)據(jù)寫入器;以及 將元數(shù)據(jù)寫入所述文件中的所述元數(shù)據(jù)塊中。
16. 如權(quán)利要求15所述的方法,其特征在于,還包括對要被寫到所述文件的 元數(shù)據(jù)塊排序。
17. 如權(quán)利要求15所述的方法,其特征在于,所述査找用于所述元數(shù)據(jù)塊的 元數(shù)據(jù)寫入器包括將所述元數(shù)據(jù)寫入器與所述要被寫入所述文件中的元數(shù)據(jù)塊相 關(guān)聯(lián)。
18. 如權(quán)利要求15所述的方法,其特征在于,還包括查找用于要被寫入所述 文件中的附加元數(shù)據(jù)塊的附加元數(shù)據(jù)寫入器。
19. 如權(quán)利要求18所述的方法,其特征在于,所述査找用于要被寫入所述文 件中的附加元數(shù)據(jù)塊的附加元數(shù)據(jù)寫入器包括將所述附加元數(shù)據(jù)寫入器與所述要 被寫入所述文件中的附加元數(shù)據(jù)塊相關(guān)聯(lián)。
20. 如權(quán)利要求19所述的方法,其特征在于,還包括將元數(shù)據(jù)寫入所述文件中的附加元數(shù)據(jù)塊中。
全文摘要
提供了一種用于數(shù)字圖像的可擴(kuò)展元數(shù)據(jù)體系結(jié)構(gòu)的改進(jìn)的系統(tǒng)和方法。可擴(kuò)展軟件代碼可被操作上耦合至元數(shù)據(jù)查詢讀取器和元數(shù)據(jù)查詢寫入器以便請求用于操縱圖像文件中的元數(shù)據(jù)的操作。元數(shù)據(jù)查詢讀取器可被操作上耦合至含有用于標(biāo)識圖像文件中的元數(shù)據(jù)塊并將元數(shù)據(jù)讀取器與每一元數(shù)據(jù)塊相關(guān)聯(lián)的塊讀取器的解碼器。每一元數(shù)據(jù)讀取器然后可枚舉與該元數(shù)據(jù)讀取器相關(guān)聯(lián)的元數(shù)據(jù)塊中的元數(shù)據(jù)。元數(shù)據(jù)查詢寫入器可操作上耦合至含有用于將元數(shù)據(jù)寫入器與要寫到圖像文件的每一元數(shù)據(jù)塊相關(guān)聯(lián)的塊寫入器的編碼器。每一元數(shù)據(jù)寫入器然后可將元數(shù)據(jù)寫入與該元數(shù)據(jù)寫入器相關(guān)聯(lián)的元數(shù)據(jù)塊中。
文檔編號G06F17/00GK101443753SQ200580048036
公開日2009年5月27日 申請日期2005年7月28日 優(yōu)先權(quán)日2005年2月17日
發(fā)明者A·J·胡德森, C·S·理查德森, D·阿爾伯特, E·凡登伯格, F·A·克魯格, P·A·格爾維奇, R·A·沃德瑞扎克, R·C·瑪格里特, R·E·辛克萊爾二世, R·S·小特納, R·V·帕特里, R·高爾, T·W·奧爾森 申請人:微軟公司