專利名稱::用于數(shù)字文件處理的系統(tǒng)和方法
技術(shù)領域:
:本發(fā)明涉及數(shù)據(jù)處理系統(tǒng),更具體來講,涉及用于處理數(shù)字文件以產(chǎn)生源文件的輸出表示、作為直觀顯示、硬備份或以其它顯示格式表現(xiàn)的方法和系統(tǒng)。
背景技術(shù):
:本文所用的術(shù)語″數(shù)字文件″用來描述由數(shù)據(jù)處理系統(tǒng)處理的任一類型數(shù)據(jù)的數(shù)字表示,它最終以某種形式完全或部分地輸出給人類用戶,一般是通過被顯示或直觀再現(xiàn)(例如,借助于直觀顯示單元或打印機),或者是通過文本-語音轉(zhuǎn)換等等。數(shù)字文件可以包括任何能夠表示的特征,包括但不僅限于文本;圖形圖像;動畫圖形圖像;全動視頻圖像;交互圖標、按鈕、菜單或超鏈接。數(shù)字文件還可以包括非直觀單元,例如音頻(聲音)單元。數(shù)據(jù)處理系統(tǒng),例如個人計算機系統(tǒng),一般要求處理“數(shù)字文件”,這些文件可能來源于許多本地或遠端源中的任何一個,并且可能以多種數(shù)據(jù)格式(“文件格式”)中的任何一種存在。為了產(chǎn)生該文件的一輸出版本,例如無論作為一直觀顯示或打印副本,都需要該計算機系統(tǒng)解釋該原始數(shù)據(jù)文件并產(chǎn)生與相關的輸出裝置(例如監(jiān)視器或其他直觀顯示設備或打印機)兼容的輸出。通常,該處理涉及用于解釋數(shù)據(jù)文件的應用程序、計算機的操作系統(tǒng)、專用于該期望輸出設備的軟件“驅(qū)動器”以及在某些情況下(特別是對于監(jiān)視器或其他直觀顯示裝置)作為擴展卡形式的輔助硬件。用于處理數(shù)字文件以產(chǎn)生輸出的傳統(tǒng)方法,就硬件資源、軟件開銷以及處理時間而言效率很低,而且完全不適用于包括無線遠程通信系統(tǒng)在內(nèi)的低功率、便攜式數(shù)據(jù)處理系統(tǒng),也不適用于低成本數(shù)據(jù)處理系統(tǒng),例如網(wǎng)路終端等等。在傳統(tǒng)的數(shù)字文件處理系統(tǒng)中還會遇到其他問題,包括需要配置多個系統(tǒng)組件(包括硬件和軟件組件)以便以期望的方式進行交互,以及在通過不同系統(tǒng)(例如在格式化、色彩再現(xiàn)等等方面不同)對同一原始資料的處理中的不一致性。此外,用于數(shù)字文件處理的傳統(tǒng)方法不能利用文件格式組件的通用性和/或再可用性。發(fā)明概述本發(fā)明的目的是提供數(shù)字文件處理方法和系統(tǒng),以及結(jié)合該方法和系統(tǒng)的設備,它們消除或減輕了上述的傳統(tǒng)方法和系統(tǒng)的缺陷。此處所述的系統(tǒng)和方法提供一種顯示技術(shù),將一應用程序的底層的功能性與圖形顯示處理分離,從而消除或減少了應用程序?qū)刂圃O備顯示以及為顯示提供圖形用戶界面工具與控制的需要。此外,這樣的系統(tǒng)減少或消除了在處理系統(tǒng)上、當顯示由應用程序創(chuàng)建或為應用程序創(chuàng)建的數(shù)據(jù)(例如文件或視頻信息流)時、對該應用程序的需要。因而可以理解的是,在一方面中,此處所述的系統(tǒng)和方法可以顯示內(nèi)容,包括文件、視頻信息流或其他的內(nèi)容,并且將為查看所顯示文件提供圖形用戶功能,例如圖象縮放、全景展開或其他此類功能,而無需在顯示該內(nèi)容的系統(tǒng)上存在其底層的應用程序。此處所述的系統(tǒng)和方法優(yōu)越于現(xiàn)有技術(shù)的有益效果包括允許在同樣的工作空間內(nèi)、在同一顯示器上、顯示來自不同的應用程序的不同類型的內(nèi)容。很多的有益效果對于本領域中普通技術(shù)人員是顯而易見的,而且本領域中普通技術(shù)人員還能夠領會使用本發(fā)明的底層技術(shù)的很多方式,用以創(chuàng)建另外的系統(tǒng)、設備和應用程序。這些修改的系統(tǒng)和替代的系統(tǒng)與實際應用應該被理解為在本發(fā)明的范圍之內(nèi)。更具體來講,此處所述的系統(tǒng)和方法包括一數(shù)字內(nèi)容處理系統(tǒng),它包括一個應用程序調(diào)度模塊(dispatcher),用于接收以若干預先確定的數(shù)據(jù)格式之一表示源數(shù)據(jù)的輸入字節(jié)流,并用于將該輸入字節(jié)流與該預先確定數(shù)據(jù)格式之一相關聯(lián)。該系統(tǒng)還可以包括一文件代理模塊(documentagent),用于將該輸入字節(jié)流解釋為該相關聯(lián)的預先確定數(shù)據(jù)格式的函數(shù),并用于將該輸入字節(jié)流解析為文件對象流,該文件對象流提供在該輸入字節(jié)流內(nèi)的基本結(jié)構(gòu)的內(nèi)部表示。該系統(tǒng)還包括一個核心文件引擎,用于這些該文件對象轉(zhuǎn)換為一個內(nèi)部表示數(shù)據(jù)格式,并用于將該內(nèi)部表示映射到顯示器上的一個位置。該系統(tǒng)內(nèi)的一個形狀處理器處理該內(nèi)部表示數(shù)據(jù),以便驅(qū)動一輸出裝置以通過該內(nèi)部表示表達的方式呈現(xiàn)該內(nèi)容?,F(xiàn)在將參照附圖描述本發(fā)明的實施例,并僅僅作為示例。附圖的簡短說明根據(jù)下面參照附圖的進一步說明,本發(fā)明的上述及其他目的和有益效果將更清楚,其中圖1是示出根據(jù)本發(fā)明的數(shù)字文件處理系統(tǒng)的一個實施例的方框圖。圖2的方框圖以更多細節(jié)呈現(xiàn)圖1中描述的系統(tǒng);圖3是一個文件代理模塊的流程圖;圖4示意地描述了可以被圖1中的系統(tǒng)處理的類型的示范性文件;圖5描述了被用來減少文件的內(nèi)部表示中的冗余的兩個示范性處理的流程圖;而圖6-8描述了用于存儲一處理后的源文件的內(nèi)部表示的示范性數(shù)據(jù)結(jié)構(gòu)。圖示實施例的詳細說明此處所述的系統(tǒng)和方法包括計算機程序,這些計算機程序運行以便處理輸出流或輸出文件,其中的輸出流或輸出文件是通過應用程序為了在輸出裝置(例如視頻顯示器)上提供該輸出而產(chǎn)生的。根據(jù)本發(fā)明的應用程序可以處理這些流以便創(chuàng)建該輸出的內(nèi)部表示,并且可以進一步處理該內(nèi)部表示,以便產(chǎn)生新的輸出流,該新的輸出流可以作為本發(fā)明的應用程序產(chǎn)生的輸出被顯示在輸出裝置上。因此,本發(fā)明的系統(tǒng)將應用程序與顯示處理分離,從而使得該應用程序不用必須在一特定的顯示設備上顯示其輸出,并進一步消除了當為了顯示該該應用程序的輸出而處理該輸出時、提供該應用程序的需要。為了圖示這種操作,圖1提供了一系統(tǒng)10的高層功能方框圖,該系統(tǒng)允許若干應用程序(集中以單元13一起示出)將他們的輸出流傳送到一計算機處理過程8,該計算機處理過程8處理那些輸出流,并產(chǎn)生由那些流創(chuàng)建的集合輸出的表示,以用于顯示在設備26上。該應用程序13的集合輸出在圖1中通過輸出打印機設備26來說明,該輸出打印機設備26呈現(xiàn)由不同應用程序13產(chǎn)生的輸出內(nèi)容。本領域中普通技術(shù)人員可以理解,該輸出裝置26呈現(xiàn)由計算機處理過程8產(chǎn)生的輸出,而這些輸出集中傳送多個應用程序13的內(nèi)容。在由圖1提供的圖示中,所呈現(xiàn)的內(nèi)容包括若干圖像,并且該輸出設備26是一個顯示器。然而對于本領域中普通技術(shù)人員顯而易見的是,在其他實際應用中,該內(nèi)容可以用除圖像以外的格式傳送,例如聽覺的、觸覺的或適合于將信息傳達給用戶的任何其他格式或格式的組合。此外,本領域中普通技術(shù)人員可以理解的是,輸出設備26的類型將根據(jù)該應用程序而變化,并且可以包括用于呈現(xiàn)音頻內(nèi)容、視頻內(nèi)容、打印內(nèi)容、繪制內(nèi)容或任何其他類型內(nèi)容的設備。為了說明起見,此處所述的系統(tǒng)和方法將主要被示為通過顯示設備顯示圖形內(nèi)容,然而可以理解的是,這些示范性的系統(tǒng)僅僅是為了說明起見,而無論如何不能被理解為限制性的說明。因此,由該應用程序13產(chǎn)生的輸出由計算機處理過程8處理和集合,以便創(chuàng)建一個單一顯示,其中包括由單獨的應用程序13產(chǎn)生的全部內(nèi)容。在所述實施例中,顯示器26上顯現(xiàn)的每一表示輸出為一文件,并且每一所述文件可以與應用程序13之一相關聯(lián)。應該理解的是,這里所用的術(shù)語文件將包含文件、流式視頻、流式音頻、網(wǎng)頁以及任何其他可以由計算機處理過程8處理和顯示的數(shù)據(jù)形式。計算機處理過程8產(chǎn)生一個單一的輸出顯示,包括在其中顯示有應用程序13產(chǎn)生的一個或多個文件。所顯示的文件的集合表示由該應用程序13產(chǎn)生的內(nèi)容,而這一內(nèi)容被顯示在由計算機處理過程8產(chǎn)生的程序窗口內(nèi)。用于計算機處理過程8的程序窗口還可以包括一組圖標,表示配置有圖形用戶接口的工具,并能夠使得用戶能夠在顯示的情況中、控制在程序窗口中出現(xiàn)的文件的操作。與此相反,傳統(tǒng)方法讓每個應用程序形成其自己的顯示,這將導致在顯示設備26上形成包括若干程序窗口的表示,一般每個應用程序13對應一個窗口。此外,每個不同類型的程序窗口將包括一組不同的工具,用于對顯示在窗口中的內(nèi)容進行操作。因此,本發(fā)明的系統(tǒng)10具有這樣的優(yōu)點提供一個一致用戶界面,并且僅僅要求了解一組用于顯示和控制不同文件的工具。此外,該計算機處理過程8對應用程序13的輸出進行操作,從而僅僅要求該輸出來創(chuàng)建出現(xiàn)在程序窗口內(nèi)的文件。因此,沒有必要讓該應用程序13駐留在與處理過程8相同的機器上,也不需要應用程序13與計算機處理過程8協(xié)同操作。該計算機處理過程8僅僅需要這些應用程序13的輸出,而這個輸出可以源自于由該應用程序13在早些時侯創(chuàng)建的已存儲數(shù)據(jù)文件。然而,此處所述的系統(tǒng)和方法,可以作為系統(tǒng)的一部分使用,其中一應用程序能夠呈現(xiàn)其自己的內(nèi)容、控制至少顯示器26的一部分并在一個與所述應用程序相關聯(lián)的程序窗口內(nèi)呈現(xiàn)內(nèi)容。在這些實施例中,本發(fā)明的系統(tǒng)和方法可以作為單獨應用程序來工作,這些單獨應用程序出現(xiàn)在顯示器上并在為其使用而設的顯示器的一部分內(nèi)。更具體來講,圖1描述了若干應用程序13。這些應用程序可以包括文字處理程序,例如Word、WordPerfect或其他任何類似的文字處理程序。它還可以進一步包括這樣的程序產(chǎn)生HTML文件的NetscapeComposer、處理PDF文件的AdobeAcrobat,傳送XML或HTML的網(wǎng)絡服務器、產(chǎn)生音頻-視頻數(shù)據(jù)流的流式服務器、電子郵件客戶機或服務器、數(shù)據(jù)庫、電子制表軟件或以一文件、數(shù)據(jù)流或者任何其他種類的應用程序,而該其他種類的應用程序傳送輸出作為文件、數(shù)據(jù)流或以某些適合于由計算機處理過程使用的其它格式。在圖1的實施例中,每一應用程序13將其輸出內(nèi)容提交給計算機處理過程8。操作中,這個過程可以通過讓應用程序處理過程13將其輸出流作為輸入字節(jié)流引導給計算機處理過程8來實現(xiàn)。數(shù)據(jù)流的使用對于本領域中普通技術(shù)人員是公知的,并在文獻中已經(jīng)說明了,例如包括StephenG.Kochan撰寫的“ProgramminginC”,HaydenPublishing(1983)??蛇x擇的是,應用程序13可以創(chuàng)建諸如Word文件的數(shù)據(jù)文件,該文件可以通過單獨的應用程序或者通過計算機處理過程8以流方式進入計算機處理過程8。所述計算機處理過程8能夠處理各種輸入流,以創(chuàng)建在顯示設備26上顯示的集合顯示。為此,并將在以下更詳細說明,計算機處理過程8處理這些輸入流,以產(chǎn)生每一輸入流的內(nèi)部表示。在實際應用中,該內(nèi)部表示被指定為看起來盡可能接近相應的應用程序13的輸出流。然而在其他的實施例中,該內(nèi)部表示可被創(chuàng)建為對于由相應的應用程序13產(chǎn)生的輸出流具有經(jīng)過挑選的、簡化的或局部的相似性。另外并且可選的是,此處所述的系統(tǒng)和方法還可對所述被解釋內(nèi)容采用過濾器,從而允許從所顯示的內(nèi)容中除去所述內(nèi)容的某些部分,或者相反來呈現(xiàn)所述內(nèi)容的某些部分。進一步來講,此處所述的系統(tǒng)和方法可以允許源文件結(jié)構(gòu)的變更、允許在一文件內(nèi)復原內(nèi)容、重排所述文件的結(jié)構(gòu)或僅僅選擇某些類型的數(shù)據(jù)。同樣,在一可選實施例中,可以在解釋處理期間添加內(nèi)容,包括鏈接到網(wǎng)絡站點的有效內(nèi)容。不論是哪種情況,由該計算機處理過程8創(chuàng)建的內(nèi)部表示都可以由計算機處理過程8進一步處理,以驅(qū)動所述顯示設備26創(chuàng)建圖1中表示的集合圖像?,F(xiàn)在來看圖2,圖2呈現(xiàn)了圖1中的所述系統(tǒng)的一個更詳細的表示。具體來講,圖2描述了包括所述計算機處理過程8、所述源文件11、和一顯示設備26的系統(tǒng)10。所述計算機處理過程8包括若干文件代理模塊12、一內(nèi)部表示格式文件和處理過程14、緩沖存儲器15、類屬對象庫16、核心文件引擎(在該實施例中包括解析模塊18和呈現(xiàn)(rendering)模塊19)、一內(nèi)視圖20、一形狀處理器22和一終端輸出24。圖2進一步描述了一可選的輸入設備30,用于將用戶輸入40傳輸給計算機處理過程8。所述實施例包括一個處理過程8,其中包括一形狀處理器22。然而,對于本領域中普通技術(shù)人員顯而易見的是,所述處理過程8僅僅是示范性的,所述處理過程8可以通過替代的處理和體系結(jié)構(gòu)來實現(xiàn)。例如,所述形狀處理器22可以選擇性地被實現(xiàn)為硬件部件,例如一半導體器件,它支持所述處理過程8的其他組件的操作。此外,很清楚的是,盡管圖2以包括單個系統(tǒng)的功能方框圖呈現(xiàn)處理過程8,處理過程8也可能是分布在許多不同的平臺上,還可能是所述組件在不同的時間運行,而來自處理過程8的一個組件的輸出隨后才被作為輸入傳送給處理過程8的下一組件。如上所述,每個源文件11與文件代理模塊12相關聯(lián),它能夠?qū)⑤斎氲奈募g成所述源文件11的內(nèi)容的內(nèi)部表示。為了確定適當?shù)奈募砟K12來處理源文件11,圖1中的所述系統(tǒng)10包括一應用程序調(diào)度模塊(沒有示出),它控制應用程序和所述系統(tǒng)10之間的接口。在一實際應用中,外部應用編程接口(API)的使用是通過所述應用程序調(diào)度模塊解決的,它傳遞數(shù)據(jù)、調(diào)用適當?shù)奈募砟K12、或者相反實現(xiàn)由應用程序提出的請求。為了給一特定的源文件11選擇適當?shù)奈募砟K12,所述應用程序調(diào)度模塊將所述源文件11通知給所有加載的文件代理模塊12。然后這些文件代理模塊12以與它們的特定適配性相關的信息為響應,以便翻譯所公布的源文件11的內(nèi)容。一旦所述文件代理模塊12已經(jīng)作出響應,所述應用程序調(diào)度模塊選擇一個文件代理模塊12,并將一個指針(例如所述源文件的一個URI(通用資源識別碼))傳遞給所選定的文件代理模塊12。在一實際應用中,所述計算機處理過程8可以作為一項業(yè)務運行,經(jīng)由該業(yè)務可以創(chuàng)建若干進程活動,借以支持多個文件源11的多重處理。在其他實施例中,所述處理過程8并不支持多進程活動,而是在當前進程活動中將調(diào)用由所述應用程序調(diào)度模塊(applicationdispatcher)所選定的文件代理模塊12。很清楚的是,圖2中的該示范性的實施例提供了用于處理不同文件格式的輸入數(shù)據(jù)流的一個靈活和可擴展的前端。例如可選的是,如果該應用程序調(diào)度模塊確定該系統(tǒng)缺少一個適用于翻譯該源文件11的文件代理模塊12,該應用程序調(diào)度模塊可以發(fā)信號給相應的應用程序13,指出該源文件的格式未被識別??蛇x的是,該應用程序13可以選擇允許源文件11的重新格式化,例如通過將由該應用程序13產(chǎn)生的源文件11從它的現(xiàn)在的格式轉(zhuǎn)換為另一個由所述應用程序13支持的格式。例如一個應用程序13可以確定該源文件11需要以一個不同的格式(例如該文件格式的一個早期版本)存儲。結(jié)果,應用程序13支持所述格式,該應用程序13可以用這些支持的格式重新存儲該源文件11,以便由該系統(tǒng)10提供的一個文件代理模塊12能夠翻譯該源文件11。可選的是,該應用程序調(diào)度模塊一旦檢測到所述系統(tǒng)10缺少一適當?shù)奈募砟K12,就可以向用戶指示可能需要一新的特定類型的文件代理模塊用于翻譯當前源文件11。為此,該計算機處理過程8可以指示該用戶需要將一個新的文件代理模塊載入該系統(tǒng)10,并且可能將該用戶指引到一個可以從中下載該新的文件代理模塊12的位置,例如一個網(wǎng)絡站點??蛇x的是,該系統(tǒng)可以自動地取出該代理程序而無需詢問該用戶,或者可以識別一個類屬代理程序12,例如一個可以抽取源文件表示文本的部分的類屬文本代理程序。進一步來講,還可以提供代理程序,來提示用戶在翻譯處理期間的輸入和指令。在一個更進一步的可選實施例中,一個應用程序調(diào)度模塊和該文件代理模塊12結(jié)合在一起作為一個輸入模塊工作,用于根據(jù)各種標準中的任何一個來識別源文件11的文件格式,例如該文件內(nèi)部的一個明確的文件類型標識符,根據(jù)文件名,包括文件名擴展部分,或者根據(jù)已知的特定文件類型的內(nèi)容特征。該字節(jié)流被輸入給該文件代理模塊12,指定為該源文件11的文件格式。盡管以上的說明已經(jīng)論述了由一個流或者計算機文件提供輸入數(shù)據(jù),但應該能被本領域中普通技術(shù)人員理解的是,該系統(tǒng)10還可以被施加從一輸入設備(諸如數(shù)字式攝象機或者掃描儀)接收的輸入,以及從可以直接地將它的輸出流給該處理過程8或者通過一個操作系統(tǒng)將它的輸出流給該處理過程8的應用程序接收的輸入。在該情況下,輸入字節(jié)流可以直接來源于該輸入設備而不是來源于一個源文件11。然而,該輸入字節(jié)流仍將是適用于由所述系統(tǒng)10處理的數(shù)據(jù)格式,并且為了本發(fā)明的目的,從這樣一個輸入設備接收的輸入可以被認為是一個源文件11。如圖2所示,所述文件代理模塊12采用標準對象庫16來產(chǎn)生內(nèi)部表示14,以按照在所述庫16中定義的類屬類型的文件對象的集合、連同定義所述文件內(nèi)部的各種文件對象的特定實例的性質(zhì)的參數(shù),來描述所述源文件的內(nèi)容。因此,所述庫16提供了一組所述文件代理模塊12、所述解析程序18以及所述系統(tǒng)10已經(jīng)了解的若干類型的對象。例如,所述內(nèi)部表示14中采用的所述文件對象可以包括文本、位形以及矢量圖形文件對象,這些矢量圖形文件對象可能是活動的、或者可能不是活動的,并且可能是兩維或者三維的視頻、音頻以及各種類型的交互對象(例如按鈕和圖標)。矢量圖形文件對象可能是具有規(guī)定的填充和透明度的類似PostScript(頁面描述語言)的路徑。位形文件對象可能包括一組子對象類型,例如JPEG、GIF和PNG對象類型。文本文件對象可表示一個特殊文本的區(qū)域。所述區(qū)域可以包括一個文本段落,一般被理解為一組字符,出現(xiàn)在兩個分隔符(類似一對回車符)之間。每個文本對象可以包括一連串字符和所述字符串的樣式信息,包括一個或多個相關聯(lián)的字體、標點及其他此類的樣式信息。定義文件對象的特定實例的參數(shù)通常包括定義所述文件對象的物理形狀、大小和位置的空間坐標系以及任何相應的用于定義性質(zhì)隨時間而變的文件對象的瞬態(tài)數(shù)據(jù),從而允許所述系統(tǒng)處理動態(tài)文件結(jié)構(gòu)和/或顯示功能。例如,一個視頻輸入流可以由所述系統(tǒng)10作為一系列以例如30幀每秒的速率變化的圖形來處理。在該情況下,這種圖形對象的瞬態(tài)特征指示所述圖形對象每秒更新30次。如上所述,對于文本對象,所述參數(shù)一般地還包括被應用于字符串的字體和大小。對象參數(shù)還可能定義其他性質(zhì),例如透明度。很清楚的是,所述內(nèi)部表示可以本地的文件格式存儲/存放到所述系統(tǒng),而輸入給所述系統(tǒng)10的可能的源文件范圍可以包括所述系統(tǒng)中的本地文件格式的文件。還可能是使用適當?shù)霓D(zhuǎn)換代理程序,在需要的時候?qū)⑺鰞?nèi)部表示14轉(zhuǎn)換為一些其他文件格式中的任何一個。圖3描述了可以由一個文件代理模塊12執(zhí)行的一個示范性處理的流程圖。具體來講,圖3描述了表示一個示例文件代理模塊12的操作的一處理過程50,在該情況下,該文件代理模塊12適用于將MicrosoftWord文件的內(nèi)容翻譯為內(nèi)部表示格式。具體來講,所述處理過程50包括一個初始化步驟52,其中所述處理過程50初始化數(shù)據(jù)結(jié)構(gòu)、存儲空間及其他將由所述處理過程50在翻譯所述源文件11期間使用的資源。在步驟52之后,所述處理過程50進行一系列步驟54、58和60,其中所述源文件11被分析并被分成子節(jié)。在圖3中所述處理過程50中,步驟54、58和60在所述源文件11流入到所述文件代理模塊12中時首先將其細分為小節(jié),然后將所述小節(jié)細分為段落,然后將段落細分為組成所述段落的單獨的字符。可以在一張分塊表格(piecetable)內(nèi)識別出所述源文件11內(nèi)識別出的所述小節(jié)、段落和字符,該表格包含在所述源文件11內(nèi)指向不同子節(jié)的指針。本領域中普通技術(shù)人員可以理解的是,在圖3中描述的該分塊表格表示由MSWord采用的一構(gòu)造,用于提供指向文件的不同的、所識別的子節(jié)的指針??梢赃M一步理解的是,分塊表格或者類似結(jié)構(gòu)的分塊表格的使用是可選的,而且取決于使用的應用程序,包括取決于被處理的文件的類型。當在步驟60中所述處理過程50開始識別出現(xiàn)在一特定段落內(nèi)的不同的字符時,該處理60可以進行到步驟62,其中一個樣式被施加于在步驟60中識別出的字符或一組字符。一個樣式的施加被理解為將所述識別出的字符與表示樣式相關聯(lián),該表示樣式與那些字符一起被使用。所述表示樣式可以包括與所述字符相關聯(lián)的性質(zhì),包括字體類型、字體大小,無論所述字符是被加粗、變斜或是采用其他樣式。另外,在步驟62中,所述處理可以確定該字符是否被旋轉(zhuǎn),或者是否沿一曲線軌跡或者其他形狀放置。另外,在步驟62中,與字符在其中的段落相關聯(lián)的樣式也可以被識別出并與這些字符相關聯(lián)。這樣的性質(zhì)可以包括與段落相關聯(lián)的行距、與該段落相關聯(lián)的頁邊距、字符之間的間隔及其他此類性質(zhì)。在步驟62之后,該處理過程50進行到步驟70,其中該內(nèi)部表示被建立。說明文件結(jié)構(gòu)的對象在步驟64中被作為內(nèi)部表示內(nèi)的一個對象創(chuàng)建,該對象的關聯(lián)樣式連同其包含的字符串在步驟68在內(nèi)部表示內(nèi)被獨立地創(chuàng)建。將在之后更詳細解釋的圖6、7和8,這些圖描述了由該處理過程50創(chuàng)建的文件結(jié)構(gòu),其中一個文件的結(jié)構(gòu)由一組文件對象記錄,而與這些文件對象相關聯(lián)的數(shù)據(jù)被保存在一個單獨的數(shù)據(jù)結(jié)構(gòu)中。在步驟70之后,處理過程50進行到判定塊72,其中該處理過程50確定與上次已處理字符相關聯(lián)的段落是否完成。如果該段落沒有完成,該處理過程50返回到步驟60,讀取該段落的下一字符?;蛘?,如果該段落是完成的,該處理過程50進行到判定塊74,在其中處理過程50確定該節(jié)是否完成。如果該節(jié)是完成的,該處理過程50返回到步驟58,讀取該表格的下一段落?;蛘撸绻摴?jié)是完成的,該處理過程50進行到步驟54,其中如果存在下一節(jié)的話就從所述分塊表格讀取下一節(jié),并且處理繼續(xù)。一旦所述文件已經(jīng)被處理完,系統(tǒng)8可以傳輸、存儲、輸出或者相反為后來的使用存貯所述解釋后的文件。所述系統(tǒng)可以用一個與所述內(nèi)部表示兼容的格式存貯所述解釋后的文件,并且可選用其他格式以及包括與所述源文件11的文件格式兼容的格式(可以采用沒有示出的“輸出文件代理模塊”,能夠接收內(nèi)部表示數(shù)據(jù)和創(chuàng)建源文件數(shù)據(jù))存貯,或者采用二進制格式,文本文件描述結(jié)構(gòu),標記文本(marked-uptext),或者用任何其他適當?shù)母袷酱尜A;而且可以采用一通用的文本編碼模型,包括unicode(統(tǒng)一代碼)、shiftmapping(移位映射)、big-5(繁體代碼)以及亮度/色度模型。從上述可以看出,所述內(nèi)部表示14的格式將如由所述對象類型與它們的參數(shù)說明的所述文件的″結(jié)構(gòu)″(或者″布局″)與各種對象的″內(nèi)容″分離;例如一文本對象的字符串(內(nèi)容)與所述對象的空間參數(shù)分離;一圖形對象的圖像數(shù)據(jù)(內(nèi)容)與它的空間參數(shù)分離。這允許以一種壓縮的方式定義文件結(jié)構(gòu),并且為遠端存儲并只有當需要時才由系統(tǒng)取出的內(nèi)容數(shù)據(jù)提供了選項。所述內(nèi)部表示14用″高級″描述來說明所述文件和它的構(gòu)成對象。如上參照圖3所述的文件代理模塊12,能夠處理由MSWord字處理應用軟件創(chuàng)建的一數(shù)據(jù)文件,并將該數(shù)據(jù)文件翻譯為一個內(nèi)部表示,該內(nèi)部表示由一組從所述庫16中選擇出來的對象類型形成,表示所述處理文件的內(nèi)容。因此,所述文件代理模塊12分析所述Word文件并將該文件的結(jié)構(gòu)和內(nèi)容翻譯為一個內(nèi)部表示為所述計算機處理8所知的內(nèi)部表示。在圖4中描述了可以由所述文件代理模塊12處理的一種Word文件的一個例子。具體來講,圖4描述了由MSWord應用程序創(chuàng)建的Word文件32。所述文件32包括一個信息頁面,其中一個頁面包括兩列文本34和一個圖表36。圖4進一步描述了這些文本列34和圖表36是以這樣一種方法位于頁面38上一列文本從頁38的頂端一直排到頁面38的底部,第二列文本從頁面的中部附近一直排到到頁面底部,而圖表36被置于第二列文本34上方。如上參照圖3所述,所述文件代理模塊12開始通過確定所述文件32包括一個頁面和包含若干不同的對象來處理所述文件32。對于由所述文件代理模塊12發(fā)現(xiàn)的一個頁面,該文件代理模塊12識別所述頁面的樣式,例如可能是一個肖像畫格式的8.5×11頁面的頁面樣式。由該文件代理模塊12識別出的頁面樣式被嵌入到該內(nèi)部表示中,以供以后由解析程序18在將文本格式化和使文本流進由處理過程8創(chuàng)建的文件時使用。對于圖4中所描述的文件32僅僅給出一個頁面。然而,很清楚的是,文件代理模塊12可以處理包括若干頁面的Word文件。在這種情況下,文件代理模塊12將分別通過創(chuàng)建一個頁面然后用在庫中發(fā)現(xiàn)的類型的對象填充它來處理每個頁面。因此頁面樣式信息可以包括一個文件包含若干頁面以及這些頁面具有一特定大小。其它的頁面樣式信息可以由該文件代理模塊12識別出,而識別出的頁面樣式信息可以根據(jù)該應用程序變化。從而,可以由一個能夠處理MicrosoftExcel文件或者一實時介質(zhì)數(shù)據(jù)流的文件代理模塊識別出不同的頁面樣式信息。進一步參照圖4描述,一旦該文件代理模塊12已經(jīng)識別出該頁面樣式,該文件代理模塊12可以開始將該文件32分解為若干個對象,這些對象可以被映射到為該系統(tǒng)所知的、并且一般保存在庫16中的文件對象。例如,該文件代理模塊12可以處理該文件32,以發(fā)現(xiàn)文本對象、位圖對象和矢量圖形對象??梢赃x擇提供其他類型的對象類型,包括視頻類型、動畫類型、按鈕類型和腳本類型。在該實際應用中,該文件代理模塊12將識別出一個文本對象34,其相關的樣式具有兩列。在該文本對象34內(nèi)出現(xiàn)的文本段落可以被分析,來識別每個相應的段落中的每個字符。處理過程50可以將樣式性質(zhì)施加于每個識別出的字符串,而在文件32內(nèi)識別出的每個字符串可以被映射到該庫16內(nèi)列舉類型的文本對象。每個字符串和施加的樣式可以被理解為由文件代理模塊12識別出的對象,如已經(jīng)在文件32內(nèi)被發(fā)現(xiàn),并且已經(jīng)被譯為一個文件對象,在該情況下,該文件對象是庫16內(nèi)列舉類型的一文本對象。該內(nèi)部表示對象可以從文件代理模塊12流進內(nèi)部表示14。該文件代理模塊12可以繼續(xù)將在文件32內(nèi)出現(xiàn)的對象翻譯成為系統(tǒng)10所知的文件對象,直到每個對象都已經(jīng)被翻譯。這些對象類型可能適合于該應用程序,并且可能包括適用于翻譯源數(shù)據(jù)的對象類型,該源數(shù)據(jù)表示數(shù)字文件、音頻/視頻表示、音樂文件、交互腳本、用戶界面文件和圖像文件、以及任何其他文件類型。現(xiàn)在來看圖5,能夠看出圖5中描述的處理過程80允許將源文件11的內(nèi)部表示中出現(xiàn)的相似對象進行壓縮,以便減少內(nèi)部表示的尺寸。舉例來說。圖5描述了一處理過程80,其中步驟82具有一基本庫對象A,在步驟84中通過將基本對象插入到將成為源文件11的內(nèi)部表示的文件中來處理該基本庫對象A。在步驟88中,另一個由文件代理模塊12提供的對象B被傳送給該內(nèi)部表示文件處理14。然后該處理過程80進行步驟序列92-98,其中將對象A的特征與對象B的特征進行比較,以確定這兩個對象是否具有相同的特征。舉例來說,如果對象A和對象B表示兩個字符例如字母P和字母N,如果字符P和N色彩相同、字體相同、尺寸相同并且樣式(例如粗體或者斜體)也相同,那么處理過程80在步驟94中將這兩個對象結(jié)合在一起,并處于存貯在內(nèi)部表示內(nèi)的一個對象分類中。如果這些特征不匹配,那么處理過程80將他們作為兩個單獨的對象添加到內(nèi)部表示中。圖5描述了一個處理過程80,其中該內(nèi)部表示文件14將這些對象壓縮為一個物理上鄰近對象的相似性的函數(shù)。本領域中普通技術(shù)人員可理解的是,這僅僅是用于壓縮對象的一種處理,可以采用其他方法。例如,在一可選實際應用中,該壓縮過程可以包括用于壓縮視覺上鄰近的對象的處理。圖6、7和8描述了已經(jīng)由圖1和2中描述的系統(tǒng)處理過的文件的內(nèi)部表示之結(jié)構(gòu)。該文件的內(nèi)部表示可以作為存儲在磁心存儲器中的計算機文件或者數(shù)據(jù)來嵌入。然而,對于本領域中普通技術(shù)人員顯而易見的是,所選的用于記錄或者傳輸該內(nèi)部表示的數(shù)據(jù)結(jié)構(gòu)可以根據(jù)應用而變化,而且任何適當?shù)臄?shù)據(jù)結(jié)構(gòu)都可以與此處所述的系統(tǒng)和方法結(jié)合使用,而不會脫離本發(fā)明的范圍。在下文將更詳細的說明被處理文件的內(nèi)部表示的結(jié)構(gòu)將文件的結(jié)構(gòu)與文件的內(nèi)容分離開。具體來講,文件的結(jié)構(gòu)由數(shù)據(jù)結(jié)構(gòu)記錄,該數(shù)據(jù)結(jié)構(gòu)指出組成該文件的不同文件對象以及這些文件對象相互之間排列的方式。在圖6中示出結(jié)構(gòu)與內(nèi)容的分離,其中數(shù)據(jù)結(jié)構(gòu)110記錄被處理的文件的結(jié)構(gòu),并以一種與該文件相關聯(lián)的內(nèi)容無關的數(shù)據(jù)格式存儲該結(jié)構(gòu)。具體來講,該數(shù)據(jù)結(jié)構(gòu)110包括一資源表112和一個文件結(jié)構(gòu)114。該資源表112提供一個用于構(gòu)造該文件的內(nèi)部表示的資源列表。例如該資源表112可以包括一個或多個出現(xiàn)在文件內(nèi)部的公共結(jié)構(gòu)之表格,例如字體、鏈接和色彩列表??梢栽谠撡Y源表112內(nèi)用編號引用這些公共結(jié)構(gòu)。資源表112的資源涉及在文件結(jié)構(gòu)114內(nèi)安置的文件對象。如圖6所示,文件結(jié)構(gòu)114包括若干由嵌套括號組表示的存儲包(container)118。在存儲包118內(nèi)是若干文件對象120。如圖6所示,存儲包118表示在正在被處理的文件內(nèi)出現(xiàn)的文件對象的集合。圖6進一步示出,存儲包118還能夠擁有子存儲包。例如,文件結(jié)構(gòu)114包括一個由外面一組標為1的括號識別出的頂級存儲包,還具有三個嵌套存儲包2、3和4。另外,存儲包4在存儲包1和存儲包3內(nèi)被兩次嵌套。每個存儲包118表示在文件內(nèi)的特征,其中這些特征可以是單獨的文件對象(例如所述文件對象120)的一個集合。這樣舉例來說,一個文件例如圖4中描述的文件32,可以包括一個表示該字符串的存儲包,其中該字符串包括在列34內(nèi)出現(xiàn)的文本。舉例來說,在該字符串存儲包內(nèi)出現(xiàn)的不同文件對象120可以由該字符串內(nèi)出現(xiàn)的不同段落表示。該字符串存儲包具有一個與之相關聯(lián)的樣式。舉例來說,圖4中描述的字符串可以包括表示該字符字體類型、字體大小、樣式(例如粗體或者斜體字樣式)的樣式信息,以及表示該列的尺寸包括寬度和長度的樣式信息,該列中存在該字符串或者該字符串的一部分。這些樣式信息可以在以后被解析模塊18使用,用來對上下文專用視窗20內(nèi)的文本重新格式化和使之回流。存儲包的另一個例子可以是一個表格,舉例來說可以出現(xiàn)在文件32的一列34內(nèi)。該表格可以是一個具有對象的存儲包。存儲包的其他類型和運用將根據(jù)涉及的應用而變化,而本發(fā)明的系統(tǒng)和方法不局限于任何特定的對象類型組或者存儲包。因此,當文件代理模塊12翻譯源文件11時,將遇到屬于已知對象類型的對象,而該文件代理模塊12將請求庫16創(chuàng)建一個適當對象類型的對象。該文件代理模塊12于是將所創(chuàng)建的文件對象放置到文件結(jié)構(gòu)114內(nèi)的適當位置,以保持源文件11的整體結(jié)構(gòu)。舉例來說,當文件代理模塊12遇到源文件11中的圖像36時,文件代理模塊12將圖像36(例如可能是一個JPEG圖像)識別為一個位圖類型的對象,而可選子類型為JPEG。如圖3中步驟64和68所示,這個文件代理模塊12可以創(chuàng)建適當?shù)奈募ο?20并且可以將所創(chuàng)建的文件對象120放置到結(jié)構(gòu)114中。另外,用于JPEG圖像文件對象120的數(shù)據(jù),或者在另一個例子中,用于字符的數(shù)據(jù)以及一字符串的相關樣式,可以被存貯在圖8中描述的數(shù)據(jù)結(jié)構(gòu)150內(nèi)。當源文件11正在被處理時,文件代理模塊12可以識別其他的存儲包,其中這些其他的存儲包可以表示在一個已存在的存儲包(例如字符串)內(nèi)出現(xiàn)的子特征。例如,這些子特征可以包括到參考資料的鏈接,或者是到出現(xiàn)在文件內(nèi)、并且包含單獨的文件對象120的集合的剪貼的直觀區(qū)域或者特征的鏈接。該文件代理模塊可以將這些文件對象120放置在一個單獨的存儲包內(nèi),而該存儲包將被嵌套到已經(jīng)存在的存儲包中。圖7A中以一樹狀結(jié)構(gòu)130示出這些文件對象120以及存儲包118的布局,其中單獨的存儲包1、2、3和4分別被示為存儲包對象132、134、138和140。存儲包118和文件對象120被以樹狀結(jié)構(gòu)布置,該樹狀結(jié)構(gòu)示出文件結(jié)構(gòu)的嵌套的存儲包結(jié)構(gòu)以及在該存儲包118內(nèi)存在的不同文件對象120。圖7A的樹狀結(jié)構(gòu)還圖示出該結(jié)構(gòu)114記錄和保持了源文件11的結(jié)構(gòu),以文件對象120的分級結(jié)構(gòu)顯示了源文件,其中該文件對象120包括樣式信息,例如在其中出現(xiàn)一字符串的列的尺寸,或者是瞬態(tài)信息,例如用于流式內(nèi)容的幀頻。因此,通過一系列參數(shù)化的組件說明了每個文件的圖形結(jié)構(gòu)。在下面的表1中給出了一個例子。表1可以看出,表1給出了可以用來說明一個文件的圖形結(jié)構(gòu)的參數(shù)的一個例子。表1給出例如對象類型的參數(shù)的例子,在該情況下是一個位圖對象類型。提供了邊界框參數(shù),并給出該文件對象在源文件11中的位置。表1進一步提供了采用的填充以及一個表示該對象的透明度的阿爾法因子。形狀參數(shù)提供了一個關于對象形狀的句柄(handle),在該情況下可以是一條定義對象輪廓的路徑,包括不規(guī)則形狀的對象。表1還給出一個時間參數(shù),它表示該對象的瞬態(tài)變化。在這個例子中,該圖像是穩(wěn)定的及沒有隨時間而變化。然而,如果該圖像對象給出流式媒體,那么該參數(shù)可以包含一個指示該對象變化的速率的瞬態(tài)特性,例如該內(nèi)容的可與期望幀頻相比較的速率。因此,該構(gòu)造單元都是具有可流動數(shù)據(jù)內(nèi)容的存儲包,這些可流動數(shù)據(jù)單獨保持并通過存儲包的一個句柄引用。以這種方法,可以根據(jù)該文件結(jié)構(gòu)遠端地保持任何或者所有的數(shù)據(jù)內(nèi)容。這允許文件以可以本地保持和遠端保持的數(shù)據(jù)內(nèi)容的混合的方式呈現(xiàn)文件。另外,該數(shù)據(jù)結(jié)構(gòu)允許對源文件的內(nèi)部表示的快速漸進的呈現(xiàn),可以首先呈現(xiàn)較寬泛和較高層的對象,而細微特征可以在隨后順序中被呈現(xiàn)。因此,單獨的結(jié)構(gòu)和數(shù)據(jù)允許在流式數(shù)據(jù)“填充”內(nèi)容的時候呈現(xiàn)視覺文件。另外,內(nèi)容和結(jié)構(gòu)的分離允許容易地編輯或者改變文件的內(nèi)容。因為文件結(jié)構(gòu)與內(nèi)容無關,可以將不同的內(nèi)容代入該文件結(jié)構(gòu)。這可以通過存儲包原理在存儲包上完成或者對整個文件進行。文件的結(jié)構(gòu)可以被傳送而獨立于內(nèi)容,而在之后提供內(nèi)容,或者是該結(jié)構(gòu)被傳送所至的平臺上進行呈現(xiàn)。此外,圖7A表明源文件11的結(jié)構(gòu)可以被表示為一個樹狀結(jié)構(gòu)130。在一實際應用中,該樹狀結(jié)構(gòu)可以被修改和編輯,以改變源文件11的表示。例如,該樹狀結(jié)構(gòu)可以被修改以便向該樹130增加另外的結(jié)構(gòu)和內(nèi)容。這在圖7B中進行了描述,圖7B示出圖7A在一高層存儲包下復制和呈現(xiàn)的原始樹狀結(jié)構(gòu)。這樣,圖7B示出可以通過處理由文件代理模塊12產(chǎn)生的樹狀結(jié)構(gòu)130創(chuàng)建一個新的文件結(jié)構(gòu),從而創(chuàng)建一個新的表示。這就允許對一個文件內(nèi)的對象的視覺位置進行改變,而不同的對象120的相對位置可以保持相同。通過調(diào)整樹狀結(jié)構(gòu)130,此處所述的系統(tǒng)可以編輯和修改內(nèi)容。例如,在那些其中樹狀結(jié)構(gòu)130中的內(nèi)容表示視覺內(nèi)容的應用中,此處所述的系統(tǒng)可以編輯該樹狀結(jié)構(gòu)以便復制該文件的圖像并且并排地呈現(xiàn)文件的圖像。替換的方案是,該樹狀結(jié)構(gòu)130可以被編輯并被補充,以便增加另外的視覺信息,例如通過增加一個新文件或者文件的一部分的圖像。此外,通過控制樹狀結(jié)構(gòu)改變的速率,此處所述的系統(tǒng)可以創(chuàng)建一個文件逐漸改變的錯覺,例如滑過一個例如顯示設備26的顯示器,或者逐漸改變?yōu)橐粋€新的文件。還可以實現(xiàn)其他效果,例如縮略圖的創(chuàng)建及其他類似結(jié)果,本領域中的普通技術(shù)人員通過對此處所述的系統(tǒng)和方法做修改,而這樣修改后的系統(tǒng)和方法將屬于本發(fā)明的范圍。該源文件11的數(shù)據(jù)獨立于結(jié)構(gòu)114存貯。為此,每個文件對象120包括一個指向與對象相關聯(lián)的數(shù)據(jù)的指針,而這個信息可以被安排在一個間接尋址列表內(nèi),例如圖8中描述的間接尋址列表。如圖8所示,在這個實際應用中,每個文件對象120被編號并創(chuàng)建了一個間接尋址列表152,其中每個文件對象編號154與一個偏移量158相關聯(lián)。例如,由附圖標記160標志出的文件對象編號1可以與由附圖標記162標志的偏移量700相關聯(lián)。這樣,該間接尋址列表將對象編號1與偏移量700相關聯(lián)。該偏移量700可以表示磁心存儲器中的一個位置,或者一個文件偏移量,其中與對象1相關聯(lián)的數(shù)據(jù)可以駐留。如在圖8中進一步示出的,可以存在一數(shù)據(jù)結(jié)構(gòu)150,其中可以存貯表示與一相應的文件對象120相關聯(lián)的內(nèi)容的數(shù)據(jù)。因此舉例來說,位于跳轉(zhuǎn)位置700的所述對象1,可以包括表示在圖6中描述的存儲包1的字符串中存在的字符的Unicode字符。類似地,在圖8中由附圖標記172描述的對象2數(shù)據(jù),與由附圖標記170識別的磁心存儲器位置810相關聯(lián),可以表示JPEG位圖,該位圖與在圖6的文件結(jié)構(gòu)內(nèi)引用的位映象文件對象120相關聯(lián)。本領域中普通技術(shù)人員應注意的是,因為數(shù)據(jù)與結(jié)構(gòu)獨立,一源文件的內(nèi)容被保存在一集中式儲存庫(centralizedrepository)中。因而,此處所述的系統(tǒng)允許對不同類型的數(shù)據(jù)對象壓縮。這樣的處理在有限資源系統(tǒng)中提供更大的存儲靈活性。返回到圖2,很清楚的是,一旦用于壓縮一個內(nèi)部表示文件的內(nèi)容的處理完成了對不同的對象的壓縮,這些對象被傳遞給解析模塊18。該解析模塊18對在內(nèi)部表示的結(jié)構(gòu)部分中識別的對象進行解析,并參照與這一對象相關聯(lián)的數(shù)據(jù)內(nèi)容,再次將位置和樣式信息應用到每個對象。呈現(xiàn)組件19產(chǎn)生一個由內(nèi)部表示14表示的文件的上下文特定表示,也就是″視圖″20。所要求的視圖可以是所有這些文件、一個完整文件或者一個或一些文件的一部分。該呈現(xiàn)組件19接收視圖控制輸入40,該視圖控制輸入40定義將要被產(chǎn)生的特定文件視圖的所視上下文以及任何有關瞬態(tài)參數(shù)。舉例來說,可以要求該系統(tǒng)10產(chǎn)生一個文件的一部分的圖象縮放視圖,然后變?yōu)槿罢归_或者滾動該圖象縮放視圖以顯示該文件的鄰近部分。該視圖控制輸入40被該呈現(xiàn)組件19解釋,以確定特定的視圖要求內(nèi)部表示的哪一部分,以及該視圖怎樣顯示、何時顯示和顯示多長時間。該上下文特定的表示/視圖20是用基本形狀和參數(shù)表達的。該呈現(xiàn)組件19還可以在產(chǎn)生源文件11之所要求的視圖20時,對內(nèi)部表示的相關部分執(zhí)行另外的預處理功能。該視圖表示20被輸入給一形狀處理器22,用于處理以產(chǎn)生一個適當格式的輸出,來驅(qū)動一個輸出設備26,例如顯示設備或者打印機。該呈現(xiàn)組件19的預處理功能可以包括色彩校正、分辯率調(diào)整/增強和防疊處理(anti-aliasing)。分辯率增強可以包括圖象縮放功能,當由目的輸出設備顯示或者再現(xiàn)對象的內(nèi)容時保持其清晰度。分辨率調(diào)整可以上下文相關;例如當該文件視圖是靜態(tài)的時候,在該顯示文件視圖正在展開或者滾動和增加期間,特定的對象的顯示分辯率可以被減少。可選的是,在解析模塊18和內(nèi)部表示14之間可以有一條反饋路徑42,例如為了觸發(fā)內(nèi)部表示14的內(nèi)容的更新,比如在由內(nèi)部表示所表示的源文件11包括多幀動畫的情況。該呈現(xiàn)組件19的輸出以基本對象表示文件。對于每一文件對象,該呈現(xiàn)組件19的表示至少以一物理的、矩形邊界框定義該對象,而該對象的實際輪廓路徑由該邊界框、對象的數(shù)據(jù)內(nèi)容和它的透明度界定。該形狀處理器22解釋該基本對象并將它轉(zhuǎn)換為適合于目標輸出設備26的輸出幀格式;例如對于打印機的點映射,對于繪圖儀的向量指令組或者對于顯示設備的位圖。一個對形狀處理器22的輸出控制輸入44給該形狀處理器22提供信息,以便產(chǎn)生適用于特別的輸出設備26的輸出。該形狀處理器22最好處理由視圖表示20用″形狀″(即對象的輪廓形狀)、″填充″(對象的數(shù)據(jù)內(nèi)容)以及″阿爾法″(對象的透明度)來定義的對象,執(zhí)行適合于所要求的視圖和輸出設備的圖象縮放和剪貼(一般利用通過掃描轉(zhuǎn)換或類似手段得到的像素,用于大多數(shù)種類的顯示設備或者打印機)。該形狀處理器22可選地包括一邊緣緩存器,它利用掃描轉(zhuǎn)換的像素定義對象的形狀,并且最好是對輪廓形狀應用防疊處理??梢杂靡环N以輸出設備26的特征確定的方式,通過對對象邊界施加灰度級梯度(grey-scaleramp)執(zhí)行防疊處理。該方法啟用儲存有效的形狀剪貼以及形狀交叉處理,并且也是存儲有效的和處理器有效的。可以采用查找表或者其他技術(shù)來定義多頻聲響應曲線,提供非線性的呈現(xiàn)控制。由形狀處理器22處理的單獨的基本對象被組合成合成輸出幀。在題為ShapeProcessor(形狀處理器)、與此同一日期申請的專利申請中,更詳細的示出了適合與此處所述的系統(tǒng)一同使用的一種形狀處理器的設計方案,該申請的內(nèi)容合并作為參考。然而,可以采用任何適當?shù)男螤钐幚砥飨到y(tǒng)或者處理過程,而不會脫離本發(fā)明的范圍。如上所述,圖1中描述的處理過程8可以被實現(xiàn)為一個軟件組件,在一數(shù)據(jù)處理系統(tǒng)上運行,所述數(shù)據(jù)處理系統(tǒng)比如是手持式計算機、移動電話、機頂盒、傳真機、復印機或者其他辦公設備、嵌入式計算機系統(tǒng)、Windows或者UNIX工作站或者任何其他能夠完全或者部分地支持如上所述的文件處理系統(tǒng)的計算機/處理平臺。在這些實施例中,所述系統(tǒng)可以用C語言計算機程序或者以任何高級語言(包括C++、Fortran、Java或者Basic)編寫的計算機程序?qū)崿F(xiàn)。此外,在采用微控制器或者DSP(數(shù)字信號處理器)的實施例中,所述系統(tǒng)可以使用以微代碼編寫的計算機程序或者是以高級語言編寫并且被編譯為可在所采用平臺上執(zhí)行的微代碼的計算機程序?qū)崿F(xiàn)。此類系統(tǒng)的開發(fā)對于本領域中普通技術(shù)人員是已知的,而且此類技術(shù)在IntelStrongARMprocessorsSA-1110MicroprocessorAdvancedDeveloper’sManual進行了闡述。此外,用于高級編程的一般技術(shù)是已知的,舉例來說,在StephenG.Kochan的ProgramminginC(HaydenPublishing,1983)中就進行了闡述。應注意的是,數(shù)字信號處理器特別適合于實現(xiàn)信號處理功能,包括諸如通過調(diào)整對比度、邊緣清晰度和亮度進行圖像增強的預處理功能。用于數(shù)字信號處理器和微控制器系統(tǒng)的代碼開發(fā)按照在本
技術(shù)領域:
中公知的原理。因此,盡管圖1和2用圖形將該計算機處理過程8描述為包括若干功能塊單元,對于本領域中普通技術(shù)人員顯而易見的是,這些單元可以實現(xiàn)為能夠在數(shù)據(jù)處理平臺上運行的計算機程序或者部分計算機程序,從而將該數(shù)據(jù)處理平臺配置為根據(jù)本發(fā)明的系統(tǒng)。此外,盡管圖1以一個文件處理過程8和顯示設備26的集成化裝置描述該系統(tǒng)10,對于本領域中普通技術(shù)人員顯而易見的是這僅僅是一實施例,此處所述的系統(tǒng)可以通過其他體系結(jié)構(gòu)和布局實現(xiàn),包括將處理過程8的文件處理功能與由顯示器26執(zhí)行的文件顯示操作分離的系統(tǒng)體系結(jié)構(gòu)。此外,很清楚的是,本發(fā)明的系統(tǒng)不局限于包括顯示器或者輸出設備的那些系統(tǒng),而是本發(fā)明的系統(tǒng)將包含處理一個或多個數(shù)字文件、以便創(chuàng)建可以在一輸出設備上呈現(xiàn)的輸出的處理系統(tǒng)。然而,該輸出可以被保存在一個數(shù)據(jù)文件中,用于隨后在顯示設備上表示,用于長期存儲、經(jīng)由網(wǎng)絡傳送或者其它不同于直接顯示的目的。因此,對于本領域中普通技術(shù)人員顯而易見的是,此處所述的系統(tǒng)和方法可以支持許多不同的文件和內(nèi)容處理應用程序,而且用于特定應用程序的系統(tǒng)或者處理的結(jié)構(gòu)將根據(jù)該應用程序及設計者的選擇而變化。根據(jù)以上所述,可以理解的是,本發(fā)明的系統(tǒng)可以是″硬布線的″;例如在ROM中實現(xiàn)和/或集成到專用集成電路(ASIC)或者其他單片系統(tǒng)里,或者可以實現(xiàn)為固件(可編程只讀存儲器,例如可擦除可編程只讀存儲器),或者被實現(xiàn)為軟件,被本地或者遠端存貯并在一特定設備要求時被取出和執(zhí)行。這樣的改善和修改可以被合并而不會脫離本發(fā)明的范圍。本領域中的普通技術(shù)人員僅僅使用常規(guī)實驗就會知道或者能夠確定,有許多等效于此處所述的實施例和實際應用的方案。舉例來說,此處所述的系統(tǒng)和方法可以是用于處理源文件11的獨立系統(tǒng),但是可以選擇性的是,這些系統(tǒng)可以許多不同的方式被合并到各種類型的數(shù)據(jù)處理系統(tǒng)和設備中,以及合并到外圍設備里。在一通用數(shù)據(jù)處理系統(tǒng)(″主機系統(tǒng)″)中,本發(fā)明的系統(tǒng)可以與所述主機系統(tǒng)的操作系統(tǒng)和應用程序并列合并,或者可以被完全地或者部分地合并到所述主機操作系統(tǒng)里。舉例來說,此處所述的系統(tǒng)能夠在具有LCD顯示器的便攜式數(shù)據(jù)處理裝置上快速顯示各種類型的數(shù)據(jù)文件,而無需要求使用瀏覽器或者應用程序。采用本系統(tǒng)的便攜式數(shù)據(jù)處理裝置的例子包括″掌上型″計算機、便攜式數(shù)字助理(PDA,包括片型PDA,其中主要的用戶界面包括圖形顯示,用戶通過它直接依靠一指示筆設備進行交互)、可訪問因特網(wǎng)的移動電話及其他通訊裝置。為了便攜性,這類數(shù)據(jù)處理裝置要求小型、低功率的處理器。一般,這些設備采用在ASIC(專用集成電路)中設計的高級RISC型核心處理器,以便使該電子器件封裝是小型的和集成的。這類設備還具有有限的隨機存取存儲器,并且一般沒有非易失性的數(shù)據(jù)存儲器(例如硬盤)。傳統(tǒng)的操作系統(tǒng)模式,例如在標準臺式計算系統(tǒng)(PC)采用的操作系統(tǒng)模式,要求大功率的中央處理器和大容量存儲器,用于處理數(shù)字文件并產(chǎn)生有效輸出,是完全不適于這類數(shù)據(jù)處理裝置的。具體來講,傳統(tǒng)的系統(tǒng)不提供以一集成的方式對多文件格式的處理。相形之下,此處所述的系統(tǒng)對所有文件格式采用公共的處理與傳遞途徑,從而提供一個高度集成的文件處理系統(tǒng),它在功率消耗和系統(tǒng)資源的利用方面是極其高效的。本發(fā)明的系統(tǒng)可以被集成在便攜式數(shù)據(jù)處理裝置的BIOS級,能夠用比傳統(tǒng)系統(tǒng)模式低得多的系統(tǒng)開銷進行文件處理與輸出。另一方式是,這些系統(tǒng)可以被實現(xiàn)在僅僅高于傳輸協(xié)議棧(transportprotocolstack)的最低系統(tǒng)級。舉例來說,所述系統(tǒng)可以被合并到一網(wǎng)絡設備(卡)或者系統(tǒng)中,以提供網(wǎng)絡業(yè)務量的嵌入處理(例如在TCP/IP系統(tǒng)中的分組級工作)。此處所述系統(tǒng)可以被配置為用一預定組數(shù)據(jù)文件格式和特定的輸出設備運行;例如所述設備的直觀顯示裝置和/或至少一種打印機。此處所述的系統(tǒng)還可以被合并到低成本數(shù)據(jù)處理終端中,例如增強的電話和“薄的”網(wǎng)絡客戶終端(例如具有有限局部處理和存儲資源的網(wǎng)路終端),以及可交互/可訪問因特網(wǎng)的有線電視系統(tǒng)使用的“機頂盒”。所述系統(tǒng)還可以被合并到外圍設備中,例如硬拷貝設備(打印機和繪圖儀)、顯示設備(例如數(shù)字投影儀)、網(wǎng)絡設備、輸入裝置(攝像機、掃描儀等等)以及多功能外圍設備(MFP)。當合并到打印機中時,所述系統(tǒng)使該打印機能夠接收來自主機數(shù)據(jù)處理系統(tǒng)的原始數(shù)據(jù)文件,并準確地再現(xiàn)所述原始數(shù)據(jù)文件的內(nèi)容,而無需由所述主機系統(tǒng)提供特別的應用程序或者驅(qū)動程序。這避免或者減少了對配置計算機系統(tǒng)以驅(qū)動特定類型打印機的需要。本系統(tǒng)直接地產(chǎn)生源文件的點映射圖像,適用于由打印機輸出(無論本系統(tǒng)是否被合并到打印機本身還是合并到主機系統(tǒng)中都可以)。類似的設想適用于其他硬拷貝設備,例如繪圖儀。當合并到一顯示設備(例如一投影儀)中時,本系統(tǒng)使該設備能夠準確地顯示原始數(shù)據(jù)文件的內(nèi)容,而無需使用主機系統(tǒng)上的應用程序或者驅(qū)動程序,也無需主機系統(tǒng)和/或顯示設備的特定的配置。當這些類型的外圍設備裝備有本系統(tǒng)時,可以通過任何類型的數(shù)據(jù)通信網(wǎng)絡,接收與輸出來自任何源的數(shù)據(jù)文件。此外,此處所述的系統(tǒng)和方法可以被合并到汽車內(nèi)系統(tǒng)中以為駕駛員提供信息、或者娛樂系統(tǒng),有助于在車輛內(nèi)傳送信息或者是將信息分送給車輛以外進行通信的網(wǎng)絡。進一步來講,應該理解的是,此處所述的系統(tǒng)可以驅(qū)動具有多個輸出源的設備,以便僅僅對控制參數(shù)修改就能維持一致的顯示。例子包括但是不局限于合并有一個直觀顯示器和打印頭的一個STB或者汽車內(nèi)系統(tǒng),從而允許文件的查看和打印而無需源應用程序和驅(qū)動程序。根據(jù)以上所述,應該理解的是,本發(fā)明的系統(tǒng)可以是“硬布線的”;例如實現(xiàn)在ROM中和/或集成到專用集成電路ASIC或者其他單片系統(tǒng)里,或者可以被實現(xiàn)為固件(可編程只讀存儲器,例如可擦除可編程只讀存儲器ePROM),或者被實現(xiàn)為軟件,并被本地或者遠端存貯而在一特定設備要求時被取出和執(zhí)行。因此應該理解的是,本發(fā)明不限于此處公開的實施例,而是要根據(jù)權(quán)利要求書理解,依法解釋為相應的范圍。權(quán)利要求1.一種用于表示數(shù)字內(nèi)容的方法,包括接收表示所述數(shù)字內(nèi)容的數(shù)據(jù)源,處理所述數(shù)據(jù)源,以識別在所述源內(nèi)出現(xiàn)的對象,為每一對象創(chuàng)建一文件對象,所述文件對象表示所遇到的對象的內(nèi)部表示,而且所述文件對象將所述對象的結(jié)構(gòu)與所述對象的數(shù)據(jù)內(nèi)容分離,將所述文件對象編組到一文件結(jié)構(gòu)里,所述文件結(jié)構(gòu)表示所述數(shù)字內(nèi)容的結(jié)構(gòu),將所述對象的數(shù)據(jù)內(nèi)容編組到一數(shù)據(jù)內(nèi)容結(jié)構(gòu)里,以及提供一組指針,所述指針將所述文件結(jié)構(gòu)中的所述文件對象與所述數(shù)據(jù)內(nèi)容結(jié)構(gòu)中存貯的所述數(shù)據(jù)內(nèi)容相關聯(lián)。2.如權(quán)利要求1所述的方法,進一步包括創(chuàng)建一間接尋址列表,所述間接尋址列表存貯將所述文件對象與所述數(shù)據(jù)內(nèi)容相關聯(lián)的那組指針。3.如權(quán)利要求1或者2所述的方法,其中,接收數(shù)據(jù)源包括接收由一應用程序產(chǎn)生的數(shù)據(jù)流。4.如權(quán)利要求1或者2所述的方法,其中,接收數(shù)據(jù)源包括接收根據(jù)來自一應用程序的流式數(shù)據(jù)而產(chǎn)生的數(shù)據(jù)流。5.如權(quán)利要求1或者2所述的方法,其中,接收數(shù)據(jù)源包括接收來自一外圍設備的數(shù)據(jù)流。6.如權(quán)利要求1或者2所述的方法,其中,接收數(shù)據(jù)源包括接收來自若干個數(shù)據(jù)源的數(shù)據(jù)流。7.如權(quán)利要求6所述的方法,進一步包括將在第一數(shù)據(jù)源和第二數(shù)據(jù)源中發(fā)現(xiàn)的文件對象合并,以建立復合的文件結(jié)構(gòu)。8.如前面任一權(quán)利要求所述的方法,其中,將所述文件對象編組到一個表示所述數(shù)字內(nèi)容的所述結(jié)構(gòu)的文件結(jié)構(gòu)里,包括過濾所述文件對象以便選擇用于所述文件結(jié)構(gòu)的文件對象子組。9.如前面任一權(quán)利要求所述的方法,其中,將所述文件對象編組到一個表示所述數(shù)字內(nèi)容的所述結(jié)構(gòu)的文件結(jié)構(gòu)里,包括將所述文件對象編組到一個不同于所述數(shù)據(jù)源的結(jié)構(gòu)的配置里。10.如前面任一權(quán)利要求所述的方法,其中,將所述文件對象編組到一個表示所述數(shù)字內(nèi)容的所述結(jié)構(gòu)的文件結(jié)構(gòu)里,包括增加文件對象以便改變所述數(shù)字內(nèi)容的結(jié)構(gòu)。11.如前面任一權(quán)利要求所述的方法,其中,將所述對象的數(shù)據(jù)內(nèi)容編組到一數(shù)據(jù)內(nèi)容結(jié)構(gòu)里,包括過濾內(nèi)容以便選擇用于所述內(nèi)部表示的內(nèi)容。12.如權(quán)利要求1至10中任一權(quán)利要求所述的方法,其中,將所述對象的數(shù)據(jù)內(nèi)容編組到一數(shù)據(jù)內(nèi)容結(jié)構(gòu)里,包括增加內(nèi)容以便選擇用于所述內(nèi)部表示的內(nèi)容。13.如前面任一權(quán)利要求所述的方法,進一步包括處理所述指針以便重新安排所述數(shù)據(jù)內(nèi)容和所述文件對象之間的關聯(lián),借此來自一個源的數(shù)據(jù)內(nèi)容可以被來自另一個源的數(shù)據(jù)內(nèi)容代替。14.如前面任一權(quán)利要求所述的方法,進一步包括一個處理,用于通過組合具有類似屬性的文件對象來壓縮保存在內(nèi)部表示中的文件對象。15.如前面任一權(quán)利要求所述的方法,進一步包括建立一資源表,用于存貯在一數(shù)據(jù)源內(nèi)所識別的。16.如權(quán)利要求15所述的方法,其中,所述資源包括從由字體、色彩列表、樣式和鏈接組成的組中被選擇出來的資源。17.如前面任一權(quán)利要求所述的方法,包括一個數(shù)據(jù)傳送處理,其中所述數(shù)據(jù)內(nèi)容可以被獨立于所述文件結(jié)構(gòu)存貯或者傳送。18.如前面任一權(quán)利要求所述的方法,包括用于壓縮所述數(shù)據(jù)內(nèi)容的壓縮處理。19.如前面任一權(quán)利要求所述的方法,包括用于對所述數(shù)據(jù)內(nèi)容進行編碼的編碼處理。20.如前面任一權(quán)利要求所述的方法,包括用于壓縮所述文件結(jié)構(gòu)的壓縮處理。21.如前面任一權(quán)利要求所述的方法,包括用于對所述文件結(jié)構(gòu)進行編碼的編碼處理。22.如前面任一權(quán)利要求所述的方法,其中,文件對象可以包括表示內(nèi)容在一文件內(nèi)的位置的位置信息。23.如權(quán)利要求22所述的方法,其中,所述位置信息可以是相對的或者固定的位置信息。24.如前面任一權(quán)利要求所述的方法,其中,文件結(jié)構(gòu)定義位置信息,該位置信息表示一個對象相對于其他對象在一文件結(jié)構(gòu)中的位置。25.如前面任一權(quán)利要求所述的方法,其中,所述文件結(jié)構(gòu)包括文件對象,這些文件對象具有一組包括空間的、瞬態(tài)的和物理的已定義參數(shù)。26.如權(quán)利要求22至25中任一權(quán)利要求所述的方法,其中,獨立于所述內(nèi)容在一文件中的的結(jié)構(gòu)位置、使得在一內(nèi)部表示中的關于內(nèi)容的直觀位置被跟蹤。27.如前面任一權(quán)利要求所述的方法,其中,所述數(shù)字內(nèi)容包括從由文本、圖形、音頻、視頻、交互、腳本和音頻-視頻組成的組中被選擇出來的內(nèi)容。28.如前面任一權(quán)利要求所述的方法,進一步包括一個用于輸出數(shù)字內(nèi)容的處理。29.如權(quán)利要求28所述的方法,其中,所述用于輸出數(shù)字內(nèi)容的處理包括一個處理,用于以一個表示所述內(nèi)部表示的格式輸出數(shù)字內(nèi)容。30.如權(quán)利要求28或者29所述的方法,其中,所述用于輸出數(shù)字內(nèi)容的處理包括一個處理,用于以與一選定的已知文件格式兼容的格式輸出內(nèi)容。31.如權(quán)利要求29所述的方法,其中,表示所述內(nèi)部表示的格式可以是基于以下的組中選擇的結(jié)構(gòu),該組包括二進制數(shù)據(jù)結(jié)構(gòu)、文本描述、標記文本描述和亮度/色度色彩模式。32.如權(quán)利要求29所述的方法,其中,所述表示所述內(nèi)部表示的格式可以是基于包括從由Unicode、shift-mapping和big-5組成的組中選擇出來的編碼的通用文本編碼模型。33.一種計算機可讀媒體,其上存貯有一種用于表示數(shù)字內(nèi)容的方法的指令,包括接收表示所述數(shù)字內(nèi)容的一數(shù)據(jù)源,處理所述數(shù)據(jù)源以便識別在所述源內(nèi)出現(xiàn)的對象,為每一對象創(chuàng)建一文件對象,所述文件對象表示所遇到的對象的一內(nèi)部表示,而且所述文件對象將所述對象的結(jié)構(gòu)與所述對象的數(shù)據(jù)內(nèi)容分離,將所述文件對象編組到一文件結(jié)構(gòu)里,所述文件結(jié)構(gòu)表示所述數(shù)字內(nèi)容的結(jié)構(gòu),將所述對象的數(shù)據(jù)內(nèi)容編組到一數(shù)據(jù)內(nèi)容結(jié)構(gòu)里,以及提供一組指針,所述指針將所述文件結(jié)構(gòu)中的所述文件對象與所述數(shù)據(jù)內(nèi)容結(jié)構(gòu)中存貯的所述數(shù)據(jù)內(nèi)容相關聯(lián)。34.一種用于表示數(shù)字內(nèi)容的系統(tǒng),包括一輸入機構(gòu),用于接收表示所述數(shù)字內(nèi)容的一數(shù)據(jù)源,一文件代理模塊,用于處理所述數(shù)據(jù)源,以便識別在所述源內(nèi)出現(xiàn)的對象,并創(chuàng)建一文件對象,該文件對象表示所遇到對象的內(nèi)部表示,而且該文件對象將對象的結(jié)構(gòu)與對象的數(shù)據(jù)內(nèi)容分離,所述文件代理模塊還用于將所述文件對象編組到一文件結(jié)構(gòu)里,所述文件結(jié)構(gòu)表示所述數(shù)字內(nèi)容的結(jié)構(gòu),所述文件代理模塊還用于將所述對象的數(shù)據(jù)內(nèi)容編組到一數(shù)據(jù)內(nèi)容結(jié)構(gòu)里,以及提供一組指針,所述指針將所述文件結(jié)構(gòu)中的所述文件對象與所述數(shù)據(jù)內(nèi)容結(jié)構(gòu)中存貯的所述數(shù)據(jù)內(nèi)容相關聯(lián)。35.如權(quán)利要求34所述的系統(tǒng),包括若干文件代理模塊,每一文件代理模塊能夠理解一種相應類型的數(shù)據(jù)源的文件格式。36.如權(quán)利要求34所述的系統(tǒng),包括一文件代理模塊,它能夠理解若干個文件格式。37.如權(quán)利要求34至36中任一權(quán)利要求所述的系統(tǒng),進一步包括一組對象類型,所述對象類型表示存在于一數(shù)據(jù)源中的內(nèi)容之類型。38.如權(quán)利要求36所述的系統(tǒng),其中,所述文件代理模塊通過處理從由文件內(nèi)容、文件名、網(wǎng)絡類型、傳輸機制以及盤類型組成的組中被選擇出來的一個特性來識別文件格式。39.如權(quán)利要求37所述的方法,其中,所述對象類型組包括位圖對象類型、矢量圖形對象類型、視頻類型、動畫類型、按鈕類型、腳本以及文本對象類型。全文摘要顯示技術(shù),將應用程序的底層的功能性與圖形顯示處理分離,從而消除或減少應用程序的需要以控制設備顯示以及提供用于顯示的圖形用戶界面工具與控制。另外,這樣的系統(tǒng)減少或消除了在處理系統(tǒng)中當顯示由應用程序創(chuàng)建或為應用程序創(chuàng)建的數(shù)據(jù)(例如文件或視頻信息流)時、對提供該應用程序的需要。因而可以理解的是,在一方面中,這些系統(tǒng)和方法可以顯示內(nèi)容,包括文件、視頻流或其他的內(nèi)容,并且將提供用于查看所顯示文件的圖形用戶功能,例如圖像縮放、全景展開或其他此類功能,而無需在顯示該內(nèi)容的系統(tǒng)上提供底層的應用程序。這些系統(tǒng)和方法優(yōu)越于現(xiàn)有技術(shù)的有益效果包括允許在同樣的工作空間內(nèi)在同一顯示器上顯示來自不同應用程序的不同類型的內(nèi)容。文檔編號G06T15/00GK1422408SQ0180795公開日2003年6月4日申請日期2001年4月17日優(yōu)先權(quán)日2000年4月14日發(fā)明者馬希德·安瓦爾申請人:皮克塞(研究)有限公司