專利名稱:文本圖像編碼的制作方法
文本圖像編碼 背景當今,圖像經常以電子格式進行存儲、操縱和傳送。特別是對于圖像的存儲和傳 送,電子圖像的數據大小仍然是重要的。通常,電子圖像的大小越小,它就越易于存儲或傳 送。電子圖像的數據大小可通過壓縮該數據來減少。遺憾的是,明顯的壓縮通常是有損的, 這意味著在壓縮和解壓縮循環期間信息丟失了。該損失的信息導致圖像的視覺質量在解壓 縮之后被降級。換言之,盡管較高的壓縮促進了圖像的存儲和傳輸,但這樣的壓縮通常在解壓縮 之后降級了所得到的電子圖像的視覺質量。因此,一般在所實現的壓縮比與良好的視覺質 量之間達到一種平衡。改進這種平衡的一種方式是改進應用于電子圖像的壓縮算法。如果 改進了壓縮算法,則可在不犧牲視覺質量的情況下得到較高的壓縮比。本文在下面描述特 別適用于具有文本部分的圖像的新穎且高級的壓縮算法。概述文本圖像編碼涉及編碼圖像的文本部分,該圖像可具有文本部分和圖形部分兩 者。在一示例實施例中,將圖像的文本塊分解成多個基色和索引圖,其中該索引圖具有各個 索引值,每一索引值參考一個基色以表示該文本塊。查明該索引圖的一特定索引的一組鄰 近索引值。從多個預定上下文中生成匹配該組鄰近索引值的上下文。該匹配上下文包括一 組符號。基于該匹配上下文和該特定索引所對應的符號確定至少一個符號到值的映射,其 中該符號到值的映射包括從相應符號到相應值的至少一個映射。根據該符號到值的映射和 該特定索引所對應的符號來將該特定索引重新映射到特定值。在通過重新映射索引圖的每 一個索引來轉換了該索引圖之后,可編碼經轉換的索引圖和各基色來壓縮它們。提供本概述以便用簡化的形式介紹在下面的詳細描述中進一步描述的一些概念。 本概述不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要 求保護的主題的范圍。此外,本文描述了其他方法、系統、方案、裝置、設備、介質、過程、應用 編程接口(API)、安排等實現。附圖簡述在各附圖中使用相同的標號引用相同和/或對應的方面、特征和組件。
圖1是其中可在具有文本部分的圖像上實現文本圖像編碼的示例場景的框圖。圖2是用于將圖像的各塊區分為文本塊或圖形塊的示例標識過程的框圖。圖3是將示例文本塊分解成基色和索引圖的框圖。圖4是示出一種用于對圖形塊和文本塊進行圖像編碼的方法的示例的流程圖,該 方法包括編碼和解碼。圖5是示出按上下文類別組織的、用于文本塊的索引圖編碼的多種不同示例上下 文的表格圖。圖6是示出按符號的、用于文本塊的編碼的多種不同索引映射的表格圖,其中這 些映射是按上下文類別組織的。圖7是示出用于分別使用圖5和圖6的上下文和符號映射進行文本圖像編碼的方法的示例的流程圖。圖8是可實現文本圖像編碼的示例圖像編碼器的框圖。圖9是可實現文本圖像解碼的示例圖像解碼器的框圖。圖10是示出用于對文本塊進行編碼的方法的示例的流程圖。圖11是示出用于對文本塊進行解碼的方法的示例的流程圖。圖12是可用于實現文本圖像編碼的示例設備的框圖。詳細描述文本圖像編碼的介紹隨著因特網的快速發展和富媒體應用的廣泛采用,除自然圖像之外還產生了復合圖像。復合圖像可包括但不限于網頁、幻燈片、海報等等。復合圖像包括文本部分和圖形部 分。文本部分包括例如由(例如位圖化的)像素形成的各種字體的字母數字或其他字符或 者當前不能作為單獨的整體字符來識別的其他方面。圖形部分包括例如自然圖片。對于自然圖片,許多現有的圖像和視頻編碼標準(例如,JPEG2000和H. 264/AVC) 已經展示出良好的編碼性能。然而,它們在壓縮復合圖像時,特別是由于其中的任何文本部 分而是不適當的。在一示例實施例中,區分復合圖像的文本部分和圖形部分。隨后使用不 同于圖形部分的編碼方法來編碼這些文本部分。圖1是其中可在具有文本部分的圖像上實現文本圖像編碼的示例場景100的框 圖。如所示的,場景100包括圖像102和重構圖像112。圖像102包括至少一個文本部分 104和至少一個圖形部分106。重構圖像112包括至少一個重構文本部分114和至少一個 重構圖形部分116。場景100還包括編碼過程108、解碼過程110和通信過程118。對于一示例實施例,圖像102由編碼過程108編碼。使用第一編碼方法編碼文本 部分104,并且使用不同的第二編碼方法編碼圖形部分106。隨后經由通信過程118從一個 設備將圖像102的壓縮版本通信傳送至另一個設備和/或從一個存儲器通信傳送至另一個 存儲器。在本文下面特別參考圖12來描述可用于實現文本圖像編碼的實施例的示例設備。在通信過程118之后,將解碼過程110應用于圖像102的壓縮版本以產生解壓版 本,它稱為重構圖像112。將第一解碼方法應用于文本部分104的壓縮版本以產生重構文本 部分114。將第二解碼方法應用于圖形部分106的壓縮版本以產生重構圖形部分116。盡 管圖像102/112包括文本部分104/114和圖形部分106/116兩者,但如本文所述的發明原 理還適用于僅包括文本部分104/114的圖像102/112。文本圖像編碼的示例實施例圖2是用于將圖像102的各塊區分為文本塊202 (T)或圖形塊202 (G)的示例標識 方法200的框圖。因此,在該示例中使用基于塊的方法。如所示的,標識方法200包括圖像 102、塊202和塊類型標識過程204。對于一示例實施例,圖像102被劃分成多個塊202并且因而包括這多個塊。這些 塊202可以是任何大小、形狀或比例。然而,這些塊的一個示例值是16像素乘16像素。將 塊類型標識過程204應用于每個塊202。從而將每個塊202區分為文本塊202 (T)或圖形塊 202 (G)。可使用任何技術來將各塊標識為文本部分或圖形部分。僅作為示例,可使用在 2006年2月24日提交的、發明人為Feng Wu等、并轉讓給同一受讓人(微軟公司)的、標題為“Block-Based Fast Image Compression(基于塊的快速圖像壓縮)”的共同待審的美國非臨時專利申請第11/276,342號中所述的技術來實現塊類型標識。盡管塊202被區分為兩 種圖像部分類型之一,但另選地可以存在多于兩種可能的圖像塊類型。同樣,圖形塊202(G) 可細分為不同類型的圖形塊(例如,平滑、混合等)。每個相應的圖像塊類型可使用其自己 的相應算法類型來編碼。應當理解,對于已知僅具有文本部分的圖像,可省略塊類型標識過 程 204。圖3是將塊分解成基色302和索引圖304的示例文本塊分解過程300的框圖。如 所示的,文本輸入塊202 (T)被分解300成一個或多個基色302和至少一個索引圖304。在 該例中,輸入塊202(T)由圖像的8像素乘8像素的部分形成。然而,輸入塊202(Τ)可以是 不同的大小或者比例(例如它不必是正方形的)。一般而言,輸入塊202 (T)表示形成圖像的文本部分的一個或多個字符的至少一 部分的像素。輸入塊202(Τ)的每個像素顏色是由一個或兩個字母如下表示的LB=淡藍, DB=深藍,B=黑,DY=深黃,以及LY=淡黃。因而,頂行包括8個像素,它們從左至右如 下淡藍,淡藍,深藍,黑,深黃,淡黃,淡黃和淡黃。在一示例實施例中,輸入塊202 (T)被分解300成基色302和索引圖304。基色302 是從輸入塊202(T)提取的顏色。基色302的每種顏色與一個值(如數值)相關聯。在所 示示例中,淡藍與0相關聯,深藍與1相關聯,黑與2相關聯,深黃與3相關聯,以及淡黃與4 相關聯。輸入塊202 (T)的像素顏色由索引圖304表示為具有與各基色302相關聯的數值 的矩陣。索引圖304表示包含在輸入塊202 (T)的各像素中的結構信息。索引圖304因此 具有與輸入塊202(Τ)相同的維度,在本例中為8乘8。索引圖304的頂行包括8個索引值, 它們從左至右如下:0,0,1,2,3,4,4和4。在一示例實施例中,將基色302和索引圖304分 開編碼。為允許更有效的編碼和有可能更高的壓縮率,通過使用結構感知的范例基于多個 上下文重新映射這些索引值來編碼索引圖304。在下面特別參考圖5、6等進一步描述用于 該重新映射的示例上下文和方法。接下來,概括地描述用于文本圖像編碼的方案的示例實施例。如圖3所示,使用多 個基色和索引圖在空間域中表示文本塊。該索引圖指示文本塊的結構信息。為分解文本塊, 應用顏色量化算法來生成該表示,隨后是進行結構感知的上下文自適應算術編碼。關于顏色量化,通常諸如向量量化和K-均值(K-means)等傳統顏色量化方法被設 計成最小化有限數量的顏色的顯示失真。然而,顏色量化后的圖像的熵可能會高,這使其難 以壓縮。在一示例的描述方法中,壓縮的位數也在顏色量化期間得到考慮。因為基色比索 引圖所花費的位少得多,所以文本塊的熵通常主要取決于索引圖。為減少熵,限制索引圖的 多樣性和無序性。為此,使用兩步量化過程來實現比率和失真的折衷。作為第一步,執行局部量化以將鄰近的相似像素群集到一個組中。這確保或者至 少增加鄰近像素將會趨向于被量化成相同基色的概率。結果,減少了相關聯的索引圖的無 序性。具體地,給出鄰近像素之間所允許的最大失真,將距離在閾值之下的每個鄰近像素群 集到同一個組中,該組由它們的平均值來表示。作為第二步,在局部量化之后將塊進一步量化成多個基色。特別地,同一組中的各 像素被量化成相同的顏色。給定塊的基色的總數取決于內容。并非將每個塊量化成固定數量的顏色,而是將所允許的最大失真設置為一個常數。僅作為示例,該常數可以等于q2/4, 其中q是在H. 264/高級視頻編碼(H. 264/AVC)(即MPEG-4部分10)幀內編碼中使用的量化 步長。在該例中,16x16的宏塊的基色數量可從1至8地變化。在實踐中,可使用在其中將 每個像素視為向量的樹結構向量量化(TSVQ)方法。用TSVQ方法,最大失真可以是在TSVQ 中拆分樹的準則。在一示例實施例中,關于文本塊的熵編碼,基色和索引圖可用上下文自適應算術編碼器來壓縮。首先量化基色的YUV分量。索引圖示出許多不同的文本塊之間的相似模式。 使用預定上下文和預定義的重新映射來利用這些相似模式以增強壓縮。在編碼索引圖時,以掃描行順序安排這些索引。從要被編碼的索引的鄰近索引值 推斷出匹配該索引的預定上下文。隨后根據其匹配的上下文和各鄰近索引將當前索引值重 新映射到一個符號,并且使用該上下文用算術編碼器編碼該符號。在本文下面特別參考圖 5描述示例預定上下文,并且在本文下面特別參考圖6來描述示例預定義映射。圖4是示出用于涉及圖形塊和文本塊的圖像編碼的一般方法的示例的流程圖 400。圖像編碼包括編碼和解碼兩者。流程圖400包括i^一 (11)個框402-422。在框402, 接受具有圖形部分和文本部分的圖像作為輸入。在框404,將圖像的各塊標識為圖形塊或文 本塊。流程圖400的左邊(例如框406和416)與圖形塊有關。流程圖400的右邊(例如, 框408、410、418和420)與文本塊有關。在框406,編碼每個圖形塊。在框408,將每個文本塊分解成一個或多個基色和索 引圖。在框410,使用編碼上下文和重新映射來編碼每個被分解的文本塊。本文在下面特別 參考圖5描述示例結構感知編碼上下文。本文在下面特別參考圖6描述示例預定義映射。 在框412,從第一設備和/或存儲器發送具有壓縮圖形塊和壓縮文本塊的編碼位流。在框414,在第二設備和/或存儲器處接收該編碼位流。在框416,解碼壓縮圖形 塊以產生重構圖形塊。以壓縮形式接收到的每個分解文本塊在框418處使用重新映射和編 碼上下文來解碼。在框420,通過將解碼的基色和解碼的索引圖組合成重構文本塊來重組每 個已經解碼的分解文本塊。在框422,通過將解碼和重構圖形塊與解碼和重構文本塊合并來 重構原始圖像的一個版本。在重構了圖像的全部或部分之后,可在包括屏幕、打印機等顯示 設備上呈現它。圖5是示出按上下文類別組織的用于索引圖編碼的多個不同示例上下文502的表 格圖500。如所示的,表格圖500包括十五(15)個預定上下文502,它們被分成五(5)個上 下文類別(a)-(e)。這15個上下文是根據最接近的鄰近索引(或像素)定義的。一般而 言,四個相鄰的鄰近索引定義每個上下文。對于每個上下文,存在至多四種不同的可能符號或形狀。每種形狀表示一個鄰近 索引,而不同的形狀指示不同的可能索引值。僅作為示例,所示的符號形狀(或更一般地符 號類型)是圓形,正方形,三角形和六角形。在對應于符號的鄰近索引足夠靠近一個特定 索引時將它們認為是最接近的,使得它們用作該特定索引的顏色/符號的概率預測器。在一示例實施例中,這四個最接近的鄰近索引是相鄰的。這四個相鄰的鄰近索引 包括沿基本方向(例如,左、右、上或下)的兩個鄰近索引和沿對角線方向(例如,左上、右 上、左下或右下)的兩個鄰近索引。或者,可對上下文使用除四個以外的不同數量的鄰近索 弓丨。更具體地,如所示的這四個相鄰的鄰近索引包括左索引、左上索引、上索引和右上索引。
左、右、上和下的定義是相對于掃描行模式的并且不必相對于圖像的紋理(盡管 可以這么定義它們)。換言之,正被掃描進行編碼的塊的第一行和該掃描的方向分別確定該 塊的上和左-右(或右-左)模式。換言之,對用于上下文的(例如四個)鄰近索引的選 擇可基于在根據掃描行模式映射特定索引時知道哪些鄰近索引。任何給定類別(a)-(e)的上下文502各自具有相同數量的不同顏色索引,如由正 在被重新映射的當前索引的鄰近索引所確定的。上下文類別(a)的單個上下文502具有四 個相同的鄰近顏色索引。上下文類別(b)的上下文502恰好具有三個相同的鄰近顏色索引。 上下文類別(b)包括四種不同的上下文502以表示四個索引的四種可能的位置排列,其中 有且只有一個索引不同于其它三個。上下文類別(c)的上下文502具有兩對相同的鄰近顏色索引。上下文類別(c)包 括三種不同的上下文。上下文類別(d)的上下文502恰好具有兩個相同的鄰近顏色索引。 上下文類別(d)包括六種不同的上下文以表示四個索引的六種不同位置排列,其中兩個索 引相互不同并且還與該兩個相同的索引不同。上下文類別(e)的單個上下文502沒有相同 的(即四個不同的)鄰近顏色索引。一般而言,索引圖的由這些符號之一(例如,圓形、正方形、三角形或六角形)表示 的這些索引值被重新映射。執行該重新映射是因為在相同的結構感知的上下文中索引的概 率分布與鄰近索引的真實值相關。一般而言,鄰近像素的索引值比其他值具有更高概率來 出現在正在被重新映射的當前特定索引中。將具有高概率的索引重新映射到較小的值。將上下文類別(b)的上下文502作為 示例,對應于圓形符號的索引值具有最高的出現概率。因此,將該索引值重新映射到0,這在 將文本塊作為整體進行壓縮時使得當前索引的壓縮在最后更有效率。定義表格圖500的預 定上下文502,以使得具有成為當前索引的最高概率的基色值基于其結構感知的上下文被 使用符號(例如圓形符號)重新映射為零。在下面特別參考圖6描述用于各上下文類別的 每一個的示例預定義上下文映射。表格圖500的上下文502主要適用于內部索引。更具體地,它們不適用于頂行或 外側的列(例如,最左邊和最右邊的列)。然而,其它上下文可應用于其鄰近索引至少部分 不可用的邊界索引。這些(例如二十二個)其它上下文可用于類似地編碼邊界索引。圖6是示出按符號的多個不同索引映射602的表格圖600,其中這些映射是按上下 文類別組織的。表格圖600的五(5)個上下文類別(a)-(e)分別對應于(圖5的)表格圖 500的五個上下文類別(a)-(e)。每個上下文類別包括將給定符號映射到其相關聯的索引 值的至少一個索引映射602。這些符號到索引值映射用于基于匹配當前索引的預定上下文 502來重新映射當前索引。在一示例實施例中,表格圖500的上下文502得到仔細地安排,使得對于五個上下 文類別(a)-(e)中的任何一個的相同符號映射到相同的索引值。(然而,每個上下文502的 符號可不同地安排。)在表格圖600中顯而易見的是,對于上下文類別(a)-(e)中的每一 個,圓形符號映射到索引值=0。當存在時,對于上下文類別(b)-(d)中的每一個,正方形符 號映射到索引值=1。同樣,對于上下文類別⑷和(e)中的每一個,三角形符號映射到索 引值=2,并且對于上下文類別(e)六角形映射到索引值=3。圖7是示出用于分別使用圖5和圖6的預定上下文502和預定義符號映射602進行文本圖像編碼的方法的示例的流程圖700。流程圖700包括四(4)個框702-708。在框 702,查明索引圖的當前索引的一組鄰近索引值。例如,可從索引圖304查明與當前索引相 鄰的并且位于左、左上、上和右上位置處的四個鄰近索引值。在框704處,從多個預定上下文中生成匹配該組鄰近索引值的上下文,該匹配的 上下文包括一組符號。例如,如果存在三個相同的鄰近顏色索引,則(圖5的)具有四個符 號(其中三個相同)的預定上下文502可從上下文類別(b)中生成以匹配所查明的鄰近索 引組。為進一步闡明所述實施例的某些原理,提供一個特定的像素顏色示例。對于此例, 假定當前索引的鄰近索引左索引為深藍,左上索引為黑,上索引為深藍,以及右上索引為深 藍。這對應于上下文類別(b)中的左邊第二個上下文502。因此圓形符號對應于深藍像素 顏色,并且因此正方形符號對應于黑像素顏色。
在框706,基于匹配上下文確定符號到值的映射,該符號到值的映射包括從相應符 號到相應值的至少一個映射。例如,參考(圖6的)上下文類別(b)的索引映射602。對于 深藍像素顏色,圓形符號被映射到0,且對于黑像素顏色,正方形符號被映射到1。在框708,根據符號到值的映射中的哪一個符號對應于當前索引,將當前索引重新 映射到一個值。例如,如果當前索引是深藍且因而對應于圓形符號,則使用索引映射602將 當前索引重新映射到值0。如果當前索引是黑且因而對應于正方形符號,則將當前索引重新 映射到值1。如果當前索引不匹配鄰近索引值組中這些顏色之一(即,如果當前索引的顏色 既不是深藍也不是黑),則當前索引的值不會被重新映射改變。圖8是可實現文本圖像編碼的示例圖像編碼器800的框圖。圖像編碼器800可體 現為軟件、固件、硬件、固定邏輯電路、它們的某種組合等等。在左邊的塊標識開關802處輸 入圖像,并且從在右邊的多路復用器820輸出壓縮圖像位流(例如,并且被通信傳送到至圖 9的圖像解碼器900)。僅作為示例,圖像編碼器800可實現經修改的H. 264/AVC幀內編碼 方案的編碼側。修改H. 264/AVC幀內編碼方案,以便使用此處所述的結構感知的上下文和 索引映射來標識并編碼文本塊。如所示的,圖像解碼器800 —般包括面向圖形的組件804-808和面向文本的組件 810-818。更具體地,圖像編碼器800包括塊標識開關802、離散余弦變換器(DCT)804、量化 器806、熵編碼器808和多路復用器820。圖像編碼器800還包括顏色量化器810、算術編碼 器812、上下文自適應算術編碼器814、上下文生成器/索引重新映射器816和多路復用器 818。在一示例實施例的操作中,將圖像輸入到塊標識開關802。塊標識開關802區分圖 形塊和文本塊。將圖形塊轉送到DCT 804,并且將文本塊轉送到顏色量化器810。DCT 804、 量化器806和熵編碼器808能以本領域已知的方式(例如根據H. 264/AVC)運行以編碼圖 形塊。例如,DCT 804可將離散余弦變換應用于圖形塊。量化器806量化DCT系數,并且熵 編碼器808編碼經量化的DCT系統。另外,可另選地使用非熵編碼。熵編碼器808輸出壓 縮圖形位流。顏色量化器/分解器810從塊標識開關802接受文本塊作為輸入。顏色量化器 810執行在上文針對兩步量化過程所描述的步驟中的一個或兩個。即,顏色量化器810執行 局部量化以分組鄰近像素。顏色量化器810還將分組像素的顏色量化成基色。之后,顏色 量化器/分解器810將經顏色量化的文本塊分解成基色和索引圖。顏色量化器810輸出基色和作為索引圖的顏色索引。算術編碼器812從顏色量化器810接受這些基色作為輸入并且編碼它們以壓縮它 們的數據大小。另外,可另選地使用非算術編碼方案。算術編碼器812輸出壓縮基色作為 位流并且將它們轉送至多路復用器818。 上下文自適應算術編碼器814從顏色量化器810接受具有顏色索引的索引圖作為 輸入。在上下文自適應算術編碼器814編碼索引圖之前,上下文生成器/索引重新映射器 816重新映射其顏色索引。上下文生成器/索引重新映射器816有權訪問鄰近編碼像素。 例如,上下文生成器/索引重新映射器816可直接查明鄰近編碼像素。或者,可由另一個組 件(例如,顏色量化器810和/或上下文自適應算術編碼器814等)查明鄰近編碼像素并 且將它們提供給上下文生成器/索引重新映射器816。參考(圖5的)表格圖500,上下文生成器/索引重新映射器816的上下文生成器 生成匹配所查明的鄰近像素的上下文502。所生成的上下文502包括一個或多個符號并且 屬于相關聯的上下文類別(a)-(e)。參考(圖6的)表格圖600,確定與同一上下文類別相 關聯的索引映射602。上下文生成器/索引重新映射器816的索引重新映射器隨后使用所 確定的索引映射602根據該索引圖的每個特定像素對應的符號重新映射該特定像素。在重新映射了索引圖的每個索引像素之后,上下文自適應算術編碼器814使用算 術編碼方案編碼該重新映射的索引圖。或者,可使用非算術的上下文自適應編碼器。將編 碼基色從算術編碼器812提供給多路復用器818,并且將編碼(且重新映射)的索引圖從上 下文自適應算術編碼器814提供給多路復用器818。多路復用器818將編碼基色和編碼索 引圖組合成壓縮文本位流。多路復用器820從熵編碼器808接收壓縮圖形位流并從多路復用器818接收壓縮 文本位流。多路復用器820組合各壓縮位流并且將組合的壓縮位流轉送到存儲器以用于存 儲、轉送到網絡以用于傳輸等等。或者,可分開傳遞壓縮圖形和文本位流。圖9是可實現文本圖像解碼的示例圖像解碼器900的框圖。圖像解碼器900可體 現為軟件、固件、硬件、固定邏輯電路、它們的某種組合等等。一般而言,在左邊的多路分解 器902處輸入壓縮圖像位流(例如,來自圖8的圖像編碼器800),并且在右邊從重構器920 輸出重構圖像。僅作為示例,圖像解碼器900可實現經修改的H. 264/AVC幀內編碼方案的解 碼側。修改H. 264/AVC幀內編碼方案,以使得文本塊與圖形塊分開地進行標識和解碼。文 本塊是使用本文所述的結構感知的上下文和索引映射來解碼的。如所示的,圖像解碼器900包括多路分解器902和圖像重構器920。一般而言,圖 像解碼器900包括面向圖形的組件904-908和面向文本的組件910-918。面向圖形的組件 包括熵解碼器904、解量化器906和逆DCT 908。面向文本的組件包括多路分解器910、算術 解碼器912、上下文自適應算術解碼器914、上下文生成器/索引重新映射器916和重組器 918。在一示例實施例的操作中,將組合的壓縮位流輸入到多路分解器902。多路分解器 902區分具有圖形塊的壓縮圖形位流和具有文本塊的壓縮文本位流。將圖形位流的圖形塊 轉送到熵解碼器904,并將文本位流的文本塊轉送到多路分解器910。熵解碼器904、解量化器906和逆DCT 908能以本領域已知的方式(例如根據 H. 264/AVC)運行以從圖形位流解碼圖形塊。例如,可由熵解碼器904解碼壓縮圖形位流。另外,可另選地使用非熵解碼。由解量化器906解量化解碼圖形位流,并且用逆DCT 908將 解量化的圖形數據轉換回空間域以產生解碼圖形塊。將解碼圖形塊轉送到重構器920。
多路分解器910從多路分解器902接受具有文本塊的壓縮文本位流作為輸入。多 路分解器910從索引圖的顏色索引中分離出基色并且將它們分開輸出。將各基色轉送到算 術解碼器912。算術解碼器912解碼這些基色。另外,可另選地使用非算術的解碼方案。將 解碼基色轉送到重組器918。上下文生成器/索引重新映射器916有權訪問特定像素的鄰近解碼像素。這些鄰 近解碼像素可由上下文生成器/索引重新映射器916直接查明,或者它們可由一個或多個 其它組件(例如,多路分解器910、上下文自適應算術解碼器914等)查明并且被提供給上 下文生成器/索引重新映射器916。上下文生成器/索引重新映射器916的上下文生成器 從多個預定上下文502中生成匹配這些鄰近解碼像素的上下文。如在(圖5的)表格圖 500中所示,所生成的上下文是一組符號。上下文生成器/索引重新映射器916的索引重新映射器基于所生成的上下文使用 (圖6的)表格圖600確定符號到值的映射602。符號到值的映射包括從相應符號到相應 值的至少一個映射。索引重新映射器還根椐符號到值的映射中的哪個符號對應于特定像素 來將該特定像素重新映射到特定值。上下文生成器/索引重新映射器916隨后輸出該特定 像素的特定值。對于索引圖的每個像素重復該過程。上下文自適應算術解碼器914從多路分解器910接受多個顏色索引并且從上下文 生成器/索引重新映射器916接受每個特定像素的每個重新映射值。上下文自適應算術 解碼器914使用多個顏色索引和該特定像素的特定值解碼索引圖。例如,上下文自適應算 術解碼器914可逐像素地解碼壓縮索引圖,同時由上下文生成器/索引重新映射器916重 新映射解壓索引圖。另外,可另選地使用非算術的解碼方案。應當理解,在上下文自適應算 術解碼器914用適當的解碼方案解壓了索引之后,上下文生成器/索引重新映射器916的 索引重新映射器重新映射該解壓索引。隨后使用該重新映射索引來解壓另一個(例如下一 個)索引,因為當前索引的解壓涉及使用解碼的鄰近索引。上下文自適應算術解碼器914 將解碼索引圖轉送至重組器918。重組器918從算術解碼器912接受解碼基色并從上下文自適應算術解碼器914接 受解碼索引圖并且將它們組合起來以重組文本塊。重組器918將重組文本塊轉送至重構器 920。因此,重構器920從逆DCT 908接收解碼圖形塊并且從重組器918接收解碼文本塊。 重構器920通過組合圖形塊和文本塊來重構圖像。圖10是示出用于對文本塊進行編碼的方法的示例的流程圖。流程圖1000包括 i^一 (11)個框1002-1022。在框1002,將文本塊輸入到編碼過程。在框1004,量化文本塊 的顏色以減少包含在該文本塊中的不同顏色的總數。例如,可將上述兩步量化過程的一個 或兩個步驟應用于文本塊。框1006和1012用于分解文本塊。在框1006,查明量化文本塊的基色。在框1012, 響應于所查明的基色構建文本塊的索引圖。框1008和1010與基色有關。在框1008,(例 如用算術方法)編碼各基色。在框1010,通信傳送(例如發送)文本塊的編碼基色。框1014-1018與索引圖的索引的編碼(包括重新映射)有關。在框1014,對于索 引圖的一特定索引,基于最接近該特定索引的一個或多個鄰近索引值并參考一組預定上下文(例如圖5的表格圖500的上下文)來生成匹配的編碼上下文。在框1016,響應于與該特定索引相對應并被包括在所生成的編碼上下文中的符 號,基于預定義的映射(例如圖6的表格圖600的映射)重新映射該特定索引的值。如果預 定義的映射隨著上下文類別變化,則可響應于與所生成的對應于該特定索引的編碼上下文 相關聯的上下文類別來執行該特定索引的重新映射,其中該上下文類別包括一個或多個索 引映射。每個索引映射將符號映射到值,其中該特定索引對應于這些符號之一。在框1018, 對于索引圖的每個索引重復框1014和1016的動作以將該索引圖轉換成重新映射的索引 圖。
在框1020,(例如用算術方法)編碼經轉換的索引圖。在框1022,通信傳送(例 如發送)文本塊的編碼索引圖。圖11是示出用于對文本塊進行解碼的方法的示例的流程圖1100。流程圖1100包 括九(9)個框1102-1108。框1102-1104與解碼基色有關,并且框1106-1114與解碼索引圖 有關。在框1102,接收編碼基色。在框1104,(例如用算術方法)解碼編碼基色。在框1106,接收編碼索引圖。在框1108,(例如用算術方法)解碼編碼索引圖。在 框1110,對于解碼索引圖的一個特定索引,參考一組預定上下文(例如圖5的表格圖500的 上下文)并且基于最接近該特定索引的一個或多個鄰近索引值來生成匹配的編碼上下文。在框1112,響應于與該特定索引相對應并且被包括在該匹配的編碼上下文中的符 號,基于預定義的索引映射(例如圖6的表格圖600的映射)重新映射該特定索引的值。每 個索引映射將符號映射到值,其中該特定索引對應于索引映射的各符號之一。在框1114,對 于索引圖的每個索引重復框1110和1112的動作以再現該索引圖。在框1116,組合解碼基色和解碼且重新映射的索引圖以重組文本塊。在框1118, 輸出重構文本塊。在附圖中,圖4、7、10和11分別是流程圖400、700、1000和1100。例如, 這些流程圖的實現可被實現為處理器可執行指令。處理器可執行指令可體現為軟件、固件、 硬件、固定邏輯電路、它們的某種組件等等。這些流程圖的動作可在許多不同環境中、通過 多種不同設備、和/或結合各種各樣的不同編碼標準來執行。因此,盡管某些框的描述及其 動作參考了本文所述的其它元素,但它們僅作為示例才這樣做的。描述這些方法的次序不 旨在被解釋為限制,并且可以組合、增加、重新排列和/或省略任何數量的所述框以實現相 應的方法、或者實現與其等效的替換方法。用于文本圖像編碼的示例設備實現圖12是可用于實現文本圖像編碼的示例設備1202的框圖1200。如所示的,兩個 設備1202(1)和1202(d)能夠經由網絡1214參與通信,其中“d”表示整數。盡管兩個設備 1202是明確示出的,但可根據實現使用一個或多于兩個設備1202。作為示例而非限制,網 絡1214可以是因特網、內聯網、以太網、公用網絡、專用網絡、電纜網絡、數字訂戶線(DSL) 網絡、電話網絡、光纖網絡、網格計算機網絡、連接至這樣的網絡的途徑、無線網絡、網狀網 絡、它們的某種組合等等。或者,可直接連接兩個設備1202。一般而言,設備1202可表示任何計算機或具有處理能力的設備,諸如服務器、臺 式、筆記本等計算機;工作站或其他通用計算機設備;數據存儲倉庫裝置;個人數字助理 (PDA);移動電話;游戲平臺;娛樂設備;路由器計算節點;網狀或其它網絡節點;無線接入 點;它們的某種組合;等等。如所示的,設備1202包括一個或多個輸入/輸出(I/O)接口1204、 至少一個處理器1206和一個或多個介質1208。介質1208包括處理器可執行指令 1210。在設備1202的一示例實施例中,I/O接口 1204可包括(i)用于跨網絡1214通信 的網絡接口,(ii)用于在顯示屏幕上顯示信息的顯示設備接口,(iii) 一個或多個人類設 備接口,等等。(i)網絡接口的示例包括網卡、調制解調器、一個或多個端口、網絡通信棧、無 線電等等。( )顯示設備接口的示例包括圖形驅動程序、圖形卡、屏幕或監視器的硬件或軟 件驅動程序等等。(iii)人類設備接口的示例包括通過有線或者無線地通信傳送至人類設 備接口組件1212的那些接口(例如,鍵盤、遙控器、鼠標或其它圖形定點設備等)。一般而言,處理器1206能夠執行、完成和/或以其它方式實現處理器可執行指令, 如處理器可執行指令1210。介質1208包括一個或多個處理器可訪問介質。換言之,介質 1208可包括可由處理器1206執行以使設備1202完成功能執行的處理器可執行指令1210。 處理器可執行指令可體現為軟件、固件、硬件、固定邏輯電路、它們的某種組件等等。因而,可在處理器可執行指令的一般上下文中描述文本圖像編碼的實現。一般而 言,處理器可執行指令包括執行和/或啟用特定任務和/或實現特定抽象數據類型的例程、 程序、應用程序、編碼、模塊、協議、對象、組件、元數據及其定義、圖像數據結構、面向上下文 和映射的數據結構、其它數據結構、應用編程接口(API)等等。處理器可執行指令可位于分 開的存儲介質中,由不同的處理器執行,和/或通過各種傳輸介質傳播或存在。可使用任何可應用的具有處理能力的技術實現處理器1206,并且可以將它實現為 通用處理器(例如中央處理單元(CPU)、微處理器、控制器等)、圖形處理單元(GPU)、專用 或特殊用途處理器、其派生物等等。介質1208可以是作為設備1202的一部分被包括的和 /或可由設備1202訪問的任何可用介質。它包括易失性和非易失性介質、可移動和不可移 動介質、存儲和傳輸介質(例如無線或有線通信信道)、硬編碼邏輯介質、它們的組合等等。 介質1208在體現為制品和/或合成物時是有形介質。例如,介質1208可包括用作處理器可 執行指令1210的長期大容量存儲的盤或閃存陣列、用作當前正在執行和/或以其它方式處 理的指令的短期存儲的隨機存取存儲器(RAM)、網絡1214上的用于傳輸通信的鏈路等等。如明確所示的,介質1208至少包括處理器可執行指令1210。一般而言,處理器可 執行指令1210在由處理器1206執行時使設備1202能夠執行本文所述的各種功能。這些 功能包括但不限于(i)在(分別在圖4、7、10和11的)流程圖400、700、1000和1100中 所示的那些動作;(ii)在圖1-3的不同地描述的過程、場景等中所示的那些動作;(iii)由 圖8和9的編碼器800和解碼器900分別實現的那些動作;(iv)分別涉及圖5和6的上下 文502和映射602的那些動作;本文所述的其它算法的那些動作;它們的組合;等等。在劃分成多個框或其它元素的各附圖中示出了圖1-12的設備、動作、方面、特征、 功能、過程、模塊、數據結構、技術、組件等等。然而,描述和/或示出圖1-12的次序、互連、相 互關系、布局等不旨在被解釋為限制,并且能以實現用于文本圖像編碼的一個或多個系統、 方法、設備、過程、介質、裝置、安排等的任何方式來修改、組合、重新安排、增加、省略任何數 量的框和/或其它元素。盡管已經以專用于結構、邏輯、算法和功能特征和/或附圖的語言描述了系統、介 質、設備、方法、過程、裝置、機制、方案、方式、進程、安排和其它示例實施例,但可以理解,在 所附權利要求書中定義的發明不必受限于上述這些具體特征或動作。相反,上述這些具體特征和動作是作為實現所要求保護的發明的示例形式而公開的.
權利要求
一個或多個包含處理器可執行指令的處理器可訪問有形介質,當所述處理器可執行指令被執行時指示設備執行下列動作從圖像的多個塊中標識文本塊;以及通過對每個文本塊實現下列動作來壓縮所述文本塊將所述文本塊分解成基色和索引圖,所述索引圖具有多個索引值,每個索引值參考一基色以表示文本塊的至少一部分;通過對所述索引圖的所述多個索引值的至少一部分實現下列動作來轉換所述索引圖基于所述索引圖中最接近所述索引值的一個或多個其它索引值并且參考一組預定上下文來生成匹配所述索引值的編碼上下文;以及響應于與所述索引值相對應并且被包括在所述匹配的編碼上下文中的符號,重新映射所述索引值;以及編碼所述經轉換的索引圖以產生壓縮索引圖。
2.如權利要求1所述的一個或多個處理器可訪問介質,其特征在于,所述壓縮動作還 包括下列動作編碼每個文本塊的基色;發送所述編碼基色和所述壓縮索引圖作為位流的一部分。
3.如權利要求2所述的一個或多個處理器可訪問介質,其特征在于,包括各處理器可 執行指令,當所述處理器可執行指令被執行時指示所述設備執行下列其他動作從所述圖像的所述多個塊中標識圖形塊; 使用預定圖像壓縮算法來編碼所述圖形塊;以及 發送所述編碼圖形塊作為所述位流的一部分。
4.如權利要求3所述的一個或多個處理器可訪問介質,其特征在于,所述預定圖像壓 縮算法與H. 264/高級視頻編碼(H. 264/AVC)標準一致。
5.如權利要求1所述的一個或多個處理器可訪問介質,其特征在于 所述匹配的編碼上下文包括多個符號;所述生成動作包括基于所述匹配的編碼上下文為所述一個或多個其它索引值的每個 索引值建立索引值到符號的對應關系;以及所述重新映射動作包括(i)使用所建立的索引值到符號的對應關系來確定對應于所 述索引值的符號,以及(ii)用來自索引映射的所述映射索引值代替所述索引值,所述索引 映射將對應于所述索引值的符號映射到所述映射索引值。
6.一個或多個包含處理器可執行指令的處理器可訪問有形介質,當所述處理器可執行 指令被執行時指示設備執行下列動作查明索引圖的特定索引的一組鄰近索引值,所述索引圖具有各個索引值,每一索引值 參考多個基色中的一個基色以表示文本塊的至少一部分;從多個預定上下文中生成匹配所述鄰近索引值組的上下文,所述匹配上下文包括一組 符號;基于所述匹配上下文和所述特定索引所對應的符號來確定至少一個符號到值的映射, 所述符號到值的映射包括從相應符號到相應值的至少一個映射;以及根據所述符號到值的映射和所述特定索引所對應的符號來將所述特定索引重新映射 到特定值。
7.如權利要求6所述的一個或多個處理器可訪問介質,其特征在于,包括各處理器可 執行指令,當所述處理器可執行指令被執行時指示所述設備執行下列其他動作將所述文本塊分解成所述多個基色和所述索引圖;對所述索引圖的每個索引值重復所述查明、生成、確定、和重新映射的動作以產生經轉 換的索引圖;以及編碼所述經轉換的索引圖以壓縮所述經轉換的索引圖的大小。
8.如權利要求6所述的一個或多個處理器可訪問介質,其特征在于,包括各處理器可 執行指令,當所述處理器可執行指令被執行時指示所述設備執行下列其他動作解碼所述多個基色;解碼所述索引圖;對所述索引圖的每個索引值重復所述查明、生成、確定和重新映射的動作以產生重新 映射的索引圖;以及組合所述多個基色和所述重新映射的索引圖以重組所述文本塊。
9.如權利要求6所述的一個或多個處理器可訪問介質,其特征在于,所述多個預定上 下文中的每一個包括一種或多種符號類型的四個符號,每種相應的符號類型與由所述鄰近 索引值組所建立的相應基色相對應。
10.如權利要求9所述的一個或多個處理器可訪問介質,其特征在于,所述多個預定上 下文包括至少一個具有四個相同的鄰近顏色索引的上下文,至少一個恰好具有三個相同 的鄰近顏色索引的上下文,至少一個具有兩對相同的鄰近顏色索引的上下文,至少一個恰 好具有兩個相同的鄰近顏色索引的上下文,以及至少一個沒有相同的鄰近顏色索引的上下 文。
11.如權利要求9所述的一個或多個處理器可訪問介質,其特征在于,所述鄰近索引值 組包括與所述特定索引相鄰的索引值。
12.如權利要求6所述的一個或多個處理器可訪問介質,其特征在于,所述多個預定上 下文中的每一個包括四個符號,其中的兩個符號沿著相對于所述特定索引的至少一個基本 方向,并且其中的兩個符號沿著相對于所述特定索引的至少一個對角線方向。
13.如權利要求12所述的一個或多個處理器可訪問介質,其特征在于,所述四個符號 包括左符號、左上符號、上符號和右上符號;所述左、左上、上和右上是相對于所述特定索引 定義的。
14.如權利要求6所述的一個或多個處理器可訪問介質,其特征在于,包括各處理器可 執行指令,當所述處理器可執行指令被執行時,指示所述設備執行下列其他動作量化所述文本塊的顏色以減少所述文本塊的熵水平;以及在所述量化動作之后,將所述文本塊分解成所述多個基色和所述索引圖。
15.如權利要求14所述的一個或多個處理器可訪問介質,其特征在于,所述量化動作 包括下面的動作將鄰近相似像素群集到各組中以在局部水平上執行量化。
16.如權利要求15所述的一個或多個處理器可訪問介質,其特征在于,所述量化動作還包括下面的動作將每個組中的像素量化成所述多個基色之一。
17.如權利要求16所述的一個或多個處理器可訪問介質,其特征在于,所述量化動作 還包括下面的動作通過將所允許的最大失真設置為常數,根據所述文本塊的內容來限制所述多個基色的 總數。
18.一種設備,包括多路分解器,所述多路分解器用于接受具有至少一個文本塊的文本位流并且用于輸出 各基色和具有多個編碼索引值的索引圖,所述各基色和所述索引圖表示所述文本塊;上下文自適應解碼器,所述上下文自適應解碼器用于從所述多路分解器接受所述索弓I 圖并用于解碼所述索引圖以產生多個索引值和解碼的像素;上下文生成器和索引重新映射器,所述上下文生成器和索引重新映射器有權訪問所述 文本塊的每個特定索引值的鄰近解碼像素;所述上下文生成器從多個預定上下文中生成匹 配所述鄰近解碼像素的上下文,所述匹配的上下文包括一組符號;所述索引重新映射器用 于基于所述匹配的上下文來確定至少一個符號到值的映射,所述符號到值的映射包括從相 應符號到相應值的映射;所述索引重新映射器還用于根據所述符號到值的映射中的哪個符 號對應于一特定索引值來將所述特定索引值重新映射到一特定值;所述上下文生成器和所 述索引重新映射器用于輸出所述特定索引值的所述特定值;以及其中,所述上下文自適應解碼器用于從所述上下文生成器和所述索引重新映射器接受 所述特定值作為所述特定索引值的解碼像素。
19.如權利要求18所述的設備,其特征在于,還包括解碼器,所述解碼器用于從所述多路分解器接受所述基色并且用于解碼所述基色以產 生解碼基色;以及重組器,所述重組器用于從所述解碼器接受所述解碼基色和從所述上下文自適應解碼 器接受所述解碼像素,所述重組器用于組合所述解碼基色和所述解碼像素以重組所述文本 塊來產生重構文本塊。
20.如權利要求19所述的設備,其特征在于,還包括另一個多路分解器,所述另一個多路分解器用于接收組合的位流并且用于輸出具有所 述至少一個文本塊的文本位流和具有至少一個圖形塊的圖形位流;熵解碼器,所述熵解碼器用于從所述另一個多路分解器接受所述圖形位流并且用于解 碼所述圖形塊以產生解碼圖形塊;解量化器,所述解量化器用于解量化所述解碼圖形塊以產生解量化圖形塊; 逆變換器,所述逆變換器用于變換所述解量化圖形塊以產生重構圖形塊;以及 重構器,所述重構器用于從所述重構文本塊和所述重構圖形塊重構復合圖像的至少一 部分。
全文摘要
文本圖像編碼涉及編碼圖像的文本部分。在一示例實施例中,將圖像的文本塊分解成多個基色和索引圖,該索引圖具有各個索引值,每一索引值參考一基色以表示該文本塊。查明該索引圖的一特定索引的一組鄰近索引值。從多個上下文中生成匹配這些鄰近索引值的上下文。該匹配上下文包括一組符號。基于該匹配上下文和該特定索引所對應的符號確定至少一個符號到值的映射。根據該符號到值的映射和該特定索引所對應的符號將該特定索引重新映射到特定值。
文檔編號H04N7/24GK101816177SQ200880107027
公開日2010年8月25日 申請日期2008年9月12日 優先權日2007年9月13日
發明者F·吳, S·李, W·丁, Y·魯 申請人:微軟公司