專利名稱:一種用以實現(xiàn)文件格式兼容性的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文件的格式化,特別是,涉及一種用于對電子文件進行編碼與解碼,以使得在文件中提供文件格式數(shù)據(jù),由此幫助一個讀出器去確定該讀出器是否與文件中的數(shù)據(jù)相兼容的方法與裝置。
背景技術(shù):
用于識別含有數(shù)據(jù)的不同文件類型的各種方法已為人們所熟知,上述數(shù)據(jù)可以用于在計算機網(wǎng)絡(luò)系統(tǒng)上傳送和/或用于在一部特定的計算機上進行存儲。典型地,用以標識一個特定文件的方法就是使用與該文件相關(guān)的一個文件擴展名。聯(lián)合圖像專家組(JPEG)以及標記圖像文件(TIF)標準分別使用文件擴展名“.jpg”和“.tif”來標識各種圖像文件。另一種已知方法使用在文件中的、被稱為MacintoshTM資源分叉(MacintoshTMResource Fork)的信息,它是標識該文件的二進制數(shù)據(jù)。
上述各種方法具有許多缺點。例如,某些計算機網(wǎng)絡(luò)系統(tǒng)所使用的文件擴展名方法在另一些系統(tǒng)中不受理睬,由此導致文件之間的不兼容。
還有,在許多情況下,被標識為相同的文件實際上可能具有不同的配置。例如,JPEG和TIF標準都允許各種可選項,但并不是所有的文件讀出器都支持這些可選項。再有,特定的計算機網(wǎng)絡(luò)系統(tǒng)根據(jù)標識來決定哪一個應(yīng)用程序應(yīng)當讀出一個特定的文件,而經(jīng)常遇到所選擇的應(yīng)用程序不能讀出含有特定選項的文件。
某些計算機網(wǎng)絡(luò)系統(tǒng)嘗試使用各種索引來建立文件索引,以便快速地識別用以配置各文件的各組件。這些各種各樣的索引是不通用的,并且當這些索引可以在某些應(yīng)用程序中進行工作時,它們在其他應(yīng)用程序中卻是不適用的。此外,索引并不總是被存儲在文件的頂部,這樣就不能充分地被讀出。還有,隨著文件格式的新版本的生成,索引將發(fā)生改變,這就無法實現(xiàn)一個普遍兼容的索引系統(tǒng)。
某些文件格式允許在一個單獨的文件中存儲數(shù)據(jù)的多份拷貝,其中,每一個文件都是按照一種單獨的格式配置的。這樣的文件格式允許讀出一個文件的計算機網(wǎng)絡(luò)系統(tǒng)根據(jù)特定環(huán)境、文件讀出器的能力以及用戶的需求,來決定讀出哪一個數(shù)據(jù)。使用這樣一種格式的系統(tǒng)列出文件的不同組分,但是不列出關(guān)于為讀出一個文件所需的各項特征的組合的細節(jié)。
一種被稱為多用途因特網(wǎng)消息擴展(MIME)系統(tǒng)的、允許將數(shù)據(jù)作為電子郵件(e-mail)消息的內(nèi)容進行傳輸?shù)囊阎南到y(tǒng)利用一個文件封套(wrapper)來標識文件。MIME系統(tǒng)也將文件作為一個整體加以標識,但是不對文件中的各選項進行標識。
多層(或多頁)圖像可以被認為是一個圖像集,典型地全是(但不一定是)同樣大小,為了顯示目的,它們以某種方式組合。因此,多圖像(多層)文件格式指的是在一個單獨的文件中的多個圖像,在這里,文件中的每一個圖像被稱為一層。被解碼器用來組合一個多層文件的各層的數(shù)據(jù)不變地采取一個文件格式擴展的形式。
按照圖形交換格式(GIF)標準,例如,一種被稱為圖形控制擴展的附加的控制結(jié)構(gòu)被納入到文件之中,作為前置于每一個圖像層的信息(即,開銷(overhead)信息)的一部分。尤其是,這個信息包括該層的左上角相對于在全局文件報頭(header)中所定義的整個圖像區(qū)域的坐標,以及在顯示該層之后,在顯示該文件的下一層之前所需的等待時間量。GIF還包括按照順序組成的各層(或多個圖像)。
GIF文件的每一層可以是不同大小,并且使用偏移坐標來進行定位,以便在從一層到下一層只有小區(qū)域發(fā)生變化的情況下提高存儲效率。GIF標準定義了一個虛擬屏幕,在其上組成每一層。它使用一種控制塊結(jié)構(gòu)來指示在文件中的各層是如何被顯示的。文件格式的每一層以控制塊為先導,它含有關(guān)于左上角在虛擬屏幕中的位置的信息,關(guān)于在轉(zhuǎn)入該文件的下一層之前,該層應(yīng)當被顯示多長時間的信息,以及在顯示該文件的下一層之前,該層是否應(yīng)當被移除的信息。
GIF具有一種簡單和受限制的設(shè)計結(jié)構(gòu),它使得大量的獨立開發(fā)者易于實現(xiàn)能處理GIF圖像的文件查看器。然而,GIF的簡單性是以犧牲編碼效率為代價的。例如,由于在GIF文件中的每一層都對應(yīng)于一個單獨的圖像,所以對虛幻和重疊部分就不能有效地進行編碼。這是由于每一幀都必須被顯示為一個獨立的圖像層。對圖像在其中出現(xiàn)的每一幀來說,在一個圖像序列的過程期間被重新使用的各圖像都必須在文件中出現(xiàn)一次。
最近,為了解決上述問題,“多圖像”(Multiple Image)文件格式已經(jīng)被開發(fā)出來。多圖像文件格式包括在一個單獨的文件中的多個圖像,在文件中的每一個圖像都與至少一層關(guān)聯(lián)。一種已知的多圖像(多層)文件格式基于對可移植網(wǎng)絡(luò)圖形(PNG)文件格式的擴展定義一種圖像框架。然而,多圖像文件格式的編碼和解碼效率要跟在一個特定文件中針對每一層的描述信息的要求進行折衷。
發(fā)明內(nèi)容
本發(fā)明的一個目標就是基本上克服,或者至少是緩解現(xiàn)有設(shè)計安排中的一個或多個缺點。
根據(jù)本發(fā)明的第一方面,提供了一種電子文件,包括已編碼的數(shù)字圖像數(shù)據(jù);以及表示多個布爾運算的一個表達式,其中,所述表達式標識為讀出所述已編碼的數(shù)字圖像數(shù)據(jù)所需的各功能方面。
根據(jù)本發(fā)明的另一方面,提供了一種用于對含有至少一個已編碼的數(shù)字圖像的電子文件進行編碼的方法;所述方法包括下列各步驟確定一個表示多個布爾運算的表達式,其中,所述表達式標識為讀出所述已編碼的數(shù)字圖像數(shù)據(jù)所需的各功能方面;以及將所述表達式添加到所述電子文件的一個支持數(shù)據(jù)區(qū)之中。
根據(jù)本發(fā)明的又一個方面,提供了一種用于對含有至少一個已編碼的數(shù)字圖像的電子文件進行編碼的設(shè)備,所述設(shè)備包括用于接收一個表示多個布爾運算的表達式的裝置,其中,所述表達式標識為讀出所述已編碼的數(shù)字圖像數(shù)據(jù)所需的各功能方面;用于將所述表達式添加到所述電子文件的一個支持數(shù)據(jù)區(qū)之中的裝置。
根據(jù)本發(fā)明的再一個方面,提供了一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對含有至少一個已編碼的數(shù)字圖像的電子文件進行編碼,所述程序包括用于確定表示多個布爾運算的一個表達式的代碼,其中,所述表達式標識為讀出所述已編碼的數(shù)字圖像數(shù)據(jù)所需的各功能方面;以及用于將所述表達式添加到所述電子文件的一個支持數(shù)據(jù)區(qū)之中的代碼。
根據(jù)本發(fā)明的還一個方面,提供了一種用于對在已編碼的表示中的數(shù)字圖像進行編碼的方法;所述方法包括下列各步驟為在所述已編碼的表示中的每個所述數(shù)字圖像確定一個描述;以及將所述描述以及所述數(shù)字圖像編碼為一個比特流,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
根據(jù)本發(fā)明的另一個方面,提供了一種用于對數(shù)字圖像的已編碼表示進行解碼的方法,每一個所述圖像都具有一個相關(guān)的描述,所述方法至少包括下列各步驟利用所述描述來輸出所述數(shù)字圖像,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
根據(jù)本發(fā)明的又一個方面,提供了一種用于對在已編碼表示中的一個或多個數(shù)字圖像進行編碼的方法,所述方法包括下列各步驟確定在所述已編碼的表示中的數(shù)字圖像的數(shù)目;為所述已編碼的表示中的每一個所述數(shù)字圖像確定一個描述;對所述各數(shù)字圖像的所述描述進行比較,以確定具有相同描述的圖像的數(shù)目;確定所述各數(shù)字圖像的展示順序;以及將所述描述集以及所述數(shù)字圖像編碼為比特流,其中,所述相同描述中僅有一個被納入所述比特流之中,并且其中,具有所述相同描述的那些數(shù)字圖像被順序地放置在所述順序的末尾。
根據(jù)本發(fā)明的再一個方面,提供了一種用于對一個或多個數(shù)字圖像的已編碼表示進行解碼的方法,每一個所述圖像都具有一個相關(guān)的描述,所述方法包括下列各步驟在所述已編碼的表示中確定描述的數(shù)目;在所述已編碼的表示中確定數(shù)字圖像的數(shù)目;以及將所述描述和所述各數(shù)字圖像當作比特流來輸出,其中,若所述數(shù)字圖像的數(shù)目大于所述描述的數(shù)目,則所述描述的第一數(shù)目順序地關(guān)聯(lián)于所述各數(shù)字圖像的第二數(shù)目,并且所述描述的剩余一個關(guān)聯(lián)于任何剩余的數(shù)字圖像。
根據(jù)本發(fā)明的還一個方面,提供了一種用于對在已編碼表示中的各數(shù)字圖像進行編碼的方法,所述方法包括下列各步驟為在所述已編碼的表示中的所述各數(shù)字圖像中的每個確定一個描述;以及將所述描述以及所述各數(shù)字圖像編碼為比特流,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像,并且其中,所述描述包括一個指示器,用以指定所述描述與之關(guān)聯(lián)的數(shù)字圖像的數(shù)目。
根據(jù)本發(fā)明的另一個方面,提供了一種用于對在已編碼表示中的各數(shù)字圖像進行編碼的設(shè)備,所述設(shè)備包括用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每個確定一個描述的裝置;以及用于將所述描述以及所述各數(shù)字圖像編碼為比特流的裝置,其中,所述描述的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
根據(jù)本發(fā)明的又一個方面,提供了一種用于對各數(shù)字圖像的已編碼表示進行解碼的設(shè)備,每一個所述圖像都具有一個相關(guān)的描述,所述設(shè)備包括利用所述描述來輸出所述各數(shù)字圖像的裝置,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
根據(jù)本發(fā)明的再一個方面,提供了一種用于對在已編碼表示中的一個或多個數(shù)字圖像進行編碼的設(shè)備,所述設(shè)備包括用于確定在所述已編碼的表示中的數(shù)字圖像的數(shù)目的裝置;用于為在所述已編碼的表示中的每個所述數(shù)字圖像確定一個描述的裝置;用于對所述各數(shù)字圖像的所述描述進行比較,以確定具有相同描述的圖像的數(shù)目的裝置;用于確定所述各數(shù)字圖像的展示順序的裝置;以及用于將所述描述集以及所述各數(shù)字圖像編碼為比特流的裝置,其中,所述相同描述中僅有一個被納入所述比特流,并且其中,具有相同描述的那些數(shù)字圖像被順序地放置在所述順序的末尾。
根據(jù)本發(fā)明的還一個方面,提供了一種用于對一個或多個數(shù)字圖像的已編碼表示進行解碼的設(shè)備,每一個所述圖像都具有一個相關(guān)的描述,所述設(shè)備包括用于在所述已編碼的表示中確定描述的數(shù)目的裝置;用于在所述已編碼的表示中確定各數(shù)字圖像的數(shù)目的裝置;用于將所述描述和所述各數(shù)字圖像當作比特流來輸出的裝置,其中,若所述各數(shù)字圖像的數(shù)目大于所述描述的數(shù)目,則所述描述的第一數(shù)目順序地關(guān)聯(lián)于所述各數(shù)字圖像的第二數(shù)目,并且所述描述的剩余一個關(guān)聯(lián)于任何剩余的數(shù)字圖像。
根據(jù)本發(fā)明的另一個方面,提供了一種用于對在已編碼表示中的各數(shù)字圖像進行編碼的設(shè)備,所述設(shè)備包括用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每一個確定一個描述的裝置;以及用于將所述描述以及所述各數(shù)字圖像編碼為一個比特流的裝置,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像,并且其中,所述描述包括一個指示器,用以指定所述描述與之關(guān)聯(lián)的數(shù)字圖像的數(shù)目。
根據(jù)本發(fā)明的還有一個方面,提供了一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對在已編碼的表示中的各數(shù)字圖像進行編碼,所述程序包括用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每一個確定一個描述的代碼;以及將所述描述以及所述各數(shù)字圖像編碼為比特流的代碼,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
根據(jù)本發(fā)明的又一個方面,提供了一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行戶動操作的多個軟件模塊,所述程序適于對各數(shù)字圖像的已編碼的表示進行解碼,所述圖像中的每一個都具有相關(guān)的描述,所述程序包括利用所述描述來輸出所述各數(shù)字圖像的代碼,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
根據(jù)本發(fā)明的再一個方面,提供了一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行戶動操作的多個軟件模塊,所述程序適于對在已編碼的表示中的一個或多個數(shù)字圖像進行編碼,所述程序包括用于確定在所述已編碼的表示中的數(shù)字圖像的數(shù)目的代碼;用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每一個確定一個描述的代碼;用于對所述數(shù)字圖像的所述描述進行比較,以確定具有相同描述的圖像的數(shù)目的代碼;用于確定所述各數(shù)字圖像的展示順序的代碼;以及用于將所述描述集以及所述各數(shù)字圖像編碼為一個比特流的代碼,其中,僅有所述相同描述之一被納入所述比特流,并且其中,具有相同描述的那些數(shù)字圖像被順序地放置在所述順序的末尾。
根據(jù)本發(fā)明的還一個方面,提供了一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行戶動操作的多個軟件模塊,所述程序適于對一個或多個數(shù)字圖像的已編碼的表示進行解碼,所述圖像中的每一個都具有相關(guān)的描述,所述程序包括用于在所述已編碼的表示中確定描述的數(shù)目的代碼;用于在所述已編碼的表示中確定各數(shù)字圖像的數(shù)目的代碼;以及用于將所述描述和所述各數(shù)字圖像當作比特流來輸出的代碼,其中,若所述各數(shù)字圖像的數(shù)目大于所述描述的數(shù)目,則所述描述的第一數(shù)目順序地關(guān)聯(lián)于所述各數(shù)字圖像的第二數(shù)目,并且所述描述的剩余一個關(guān)聯(lián)于任何剩余的數(shù)字圖像。
根據(jù)本發(fā)明的另一個方面,提供了一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對在已編碼的表示中的各數(shù)字圖像進行編碼,所述程序包括用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每個確定一個描述的代碼;以及用于將所述描述以及所述各數(shù)字圖像編碼為一個比特流的代碼,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像,并且其中,所述描述包括一個指示器,用以指定所述描述與之關(guān)聯(lián)的數(shù)字圖像的數(shù)目。
根據(jù)本發(fā)明的又一個方面,提供了一種電子文件,包括已編碼的數(shù)字圖像數(shù)據(jù);以及一個表示多個布爾運算的表達式,其中,所述表達式定義了所述已編碼的數(shù)字圖像數(shù)據(jù)被讀出的方式。
現(xiàn)在將參照附圖對本發(fā)明的一個或多個實施例進行說明,在附圖中
圖1是流程圖,表示一種用以建立位屏蔽和兼容性框的方法;圖2表示針對功能表達式的一個實例的一個屏蔽表;圖3表示針對功能表達式的又一個實例的另一個屏蔽表;圖4表示兼容性框的一種優(yōu)選格式;圖5表示針對功能表達式的再一個實例的屏蔽表;圖6是一個流程圖,表示一種用以確定一個文件是否兼容于一個讀出器的方法;圖7是一個計算機系統(tǒng)的一個示意性的方框圖,在其上可以實施上述的設(shè)計安排;圖8表示一種圖像文件結(jié)構(gòu);圖9表示另一種圖像文件結(jié)構(gòu);圖10表示當正在處理一個具有單色說明的單層文件時,圖9的圖像文件結(jié)構(gòu);圖11是一個流程圖,表示一種根據(jù)圖8所示的文件格式,用于在已編碼的表示中,對數(shù)字圖像進行編碼的方法;圖12是一個流程圖,表示一種根據(jù)圖8和9所示的文件格式,用于對一個或多個圖像進行編碼的方法。
具體實施例方式
為了本說明書的目的,在參照任何一個或多份附圖時,除非出現(xiàn)相反的意圖,具有相同的參考數(shù)字的各步驟和/或各特征都具有相同的(各)功能或(各)操作。
圖像數(shù)據(jù)典型地被表示為數(shù)值的一個2維陣列,其中,每一個數(shù)值都代表有待于在顯示屏幕上顯示的一個像素的屬性。在灰度級圖像的情況下,這些屬性可能代表該圖像的像素的亮度,或者該像素的一個顏色組分的亮度。彩色圖像典型地具有幾個組分,它們是顏色組分(例如,紅、綠和蘭),一個亮度組分,有時還包括各輔助組分,諸如不透明度組分。因此,圖像數(shù)據(jù)的表示十分依賴于所使用的顏色模型。
典型地對圖像進行編碼,以形成比特流,典型地,將一個或多個這樣的比特流跟相關(guān)的開銷信息組合在一起,以形成代碼流,然后,代碼流可以被用于存儲和/或傳送圖像。相關(guān)的開銷信息是讀出器在對(各)比特流進行解碼和將(各)比特流擴展為圖像數(shù)據(jù)時所需的信息。
下面,將說明一個表達式,該表達式可以被用來說明為將比特流解碼和擴展為圖像數(shù)據(jù)所需的功能。該表達式最好是被納入到一個比特流的開銷信息之中。由于在對各種顏色模型進行編碼和解碼的不同方法中的復雜性,所以在比特流開銷信息中包括一個可能的選項的列表用以說明對比特流進行解碼和擴展所需的功能是不夠的。不僅(各)比特流可能含有多種不同的顏色模型,而且對比特流進行編碼還有多種可能的方法??梢杂枚喾N不同的方法來將相同的圖像數(shù)據(jù)存儲到相同的文件之中。作為一個實例,給定含有動畫幀的一個圖像數(shù)據(jù)文件,一個兼容于第一編碼器以及第一顏色模型、用以讀出動畫幀的解碼器,其中,該解碼器也兼容于第二顏色模型以便讀出一個關(guān)鍵幀(keyframe),一個使用編碼器理解動畫文件、但是不理解第一顏色模型的讀出器僅能顯示關(guān)鍵幀。
一個可以被納入到一個文件的開銷信息之中、用以說明為讀出該文件所需的功能的表達式的一個實例如下(A OR B)AND(C OR D)(1)式中,每一個字母都表示所需功能的各個方面。因此,為了讀出該文件,讀出器需要支持功能A或功能B,并且支持功能C或功能D。
最好是使用一個位屏蔽來表示上述功能表達式,并將其編碼到一個兼容性框之中。圖1是一個流程圖200,表示一種用以建立位屏蔽和兼容性框的方法。流程圖200的處理過程開始于第一步驟210,在這里,一個功能表達式作為一個輸入被接收。在下一個步驟220,功能表達式被展開為用多個AND語句分隔的一系列的OR子表達式。
在下一個步驟230,生成一個屏蔽表,表中的每一列都表示所需功能的一個方面。OR子表達式被放置在屏蔽表的各列之中。圖2表示針對表達式(1)的功能表達式的屏蔽表300,其中,屏蔽表300具有按行列出的所需功能310的各個方面(即,A、B、C和D)。屏蔽表300的各列320和330分別代表一個OR子表達式。通過將出現(xiàn)在OR子表達式之中的每一個方面表示為一個“1”位,而將其余各方面表示為一個“0”位,就能將第一OR子表達式(即,A OR B)放置在列320之中。因此,由于在OR子表達式(A OR B)中僅出現(xiàn)方面A和B,所以列320具有作為一個條目的位串“1100”。按照類似的方式,第二OR子表達式(C OR D)以條目“0011”的形式被放置在列330之中。
還提供了所需的屏蔽行340,其中包括對屏蔽表300中的所有各行執(zhí)行按位的OR運算符所產(chǎn)生的結(jié)果,這是為讀出該文件所必需的。按照圖2的實例,對各行310執(zhí)行按位的OR運算符,即,10OR 10OR01 OR01,以生成所需的屏蔽11。
更復雜的功能表達式一個實例如下(A AND B)OR(C AND D) (2)表達式(2)表明,讀出器必須或者支持功能方面A和B,或者可供選擇地支持功能方面C和D。
表達式(2)不屬于指定格式(即,用多個AND語句分隔的一系列的OR子表達式),并且在步驟220中被擴展,以給出下列形式(A AND B)OR(C AND D)=(A OR C)AND(A OR D)AND(B OR C)AND(B OR D) (3)在下一個步驟230,生成如圖3所示的屏蔽350。若所需的功能方面出現(xiàn)在OR子表達式之中,則屏蔽350中的每一個OR子表達式都將被放置在各列之中,每列一個“1”位。由于在已展開的表達式中,存在4個OR子表達式,所以屏蔽350具有4列。所需的屏蔽條目為1111。
在流程圖200的下一個步驟240,從屏蔽表生成兼容性框,用以說明關(guān)于為訪問該文件所需的功能的信息。此項功能可以是經(jīng)銷商特定的,也可以按照一個公認的標準來定義。兼容性框被放置在靠近文件的開始處,由此使讀出器能迅速地確定該文件是否可以被解讀。兼容性信息能說明所需功能方面的一個精簡集合適于解讀該文件的(各)部分。例如,兼容性框中的信息能說明一個靜止圖像讀出器適于顯示一個動畫文件的一個靜止版本。
圖4表示兼容性框400的一種優(yōu)選格式,它包括一個ML字段410,一個RM字段420,各Flagi字段,各EFi字段430以及各MSi字段。這些字段的定義如下ML這個字段為一個字節(jié),它指定用于兼容性屏蔽的字節(jié)數(shù),并包括所需的屏蔽連同針對每一個所需的功能方面的屏蔽。有效數(shù)值為1、2、4和8。
RM這個字段說明所需的屏蔽。
Flagi這個字段提供一個兼容性標志,它將每一個所需功能方面的含義通知讀出器。有兩種類型的兼容性標志,即“標準”標志和“擴展”標志。一個單獨的字節(jié)可以被用來存儲標準標志,以及一個64位的通用唯一標識符(UUID)可以被用來說明擴展標志。Flagi字段是一個單獨的字節(jié),它指定一個標準標志被用來表示所需的功能方面。然而,若該字段的最高位已被設(shè)置,則該字段的其余各位就變?yōu)橐粋€UUID擴展標志的高端第一個字節(jié)。
EFi這是一個可選字段,表示UUID擴展標志的低端15個字節(jié)。
MSi這個字段指定針對所需的功能方面的屏蔽。
因此,兼容性框具有下列字段,各具有指定的大小和可能的數(shù)值,如下面的表1所示表1
在一個將UUID跟URL鏈接起來、能指定關(guān)于UUID的更多信息的文件中,將指定進一步的信息。
下列各表格(即,表2,3和4)列出了優(yōu)選的兼容性標志。這些表格被歸類為各代碼流標志,各顏色標志以及各元數(shù)據(jù)標志。
表2 代碼流標志
表3 顏色標志
表4 元數(shù)據(jù)標志
在多種標準文件格式(例如JPEG 2000)的條件下,不指定擴展標志,但是規(guī)定由各經(jīng)銷商使用一個UUID來生成他們的自己的兼容性標志。例如,若一個經(jīng)銷商希望指定他們自己的經(jīng)銷商特定顏色模型,則使用一個UUID來標識這個顏色模型。最好是,在整個文件中,都使用一個單獨的UUID來指定新的顏色模型。
作為一個實例,針對一個文件含有一個單獨的已壓縮的代碼流,一個受限制的ICC特征顏色模型和一個sRGB顏色模型,以及含有知識產(chǎn)權(quán)信息的元數(shù)據(jù)的兼容性框可以使用如下所述的流程圖200的方法建立在步驟210,文件的兼容性信息作為一個表達式被輸入。根據(jù)以上信息,適當?shù)墓δ鼙磉_式為(A AND B AND C AND E)OR(A AND B AND D AND E)(4)式中,A表示一個單獨的代碼流,B表示一個壓縮方案X代碼流,C表示一個sRGB顏色模型,D表示受限制的ICC特征文件,以及E表示含有知識產(chǎn)權(quán)信息的元數(shù)據(jù)。
在下一個步驟220,表達式(4)的功能表達式被展開為下列用AND語句分隔的一系列的OR子表達式A AND B AND(C OR D)AND E (5)在下一個步驟230,為表達式(5)的功能表達式生成如圖5所示的屏蔽表500。表500的每一行都代表所需功能的一個方面。有5個所需功能的方面,分別表示為A,B,C,D和E。各OR子表達式被放置在屏蔽表500的各列之中。要注意的是,針對表達式(5)的大多數(shù)OR子表達式都不含有實際的OR運算符,而是通過用AND運算符進行分隔來給出標識。
所需的屏蔽列510包括對所有各行執(zhí)行OR運算符所產(chǎn)生的結(jié)果。按照圖5的實例,OR運算符被執(zhí)行如下0001 OR 0010 OR 0100 OR 0100 OR 1000=1111(6)在下一個步驟240,從屏蔽表500生成兼容性框的過程如下。ML字段條目被選擇為1,允許將一個字節(jié)用于兼容性屏蔽。RM字段條目簡單地就是用“0”位添加到行510之中,以填充由ML字段指定的字節(jié)數(shù)。因此,RM字段條目就是00001111或十進制數(shù)15。
隨后就能定義各兼容性標志以及它們的各自的屏蔽。所有的兼容性標志都是標準標志,并且其中的每一個都用一個單字節(jié)來表示。從兼容性標志表中查找所需功能的每一個方面,針對本實例的各自的兼容性標志被指定如下單獨的代碼流3;壓縮方案X代碼流5;sRGB顏色模型16;受限制的ICC特征文件17;以及含有知識產(chǎn)權(quán)信息的元數(shù)據(jù)64。
由于僅使用標準的標志,所以不出現(xiàn)EFi字段。
最后,為每一個所需的功能方面確定屏蔽MSi。
這些屏蔽MSi實質(zhì)上就是屏蔽表500的各行(不考慮所需的屏蔽行510),用添加的各“0”位來填充由ML字段所指定的字節(jié)數(shù)。
歸納起來,針對本實例的兼容性框說明如下ML=1RM=0000 1111Flag1=3MS1=0000 0001Flag2=5MS2=0000 0010Flag3=16 MS3=0000 0100Flag4=17 MS4=0000 0100Flag5=64 MS5=0000 1000可以通過將各字段組合為“0x010F03010502100411044008” (7)來將兼容性框作為一個HEX串而被納入到文件的開銷信息之中。
本實例的兼容性框指定,讀出器必須了解一個單獨的壓縮方案X代碼流,以及需要一個sRGB顏色模型或者受限制的ICC特征文件(profile)。它還指定sRGB顏色模型以及受限制的ICC特征文件二者提供相同的功能。
圖6是一個流程圖600,表示一種用以確定一個文件是否兼容于一個特定的讀出器的方法。該文件含有兼容性框,框內(nèi)含有一個上述的各種標志和標志屏蔽的列表。在第一步驟610,變量compat被設(shè)置為0。在下一個步驟620,變量flag被賦予來自標志列表的下一個標志的值,上述標志列表被納入該文件的兼容性框之中。
流程圖600的處理過程在下一個步驟630中將繼續(xù)進行,在這里將確定讀出器是否支持該標志(Flagi)。若該標志受到支持,則在下一個步驟640,針對與該標志相對應(yīng)的功能方面,在變量compat和屏蔽之間,將進行一次按位的“OR”運算。例如,若該標志是Flag3,則變量flag_mask(標志屏蔽)就是屏蔽MS3=0000 0100。按位的“OR”運算結(jié)果將作為新值賦予變量compat。
在步驟630,若標志沒有得到讀出器的支持,則流程圖600的處理過程將轉(zhuǎn)入步驟650,在這里將確定在兼客性框中所說明的標志列表中是否還有任何剩余標志。若在步驟650中還有剩余的標志,則處理過程將返回到步驟620,讀取下一個標志。
可供選擇地,在步驟650中,若已經(jīng)考慮到在兼客性框中所含有的所有標志,則流程圖600的處理過程將轉(zhuǎn)入步驟680,在這里,在變量compat和兼容性框中所需屏蔽字段的值之間進行按位的“AND”運算。運算結(jié)果跟兼容性框中的所需屏蔽字段進行比較。若兩個數(shù)值相符,則在步驟690報告其兼容性。否則,在步驟695將報告該文件跟讀出器不兼容,文件就打不開。
上述方法令讀出器不僅確定某個給定文件能否讀出,而且還能確定文件中的哪一個功能方面應(yīng)當被讀出。這些方法也使讀出器能夠讀懂將在以后生成的所有兼容文件,從而使以后的讀出器也能夠讀出當前的兼容性文件。由于每一個文件都指定了它提供何種功能,而不是依賴于讀出器來判定此種功能,所以使上述方法成為可能。
圖8表示根據(jù)本發(fā)明的另一方面的圖像文件結(jié)構(gòu)。文件800包括被順序地裝入二進制文件之中的多個元素802-808。早就在文件之中的元素包括報頭信息802(即開銷信息),該報頭信息不僅包括標識文件類型的信息,也包括對文件800中所含有的圖像數(shù)據(jù)的各參數(shù)進行描述的信息。
文件800最好含有一個代碼流報頭框805,該框列出了類型以及通道信息,這些信息存儲在含有圖像數(shù)據(jù)806-808或?qū)D像數(shù)據(jù)的參考的一個或多個元素的每一個之中。本文將在后面對代碼流報頭框805進行詳細敘述。
一個文件中可以包含或參考若干幅不同的靜止圖像806-808,并且這些圖像中的每一個被稱為如上所述的一層。由于顯示的需要,某些層打算重疊于其他圖像層之上,或者以其他方式跟文件中的其他圖像層組合在一起,所以分開來看的話,這些層可能在視覺上是不完整的。但每一層都是一個完整的代碼流或代碼流的集合,可以獨立地進行解碼,而且在本說明書的范圍內(nèi),每一層都被認為是不同的。通過單獨地或組合地使用一個或多個圖像層806-808,就能進行動畫顯示。在本實例中,文件800含有動畫控制塊804,其中含有動畫控制信息。
每一個圖像層(例如806)包括一個或多個通道,這些通道可以表現(xiàn)為文件800中含有的、或者由該文件參考或者通過利用查找表對圖像元素進行映射而導出的一個或多個代碼流。文件800中所包含的每個代碼流或參考將出現(xiàn)在一個或多個文件元素之中。文件讀出器利用報頭元素中的信息來恢復完整的代碼流,并將其解碼為各圖像層。例如,如上所述,報頭元素中的信息可能含有代碼流標志(如代碼流索引,代碼流數(shù)目,代碼流類型等),顏色標志(例如sRGB彩色空間,受限制的ICC特征文件,已調(diào)色的顏色等)和元數(shù)據(jù)標志(例如知識產(chǎn)權(quán)信息,內(nèi)容描述,創(chuàng)建信息和歷史信息等)。
每一層的各通道(例如806)包括像素數(shù)值的陣列。這些陣列跟一個彩色空間所專有的顏色信息的樣本是相對應(yīng)的,該樣本在文件800的報頭元素802中給出定義。一個單獨的通道也可能對應(yīng)于在一個灰度級圖像中的亮度樣本。一個或多個通道也可能含有不透明度信息的樣本,用來表示該層的其他通道。這種通道通常被稱為α通道。α通道數(shù)據(jù)可能是二進制(或雙電平),其中,每一個樣本數(shù)據(jù)只能取兩種可能數(shù)值其中之一,這兩種數(shù)值分別對應(yīng)于完全透明與完全不透明。通過將一種獨特的顏色賦予本來完全透明的所有像素上,就能使用彩色通道對二進制α數(shù)據(jù)進行編碼。
下面將對以文件800為代表的、將數(shù)字圖像編碼為按照圖8的文件格式的方法進行描述。文件800包括文件或代碼流800,它包括帶有全局參數(shù)的報頭802,全局參數(shù)包括但不局限于為顯示文件中所包含的任何圖像層所需的屏幕區(qū)域;另外,文件800還包含有一個數(shù)據(jù)塊805,也就是所謂的代碼流報頭框,它表示代碼流的類型以及通道信息;以及用任何適當方法(例如RGB,L*a’b’)進行編碼的圖像層806-808的序列。
可供選擇地,代碼流報頭框805可以被納入到報頭802之中。
圖11是一個流程圖,表示按照圖8的文件格式,在已編碼的表示中對數(shù)字圖像進行編碼的方法。處理過程從步驟1101開始,在這里對文件802(即,已編碼的表示)中的各數(shù)字圖像(各層)中的每一個確定一個描述。在下一個步驟1103,描述和各數(shù)字圖像將被編碼為代碼流,其中,至少有一個描述順序地關(guān)聯(lián)于多個數(shù)字圖像。
回到圖8,代碼流報頭框805列出存儲在文件800中的每一個圖像層806-808之中的圖像類型和通道信息。一種已知的、適于與圖8的文件格式配合使用的代碼流報頭框類型就是“jcsh”(X6A637368’)。
如圖8的部件分解圖所示,代碼流報頭框805含有多個字段901-917。代碼流報頭框805包括跟每一個圖像層806-808相關(guān)的每一個代碼流的一個代碼流描述。例如,若一層有兩個相關(guān)的碼流,則代碼流報頭框805將包括兩項針對該特定層的代碼流描述。根據(jù)圖8的文件格式,代碼流的描述由字段905-917組成,如圖8所示。
由字母NL所標記的字段901含有在該文件中圖像的層數(shù)。字母NC所標記的字段903含有該文件的代碼流數(shù)目。字母CTi所標記的字段905說明當前被處理的代碼流i的代碼流類型。例如,可以根據(jù)聯(lián)合圖像專家組(JPEG)編碼標準,嵌入零樹的小波(EZW)壓縮,分層樹中的集合劃分(SPIHT)算法,可伸縮的圖像壓縮,或者任何其他合適的圖像壓縮方法,對代碼流i進行編碼。由字母CSi標記的字段907描述的是當前被處理的代碼流i的顏色說明的數(shù)目。在字段907中的數(shù)值0說明對代碼流i沒使用的顏色說明。由字母PLTi標記的字段909描述的是代碼流i的調(diào)色板的數(shù)目。字段909中的數(shù)值0說明對代碼流i沒有使用調(diào)色板。以字母LYRi為參照的字段911說明與代碼流i相對應(yīng)的圖像層。在文件800中,圖像層最好用從表示第一層806的1到表示最后一層808的n來表示。以字母NLCi為參照的字段913說明的是代碼流i中邏輯組分的數(shù)目。以首字母縮寫詞CLTix為參照的字段915所定義的是第i個代碼流的第x個邏輯組分中的數(shù)據(jù)的性質(zhì)。字段915可以具有4個數(shù)值“0,1,2或3”其中之一。字段915中的每一個數(shù)值0-3的含義在下面的表5中列出表5
以字母CLAix為參照的字段917含有一個指標,它表示一個當前層的數(shù)據(jù)與之相關(guān)的彩色通道。字段917最好是一個數(shù)字數(shù)值,并且最好是被編碼為一個使用網(wǎng)絡(luò)字節(jié)順序的16位無符號整數(shù)。字段917的數(shù)值將第i個代碼流的第x個邏輯組分跟在所指定的彩色空間中的一個通道聯(lián)系起來。在顏色說明中的各通道最好被編號為從1到m,這里m表示通道的數(shù)目。例如,若顏色說明為sRGB,則數(shù)值1將該組分跟紅色通道聯(lián)系在一起。還有,特殊數(shù)值(0)將一個組分跟所指定的彩色空間的所有彩色通道聯(lián)系在一起。(0)跟亮度在一起可以被用來說明一個代碼流含有灰度級樣本。
根據(jù)圖8的文件格式,各字段901-917中的每一個的大小以及每一個字段可以被設(shè)置的數(shù)值示于下面的表6表6
在代碼流報頭框805中的最后一個層描述最好被用來描述文件800中剩余的所有各層。例如,若文件800含有200層以及3個層描述,則頭兩個層描述說明前兩層,并且第三個層描述說明在文件800中其余的198層。這就是說,最后的未指定的層可以按需進行重復。由于不需要具備對應(yīng)于每一層的一個描述,所以就能用一個單獨的描述來表示具有相同描述的許多層,從而得到更有效的文件格式。還有,由一個文件讀出器來處理按照圖8的文件格式進行編碼的文件所需的時間得以縮短。
作為一個實例,假設(shè)文件800含有如下面的表7所示的下列開銷信息
表7
在表7中,“RGB”表示RGB彩色空間,“A”表示α通道。根據(jù)表7的實例,代碼流報頭框805將含有下列信息,其中,添加了用括號括起來的“層描述數(shù)目”,以幫助解釋NL=4NC=5(層描述1)CT1=EZWCS1=1PLT1=0LYR1=1NLC1=3CLT11=0 CLT12=0 CLT13=0CLA11=1 CLA12=2 CLA13=3(層描述2)CT2=EZWCS2=1PLT2=0LYR2=2NLC2=3
CLT21=0CLT22=0CLT23=0CLA21=1CLA22=2CLA23=3CT3=EZWCS3=1PLT3=0LYR3=2NLC3=1CLT31=1CLA31=0(層描述3)CT4=EZWCS4=1PLT4=0LYR4=3NLC4=4CLT41=0CLT42=0CLT43=0CLT44=1CLA41=1CLA42=2CLA43=3CLA44=0要注意的是,層4沒有被指定,并且,根據(jù)這個實例,它跟層3相同。還有,如在表7中所見,由于層2包括兩個代碼流(即,RGB以及α通道A),所以層描述2含有兩個代碼流描述。在表7的上述實例中,當文件800被解碼時,文件讀出器將確定存在比層描述更多的層(即,NL=4,層描述=3),并利用層描述3來描述層4(以及任何剩余的各層)。
根據(jù)本發(fā)明的又一個方面,文件1000的報頭1002包括至少一個框1001,它含有一個被顯示的圖像的寬度和高度,以及層數(shù),連同在文件1000中對各層1006-1008中每一層的定義,如同在圖9中所看到的那樣???001將圖像大小說明1003,層描述(例如1005)(或者層說明),一個組分映射以及一個組分轉(zhuǎn)換表融合在一起。這使得報頭1002便于閱讀。下面將更詳細地說明框1001的各字段。
根據(jù)圖9的文件格式,層描述(例如1005)包括一個“重復”標志925,它指定層描述1005適用的各連續(xù)層的數(shù)目。重復標志可以具有一個數(shù)值,最好是處于“0-65535”的范圍內(nèi)。重復標志925的數(shù)值為“65535”意味著該特定的層描述適用于在文件1000中剩余的所有各層。重復標志925允許各層的連續(xù)組具有相似的層描述。因此,可以用一個單獨的描述來表示具有相同描述的許多層,從而得到更有效的文件格式。
根據(jù)圖9的文件格式,每一個層描述(例如1005)都包括代碼流1007以及它們的相關(guān)的代碼流描述1009的數(shù)目,如同在圖9的部件分解圖中所看到的那樣。用壓縮類型1011,顏色說明1013,由調(diào)色板所定義的組分轉(zhuǎn)換或映射1015,以及一組組分定義1017(類型相關(guān)對)—每個組分一個,來定義每一個代碼流。
根據(jù)圖9的文件格式,在報頭1002中,用對分別出現(xiàn)在報頭框921和919之中的顏色說明和調(diào)色板的集合的一個索引,來指定彩色空間和調(diào)色板二者。作為第一個步驟,最好是將組分轉(zhuǎn)換或調(diào)色板查找應(yīng)用于被解碼的圖像數(shù)據(jù),并且所得到的各像素被分配到由正在被使用的一個顏色說明所定義的彩色空間(例如sRGB或者由一個受限制的ICC特征文件所定義的空間)。
當用單獨的顏色說明等來處理一個單層文件時,圖9的報頭將簡化為報頭1019,如同在圖10中所看到的那樣。圖10表示,對于由圖9的報頭1002所幫助實現(xiàn)的所有附加能力,其基本句法并不復雜。
在報頭框1001,1021中的各字段的定義如下面的表8所示
表8
在層說明框923,1023中的各字段的定義如下面的表9所示表9
在代碼流描述1009中的各字段的定義如下面的表10所示表10
由組分轉(zhuǎn)換/映射說明1015所定義的信息被定義于下列的表11,12和13之中表11
表12
表13
圖12是一個流程圖,表示將一個或多個圖像編碼為圖8和9所示的文件格式(即,已編碼的表示)的一種方法。處理過程開始于步驟1201,在這里確定所需的層數(shù)。在下一個步驟1203,根據(jù)為每一層所使用的編碼類型以及在每一層中的代碼流的數(shù)目,來確定一個層描述。處理過程轉(zhuǎn)入下一個步驟1205繼續(xù)執(zhí)行,在這里對各個層描述進行比較,以確定具有相同描述的各層的數(shù)目。在下一個步驟1207,確定各層的展示順序。處理過程結(jié)束于下一個步驟1209,在這里描述和各層被編碼為優(yōu)選的文件格式,或者,可供選擇地,被編碼為一個比特流,使得相同描述的至少一個被納入優(yōu)選的文件格式之中。還有,具有相同層描述的那些層被順序地放置在一個特定文件的末尾。
本文所描述的方法在聯(lián)合圖像專家組(JPEG)編碼標準中具有特殊的應(yīng)用。特別是,JPEG2000部分1標準定義了一個特征文件框,其中含有一個4字節(jié)代碼的列表,描述在該文件所遵循的這樣的標準范圍內(nèi)的各項標準或各特征文件。然而,在JPEG2000部分1標準中存在許多限制,而本文所描述的各種方法能解決這些限制。首先,為保證相同的4個代碼不被用來描述獨立的各種兼容性,用于JPEG2000部分1標準的各種代碼必須由一個中央權(quán)威機構(gòu)來提供。在使用可能由獨立的經(jīng)銷商產(chǎn)生的UUID中,本文所描述的各種方法保證使用唯一的代碼來描述各種獨立的兼容性。
其次,JPEG2000部分1標準列舉了一組功能,而并沒有表明哪些功能組是強制性的,以及哪些針對代碼流為可選的。例如,沒有辦法來定義與JPEG2000部分2標準代碼流相結(jié)合的復雜顏色定義會被要求用于特定的代碼流傳輸。本文所描述的方法允許定義各種功能組。
第三,參照于一個標準或者在一個標準中的一個特征文件是如此的粗糙,以至于無法定義特定的功能。同樣,這樣一種參照不允許在兩項不同標準之間有所重疊。例如,JPEG2000文件使用受限制的ICC特征文件。本文所描述的方法使得能說明一個單獨的功能,因而凡是能理解該文件格式并能讀出受限制的ICC特征文件的任何事物都能讀出根據(jù)本文所描述的各種方法而進行格式化的文件。
第四,若一個文件含有一個單獨的JPEG2000部分1標準代碼流,一個報頭以及一個顏色說明,則按照上述方式來描述文件就能使一個JPEG2000兼容的讀出器在不必指定該文件遵循JPEG2000標準的條件下,讀出該文件。
第五,若一個特定的文件指定多個特征文件,而不指定特定的功能,則讀出器可能無法讀出未來的文件。若讀出器不理解未來的特征文件,但的確理解由如上所述的一個特征文件所提供的特定功能,則讀出器仍能讀出該文件。
處于上述的兼容性框以內(nèi)的各項特征可以在整個JPEG2000文件的范圍內(nèi)被使用。使用一個枚舉數(shù)值或者一個UUID,可以以同樣的方式來識別一個在JPEG2000文件中的任何其他地方被參考的特征。例如,sRGB(使用數(shù)值16來定義)可以在一個顏色說明的范圍內(nèi)被使用,并且在兼容性框以內(nèi),最好具有相同的數(shù)值。
此外,在JPEG2000標準中使用的當前UUID列表框指定一個URL,它被用來作為指定涉及一個UUID的更多信息的鏈接。根據(jù)JPEG2000部分1標準,這些URL被用來定義各UUID框。UUID列表框還可以被用來定義在上述的兼容性框中用以描述功能的各UUID。
最好是使用一個常規(guī)的通用計算機系統(tǒng)700來實現(xiàn)上述的各種方法,例如圖7所示,其中,圖1至6以及圖8至11所示的處理過程可以用軟件(例如在計算機系統(tǒng)700中執(zhí)行的一個應(yīng)用程序)來實現(xiàn)。特別是,上述的各種方法都是由計算機所執(zhí)行的軟件中的各種指令來實現(xiàn)的。該軟件可以劃分為兩個獨立的部分一部分用于執(zhí)行上述方法,另一部分用于管理介于方法與用戶之間的用戶接口。該軟件可以被存儲在一種計算機可讀介質(zhì)之中,包括例如下述的存儲裝置。該軟件從計算機可讀介質(zhì)被裝入計算機,隨后由計算機執(zhí)行。在其上記錄有這樣的軟件或計算機程序的計算機可讀介質(zhì)就是計算機程序產(chǎn)品。在計算機中使用計算機程序產(chǎn)品優(yōu)選地實現(xiàn)一種能根據(jù)本發(fā)明的各實施例對數(shù)字圖像進行編碼的有利的裝置。
計算機系統(tǒng)700包括一個計算機模塊701,諸如鍵盤702以及鼠標703那樣的輸入裝置,包括打印機715和顯示裝置714的輸出裝置。計算機模塊701使用一個調(diào)制解調(diào)器(Modem)收發(fā)裝置716,用以與例如可經(jīng)由電話線路721或其他功能介質(zhì)連接的通信網(wǎng)絡(luò)720進行雙向通信。可以使用調(diào)制解調(diào)器716來訪問因特網(wǎng),以及其他網(wǎng)絡(luò)系統(tǒng),諸如局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。
計算機模塊701典型地包括至少一個處理器單元705,存儲器單元706,例如由半導體隨機存取存儲器(RAM)和只讀存儲器(ROM)所形成的存儲器單元,包括一個視頻接口707的輸入/輸出(I/O)接口,以及一個用于鍵盤702,鼠標703,以及可選地用于操縱桿(未示出)的I/O接口713,以及用于調(diào)制解調(diào)器716的接口708。提供了存儲裝置709,它典型地包括一個硬盤驅(qū)動器710以及一個軟盤驅(qū)動器711。還可以使用磁帶驅(qū)動器(未示出)。典型地提供一個光盤驅(qū)動器(CD-ROM)712,作為一個非易失性數(shù)據(jù)源。計算機模塊701的各部件705至713典型地經(jīng)由互聯(lián)總線704進行通信,并且其通信方式能導致為業(yè)界人士所熟知的計算機系統(tǒng)700的常規(guī)運行方式??梢栽谄渖蠈崿F(xiàn)各實施例的計算機的實例包括基于英特爾(Intel)處理器的個人計算機和各種兼容機,Sun公司的Sparc工作站或從其演變來的類似的各種計算機系統(tǒng)。
典型地,優(yōu)選實施例的應(yīng)用程序駐留在硬盤驅(qū)動器710之中,并且在其執(zhí)行過程中由處理器705讀出和控制??梢允褂冒雽w存儲器706并且可能跟硬盤驅(qū)動器710協(xié)同工作,來完成程序以及從網(wǎng)絡(luò)720取出的任何數(shù)據(jù)的中間存儲。在某些實例中,可以通過被編碼在一個CD-ROM或軟盤之上,并經(jīng)由相應(yīng)的驅(qū)動器712或711讀出的方式來向用戶提供應(yīng)用程序,或者,可供選擇地,可以由用戶經(jīng)由調(diào)制解調(diào)器裝置716從網(wǎng)絡(luò)720讀出應(yīng)用程序。再有,可以從其他計算機可讀介質(zhì)(包括磁帶,一個ROM或集成電路,一個磁光盤,介于計算機模塊701以及其他裝置之間的無線或紅外傳輸通道,諸如一塊PCMCIA卡那樣的計算機可讀卡,以及包括電子郵件傳輸和記錄在網(wǎng)站等之上的信息在內(nèi)的因特網(wǎng)和內(nèi)聯(lián)網(wǎng))將軟件裝入到計算機系統(tǒng)700。以上僅僅是有關(guān)的計算機可讀介質(zhì)的示例。在不背離本發(fā)明的范圍和精神實質(zhì)的前提下,也可以使用其他的計算機可讀介質(zhì)。
可供選擇地,可以在專用硬件,諸如能執(zhí)行上述方法的功能或子功能的一種或多種集成電路中,實現(xiàn)上述方法。這樣的專用硬件可以包括各種圖形處理器,數(shù)字信號處理器,一種或多種微處理器以及各種相關(guān)的存儲器。
工業(yè)適用性根據(jù)以上所述,顯而易見,本發(fā)明的實施例可以應(yīng)用程序于計算機以及數(shù)據(jù)處理行業(yè),特別是應(yīng)用程序于這些行業(yè)的某些部門。而且,本發(fā)明的實施例還可以應(yīng)用程序于廣告業(yè)和娛樂業(yè)。
以上所敘述的僅僅是本發(fā)明的某些實施例,并且在不背離本發(fā)明的范圍和精神實質(zhì)的前提下,可以作出各種修改和/或變更,這些實施例是說明性的,而不是限制性的。
權(quán)利要求
1.一種電子文件包括已編碼的數(shù)字圖像數(shù)據(jù);以及表示多個布爾運算的一個表達式,其中,所述表達式標識為讀出所述已編碼的數(shù)字圖像數(shù)據(jù)所需的各功能方面。
2.根據(jù)權(quán)利要求1所述的電子文件,其中,所述多個布爾運算包括至少一個按位的“AND”運算符。
3.根據(jù)權(quán)利要求1所述的電子文件,其中,所述表達式表示由按位的“AND”運算符分隔的一系列按位的“OR”運算。
4.根據(jù)權(quán)利要求1至3中任何一個所述的電子文件,其中,所述表達式被編碼,以包括至少一個識別標志和一個相關(guān)的屏蔽。
5.根據(jù)權(quán)利要求4所述的電子文件,其中,所述識別標志指定一個枚舉數(shù)值或一個通用的唯一標識符。
6.根據(jù)權(quán)利要求5所述的電子文件,其中,所述枚舉數(shù)值的第一位被用來指示出所述識別標志指定一個通用的唯一標識符。
7.一種用于對含有至少一個已編碼的數(shù)字圖像的電子文件進行編碼的方法;所述方法包括下列各步驟確定一個表示多個布爾運算的表達式,其中,所述表達式標識為讀出所述已編碼的數(shù)字圖像數(shù)據(jù)所需的各功能方面;以及將所述表達式添加到所述電子文件的一個支持數(shù)據(jù)區(qū)之中。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述多個布爾運算包括至少一個按位的“AND”運算符。
9.根據(jù)權(quán)利要求7所述的方法,其中,所述表達式表示由按位的“AND”運算符分隔的一系列按位的“OR”運算。
10.根據(jù)權(quán)利要求7至9中任何一個所述的方法,其中,所述表達式被編碼以包括至少一個識別標志和一個相關(guān)的屏蔽。
11.根據(jù)權(quán)利要求10所述的方法,其中,所述識別標志指定一個枚舉數(shù)值或一個通用的唯一標識符。
12.根據(jù)權(quán)利要求11所述的方法,其中,所述枚舉數(shù)值的第一位被用來指示出所述識別標志指定一個通用的唯一標識符。
13.一種用于對含有至少一個已編碼的數(shù)字圖像的電子文件進行編碼的設(shè)備,所述設(shè)備包括用于接收一個表示多個布爾運算的表達式的裝置,其中,所述表達式標識為讀出所述已編碼的數(shù)字圖像數(shù)據(jù)所需的各功能方面;用于將所述表達式添加到所述電子文件的一個支持數(shù)據(jù)區(qū)之中的裝置。
14.根據(jù)權(quán)利要求13所述的設(shè)備,其中,所述多個布爾運算包括至少一個按位的“AND”運算符。
15.根據(jù)權(quán)利要求13所述的設(shè)備,其中,所述表達式表示由按位的“AND”運算符分隔的一系列按位的“OR”運算。
16.根據(jù)權(quán)利要求13至15中任何一個所述的裝置,其中,所述表達式被編碼以包括至少一個識別標志和一個相關(guān)的屏蔽。
17.根據(jù)權(quán)利要求16所述的設(shè)備,其中,所述識別標志指定一個枚舉數(shù)值或一個通用的唯一標識符。
18.根據(jù)權(quán)利要求17所述的設(shè)備,其中,所述枚舉數(shù)值的第一位被用來指示出所述識別標志指定一個通用的唯一標識符。
19.一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對含有至少一個已編碼的數(shù)字圖像的電子文件進行編碼,所述程序包括用于確定表示多個布爾運算的一個表達式的代碼,其中,所述表達式標識為讀出所述已編碼的數(shù)字圖像數(shù)據(jù)所需的各功能方面;以及用于將所述表達式添加到所述電子文件的一個支持數(shù)據(jù)區(qū)之中的代碼。
20.根據(jù)權(quán)利要求19所述的計算機可讀介質(zhì),其中,所述多個布爾運算包括至少一個按位的“AND”運算符。
21.根據(jù)權(quán)利要求19所述的計算機可讀介質(zhì),其中,所述表達式表示由按位的“AND”運算符分隔的一系列按位的“OR”運算。
22.根據(jù)權(quán)利要求19至21中任何一個所述的計算機可讀介質(zhì),其中,所述表達式被編碼以包括至少一個識別標志和一個相關(guān)的屏蔽。
23.根據(jù)權(quán)利要求22所述的計算機可讀介質(zhì),其中,所述識別標志指定一個枚舉數(shù)值或一個通用的唯一標識符。
24.根據(jù)權(quán)利要求23所述的計算機可讀介質(zhì),其中,所述枚舉數(shù)值的第一位被用來指示出所述識別標志指定一個通用的唯一標識符。
25.一種用于對在已編碼的表示中的數(shù)字圖像進行編碼的方法,所述方法包括下列各步驟為在所述已編碼的表示中的每個所述數(shù)字圖像確定一個描述;以及將所述描述以及所述數(shù)字圖像編碼為一個比特流,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
26.根據(jù)權(quán)利要求25所述方法,其中,所述描述包括一個指示器,它指定所述描述與之相關(guān)的數(shù)字圖像的數(shù)目。
27.一種用于對數(shù)字圖像的已編碼表示進行解碼的方法,每一個所述圖像都具有一個相關(guān)的描述,所述方法包括至少下列步驟利用所述描述來輸出所述數(shù)字圖像,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
28.一種用于對在已編碼表示中的一個或多個數(shù)字圖像進行編碼的方法,所述方法包括下列各步驟確定在所述已編碼的表示中的數(shù)字圖像的數(shù)目;為所述已編碼的表示中的每一個所述數(shù)字圖像確定一個描述;對所述各數(shù)字圖像的所述描述進行比較,以確定具有相同描述的圖像的數(shù)目;確定所述各數(shù)字圖像的展示順序;以及將所述描述集以及所述數(shù)字圖像編碼為比特流,其中,所述相同描述中僅有一個被納入所述比特流之中,并且其中,具有所述相同描述的那些數(shù)字圖像被順序地放置在所述順序的末尾。
29.根據(jù)權(quán)利要求28所述方法,其中,所述相同描述的至少一個關(guān)聯(lián)于多個所述數(shù)字圖像。
30.一種用于對一個或多個數(shù)字圖像的已編碼表示進行解碼的方法,每個所述圖像都具有一個相關(guān)的描述,所述方法包括下列各步驟在所述已編碼的表示中確定描述的數(shù)目;在所述已編碼的表示中確定數(shù)字圖像的數(shù)目;以及將所述描述和所述各數(shù)字圖像當作比特流來輸出,其中,若所述數(shù)字圖像的數(shù)目大于所述描述的數(shù)目,則所述描述的第一數(shù)目順序地關(guān)聯(lián)于所述各數(shù)字圖像的第二數(shù)目,并且所述描述的剩余一個關(guān)聯(lián)于任何剩余的數(shù)字圖像。
31.根據(jù)權(quán)利要求30所述方法,其中,所述第一和第二數(shù)目是相同的。
32.一種用于對在已編碼表示中的各數(shù)字圖像進行編碼的方法,所述方法包括下列各步驟為在所述已編碼的表示中的所述各數(shù)字圖像中的每個確定一個描述;以及將所述描述以及所述各數(shù)字圖像編碼為比特流,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像,并且其中,所述描述包括一個指示器,用以指定所述描述與之關(guān)聯(lián)的數(shù)字圖像的數(shù)目。
33.根據(jù)權(quán)利要求25至32中任何一個所述的方法,其中,所述描述包括跟一個對應(yīng)的圖像相關(guān)聯(lián)的顏色信息。
34.一種用于對在已編碼表示中的各數(shù)字圖像進行編碼的設(shè)備,所述設(shè)備包括用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每個確定一個描述的裝置;以及用于將所述描述以及所述各數(shù)字圖像編碼為比特流的裝置,其中,所述描述的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
35.根據(jù)權(quán)利要求34所述設(shè)備,其中,所述描述包括一個指示器,用以指定所述描述與之關(guān)聯(lián)的數(shù)字圖像的數(shù)目。
36.一種用于對各數(shù)字圖像的已編碼表示進行解碼的設(shè)備,每個所述圖像都具有一個相關(guān)的描述,所述設(shè)備包括利用所述描述來輸出所述各數(shù)字圖像的裝置,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
37.一種用于對在已編碼表示中的一個或多個數(shù)字圖像進行編碼的設(shè)備,所述設(shè)備包括用于確定在所述已編碼的表示中的數(shù)字圖像的數(shù)目的裝置;用于為在所述已編碼的表示中的每個所述數(shù)字圖像確定一個描述的裝置;用于對所述各數(shù)字圖像的所述描述進行比較,以確定具有相同描述的圖像的數(shù)目的裝置;用于確定所述各數(shù)字圖像的展示順序的裝置;以及用于將所述描述集以及所述各數(shù)字圖像編碼為比特流的裝置,其中,所述相同描述中僅有一個被納入所述比特流,并且其中,具有相同描述的那些數(shù)字圖像被順序地放置在所述順序的末尾。
38.根據(jù)權(quán)利要求37所述的設(shè)備,其中,所述的相同描述中的至少一個關(guān)聯(lián)于多個所述數(shù)字圖像。
39.一種用于對一個或多個數(shù)字圖像的已編碼表示進行解碼的設(shè)備,每一個所述圖像都具有一個相關(guān)的描述,所述設(shè)備包括用于在所述已編碼的表示中確定描述的數(shù)目的裝置;用于在所述已編碼的表示中確定各數(shù)字圖像的數(shù)目的裝置;用于將所述描述和所述各數(shù)字圖像當作比特流來輸出的裝置,其中,若所述各數(shù)字圖像的數(shù)目大于所述描述的數(shù)目,則所述描述的第一數(shù)目順序地關(guān)聯(lián)于所述各數(shù)字圖像的第二數(shù)目,并且所述描述的剩余一個關(guān)聯(lián)于任何剩余的數(shù)字圖像。
40.根據(jù)權(quán)利要求30所述方法,其中,所述第一和第二數(shù)目是相同的。
41.一種用于對在已編碼表示中的各數(shù)字圖像進行編碼的設(shè)備,所述設(shè)備包括用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每一個確定一個描述的裝置;以及用于將所述描述以及所述各數(shù)字圖像編碼為一個比特流的裝置,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像,并且其中,所述描述包括一個指示器,用以指定所述描述與之關(guān)聯(lián)的數(shù)字圖像的數(shù)目。
42.根據(jù)權(quán)利要求34至41中任何一個所述的設(shè)備,其中,所述描述包括與一個對應(yīng)的圖像相關(guān)聯(lián)的顏色信息。
43.一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對在已編碼的表示中的各數(shù)字圖像進行編碼,所述程序包括用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每一個確定一個描述的代碼;以及將所述描述以及所述各數(shù)字圖像編碼為比特流的代碼,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
44.根據(jù)權(quán)利要求43所述的計算機可讀介質(zhì),其中,所述描述包括一個指示器,用以指定所述描述與之關(guān)聯(lián)的數(shù)字圖像的數(shù)目。
45.一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對各數(shù)字圖像的已編碼的表示進行解碼,所述圖像中的每一個都具有一個相關(guān)的描述,所述程序包括利用所述描述來輸出所述各數(shù)字圖像的代碼,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像。
46.一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對在已編碼的表示中的一個或多個數(shù)字圖像進行編碼,所述程序包括用于確定在所述已編碼的表示中的數(shù)字圖像的數(shù)目的代碼;用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每一個確定一個描述的代碼;用于對所述數(shù)字圖像的所述描述進行比較,以確定具有相同描述的圖像的數(shù)目的代碼;用于確定所述各數(shù)字圖像的展示順序的代碼;以及用于將所述描述集以及所述各數(shù)字圖像編碼為一個比特流的代碼,其中,僅有所述相同描述之一被納入所述比特流,并且其中,具有相同描述的那些數(shù)字圖像被順序地放置在所述順序的末尾。
47.根據(jù)權(quán)利要求46所述的計算機可讀介質(zhì),其中,相同描述中的至少一個關(guān)聯(lián)于多個所述數(shù)字圖像。
48.一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對一個或多個數(shù)字圖像的已編碼的表示進行解碼,所述圖像中的每一個都具有一個相關(guān)的描述,所述程序包括用于在所述已編碼的表示中確定描述的數(shù)目的代碼;用于在所述已編碼的表示中確定各數(shù)字圖像的數(shù)目的代碼;以及用于將所述描述和所述各數(shù)字圖像當作比特流來輸出的代碼,其中,若所述各數(shù)字圖像的數(shù)目大于所述描述的數(shù)目,則所述描述的第一數(shù)目順序地關(guān)聯(lián)于所述各數(shù)字圖像的第二數(shù)目,并且所述描述的剩余一個關(guān)聯(lián)于任何剩余的數(shù)字圖像。
49.根據(jù)權(quán)利要求48所述的計算機可讀介質(zhì),其中,所述第一和第二數(shù)目是相同的。
50.一種在其上記錄有一段程序的計算機可讀介質(zhì),所述程序包括適于在至少一種計算機平臺上進行互動操作的多個軟件模塊,所述程序適于對在已編碼的表示中的各數(shù)字圖像進行編碼,所述程序包括用于為在所述已編碼的表示中的所述各數(shù)字圖像中的每個確定一個描述的代碼;以及用于將所述描述以及所述各數(shù)字圖像編碼為一個比特流的代碼,其中,所述描述中的至少一個順序地關(guān)聯(lián)于多個所述數(shù)字圖像,并且其中,所述描述包括一個指示器,用以指定所述描述與之關(guān)聯(lián)的數(shù)字圖像的數(shù)目。
51.根據(jù)權(quán)利要求43至50中任何一個所述的計算機可讀介質(zhì),其中,所述描述包括與一個對應(yīng)的圖像相關(guān)聯(lián)的顏色信息。
52.一種電子文件包括已編碼的數(shù)字圖像數(shù)據(jù);以及一個表示多個布爾運算的表達式,其中,所述表達式定義了所述已編碼的數(shù)字圖像數(shù)據(jù)被讀出的方式。
全文摘要
公開了一個表達式,它可以被用來指定為將一個比特流解碼和擴展為圖像數(shù)據(jù)所需的功能。該表達式最好被納入到針對一個比特流的開銷信息之中。還公開了一種圖像文件結(jié)構(gòu)。文件(800)包括多個被順序地裝入一個二進制文件之中的多個元素(802-808)。早在文件之中的各元素含有報頭信息(802)(即,開銷信息),其中包括標識文件類型的信息以及描述在文件(800)中所含有的圖像數(shù)據(jù)的各項參數(shù)的信息。
文檔編號H04N1/41GK1432171SQ01810452
公開日2003年7月23日 申請日期2001年5月29日 優(yōu)先權(quán)日2000年5月29日
發(fā)明者克雷格·M·布朗, 蒂莫西·M·朗, 安德魯·J·朵萊爾 申請人:佳能株式會社