專利名稱:壓縮文檔中的圖像的制作方法
壓縮文檔中的圖像扭旦 冃足文檔的文件大小會隨著非文本元素的加入而快速增長。例如,圖像在文檔 中的廣泛使用會造成文檔的快速增長。這個問題由于圖像質量的提高,特別是 由于數碼相機的更高分辨率而愈發嚴重。除了將文檔存儲在硬盤驅動器上之 外,許多文檔還會存儲在其它地方。例如,文檔會通過電子郵件發給一群用戶, 其中每個用戶都存儲其自己的文檔復本。盡管用戶可以手動地壓縮文檔內的圖像,但這通常不會發生。因為用戶不僅必須了解如何壓縮圖像,而且還必須知 道這種壓縮將如何影響其圖像。概述提供本概述是為了以簡化的形式來引入在下面的詳細說明中將對其作進 一步描述的一些概念。本概述并非旨在標識所要求保護的主題的關鍵特征或必 要特征,也并非旨在用于幫助確定所要求保護的主題的范圍。包含在文檔中的圖像被壓縮以減小文檔的文件大小。壓縮可以以這樣一種 方式發生,即壓縮步驟可自動地發生在文檔內的圖像上。所執行的壓縮步驟基 于與文檔中的圖像有關的可用信息確定。隨后,使用該信息來確定圖像是否應 該被壓縮,以及要使用何種壓縮方法。附圖簡述
圖1示出了計算機的示例性計算體系結構; 圖2示出了圖像壓縮系統;圖3示出了用于自動地壓縮文檔中的圖像的示例性場景;圖4說明了用于分類圖像的過程;圖5示出了用于在插入操作時壓縮圖像的過程;圖6示出了用于在保存時壓縮的過程;圖7示出了用于在用戶調用時壓縮文檔中的圖像的過程;以及 圖8示出了根據本發明各方面的示例性壓縮對話框。詳細描述現參考附圖,將描述本發明的各個方面,且附圖中類似的標記表示類似的 元件。具體地,圖l及相應討論旨在提供對合適的在其中可以實現本發明的各 個實施例的計算環境的簡單、概括的描述。一般而言,程序模塊包括可執行具體任務或實現具體的抽象數據類型的例 程、程序、組件、數據結構、和其它類型的結構。可以使用其它計算機系統配 置,其中包括手持式設備、多處理器系統、基于微處理器的或可編程的消費電 子產品、小型計算機、大型計算機等。還可以使用在其中任務由通過通信網絡 鏈接的遠程處理設備來執行的分布式計算環境。在分布式計算環境中,程序模 塊可以位于本地和遠程存儲器存儲設備兩者中。現參考圖1,將描述在本發明各實施例中利用的計算機2的說明性計算機 體系結構。圖1中所示的計算機體系結構示出了一種臺式或移動計算機,包括有中央處理單元5 ("CPU")、包括隨機存取存儲器9 ("RAM")和只讀存儲器 ("ROM") 11在內的系統存儲器7、以及將存儲器耦合到CPU5的系統總線 12。包含有例如在啟動期間有助于在計算機內的各個元件之間傳送信息的基本 例程的基本輸入/輸出系統被存儲在ROM 11中。計算機2還包括用于存儲操作 系統16、應用程序和其它程序模塊的大容量存儲器設備14,下面將對此進行 更詳細的描述。大容量存儲器設備14通過連接于總線12的大容量存儲控制器(未示出) 連接至CPU 5。大容量存儲器設備14及其相關聯的計算機可讀介質可為計算 機2提供非易失性的存儲。雖然在此包括的對計算機可讀介質的描述指諸如硬 盤或CD-ROM驅動器之類的大容量存儲器設備,但計算機可讀介質可以是能 夠被計算機2訪問的任何可用介質。作為示例,而非限制,計算機可讀介質可以包括計算機存儲介質和通信介 質。計算機存儲介質包括以用于存儲諸如計算機可讀指令、數據結構、程序模 塊或其它數據等信息的任何方法或技術實現的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括,但不限于,RAM、ROM、EPROM、EEPROM、 閃存或其它固態存儲器技術,CD-ROM、數字通用盤("DVD")或其它光學存 儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、或可以用來存儲期望信息 并可被計算機2訪問的任何其它介質。根據本發明的各個實施例,計算機2可以在使用通過諸如因特網等網絡 18到遠程計算機的邏輯連接的網絡環境中運行。計算機2可以通過連接到總線 12的網絡接口單元20連接到網絡18。也可以利用網絡接口單元20連接到其 它類型的網絡和遠程計算機系統。計算機2還可以包括輸入/輸出控制器22, 用于接收和處理來自包括鍵盤、鼠標、或電子觸控筆(圖l未示出)在內的眾 多其它設備的輸入。類似地,輸入/輸出控制器22可以向顯示屏、打印機或其 它類型的輸出設備提供輸出。如前面簡單提到的,可以將許多程序模塊和數據文件存儲到計算機2的大 容量存儲設備14和RAM 9中,包括適于控制接入網絡的個人計算機的運行的 操作系統16,諸如來自華盛頓州萊得蒙市的微軟公司的WINDOWS XP操作系 統。大容量存儲設備M和RAM9還可以存儲一個或多個程序模塊。特別地, 大容量存儲設備14和RAM 9可以存儲應用程序10。應用程序10可有效地提 供用于創建和編輯電子文檔如包含一幅或多幅圖像的文檔24的功能性。根據 本發明的一個實施例,應用程序10包括來自微軟公司的MICROSOFT WORD 文字處理應用程序。根據本發明的另一個實施例,應用程序10還包括來自微 軟公司的MICROSOFT POWERPOINT應用程序。也可以利用來自其它制造商 的其它應用程序。例如,可以利用桌面出版程序、演示程序、和在其文檔內包 含有圖像的任何其它類型的程序。應用程序10可以利用壓縮算法26來幫助壓縮文檔24內的圖像。如下面 將要更詳細描述的,壓縮算法26可以自動地壓縮文檔24內的圖像,以降低文 檔的文件大小。圖2示出了根據本發明各方面的圖像壓縮系統200。如上面簡單描述地, 壓縮算法26可為應用程序10提供壓縮服務。根據一個實施例,可以將文檔存 儲在備用存儲器34中。為了便于與壓縮算法進行通信,可以實現一個或多個 回調例程,其在圖2中被示為回調代碼32。通過使用回調代碼32,壓縮算法26可以查詢壓縮文檔內的一個或多個圖像所必需的附加信息。壓縮算法26可提供用于壓縮文檔內的圖像的自動化壓縮步驟,從而使文檔的文件大小得以降低。文檔管理器30可以向壓縮算法26提供應該要壓縮和 /或從文檔中移除的來自該文檔的圖像和其它內容。壓縮算法26可以利用各種 參數來幫助壓縮過程。例如,可以利用輸出設備的分辨率來確定圖像是否可以 縮放。例如,可以確定打印機的分辨率為220ppi,而顯示屏/投影機/web/電子 郵件的分辨率卻可以設置為在72-192ppi不等。壓縮算法26還可以確定圖像是 否已被剪裁。當圖像已被裁剪時,已裁剪區域的像素信息通常被應用程序存儲 著。在壓縮圖像時,可以將該信息丟棄以便節約空間。也可以利用色深。色深 可影響圖像能夠被壓縮的方式。少于256色或16灰度級的圖像對于JPEG壓縮 來說一般都不是很好的候選對象。然而,可以將具有多余色深的圖像按比例縮 小以減小其大小。例如,如果圖像在形式上是以24位色來保存的,但是其實 只包含8色,則可以將多余的顏色信息除去。壓縮算法26還可以將任何非必 要數據從圖像中除去。例如,使用OLE客戶機的復制/粘貼插入到文檔中的圖 像可能由OLE流中的一個較小可視圖像和一個24位非壓縮位圖組成。在壓縮 圖片時,有可能會將該數據丟棄。數據中有一些常常是不希望移除掉的。例如, 如果用戶使用插入l對象(InsertlObject)來插入圖像,則由于用戶己明確要求 將圖像作為對象來插入,因此不能將OLE數據安全地丟棄。下面將提供更多 細節。現參考圖3到圖7,將描述用于壓縮文檔內的圖像的說明性過程。雖然是 在壓縮算法26和文字處理應用程序10的上下文中表現在此描述的各個實施例 的,但是也可以利用在其文檔內包含圖像的其它類型的應用程序。例如,可以 在演示應用程序、電子表格應用程序、繪圖或計算機輔助設計應用程序等中利 用在此描述的實施例。在閱讀在此給出的例程的討論時,應意識到,各個實施例的邏輯操作實現 為(1)在計算系統上運行的計算機實現動作序列或程序模塊;和/或(2)計 算系統內的互連機器邏輯電路或電路模塊。該實現是取決于可實現本發明的計 算系統的性能要求的選擇問題。因此,所說明的并組成在此描述的各個實施例 的邏輯操作在不同的時候被稱作操作、結構器件、動作或模塊。這些操作、結構器件、動作和模塊可以以軟件形式、以固件形式、以專用數字邏輯形式及其 任意組合實現。圖3示出了用于自動地壓縮文檔中的圖像的示例性場景。包含在文檔中的 任何圖像都是用于壓縮的候選對象,以便減小文檔的文件大小。可以使用各種 壓縮技術來壓縮圖像,包括但不限于離散余弦轉換(DCT)壓縮、游程長度編碼(RLE)壓縮、Lempel-Ziv (LZ)壓縮、和Lempel-Ziv-Welch (LZW)壓 縮。例如,JPEG圖像可以使用DCT壓縮來壓縮;GIF圖像可以使用LZW來 壓縮;位像可以使用RLE來壓縮;而PNG和TIFF則可以使用LZ來壓縮。 取決于圖像的類型可以使用任意壓縮算法。場景300示出用戶將圖像插入其文檔中的一個內。所插入的圖像可能包含 有無關數據。例如,圖像可能包括在圖像被插入到文檔中時隨其一起被復制的 對象鏈接和嵌入(OLE)流。文檔也可能是極高分辨率的文檔。響應于插入圖 像(310),可以執行自動化壓縮步驟330以便減小圖像的大小。例如,圖像可 以被重新采樣(314)以減少該圖像的分辨率。可以將OLE數據從圖像中去除 (312),并且可以在適當的時候將該圖像轉換(316)成另一種格式。例如, 在這種場景中,圖像如果被轉換為JPEG將會小得多。假設一旦圖像在文檔中, 并且已執行了第一組自動化壓縮步驟(330),用戶可決定操縱該圖像。例如, 用戶可將圖像的大小調整得更小,并將非必要區域從文檔中裁剪掉(318)。響 應于保存文檔(320),執行自動化壓縮步驟340,以便基于調整大小和裁剪來 壓縮圖像。根據圖像在頁面上的新大小來對其重新采樣(324),并將已裁剪區 域從圖像中丟棄(322)。用戶也可以關閉自動化壓縮步驟。當文檔中的自動化壓縮特征被關閉并且 用戶將其文檔發送給另一個用戶時,該文檔會維持關閉自動化壓縮。圖4說明了用于分類圖像的過程。將存儲在文檔中的圖像分類成照片和非 照片。圖像的分類確定要對圖像執行的壓縮步驟。在開始操作后,過程移動到操作410,在該操作410處訪問圖像。移動到 判定操作415處,確定該圖像是否是JPEG圖像。當圖像是JPEG圖像時,過 程移動到操作420處,在操作420處將圖像分類為照片。當圖像不是JPEG圖 像時,過程將轉到操作425。在判定操作425處,確定圖像是否包含多于256色。色深會影響可以壓縮 圖像的方式。少于256色或16灰度級的圖像對于JPEG壓縮來說一般不是很好 的候選對象。然而,可以將具有多余色深的圖像按比例縮小以減小其大小。例 如,如果圖像在形式上是以24位色來保存的,但是其實只包含8色,則可以 將多余的顏色信息從圖像中除去,由此減小文件大小。當圖像不包含256色或16灰度級時,過程轉到操作430,在此處可將圖 像分類為非照片。當圖像的確包含多余256色或16灰度級時,過程轉到操作 435。操作435可構建圖像的直方圖。轉到判定塊440處,可基于直方圖的結果 確定是否應將該圖像分類為照片。可以使用許多不同的測試來幫助確定圖像是 否為照片。另外,可以調整參數和與直方圖相關聯的閨值。在一些情況下,會 發現調整閾值/參數可以提供更好的結果。下面的討論呈現了可以單獨使用或組 合使用來確定圖像是否為照片的三種測試。第一測試確定在直方圖最前面的各個小區間(topbins)中的像素比例。首 先,使用最近鄰插值法重新采樣圖像,以使該圖像在其最長側有640個像素。 隨后,執行三通道直方圖以確定在每個色彩小區間中的像素數。計算在10個 最普通的小區間中的像素比例,并且如果少于20%的像素在最前面的IO個 小區間中,則該圖像對于JPEG壓縮來說是很好的候選對象,并且可將該圖像 分類為照片。可以將照片分類的得分指定為從零到1的值,且該值越接近于l,則圖像 將越可能被分類為照片。如果有少于20%的像素位于最前面的IO個小區間中, 則該照片分類得分二l;或者,如果有20%和80%之間的像素位于最前面的10 個小區間中,則該圖像分類的得分為(80-最前面各個小區間的數目的百分比) /60;或者,如果有多于80%的像素位于最前面的IO個小區間中,則該圖像分 類的得分為0。第二測試確定直方圖的峰值數。將峰值定義為其所具有的像素數是鄰近小 區間的IO倍以上的小區間。計數直方圖中的峰值數。所具有的峰值越少表明 如果對圖像進行JPEG壓縮則越不可能具有偽像,并且該圖像越可能被分類為 照片。當具有0或1個峰值時,照片分類得分=1,而當具有更多峰值時,照片分類得分將變小。例如,當具有2個峰值時,該值可以是0.8,具有4個峰值 時該值為0.6等。可以用這些值來進行試驗,以確定理想的設置。第三測試確定已加載的小區間的數目。計數"已加載"小區間的數目。當 一小區間包含像素總和的10%以上時,可認為該小區間己被加載。所具有的已 加載小區間越少,則JPEG壓縮將越好,同時圖像也越有可能是照片。當沒有 已加載小區間時,圖像分類得分=1,且己加載小區間越多,則圖像分類得分 將越少。可以將各種測試的結果組合來確定是否應將圖像分類為照片。根據一個實 施例,可使用如下等式照片分類得分=0.7*測試1+0.05*測試2+0.25*測試如果照片分類得分>0.5,則可將圖像分類為照片,并且可以壓縮該圖像。 轉到操作450,壓縮圖像。根據一個實施例,壓縮系使用JPEG壓縮來執 行。JPEG壓縮將利用影響JPEG壓縮的質量并指定期望的圖像質量的設置。 質量設置并不是與文件大小直接成比例的。根據一個實施例,用戶可以在預定 約束范圍內指定期望的圖像質量。使用預定約束可幫助用戶不會過渡降低圖像 的質量。下面列出了圖像質量參數的相關性質。性質最小值最大值(理論上限)實踐中的最佳質量(質量的改進無法超 過該質量設置)沒有顯而易見的損失的最低質量 沒有不良損失的最低質量值 0100 9575 50近似件大小10:1 20:1還可提供默認質量設置。根據一個實施例,JPEG質量設置默認為95。 隨后,過程移動到結束塊,并返回以處理其它動作。 圖5示出了用于在插入操作時壓縮圖像的過程。在開始操作后,過程轉到 操作515,在操作515處將圖像插入到文檔中。圖像可以用許多不同的方式來插入。例如,圖像可以插入自文件、發送自設備、粘貼自另一個應用程序、應 用圖片來填充形狀等。轉換到操作520,可以將任意非必要數據從圖像中除去。例如,圖像可能會包含非必要的元數據。根據一個實施例,可將非必要的OLE數據從該圖像中除去。轉向判定操作525,確定是否可以將圖像調色板化(圖像具有8位或更低的 色深)。根據一個實施例,將可以調色板化(palletized)的圖像以具有索引色的 PNG格式存儲,但GIF文件除外,其以GIF格式來存儲(530)。轉到判定操作535,確定是否已開啟自動化壓縮。當自動化壓縮沒有被開 啟時,過程轉到結束操作。當自動化壓縮已開啟時,過程轉換到判定操作540, 確定圖像是否是錯誤格式。根據一個實施例,某些圖像類型是不壓縮的。例如, 可以將GIF文件認為是錯誤格式,因為GIF圖像被調色板化了,因此不是重新 采樣的好候選對象。當圖像是錯誤格式時,過程轉到結束操作。當圖像不是錯 誤格式時,過程轉到判定操作545。在判定操作545處,確定圖像是否具有非必要像素。對非必要像素的檢査 可確定所具有的像素是否比足以打印到所期望設備上的像素要多。期望設備可 以是高分辨率設備或是低分辨率設備。根據一個實施例,圖像包含可將圖像伸 展至設備的整個頁面大小所需的像素數。例如,如果用戶將具有5百萬像素的 圖像插入到8.5" Xll"的文件中,以便以220ppi來填充整個頁面,則該圖片 應需要具有如下像素數(8.5" X220ppi)x(ll" x220ppi)二近4.5百萬個像素。對于與頁面具有不同長寬比的圖像,則圖像需要保留足夠的像素來填充整 個頁面。例如,如果圖片的寬度是3000像素,高度是2000像素,并且要將該 圖片插入到打印格式為8.5"X11"的頁面中,則可以將該圖片調整大小為2805 X 1870。當不具有非必要像素時,過程移動到操作555。當具有非必要像素時,過 程移動到操作550,在該操作550可自動地重新采樣圖片。隨后,過程移動到 判定操作555。在判定操作555處,確定圖像是否已被分類為照片。使用JPEG壓縮可最 好地壓縮照片,但是JPEG可能會在非照片圖像上引入偽像。根據一個實施例,默認地將不是JPEG的圖像轉換為PNG (除了 GIF文件保持為GIF外)。然而, 對于照片,PNG壓縮是低效率的。當圖像被分類為照片時,過程移動到操作 560,在該操作處將照片轉換成JPEG。隨后,過程移動到結束塊,并返回以處理其它動作。圖6示出了用于在保存時壓縮的過程。在開始操作后,過程轉到操作610 訪問圖像。移動到判定操作620,確定圖像是否含有透明度信息。當圖像具有 透明度信息時,圖像可能不是用于壓縮的好候選對象,因為透明度信息在壓縮 時可能會丟失。因此,根據一個實施例,當圖像包含透明度信息時,過程轉到 結束塊。當圖像不包含透明度信息時,過程轉到判定操作630。判定操作630可確定圖像是否已被剪裁。根據一個實施例,當圖像上已執 行了剪裁操作時,會在該圖像上設置"臟"標記以顯示該圖像已被剪裁了。在 移除已剪裁區域時,臟標記將被重新設置。在圖像已被剪裁時,過程轉到操作640,丟棄已剪裁區域。當圖像沒有被 剪裁時,過程轉到判定操作650。判定操作650可確定圖像是否已被調整大小。類似于剪裁操作,如果在圖 像上執行了調整大小的操作,則也會在該圖像上設置"臟"標記,以顯示該圖 像已被修改了。在重新采樣圖像時,會重新設置臟標記。當圖像已被調整大小時,將重新采樣(操作660)該圖像,以便提供足夠 的像素分辨率來以較高的質量按其當前大小來打印圖像。當還沒有對圖像調整大小時,過程轉到結束操作,并返回以處理其它動作。圖7說明了用于在用戶調用文檔時壓縮該檔案中的圖像的過程。 一般而 言,用戶調用文檔時的壓縮過程是上面描述的步驟的組合。在開始操作后,過程轉到操作705,訪問文檔中的圖像。移動到操作710,從圖像中移除任何附加數據。例如,圖像可能包括OLE 數據。根據一個實施例,當用戶在所選對象上運行壓縮圖像時,如果用戶選擇 從單個畫面中去除OLE數據,則OLE流將被去除。或者,如果用戶在文檔中 的所有圖像上運行壓縮圖像,則在認為移除是安全的時候移除OLE流。可以 將被認為是可安全移除的OLE類型清單存儲在列表中,或以其它形式存儲。移動到判定操作715,確定圖像是否含有透明度信息。當圖像具有透明度信息時,圖像可能不是用于壓縮的好候選對象,因為透明度信息在壓縮時可能 會丟失。當圖像不包含透明度信息時,過程轉到結束操作。當圖像不包含透明 度信息時,過程轉到判定操作720。判定操作720可確定圖像是否已被剪裁。在圖像己被剪裁時,過程轉到操 作725,丟棄已剪裁區域。當圖像沒有被剪裁時,過程轉到判定操作730。根 據一個實施例,剪裁確定還會考慮多幅圖像參考相同的源并以不同的方式被剪 裁的情況。在這種情況下,當已剪裁信息不被文檔中的任何一個實例需要時, 將其從源處丟棄。判定操作730確定圖像是否可以被壓縮。如果圖像已經被壓縮,則將已被 壓縮的圖像作上標記,并將目標輸出模式作為該圖像的特性來保存。 一旦圖像 已被壓縮,則在目標輸出模式已被改變并且需要更積極的壓縮時,該圖像將被 再次壓縮。隨后,目標輸出模式特性將被更新。根據一個實施例,不會壓縮大 小小于100kb的圖像。盡管在一個實施例中使用了 100kb,但可以按照需要來 設定這個設置或者將其忽略。當圖像不能夠被壓縮時,過程轉到結束塊。當圖 像能夠被壓縮時,過程轉到操作735。判定操作735確定圖像是否可以被縮放。如所需輸出設備確定圖像包含額 外像素時,其可以被縮放。例如,打印機可以使用220ppi的分辨率,而顯示屏 /投影機/web可以使用150ppi,電子郵件可以使用96ppi。可以選擇不同的分辨 率。當圖像可以被縮放時,過程移動到操作740,重新采樣圖像。當圖像不可 以被縮放時,過程移動到判定操作745處。判定操作745可確定該圖像是否為照片。當圖像被分類為照片時,過程移 動到操作750,將圖像以所確定的質量設置進行JPEG壓縮。當圖像未被分類 為照片時,過程移動到操作755,在該步驟755處可以向用戶提供警告。該警 告可以指示圖像將被壓縮,以及他們是否愿意接受該變化。轉換到判定操作760處,確定用戶是否會接受該變化。當用戶接受該變化 時,過程移動到操作765,在該操作765處可將文檔與更新后的圖像一起保存。 當用戶不接受該變化時,過程移動到操作770,在該操作770處會將該變化丟 棄。隨后,過程移動到結束操作,并返回以處理其它動作。圖8示出了示例性壓縮對話框。對話框810說明了壓縮圖片對話框,而對話框820則說明了壓縮選項對話框。文件大小比較(812)可向用戶提供對壓縮后所節約的空間的估計。計算 具有圖像的文檔的文件大小使用單獨的線程迭代通過該文檔中的這些圖像。在 生成文件大小的同時,將向用戶提供諸如"處理中…"之類的消息。用戶通過選擇選項按鈕816并在對話框820中作出任何期望的變化即可調 整壓縮設置。這些設置可以被維持,以便在構建新文檔時實行。指示自動壓縮的選項(822)被嵌入在文檔中,以便在將該文件與其它用 戶共享時可保持這些設置。也可以存儲目標輸出模式824。刪除已剪裁區域的選項826可指定是否丟 棄圖像的已剪裁區域。移除非必要數據的選項828可指定是否丟棄額外數據。上面的描述、示例和數據可提供對產品以及組合本發明的使用的完全描 述。由于可以得到本發明的許多實施例,而不會偏離本發明的精神和范圍,因 此本發明在于后面所附的權利要求書。
權利要求
1.一種用于壓縮存儲在文檔中的圖像的計算機實現的方法,包括訪問所述文檔中的圖像;其中,所述文檔除包括所述圖像外,還包括其它數據;分類所述圖像;自動地確定對所述圖像的壓縮步驟;將所述壓縮步驟應用于所述圖像;以及以所述已壓縮圖像來保存所述文檔。
2. 如權利要求1所述的計算機實現的方法,其特征在于,分類所述圖像 包括將所述圖像分類為下組中的至少一個照片和非照片。
3. 如權利要求1所述的計算機實現的方法,其特征在于,還包括確定圖 像何時被插入到所述文檔中,以及在所述圖像被插入時,自動地執行以下操作 中的至少一種將非必要數據從所述圖像中除去;對所述圖像進行重新采樣; 和將所述圖像轉換成另一種格式。
4. 如權利要求3所述的計算機實現的方法,其特征在于,還包括確定圖 像何時被保存,以及在所述圖像被保存時,執行以下操作中的至少一種丟棄 所述圖像的已剪裁區域;和基于放置尺寸對所述圖像進行重新釆樣。
5. 如權利要求2所述的計算機實現的方法,其特征在于,分類所述圖像包括構建所述圖像的直方圖。
6. 如權利要求2所述的計算機實現的方法,其特征在于,自動地確定對 所述圖像的壓縮步驟包括確定以下各項中的至少一個是否可以將所述圖像調 色板化;所述圖像是否是錯誤的格式;是否具有非必要像素;所述圖像是否包 含透明度信息;所述圖像是否已被剪裁;和所述圖像是否已被調整大小。
7. 如權利要求6所述的計算機實現的方法,其特征在于,確定所述圖像 是否已被剪裁包括確定已剪裁區域以及丟棄所述已剪裁區域。
8. 如權利要求6所述的計算機實現的方法,其特征在于,確定所述圖像 是否己被調整大小包括對所述圖像進行重新采樣。
9. 如權利要求6所述的計算機實現的方法,其特征在于,確定所述圖像 是否具有非必要像素包括確定一期望分辨率以及基于所述期望分辨率對所述 圖像進行重新采樣。
10. —種具有用于自動壓縮存儲在文檔中的圖像的計算機可執行指令的計算機可讀介質,所述計算機可執行指令包括 訪問所述文檔中的圖像; 分類所述圖像;自動地確定對所述圖像的壓縮步驟; 自動地將所述壓縮步驟應用于所述圖像;以及 以己壓縮圖像來保存所述文件,以便減小所述文檔的文件大小。
11. 如權利要求IO所述的計算機可讀介質,其特征在于,所述計算機可 執行指令還包括確定圖像何時被插入到所述文檔中,以及在所述圖像被插入時 自動執行在確定時將非必要數據從所述圖像中移除;在確定時對所述圖像進 行重新釆樣;和在確定時將所述圖像轉換為JPEG格式。
12. 如權利要求ll所述的計算機可讀介質,其特征在于,所述計算機可 執行指令還包括確定圖像何時被保存,以及響應于所述保存自動地壓縮所述圖 像。
13. 如權利要求10所述的計算機可讀介質,其特征在于,分類所述圖像 包括構建所述圖像的直方圖,以及使用所述直方圖確定所述圖像是否是照片。
14. 如權利要求13所述的計算機可讀介質,其特征在于,確定所述圖像 是否是照片包括基于所述直方圖執行以下測試中的至少一個確定在所述直方 圖最前面的各個小區間中的像素比例;確定直方圖峰值的數目;和確定加載的 小區間的數目。
15. 如權利要求IO所述的計算機可讀介質,其特征在于,自動地確定所 述圖像的壓縮步驟包括執行以下各項中的至少兩項確定是否可以將所述圖像 調色板化;確定所述圖像是否是錯誤的格式;確定是否具有非必要像素,并且 在具有非必要像素時對所述圖像進行重新采樣;確定所述圖像是否包括透明度 信息;確定所述圖像是否已被剪裁,并且在所述圖像已被剪裁時移除已剪裁區域;和確定所述圖像是否已被調整大小,并且在所述圖像己被調整大小時對所 述圖像進行重新采樣。
16. —種用于壓縮存儲在文檔中的圖像的系統,包括 被配置成接收輸入的輸入設備; 包括圖像的文檔;被配置成編輯所述文檔并被配置成從所述輸入設備接收所述輸入的應用 程序;以及耦合到所述應用程序的壓縮算法,并且所述壓縮算法被配置成在確定時自動地壓縮所述圖像;其中所述算法被配置成執行以下動作 訪問所述文檔中的圖像;將所述圖像分類為下組中的一個照片和非照片;自動地確定所述圖像的壓縮步驟; 將所述壓縮步驟應用于所述圖像;以及以所述已壓縮圖像來保存所述文檔。
17. 如權利要求16所述的系統,其特征在于,所述算法執行的動作還包 括確定圖像何時被插入到所述文檔中以及所述文檔何時被保存。
18. 如權利要求17所述的系統,其特征在于,確定所述圖像何時被插入到所述文檔中以及所述文檔何時被保存包括自動地執行以下操作中的至少一項將非必要數據從所述圖像中除去;對所述圖像進行重新采樣;將所述圖像 轉換成另一種格式;丟棄所述圖像的已裁剪區域;和基于放置尺寸對所述圖像 進行重新釆樣。
19. 如權利要求18所述的系統,其特征在于,分類所述圖像包括構建 所述圖像的直方圖,以及分析所述直方圖以確定像素分配。
20. 如權利要求18所述的系統,其特征在于,自動地確定對所述圖像的 壓縮步驟包括確定以下各項中的至少一個是否可以將所述圖像調色板化;所 述圖像是否是錯誤的格式;是否具有非必要像素;所述圖像是否包含透明度信 息;所述圖像是否已被剪裁;和所述圖像是否己被調整大小。
全文摘要
包含在文檔中的圖像被壓縮,以便減小文檔的文件大小。壓縮可以以使壓縮步驟自動地發生于圖像的方式發生。所執行的壓縮步驟基于與文檔中的圖像有關的可用信息來確定。使用該信息來確定圖像是否應該被壓縮以及要使用何種壓縮方法。
文檔編號G06F17/21GK101331480SQ200680047453
公開日2008年12月24日 申請日期2006年12月7日 優先權日2005年12月15日
發明者B·R·默德芬, J·R·蘭博瑞克, M·杰蘭姆科, R·C·希爾 申請人:微軟公司