專利名稱:利用逐顏色分裂向調色板圖像提供熵約束顏色分裂的方法、系統和計算機程序產品的制作方法
技術領域:
本發明涉及圖像數據的漸進編碼。
背景技術:
具有上千或上百萬顏色的圖片可以表示為真彩色圖像,以諸如BMP(位圖)和JPEG的格式來存儲針對每一個像素的確切顏色。相反, 僅包含少量(典型地最多為256)顏色的圖片能夠被更有效地存儲為色 圖(colormapped)圖像或調色板(palettized)圖像,像公知的GIF (圖 形交換格式)或PNG (便攜式網絡圖形)格式。大部分的網絡圖像具 有GIF或PNG格式。當通過低帶寬通信鏈路瀏覽調色板圖像時,例如通過無線鏈路或 撥號鏈路,該調色板圖像的漸進傳輸能夠支持快速瀏覽,因為其使用 戶能夠在接收到所有漸進編碼的圖像數據之前觀看該圖像的完整版本 (但分辨率低)。然而,即使GIF和PNG均支持交錯格式,該格式通過對圖像進行多通道編碼并在每個通道中跳過多個像素而漸進地細化圖 像分辨率,但是就每個像素的顏色信息漸進地細化為無損失恢復的嚴 格意義上來說,交錯的GIF和PNG不具有漸進格式。Rauschenbach在他的MCQ (移動可視化顏色量化格式)方法(U. Rauschenbach, "Compression of palettized images with progressive coding of the color information", in Proc SPIE Visual)中研究了針對調 色板圖像的顏色信息的漸進細化。Comwwm'ca"ows am/ /mage /VoceswVzg (TC7尸/4( 卿,Perth, Australia, 2000年6月,下文稱作[1]。與交錯GIF和PNG格式不同,MCQ 的顏色信息的細化是逐比特平面而進行的,并且允許以良好細節對形狀(例如文本)進行早期識別,通常是在對壓縮比特流的小部分進行 解碼之后。盡管MCQ支持和分辨率細化形成對照的顏色信息的漸進細化,然而其僅實現了與GIF或PNG格式可比較的壓縮率。為了提高壓 縮率并同時支持調色板圖像的漸進傳輸,Chen等人(X.Chen, S.Kwong, 禾口J.Feng, "A new compression scheme for color-quantized images",IEEE Transactions on Circuits and System for Video Technology,Vol.l2,No.l0,pp.904-908,Oct.2002,下文稱作[2])提出了一 種基于MCQ的新的顏色細化方案,而且Orchard和Bouman開創了基于 失真的分層分裂顏色量化算法(Orchard和Bouman, "Color quantization of images", T)wwac"ora on 5Vgwa/ 尸race肌'"g,Vol.39,No.l2,pp.2677-26卯,Dec.l991,下文稱作[3])。與逐比特平面地對 顏色信息進行細化的MCQ不同(比特平面的個數與調色板的顏色深度 相等),Chen的算法逐顏色地對顏色進行進行細化。針對調色板圖像 的無損壓縮,[2]中提出的顏色分裂算法實現了相比于GIF或PNG格式 的大約30-40%的尺寸減小,而且還具有支持漸進傳輸的良好特征。發明內容根據本發明的實施例的方面,提供了一種使用數據處理系統對具 有被分配給像素集的M個不同顏色的數字化彩色圖像進行漸進編碼的 方法,通過把所述M個不同顏色中的每一個分配給所述像素集中至少 一個像素而提供所述數字化彩色圖像,所述方法包括(a)通過提供 至少一個起始葉節點來初始化樹結構,所述起始葉節點包括來自所述 像素集的像素子集;(b)針對每一個起始葉節點,確定至少一個代表 顏色;以及(c)通過如下步驟增大所述樹結構(i)基于相關聯的可 實現代價,選擇葉節點n變為與兩個新的葉節點相鏈接的非葉節點n, 其中所述相關聯的可實現代價通過如下步驟來確定1)確定由把所 述葉節點變為與兩個新的葉節點相鏈接的非葉節點而產生的相關聯的 失真改變;2)確定由把所述葉節點變為與兩個新的葉節點相鏈接的非 葉節點而產生的相關聯的熵速率增加;以及,3)基于所述相關聯的失 真改變以及所述相關聯的熵速率增加,確定所述相關聯的可實現代價;(ii)通過把n中的每一個像素分配給所述兩個新的葉節點之一而創建 兩個新的葉節點;(iii)針對所述兩個新的葉節點中的每一個,確定代 表顏色;以及(iv)對與葉節點n相關聯的索引信息、所述兩個新的葉 節點的代表顏色、以及與n中每一個像素有關的信息進行編碼。根據本發明的實施例的方面,提供了一種由計算機使用的計算機 程序產品,對具有被分配給像素集的M個不同顏色的數字化彩色圖像 進行漸進編碼,通過把所述M個不同顏色中的每一個分配給所述像素 集中相關聯的像素子集而提供所述數字化彩色圖像,所述計算機程序 產品包括記錄介質;以及所述記錄介質上記錄的裝置,用于指揮計 算機系統執行如下步驟(a)通過提供至少一個起始葉節點來初始化 樹結構,所述起始葉節點包括來自所述像素集的像素子集;(b)針對 每一個起始葉節點,確定至少一個代表顏色;以及(C)通過如下步驟 增大所述樹結構(i)基于相關聯的可實現代價,選擇葉節點n變為與 兩個新的葉節點相鏈接的非葉節點n,其中所述相關聯的可實現代價通 過如下步驟來確定1)確定由把所述葉節點變為與兩個新的葉節點 相鏈接的非葉節點而產生的相關聯的失真改變;2)確定由把所述葉節 點變為與兩個新的葉節點相鏈接的非葉節點而產生的相關聯的熵速率 增加;以及,3)基于所述相關聯的失真改變以及所述相關聯的熵速率 增加,確定所述相關聯的可實現代價;(ii)通過把n中的每一個像素 分配給所述兩個新的葉節點之一而創建兩個新的葉節點;(m)針對所 述兩個新的葉節點中的每一個,確定代表顏色;以及(iv)對與葉節 點n相關聯的索引信息、所述兩個新的葉節點的代表顏色、以及與n中 每一個像素有關的信息進行編碼。根據本發明的另一實施例,提供了一種對具有被分配給像素集的 M個不同顏色的數字化彩色圖像進行漸進編碼的系統,通過把所述M 個不同顏色中的每一個分配給所述像素集中相關聯的像素子集而提供 所述數字化彩色圖像,所述系統包括記錄介質;以及包括用于執行 如下步驟的處理器的裝置(a)通過提供至少一個起始葉節點來初始 化樹結構,所述起始葉節點包括來自所述像素集的像素子集;(b)針 對每一個起始葉節點,確定至少一個代表顏色;以及(c)通過如下步驟增大所述樹結構(i)基于相關聯的可實現代價,選擇葉節點n變為 與兩個新的葉節點相鏈接的非葉節點n,其中所述相關聯的可實現代價 通過如下步驟來確定I)確定由把所述葉節點變為與兩個新的葉節點 相鏈接的非葉節點而產生的相關聯的失真改變;2)確定由把所述葉節 點變為與兩個新的葉節點相鏈接的非葉節點而產生的相關聯的熵速率 增加;以及,3)基于所述相關聯的失真改變以及所述相關聯的熵速率 增加,確定所述相關聯的可實現代價;(ii)通過把n中的每一個像素 分配給所述兩個新的葉節點之一而創建兩個新的葉節點;(iii)針對所 述兩個新的葉節點中的每一個,確定代表顏色;以及(iv)對與葉節 點n相關聯的索引信息、所述兩個新的葉節點的代表顏色、以及與n中 每一個像素有關的信息進行編碼。
為了更好地理解這里描述的各個實施例以及更加清楚地展示如 何實現這些實施例,僅作為示例來參考示出至少一個典型實施例的附 圖,其中圖l在流程圖中示出了根據本發明實施例的方面用于在葉節點之 間利用逐顏色分裂對調色板圖像進行熵約束顏色分裂的總算法;圖2在流程圖中示出了根據本發明實施例的另一方面用于在葉節 點之間利用逐顏色分裂對調色板圖像進行熵約束顏色分裂的總算法;圖3在流程圖中示出了圖1和2中的方法的初始化子過程;圖4在流程圖中示出了圖1中的方法的子過程的示例,其中葉節點 被分裂;圖5在流程圖中示出了圖2中的方法的子過程的示例,其中葉節點 被試驗性地分裂;圖6在流程圖中示出了圖2中的方法的子過程,其中葉節點被永久 地分裂;圖7在流程圖中示出了圖1中的方法的子過程的變體,用于分裂葉 節點;圖8在流程圖中示出了圖1中的方法中分裂葉節點的另 一變體;圖9在流程圖中示出了圖1和2中的方法的子過程,其中對新的代 表顏色進行漸進編碼;圖10在框圖中示出了根據本發明實施例的計算機系統; 圖11在框圖中更加詳細地示出了圖10中的計算機系統的處理器;圖12a-d在圖表中示出了根據本發明實施例的方面對葉節點進行 漸進分裂以提供顏色數據的漸進編碼;圖13是移動設備的典型實施例的框圖;圖14是圖13中的移動設備的通信子系統組件的典型實施例的框具體實施方式
具有上千或上百萬顏色的圖片可以表示為真彩色圖像,以諸如 BMP(位圖)和JPEG的格式來存儲針對每一個像素的確切顏色。相反, 僅包含少量(典型地最多為256)顏色的圖片能夠被更有效地存儲為色 像或調色板圖像,像公知的GIF (圖形交換格式)或PNG (便攜 式網絡圖形)格式。大部分的網絡圖像具有GIF或PNG格式。當通過低帶寬通信鏈路瀏覽調色板圖像時,例如通過無線鏈路或 撥號鏈路,該調色板圖像的漸進傳輸能夠支持快速瀏覽,因為其使用 戶能夠在接收到所有漸進編碼的圖像數據之前觀看該圖像的完整版本 (但分辨率低)。然而,即使GIF和PNG均支持交錯格式,該格式通過 對圖像進行多通道編碼并在每個通道中跳過多個像素而漸進地細化圖 像分辨率,但是就每個像素的顏色信息漸進地細化為無損失恢復的嚴 格意義上來說,交錯的GIF和PNG不具有漸進格式。Rauschenbach在他的MCQ (移動可視化顏色量化格式)方法(U.Rauschenbach, "Compression of palettized images with progressive coding of the color information", in尸rac )S尸/fi P sMa/ Commwm'ca"o似 aw//mage尸racww'"g (TCZP20W」,Perth, Australia,June 2000,下文稱作[IP中研究了針對調色板圖像的顏色信息的漸進細化。與交錯GIF和 PNG格式不同,MCQ的顏色信息的細化是逐比特平面而進行的,并且 允許以良好細節對形狀(例如文本)進行早期識別,通常是在對壓縮比特流的小部分進行解碼之后。盡管MCQ支持和分辨率細化形成對照的顏色信息的漸進細化,然而其僅實現了與GIF或PNG格式可比較的 壓縮率。為了提高壓縮率并同時支持調色板圖像的漸進傳輸,Chen等 人 (X.Chen, S.Kwong,禾口 J.Feng , "A new compression scheme for color-quantized images",IEEE Transactions on Circuits and System for Video Technology,Vol.l2,No.l0,pp.904-908,Oct.2002,下文稱作[2])提出 了一種基于MCQ的新的顏色細化方案,而且Orchard和Bouman開創了 基于失真的分層分裂顏色量化算法(Orchard和Bouman, "Color quantization of images", ZE五51 !Tra似ac"ora iSVg"a/ 尸racesw'wg, Vol.39,No.l2,pp.2677-2690,Dec. 1991,下文稱作[3])。與逐比特平面地對 顏色信息進行細化的MCQ不同(比特平面的個數與調色板的顏色深度 相等),Chen的算法逐顏色地對顏色進行進行細化。針對調色板圖像 的無損壓縮,[2]中提出的顏色分裂算法實現了相比于GIF或PNG格式 的大約30-40%的尺寸減小,而且還具有支持漸進傳輸的良好特征。[2]、 [3]中的顏色分裂算法僅基于失真標準來分裂代表顏色,而且 完全不考慮速率約束。另一方面,調色板圖像中的每一個顏色是3D矢 量。顏色量化或顏色分裂實質上是矢量量化(VQ)問題(Y,Linde,A,Buzo, 禾口 R.Gray, "An algorithm for vector quantizer design", 7>ara.Commzm/ca"o"s, Vol.COM國28,No. 1 ,pp.84-95,Jan. 1980,下文稱作 [4])。由Chou等人提出的熵約束矢量量化(ECVQ)或有條件熵約束 矢量量化 (CECVQ ) ( P.Chou,T丄ookabaugh,禾Q R.Gray, "Entropy-constrained vector quantization", 7)-a"&y4cows.,5"peec/2,/〃 kSVg"a/戶rac^y/"g,Vol.37,No.l,pp.31-42,Jan.1989,下文稱作[5],以及 P.Chou禾卩T丄ookabaugh, "Conditional entropy constrained vector quantization",Proceeding ICASSP 1990,pp. 197-200,Apr. 19卯,下文稱作 [6])可以將失真和熵速率(entr叩ymte)進行折衷。為了減小常規矢 量量化算法的復雜度并使其在實際應用中可行,已經開發出樹結構矢 量量化(TSVQ)算法(A.Buzo,A.Gray,Jr.,R.Gray和J.Markel, "Speech coding based upon vector quantization", 7> 肌y4co肌,S/ eec/2,am/ SVgra/尸racesw'"g,Vol.ASSP-28,No.5,pp.562-574,OcU980,下文稱作[7],E.Riskin禾口R.Gray, "A greedy tree growing algorithm for the design of variable rate vector quantizers", rram^c//ora o" iSVg加/尸race^/"g,Vol.39,No.ll,pp.2500-2507,Nov.1991,下文稱作[8],以及 M.Mahesh,W.Pearlman禾卩L丄u, "Variable-rate tree-structured vector quantizers", Z£^E 7>am. /"/o潔加'ow r/7eor7, Vol.41, No.4, pp.917-930, Jul.l995,下文稱作[9])。在該方法中,把ECVQ/CECVQ和TSVQ的理念 應用于基于二叉樹的顏色分裂情景,并開發出針對調色板圖像的四種 熵約束顏色分裂算法,其不僅導致漸進傳輸方案,而且在R-D (速率-失真)意義上能夠比[2]中的方案好得多。本文檔的余下部分組織如下。文本部分首先描述無條件熵約束顏 色分裂問題,然后在實施例中提供了分別使用固定的拉格朗日乘數和 動態確定的拉格朗日乘數的兩種分裂算法。在部分ni中,根據另一實 施例,描述了使用固定的拉格朗日乘數的逐像素有條件熵約束顏色分 裂算法。在部分IV中,根據另一實施例示出了逐顏色有條件熵約束顏 色分裂算法,其增加了如下約束原始圖像中具有相同顏色值的所有 像素能夠在分裂過程期間通過相同的代表顏色值進行更新。II.無條件熵約束顏色分裂[2]和[3]中使用二叉樹結構(相比于線性結構,二叉樹結構能夠保 持顏色索引之間的更多相關)來表示調色板圖像的顏色的關系,以便 劃分色圖,或等效地,在編碼過程期間漸進地分裂代表顏色。假定調 色板圖像的色圖為0=^。,^,...(^,},其中M是原始調色板圖像中不同顏色的個數。每一個顏色矢量(或被稱作顏色條目)Cj對應于顏色值(ri, gi, b》。把f (Ci)定義為Ci在給定圖像中出現的次數。目標是設 計基于二叉樹的顏色分裂算法,該算法能夠最小化受到無條件熵約束 的失真。該顏色分裂算法劃分色圖C或漸進地分裂C的代表顏色,直到 無損地重構原始調色板圖像或達到用戶指定的目標顏色數。該劃分過 程產生了動態的二叉樹,其每一個葉節點n對應于C的子集Sn,從而C sU,,^且^ f|Sn 一0,其中兩-",Os仿,"《W且N是動態二叉樹的葉節點總數。把q。表示為Sn的代表色,其被定義為Sn的質心。這樣, 動態二叉樹連同qn (0SW《jV)給出了樹結構的矢量量化器,使得 隨著動態二叉樹增大,當前的矢量量化器完全嵌入后續的高速率矢量 量化器。關鍵的問題是怎樣增大動態二叉樹。從根節點(表示原始色圖C)開始,通過每次分裂期望的葉節點 而增大動態二叉樹。進行選擇和分裂期望的葉節點的過程,以最小化 拉格朗日代價(1》其中,D和R分別是在把一個葉節點分裂為兩個新的葉節點后與新創建 的動態二叉樹相對應的重構的調色板圖像的失真和熵。可針對整個分 裂過程中被分裂的或固定的每一個葉節點而動態地確定拉格朗日乘數 X (表示針對失真的速率折衷)。在這部分中考慮這兩種情況。設TN是具有N個葉節點的二叉樹,而TN+,是通過把Tw的葉節點n分裂為兩個子節點n'和n"而從TN中產生的二叉樹。設^&^")是當顏色條目c,翻(n,仏A)eC被代表顏色《"-(H人)所替代時的顏色量化誤差。具體地,A) Jc廣^『-(。-。2 +— grt)2 +- 4" (2)這樣,把葉節點n分裂為n'和n"所引起的失真減小是c封, r舒^ r楚^其中Dn和Dn+ ,分別是與樹Tn和TN+1相對應的失真;qn,和q。,,分別是Sn,和sj勺代表顏色。注意,《,-^'^15 '和^門^' 0。此外,設/(&)s 2/僅)肌')一 2/(c')A乾 以及 分別是當把S。劃分為Sn,和S。,,時其顏色索引落入Sn,和Sn,,的像素的個數,且表示為/6^=/^》+ /0^')。這樣,從把葉節點n分裂為n'和n"所產生的無條件熵的增量可以被表示為M,v - 4"—及"-/(&)l。g2(^|) 一 /(&)bg2(^|)《4)其中RN和RN+,分別是與樹TN和TV,相對應的熵。注意,在這個基于二 叉樹的顏色分裂中,當對葉節點n進行分裂時,A/V和^w都不取決 于其他葉節點。可以向葉節點n的分裂應用迭代過程,以實現最小代價。把具有 固定X的無條件熵約束顏色分裂算法概括如下。微/:尉腐忠艇姿鋪艦鵬分體茲 步驟l-初始化給定調色板圖像I和目標顏色數Nt,t或目標速率Rt,t,獲得僅具 有根節點的二叉樹T,。與根節點相對應的代表顏色是原始色圖的質心, 即c" 翻,化)其中,S。-C且^ 凾 。計算與S。相關聯的簇(cluster)協方差矩陣的主特征值,如[2]和[3]中所討論。設N4; R產0;且A-^, 其中a^是C的方差。選擇收斂標準s并把根節點標為葉節點。步驟2-找到對于分裂每一個葉節點的最小可實現代價 對于TN的每 一 個葉節點n ,使用如下步驟根據試驗性地 (tentatively)分裂n來找到最小可實現代價。 ,歡/把A;初始化為A^+A'&。對于每一個顏色e,e&,基于有偏失真測量而把A分配給葉節點n,或n"。 g卩,在如下條件成立時把Cf分配給n,<formula>formula see original document page 20</formula>否則,把A分配給n"。注意,對于第一次迭代來說,gn',^",/TS",和/(Sn';J是未知的。取而代之的是,第一次迭代使用[2]中描述的基于失真的標準來分裂節點n。 ,激j計算葉節點n'和n"的新的代表顏色qn,和q^作為在步驟2.2中獲得 的新的劃分Sn,和Sn,.的質心,并更新/〖S/^和/〖S"')1。使用(3)和(4)來計算從當前分裂中得到的和^i w ,這導致新的代價<formula>formula see original document page 20</formula>或Sn,或Sn"中僅包括一個顏色條目,則對n進行分裂所得到的最小可實現代價被看作j"。否則,利用j"來取代j"〃,并轉到步驟2.2進行 進一步的迭代。步驟3-把TN增大至T,從所有葉節點中,找到實現最小代價的葉節點n ,即<formula>formula see original document page 20</formula>通過如下迭代過程對n進行分裂以獲得新的二 叉樹T,。把j^初始化為^+a'^。 ,熟2對于每一個顏色條目c,S&,基于有偏失真測量(6)而把A分配 給葉節點n'或n"。注意,對于第一次迭代來說,(6)中的qW,qfn",iYS^和/TSr^是未知的。取而代之的是,第一次迭代使用[2]中描述的基于
失真的標準來分裂節點n。
步激j
計算葉節點n'和n"的新的代表顏色qn,和q。",作為在步驟3.2中獲得
的新的劃分Sn,和Sn,'的質心,并更新/6^')和/T^W。使用(3)和(4)
來計算從當前分裂中得到的Ai 和Mw ,這導致新的代價 - (A; — ^w) +入'(滅W + Mw)。如果|4 二 /,|〃。w w或Sn,
或Sn,,中僅包括一個顏色條目,則停止分裂葉節點n的迭代,把節點n擴 展為兩個新的葉節點,分別被標為n'和n",并轉到步驟4。否則,利用
'人 來取代*^",并轉到步驟3.2進行進一步的迭代。
步驟4-漸進地傳輸(或僅是編碼,然后比如說進行存儲)顏色更 新比特
發出被分裂的節點索引(即n)、新的代表顏色(即qn,和qn,,)以及 針對其顏色落入Sn的像素的顏色更新比特。根據/ w,,3及w+M,、'更新
總比特速率。如果A^/〈A^^,或7 w+,4一,則根據^w"醫Av —^w更
新新的失真;把N增大1;然后回到步驟2,以進行進一步的分裂。否 則,停止分裂和傳輸過程。
在上述分裂過程期間,算法l采用固定的人,其物理含義是失真-速率函數的斜率。另一種方法是使用可變的X并執行分裂,以找到總失 真減小和速率增大之間的良好折衷。換句話說,當把Tw增大為T^,時, 旨在使X最大化,其中在R中每一個葉節點處所有可能的迭代,并越
過TN中所有的葉節點,在Tw中的每一個葉節點處,通過迭代過程找到其最大可實現的人,這 與當對節點進行分裂時所使用的人類似。具體地,該分裂以假定X為零 而開始。找到針對這個M直的最小化(1)的兩個代表顏色。計算失真 的減小和速率的增大。新的人值是失真減小與速率增大之比。現在,利 用這個新的入值來重新進行分裂。該迭代過程繼續,直到X不再增大。 然后,把收斂值看作這個葉節點處的最大可實現的人。待分裂的實際的 葉節點是TN的所有葉節點中給出最大收斂值的葉節點。下文的算法2 給出了詳細描述。
微2,赫被務定微艦殺嫌艦鵬分鄉法
步驟l-初始化
給定調色板圖像I和目標顏色數N^get或目標速率R^get,獲得僅具 有根節點的二叉樹T,。與根節點相對應的代表顏色是可使用(5)來計 算的色圖的質心。設NN1; R產0;且"》<^。選擇收斂標準S并把根 節點標為葉節點。
步驟2-針對每一個新的葉節點,找到最大可實現的X 針對Tw中每一個葉節點n,使用如下步驟來從n的分裂中找到最大 可獲得的入rr,欲,好似對葉節點n進行分裂。 ,歡J
設&=0,其中&中的f是迭代索引。
針對每一個顏色'c'e&,基于有偏失真測量,把C,分配給有意向 的新的葉節點n,或n"。 g卩,在如下條件成立時把c,分配給n,
"(c,O - A tog,(^|4) *昨4.》-《i灘2(^1^) 《8》 /(&)
否則,把^分配給n"。注意,對于第一次迭代來說,gn'和q^"是未知
的。取而代之的是,第一次迭代使用[2]中描述的基于失真的分裂標準 來分裂葉節點n。備選地,針對第一次迭代,可以把^擾動為gn',^"。即使對于第一次迭代來說/(S^和/(^n':)也是未知的,然而該算法
工
作良好,因為針對第一次迭代假定^為零。 步衡
把葉節點n'和n"的新的代表顏色qn,和c^分別更新為在步驟2.2中
獲得的新的劃分sn-和sn"的質心,并把iTs^和/f SW分別更新為其顏
色落入在步驟2.2中獲得的Sn,和Sn-、的像素的個數。使用(3)和(4)
艮A;
來計算從當前分裂中產生的^^w和Ai w。如果 w ,則設 疋—Ai^
^w,然后回到步驟2.2進行進一步的迭代。否則,把當前的《作 為葉節點n處的最大可實現5V. max 。
步驟3-把Tw增大至Tw+,
從TN的所有葉節點中,找到具有最大值Xn,max的葉節點n,即
^j^mt g & ,
"。W一 。通過如下迭代過程對葉節點n進行分裂以獲得新
的二叉樹TV,。 ,熟/
把J。W初始化為+入w、,mx ,及W 。
對于每一個顏色條目c,e&,基于所產生的拉格朗日代價而把c, 分配給有意向的新的葉節點n'或n"。即,在如下條件成立時把c,分配 給n,:
"(e,,《》一 \鵬k>g3 (^^) s-人,iog2(^|^) (9)否則,把A分配給節點n"。注意,對于第一次迭代來說,
^',qv',iT^,和"S^是未知的。取而代之的是,第一次迭代使用 [2]中描述的基于失真的標準來分裂節點n。
把葉節點n'和n"的新的代表顏色qn,和qn,,分別更新為在步驟3.2中
獲得的新的劃分Sn,和Sn,,的質心,并把/(^^和/6^^分別更新為其顏
色落入在步驟3.2中獲得的Sn,和S^的像素的個數。使用(3)和(4) 來計算從當前分裂中得到的和Ai w ,這導致新的代價
J卿 (力《 — 〉 +.(^W + )。如果P必一 J,IZ J麵S f , 或
或Sn,,中僅包括一個顏色條目,則停止葉節點n的分裂的迭代,把節點n
擴展為兩個新的葉節點,分別被標為n'和n",并轉到步驟4。否則,利 用J來取代/ ,,并轉到步驟3.2進行進一步的迭代。
步驟4-漸進地傳輸(或僅是編碼,然后比如說進行存儲)顏色更 新比特
發出被分裂的節點索引(即n)、新的代表顏色(即(V和qn,,)以及
針對其顏色落入Sn的像素的顏色更新比特。根據i w,,"/^+A^'更新
總比特速率。如果^+/<4,或/ 脂</^一,則根據細Dw - ^^更
新新的失真;把N增大1;然后回到步驟2。否則,停止分裂和傳輸過 程。
IH.有條件熵約束顏色分裂逐像素的分裂
在實際應用中,通常采用像在[2]中使用的基于上下文的算術編 碼,在算法1和2中的熵編碼階段中對更新比特進行編碼,以獲得高壓 縮的增益。然而在算法1和2中,所使用的速率約束是無條件熵。如果可以使用有條件熵作為顏色分裂算法中的約束,則分裂過程中所使用 的熵可以更精確地與編碼階段中的熵相匹配。因此,可以獲得在速率-失真的意義上的更好結果。在這個部分中,將把具有固定的人的無條件 熵約束顏色分裂算法擴展到有條件熵約束的情景。
對于有條件熵約束顏色分裂,將考慮兩種單獨的情況。在下文中 分別將其稱為逐像素分裂和逐顏色分裂。逐像素分裂的含義是,在分 裂過程中,原始圖像中具有相同顏色的像素可以被映射到不同的葉節 點。換句話說,基于不同的上下文,在分裂過程中,原始圖像中具有 相同顏色的像素可以由不同的代表顏色進行更新。針對具有M個不同 顏色的調色板圖像來說,通常,即使原始的調色板圖像最后可以無損 地重構,然而在M-1個節點分裂步驟之后,可能不會極好地重構原始 圖像。另一方面,逐顏色分裂的含義是,在分裂過程中,原始圖像中 具有相同顏色的所有像素必須被映射到相同的節點。換句話說,在分 裂過程中,原始圖像中具有相同顏色的所有像素將會由相同的代表顏
色來更新。針對具有M個不同顏色的調色板圖像,在M-1個節點分裂
步驟之后,保證會極好地重構原始圖像。在這個部分中,將會發展逐
像素有條件熵約束顏色分裂算法,并在部分iv中考慮逐顏色有條件熵
約束顏色分裂算法。在這兩種情況下,僅考慮使用固定的x。 無條件熵約束顏色分裂算法和有條件熵約束顏色分裂算法之間
的主要不同是(4)中所示的熵速率增大Ai w的計算以及(6)中所示 的有偏失真測量。為了在分裂過程期間計算有條件熵速率,為了進行 上下文建模,可以使用任意數目的相鄰像素。在下文中,僅計算以左 邊和上邊的像素為條件的有條件熵速率。向更多相鄰像素的擴展是直 接的。
如其名稱所示,逐像素有條件熵約束顏色分裂算法以逐像素的方 式更新顏色信息。設^是C中的像素p的原始顏色,并把甲n表示為分
裂過程期間與葉節點n相對應的像素集。對于像素P^1^,,其左邊和
上邊的相鄰像素的代表顏色索引在當前重構圖像中是u和v,把p映射到 葉節點n'導致上下文u和v之下的熵增大如下,<formula>formula see original document page 26</formula>
其中<formula>formula see original document page 26</formula>分別是根據在前迭代在上下文u和v之下被
映射到葉節點n'或n"的像素的個數。類似地,把p映射到葉節點n"導致 在上下文u和v之下的熵增大如下,
基于所產生的增大的拉格朗日代價,把每一個像素^e^',單獨地
映射到葉節點n'或n"。逐像素有條件熵約束顏色分裂算法概括如下。 雜丄.^緒定微艦像素絲鋪棘鵬分麥微 步驟l-初始化
給定具有色圖C的調色板圖像I以及目標顏色個數NtMget或目標速 率Rtarget,獲得僅具有根節點的二叉樹T"把N初始化為1。設杓》0且
D,s"2。計算代表顏色^和與根節點相關聯的簇協方差矩陣的主特征 值。選擇收斂標準S并把根節點標為葉節點。
步驟2-找到針對分裂每 一 個葉節點的最小可實現代價
對于Tw的每一個葉節點n,使用如下步驟根據試驗性地分裂n來找 到最小可實現代價。 ,敷J
把^:初始化為<formula>formula see original document page 26</formula>對于每一個像素PG甲",其左邊和上邊的相鄰像素的代表顏色在當前重構圖像中是u和v,基于有偏失真測量而把p映射到葉節點n'和 n"。即,在如下條件成立時把p映射到節點n,.-n)+a ' i/:,' s ~,^.)+a '" 《12)否則,把p映射到節點n"。注意,對于第一次迭代來說,^7',Qn",^r和H^是未知的。取而代之的是,第一次迭代使用基于失真的標準。 ,歡j更新葉節點n'和n"的新的代表顏色Q/r'和Qn"以及統計量/t^(甲"')禾口/",f^n':)。使用(io)禾n (io來計算H7和/'C計算atv禾[]A/ w,其中碼j"^")一J "(W)-;d(c/^"') (13)以及# (14)這導致新的代價 J^-OV-a^)+a'(及w + m》)。如果l"C""'C^'/l《e或者^lV或qV'中僅包括一個像素,則來自分裂n 的最小可實現代價是/"。否則,利用j"來取代j"",并回到步驟2.2以進行進一步的迭代。步驟3-把Tw增大至T,從所有葉節點中,找到實現最小代價的葉節點n ,即* 岬^/恥^"。通過如下迭代過程對n進行分裂以獲得新的二叉樹Tw,。把,w初始化為D'w+A'^w。對于每一個像素^e11^ ,其左邊和上邊的相鄰像素的代表顏色在當前重構圖像中是U和V,使用有偏失真測量(12)而把p映射到葉節點n,或n"。注意,對于第一次迭代來說,(12)中的e^,q^",7和Hy是未知的。取而代之的是,第一次迭代使用基于失真的標準。更新葉節點n'和n"的新的代表顏色和C/n"以及統計量 /""甲r》禾口/c^f^。久使用(10)和(11)來計算^C"'和〃y'。使用(13)和(14)計算由當前分裂中產生的^w和A^,這導致新的代價J^s(Z)w-Ai)w) + A'(及w + Mw)。如果IJ說、J譜I〃必ss或者W/V或^""中僅包括一個像素,則停止分裂節點n的迭代,把節點n' 和n"標為新的葉節點,并到達步驟4。否則,利用j來取代/〃,并"new " "W回到步驟3.2以進行進一步的迭代。步驟4-漸進地傳輸(或僅是編碼,然后比如說進行存儲)顏色更 新比特發出被分裂的節點索引(即n)、新的代表顏色(即qn、和qn,,)以及 針對所有像素^e甲"的顏色更新比特。根據^,,》心+ ^.、'更新總比特速率。如果^+/<^。,或^+/</^。一,則根據A/^更新新的失真;把N增大1;然后回到步驟2,以進行進一步的分裂。否則, 停止分裂和傳輸過程。IV.有條件熵約束顏色分裂逐顏色分裂逐像素分裂的含義是,通過不同的中間代表顏色,原始圖像中具 有相同顏色值的像素可以更新為其最終顏色。換句話說,在分裂過程 期間,原始圖像中具有相同顏色的像素可以被映射為不同節點。為了 確保原始圖像中的相同顏色在分裂過程期間由相同的代表顏色更新, 可以添加這樣的約束在分裂過程期間,原始圖像中具有相同顏色的 所有像素將被映射到相同的節點。這導致逐顏色有條件熵約束分裂算 法,將在這個部分中詳細描述。在把葉節點n分裂為n'和n"期間,當前的重構圖像中與顏色條目 相對應的像素可以具有不同的上下文u和v,其中每一個像素P(^-c,)與(10)和(11)中定義的熵f/r或Hy相對應。把A分 配給n'導致每像素熵增大為<formula>formula see original document page 29</formula>類似地,把c,分配給n"導致每像素熵增大為<formula>formula see original document page 29</formula>仍把每一個顏色條目e,S&映射到葉節點n'或n",以最小化迭代 過程中所產生的拉格朗日代價。逐顏色有條件熵約束顏色分裂算法概 括如下。算法4:具有固定的X的逐顏色有條件熵約束顏色分裂算法步驟l-初始化給定具有色圖C的調色板圖像I以及目標顏色個數N^get或目標速率Rta妙,獲得僅具有根節點的二叉樹T,。設S。sC且W-l。設《》0且A"一。使用等式(5)計算S。的代表顏色以及與So相關聯的簇協 方差矩陣的主特征值。選擇收斂標準S并把根節點標為葉節點。步驟2-找到針對分裂每一個葉節點的最小可實現代價 對于TN的每一個葉節點n,使用如下步驟根據試驗性地分裂n來找 到最小可實現代價。把人;初始化為!V + A'及w。 ,歡2對于每一個顏色e,e&,基于有偏失真測量把《分配給葉節點n' 或n"。即,當滿足如下條件時把e,分配給n':傘,,^)+》h:! a'io (17)否則,把A分配給n"。注意,對于第一次迭代來說,A,和邱 是未知的。取而代之的是,第一次迭代使用基于失真的標準。更新葉節點n'和n"的新的代表顏色g/f和q^'以及統計量 /^卩Vj和/",v,"';l。使用(15)禾Q (16)來計算J^和w,,然 后使用(10)和(11)。使用(3)和(14)計算從當前分裂中產生的A£ ,v 和Mw,這導致新的代價J: "(A/—A^w) + A'(及w+^i^)。如果<formula>formula see original document page 31</formula> 或者&或^中僅包括一個像素,則來自分裂n的最小可實現代價是J"。否則,利用J"來取代J"〃,并回到步驟2.2恥w 恥w " oW以進行進一步的迭代。步驟3-把Tw增大至T,從所有葉節點中,找到實現最小代價的葉節點n ,即 4 J二。通過如下迭代過程對n進行分裂以獲得新的二叉樹丁n+1 。把厶w初始化為DW+A'&。對于每一個顏色c'e&,使用有偏失真測量(17)把c,分配給葉節點n'或n"。注意,對于第一次迭代來說,^'" H》和^0是未知 的。取而代之的是,第一次迭代使用基于失真的標準。更新葉節點n'和n"的新的代表顏色g^和以及統計量/"y(^"')和/",v(^V'人使用(15)禾P (16)來計算風,禾Q片〉。使 用(3)和(14)計算由當前分裂中產生的^w和A~,這導致新的代價J^-()w-ADw) + A'(及w+碧w)。如果k磁-J膀l〃必se或者Sn'或Sn,,中僅包括一個像素,則停止分裂節點n的迭代,把節點n'和n"標 為新的葉節點,并到達步驟4。否則,利用^^來取代J^,并回到步 驟3.2以進行進一步的迭代。步驟4-漸進地傳輸(或僅是編碼,然后比如說進行存儲)顏色更 新比特 -發出被分裂的節點索引(即n)、新的代表顏色(即qn,和q。,,)以及針對其顏色落入^的像素的顏色更新比特。根據i w,,"《w+Ai^更新總比特速率。如果^+/<7\^卿或/^+/<&,,則根據- A - ^w更新新的失真;把N增大1;然后回到步驟2,以進行進一步的分裂。否 則,停止分裂和傳輸過程。現在參考圖l,將描述算法l、 3和4的基本操作。算法l、 3和4都 采用了固定的拉格朗日乘數X,其代表失真和熵速率之間的折衷。過程 110示出了這三個算法共有的步驟。過程110在步驟111處開始,并立即進行到步驟112,在此處對分裂 過程進行初始化。下文將參考圖3詳細描述步驟112。 一旦對分裂過程 進行了初始化,便在步驟113處選擇拉格朗日乘數X。然后,子過程127 的第一次迭代開始。子過程127的每一次迭代通過如下步驟來分裂葉節點n:創建兩個 新的葉節點n'和n",并漸進地對針對新的葉節點的新的代表顏色以及 與應當使用這些顏色對圖像中哪些像素進行更新有關的信息進行編 碼。 一旦對n進行分裂,則其變為非葉節點。子過程127的第一個目的是確定必須對哪個葉節點進行分裂。這 在步驟114-118中完成。在步驟114,把葉節點索弓ln初始化為O。然后, 在步驟115,根據算法l、 3或4中的分裂過程對葉節點n (具有索弓ln的 葉節點)進行分裂。這些分裂過程中的每一個在下文分別參考圖4、 7 和8來分別詳細描述。這些過程中的每一個均包括根據相關聯的失真 改變以及相關聯的熵速率增加,確定把節點n分裂為兩個新的葉節點的 最小代價。 一旦完成葉節點n的分裂,則在步驟117,子過程127使用變 量N來確定樹結構中的所有葉節點是否已經被分裂,該變量N代表樹結 構中葉節點的個數,其在下文參考圖3描述的過程310中的步驟314被初 始化。如果并非所有N個葉節點都被分裂,則在步驟116把葉節點索引n加一,然后過程110返回步驟115,以繼續該分裂過程。 一旦樹結構中的所有葉節點都被分裂,則過程110繼續到步驟118。在步驟118,從所 有葉節點中選擇實現最低的最小代價的葉節點n。一旦確定具有最低的最小代價的葉節點n,則在步驟119處,根據 算法l、 3或4中的分裂過程對n進行分裂。這些分裂算法中的每一個均 在下文參考圖4、 7和8分別詳細描述。在這個過程期間,葉節點n變為 非葉節點,并創建兩個新的葉節點n'和n"。在步驟12G,把葉節點n'和 n"標為新的葉節點。在步驟121,把新的代表顏色連同顏色更新比特一起漸進地進行 編碼。下文將參考圖9詳細地描述步驟121。在步驟122,通過把對n進行分裂前老的樹結構的熵速率與把n分 裂為n'和n"所導致的熵的增量相加,來計算包括n'和n"的新的樹結構 的熵速率。在步驟123,可以把在步驟122計算的新的樹結構的熵速率與下文 參考圖3描述的初始化過程期間設置的目標熵速率進行比較。備選地,把與新的樹結構中葉節點的個數相對應的代表顏色的個數與下文參考 圖3描述的初始化過程期間設置的目標顏色個數進行比較。如果新的熵速率大于或等于目標熵速率,或如果新的樹結構中的顏色的個數大于 或等于目標顏色個數,則過程110前進到步驟126并終止。否則,過程 110繼續到步驟124。在步驟124,根據對節點n進行分裂前的樹結構的失真與把節點n 分裂為葉節點n'和n"所導致的失真的減小的加和,計算新的樹結構的 失真。然后,在步驟125,把樹結構中的葉節點的個數N加一,該過程 返回步驟114,并且分裂過程繼續。現在參考圖2,將會描述算法2的操作。過程210的功能與過程110 類似,除了過程210采用動態確定的拉格朗日乘數而不是過程110中那樣的固定的拉格朗日乘數。過程210從步驟211開始,并立即進行到步驟212,在此處對分裂 過程進行初始化。將參考圖3來詳細描述步驟212。然后,子過程227 的第一次迭代開始。子過程227的每一次迭代通過如下步驟來分裂葉節點n:創建兩個 新的葉節點n'和n",并漸進地對針對新的葉節點的新的代表顏色以及 與應當使用這些顏色對圖像中哪些像素進行更新有關的信息進行編 碼。 一旦對n進行分裂,則其變為非葉節點。子過程227的第一個目的是確定必須對哪個葉節點進行分裂。這 在步驟214-218中完成。在步驟214,把葉節點索弓ln初始化為O。然后, 在步驟215,根據算法2中的試驗性地分裂過程對葉節點n (具有索弓ln 的葉節點)試驗性地進行分裂。這個分裂過程在下文參考圖5來詳細描 述。試驗性地分裂過程包括確定每一個葉節點n的最大可實現拉格朗日 乘數》w,m欲。 一旦完成葉節點n的試驗性地分裂,則在步驟217,該過 程使用變量N來確定樹結構中的所有葉節點是否已經被試驗性地分 裂,該變量N代表樹結構中葉節點的個數,其在步驟314在下文參考圖 3描述的過程310中被初始化。如果并非所有N個葉節點都被試驗性地 分裂,則在步驟216遞增葉節點索引n,然后過程210返回步驟215,而 且試驗性地分裂過程繼續。 一旦樹結構中的所有葉節點都被試驗性地 分裂,則過程210繼續到步驟218。在步驟218,選擇具有在步驟215中 計算出的最高的最大可實現拉格朗日乘數 >力,ma x的葉節點n 。一旦確定具有最高的最大可實現拉格朗日乘數Xn..max的葉節點 n,則在步驟219處,根據算法2的永久分裂過程對n進行永久分裂。該 永久分裂算法在下文參考圖6詳細描述。在這個永久分裂過程期間,葉 節點n變為非葉節點,并創建兩個新的葉節點n'和n"。在步驟220,把 葉節點n'和n"標為新的葉節點。在步驟221,把新的代表顏色連同顏色更新比特一起漸進地進行 編碼。下文將參考圖9詳細地描述步驟221。在步驟222,通過將針對在n被分裂前老的樹結構的熵速率與將n 分裂為n'和n"所導致的熵的增量相加,來計算包括n'和n"的新的樹結 構的熵速率。使用等式(4)來計算熵的增量。在步驟223,可以把在步驟222計算的新的樹結構的熵速率與下文 參考圖3描述的初始化過程期間設置的目標熵速率進行比較。備選地, 把與新的樹結構中葉節點的個數相對應的代表顏色的個數與下文參考圖3描述的初始化過程期間設置的目標顏色個數進行比較。如果新的熵 速率大于或等于目標熵速率,或如果新的樹結構中的顏色的個數大于或等于目標顏色個數,則過程210前進到步驟226并終止。否則,在步 驟224,根據對節點n進行分裂前的樹結構的失真與把節點n分裂為葉節 點n'和n"所導致的失真的減小的加和,計算新的樹結構的失真。然后, 在步驟225,把樹結構中的葉節點的個數N遞增,過程210返回步驟214, 并且分裂過程繼續。現在參考圖3,描述分裂過程的初始化。過程310在步驟311開始, 并立即進行到步驟312。在步驟312,指定目標顏色個數Nt,t或目標熵速率Rt,t。在過程 110和210中的步驟123和223中將分別使用這些值來確定分裂過程何時 應當終止。然后,初始化多個變量。在步驟313,使用等式(5),根據圖像 的原始色圖的質心,計算起始葉節點的初始代表顏色。在步驟314,把 樹結構中葉節點的個數N初始化為1,并在步驟315把初始樹結構的熵 速率初始化為O。在步驟316,把與初始樹結構相關聯的失真設為圖像 的原始色圖的方差。在步驟317,選擇收斂標準s。過程410、 610、 710 和810中的步驟422、 622、 723和824分別使用該收斂準則來確定節點的 分裂過程何時應當終止。這些過程將在下文詳細描述。 一旦這些變量 已經被初始化,則過程310繼續到步驟318并終止。現在參考圖4,描述根據算法l的葉節點n的分裂過程。具體地,過程410把n變換為非葉節點,創建兩個新的葉節點n'和n",并把n中的每一個顏色分配給n'或n"。把分配給節點n的顏色集表示為Sn。過程410在步驟411開始,然后立即進行到步驟412。在步驟412, 把代價測量/"初始化為通過把當前樹結構的失真與把當前樹結構的熵速率和過程110中的步驟113處選擇的拉格朗日乘數X相乘而獲得的積相加而獲得的值。在步驟413,把用于跟蹤子過程427的迭代次數的迭代索引t初始化 為0。在步驟414,使用迭代索引t確定這是否為子過程427的第一次迭 代(即—0)。如果這是子過程427的第一次迭代,則在步驟415,基于[2]中所描述的基于失真的標準而把n中的每一個顏色分配給n'或n"。在 子過程427的后續迭代中,其中k0,在步驟416處,基于等式(6)的 有偏失真測量,把n中的每一個顏色分配給n'或n"。接下來,基于n'和n"來計算多個值。首先,在步驟417計算n'和n" 的新的代表顏色gn'和q^'。在步驟418,分別更新原始圖像中n'和n"中每一個顏色的出現次數/(^^和/(&';)。在步驟419,使用等式(3)來計算把節點n分裂為n'和n"而產生的失真的減小^^。在步驟420, 使用等式(4)來計算把節點n分裂為n'和n"而產生的熵速率的增加 A1^'。最后,在步驟421 ,分別使用在步驟419和420中計算的^ w和4/ w 的值來計算表示新的樹結構的代價的代價測量。"/lew在步驟422,使用在過程310的步驟317處選擇的收斂標準s來確定子過程427是否應當終止。如果最近的分裂所導致的代價改變(按照 /"和/"的差除以J"來計算)小于或等于收斂標準s,則不需要子過程427的另一次迭代,而且過程410進行到步驟426并終止。否則,過 程410前進到步驟423。在步驟423,分別檢查被分配給n'和n"的顏色集So'和Sn",以確 定任一集是否僅包括一個顏色。如果任一集Sn'或Sn"確實僅包括一 個顏色,則過程410前進到步驟426并終止。如果S^和S^均包括多于一個顏色,則將通過在步驟424把迭代索弓lt加一、在步驟425處把 /"設為/"的值、并返回步驟414來重復子過程427。現在參考圖5,描述根據算法2對葉節點n進行試驗性地分裂的過 程。具體地,如果n被分裂為兩個新的葉節點n'和n"并把n中的每一個 顏色分配給n'或n",則過程510確定拉格朗日乘數X^,;n欲的最大值。把 分配給節點n的顏色集表示為Sn。過程510從步驟511開始,并立即進行到步驟512。在步驟512,用 于跟蹤子過程527的迭代次數的迭代索引t被初始化為0。在步驟513, 把表示針對節點n以及子過程527的迭代t的動態確定的拉格朗日乘數的疋的值初始化為O。在步驟514,使用迭代索引t來確定這是否為子過程527的第一次迭 代(即t二0)。如果這是子過程527的第一次迭代,則在步驟515,根據 [2]中描述的基于失真的標準,把n中的每一個顏色分配給n'或n"。在子 過程527的后續迭代中,其中k0,在步驟516,基于等式(8)的有偏 失真測量,把n中的每一個顏色分配給n'或n"。接下來,基于n'和n"來計算多個值。首先,在步驟517計算n'和n" 的新的代表顏色^V和gn"。在步驟518,分別計算原始圖像中n'和n"中每一個顏色的出現次數/^^和/口^。在步驟519,使用等式(3)來計算把節點n分裂為n'和n"而產生的失真的減小^^。在步驟520, 使用等式(4)來計算把節點n分裂為n'和n"而產生的熵速率的增加在步驟521,把失真的減小^^除以熵速率的增加W w,并與拉 格朗日乘數《進行比較。如果J^^4Rw小于或等于《,則在步驟522處把針對節點n的最大可實現拉格朗日乘數人化m欲設為《,而且過程510前進到步驟526并終止。如果^^A^ W大于《,則過程510前進到 步驟523。在步驟523,檢査分別被分配給n'和n"的顏色集Sn'和Sn",以確 定任一集是否僅包括一個顏色。如果任一集S^或"Sn"確實僅包括一 個顏色,則過程510前進到步驟522,在步驟522處把針對節點n的最大可實現拉格朗日乘數》w,m欲設為《,而且過程前進到步驟526并終止。 如果Sn'和S""兩者均包括多于一個的顏色,則通過在步驟524處把迭 代索引t加一、在步驟525處將《設為4A^i/^、并返回步驟514來重復 子過程527。現在參考圖6,描述根據算法2對葉節點n進行永久分裂的過程。具體地,過程610把n變換為非葉節點,創建兩個新的葉節點n'和n", 并把n中的每一個顏色分配給n'或n"。把分配給節點n的顏色集表示為 Sn。過程610從步驟611開始,并立即迸行到步驟612。在步驟612,把 代價測量J,初始化為通過把當前樹結構的失真Dw與把當前樹結構的熵速率和過程210中的步驟218處確定的拉格朗日乘數入",max相乘而獲 得的積相加而獲得的值。在步驟613,把用于跟蹤子過程627的迭代次數的迭代索引t初始化 為0。在步驟614,使用迭代索引t確定這是否為子過程627的第一次迭 代(即t-O)。如果這是子過程627的第一次迭代,則在步驟615,基于 [2]中所描述的基于失真的標準而把n中的每一個顏色分配給n'或n"。在 子過程627的后續迭代中,其中t-O,在步驟616處,基于等式(9)的 有偏失真測量,把n中的每一個顏色分配給n'或n"。接下來,基于n'和n"來計算多個值。首先,在步驟617計算n'和n" 的新的代表顏色gn'和C^"。在步驟618,分別計算原始圖像中n'和n"中每一個顏色的出現次數/丫S^和"S""人在步驟619,使用等式(3)來計算把節點n分裂為n'和n"而產生的失真的減小^Ow。在步驟620,使用等式(4)來計算把節點n分裂為n'和n"而產生的熵速率的增加 ^w。最后,在步驟621,分別使用在步驟619和620中計算的^^和^w 的值來計算表示新的樹結構的代價的代價測量J 。在步驟622,使用在過程310的步驟317處選擇的收斂標準s來確定子過程627是否應當終止。如果最近的分裂所導致的代價改變(按照 J和J"的差除以1/,,來計算)小于或等于收斂標準s,則不需要子過程627的另一次迭代,而且過程610進行到步驟626并終止。否則,過 程610前進到步驟623。在步驟623,分別檢查被分配給n,和n"的顏色集Sn'和S"",以確 定任一集是否僅包括一個顏色。如果任一集Srj'或S""確實僅包括一 個顏色,則過程610前進到步驟626并終止。如果Sn'和Sn"均包括多 于一個顏色,則將通過在步驟624把迭代索引t加一、在步驟625處把/設為/的值、并返回步驟614來重復子過程627。現在參考圖7,描述根據算法3的葉節點n的分裂過程。在這個過程中,每一個葉節點n具有相應的像素集,以,n來表示。過程710把n變換為非葉節點,創建兩個新的葉節點n'和n",并把^n中的每一個像素分配給n'或n"。過程710從步驟711開始,并立即進行到步驟712。在步驟712,把 成本測量J"初始化為通過把當前樹結構的失真與把當前樹結構的熵速率和過程110中的步驟113處選擇的拉格朗日乘數入相乘而獲得的積 相加而獲得的值。在步驟713,把用于跟蹤子過程728的迭代次數的迭代索引t初始化 為0。在步驟714,使用迭代索引t確定這是否為子過程728的第一次迭 代(即t-O)。如果這是子過程728的第一次迭代,則在步驟715,基于 [2]中所描述的基于失真的標準而把^"中的每一個像素分配給n'或 n"。在子過程728的后續迭代中,其中t-0,在步驟716處,基于等式 (12)的有偏失真測量,把,n中的每一個像素分配給n'或n"。接下來,基于n'和n"來計算多個值。首先,在步驟717計算n'和n"的新的代表顏色C^和^"。在步驟718,對/",/^^和/w,n':)進行更新,其中u和v是當前重構圖像中像素p的左邊和上邊的相鄰像素的代表顏色索引,而且/",v(^》是在上下文u和v之下被映射到葉節點n的像素的個數。在步驟719,分別使用等式(10)和(U)來計算在上下文u和v之下把每一個/7 G ^ 映射到n'或n"的熵速率W和。在步驟720,使用等式(13)來計算把節點n分裂為n'和n"而產生的失真的減小/SDw。在步驟721,使用考慮到在步驟719所計算的熵值的等式(14)來計算把節點n分裂為n'和n"而產生的熵速率的增加^ 。最后, 在步驟722,分別使用在步驟720和721中計算的^Dw和4Hw的值來計算表示新的樹結構的代價的代價測量/"。在步驟723,使用在過程310的步驟317處選擇的收斂標準s來確定子過程728是否應當終止。如果最近的分裂所導致的代價改變(根據 /"和J"的差除以/"來計算)小于或等于收斂標準S,則不需要子過程728的另一次迭代,而且過程710進行到步驟727并終止。否則,過程710前進到步驟724。在步驟724,分別檢查被分配給n'和n"的像素集^V和^"",以確定任一集是否僅包括一個像素。如果任一集^"'或^n"確實僅包括一個像素,則過程710前進到步驟727并終止。如果V/V和^n"均包括多于一個像素,則將通過在步驟725把迭代索引t加一、在步驟726處把 設為/"的值、并返回步驟714來重復子過程728。現在參考圖8,描述根據算法4對葉節點n的分裂過程。在這個過程中,每一個葉節點n具有相應的像素集(表示為^n)以及相應的顏色集Sn。過程810把n變換為非葉節點,創建兩個新的葉節點n'和n",并把n中的每一個顏色分配給n'或n"。過程810從步驟811開始,并立即進行到步驟812。在步驟812,把 成本測量J"初始化為通過把當前樹結構的失真與把當前樹結構的熵速率和過程110中的步驟113處選擇的拉格朗日乘數"目乘而獲得的積相加而獲得的值。在步驟813,把用于跟蹤子過程829的迭代次數的迭代索引t初始化 為0。在步驟814,使用迭代索引t確定這是否為子過程829的第一次迭 代(即t0)。如果這是子過程829的第一次迭代,則在步驟815,基于 [2]中所描述的基于失真的標準而把n中的每一個顏色分配給n'或n"。在 子過程829的后續迭代中,其中t-0,在步驟816處,基于等式(17) 所示的有偏失真測量,把n中的每一個顏色分配給n'或n"。接下來,基于n'和n"來計算多個值。首先,在步驟817計算n'和n"的新的代表顏色g"'和^"。在步驟818,對/",^^J和/",vf^"':)進行更新,其中/",v(^^是在上下文u和v之下被分配給葉節點n的像素的 個數。在步驟819,分別使用等式(10)和(11)來計算在上下文u和v 之下把每一個Pe、P"映射到n'或n"的熵速率。在步驟820,使用等式(15) 來計算把C^分配給n'所產生的每像素熵的增加,并使用等式(16) 針對n"進行相同的計算。在步驟821,使用等式(3)來計算把 節點n分裂為n'和n"而產生的失真的減小^^。在步驟822,使用考慮到在步驟819所計算的熵值的等式(14),來計算把節點n分裂為n'和n" 而產生的熵速率的增加^&。最后,在步驟823,分別使用在步驟821 和822中計算的^^和4l w的值來計算表示新的樹結構的代價的代價在步驟824,使用在過程310的步驟317處選擇的收斂標準s來確定子過程829是否應當終止。如果最近的分裂所導致的代價改變(按照 J"和J:,的差除以/;,來計算)小于或等于收斂標準s,則不需要子過程829的另—-次迭代,而且過程810進行到步驟828并終止。否貝U,過程810前進到步驟825。在步驟825,分別檢查被分配給n'和n"的顏色集S^和Sn",以確定任一集是否僅包括一個顏色。如果任一集Sn'或S""確實僅包括一個顏色,則過程810前進到步驟828并終止。如果Sn'和Sn"均包括多于一個顏色,則將通過在步驟826把迭代索弓lt加一、在步驟827處把 J",設為J"的值、并返回步驟814來重復子過程829。現在參考圖9,描述對新的代表顏色和顏色更新比特漸進地編碼 的過程910。過程910從步驟911處開始,并立即進行到步驟912,在此處對節 點n (在過程110的步驟118處或在過程210的步驟218處被選擇為被分 裂)的節點索引進行編碼。在步驟913,對n'和n"的代表顏色^'和q^' 進行編碼。在步驟914,把用于跟蹤子過程922當前所考慮的像素的像素索引 i初始化為O。然后,過程910進入子過程922的第一次迭代。如果像素i或者來自與像素i相對應的原始顏色調色板的顏色沒有 被分配給節點n,則過程910前進到步驟919。如果像素i或者來自與像 素i相對應的原始顏色調色板的顏色已經被分配給節點n,則過程910 前進到步驟916。在步驟916,過程910確定在過程110的步驟119或在過 程210的步驟219期間,像素i或者來自與像素i相對應的原始顏色調色板的顏色是否被分配給n'或n"。如果像素i或者來自與像素i相對應的原 始顏色調色板的顏色被分配給n',則與像素i相對應的顏色更新比特被 編碼為l。否則,像素i或者來自與像素i相對應的原始顏色調色板的顏 色一定被分配給了n",則與像素i相對應的顏色更新比特被編碼為O。然后,過程910前進到步驟919,在此處確定子過程922是否考慮 了原始圖像中的所有像素。如果不是,則在步驟920把像素索引i加一, 而且過程910返回步驟915。如果子過程922考慮了來自原始圖像的所有 像素,則過程910前進到步驟921并終止。一旦過程910完成,則可以使用編碼的信息來更新被分配給n的所 有像素(在算法3的情況下)或其顏色被分配給n的所有像素(在算法l、 2和4的情況下)的顏色。如果與像素p相關聯的顏色更新比特是l,那 么將會把p更新為當前重構圖像中的代表顏色gn'。如果與像素p相關 聯的顏色更新比特是O,則將會把p更新為當前重構圖像中的代表顏色 C/n"。參考圖IO,示出了根據本發明的方面的計算機系統1010的框圖。 計算機系統1010包括用于存儲彩色圖像數據的存儲器1012、用于顯示 數字彩色圖像的監視器1014、用于圖像處理并用于提供基于失真和熵 速率兩者的顏色數據漸進編碼的CPU 1016、以及用于對彩色圖像數據 進行編碼的編碼器1018。在對彩色圖像數據進行編碼后,編碼后的彩 色圖像數據可以被存儲,或經由傳輸管道1020從計算機系統1010而發 送。參考圖ll,更詳細地示出了圖10中的CPU 1016。具體地,如圖所 示,CPU 1016包括樹管理模塊1122、失真量化器1124和熵速率量化器 1126。如圖所示,樹管理模塊1122鏈接到失真量化器1124和熵速率量 化器1126兩者。在操作中,樹管理模塊1122可操作地對樹結構執行操作,例如通 過把初始葉節點(可以是根節點,或備選地是多個起始葉節點)之間 的顏色進行劃分而初始化樹結構,隨后增大該樹結構。如上所述,增 大樹結構的過程是基于熵速率和失真兩者;因此,樹管理模塊1122可 以鏈接到失真量化器1124和熵速率量化器1126兩者。就是說,當選擇待劃分的葉節點變為與兩個新的葉節點相聯系的非葉節點時,樹管理 模塊U22可以通過向由對原始葉節點進行分裂而產生的兩個新的葉節點中的一個或另一個分配該葉節點中的顏色而以具體的葉節點進行實驗。基于熵速率量化器1126和失真量化器1124所分別確定的熵速率和 失真,樹管理模塊1122可以針對預期父節點中的所有顏色的兩個新的 葉節點,確定這兩個新的葉節點之間具體的顏色分配。通過對多個或 所有的葉節點執行這個操作,樹管理模塊1122可以確定待劃分的具體 葉節點和由該劃分所導致的兩個新的葉節點之間的顏色分配。樹管理 模塊1122也可以執行其他功能,例如確定新的葉節點的代表顏色,以 及維持葉節點總數的運行數目。根據上文所述的算法3,不同像素位置的相同顏色可以分配給不 同的葉節點,因為葉節點分配以逐像素為基礎而進行,由特定像素和 顏色對的上下文來確定。在實現算法3中,熵速率量化器1126和失真量 化器1124的操作與上文所述相似。具體地,無論其是被分配給一對新 的葉節點中特定的新的葉節點的是顏色還是像素,熵速率量化器都會 確定由這個分配所導致的熵速率的邊際增加,而失真量化器確定失真 的任何改變。當然,如上所述,例如如何確定熵速率改變在算法3中是 不同的,因為這還取決于如何在各個新的葉節點之間分配相鄰像素。參考圖12a-d,在一系列圖表中示出了用于提供顏色數據的漸進編 碼的葉節點漸進分裂過程。在圖12a的圖表中,僅提供了一個根節點 1200。這個根節點中包括原始數字化彩色圖像的M個不同顏色中的所 有顏色。在上文所述的本發明的方法的第一步驟中,根節點1200分裂 為兩個新的葉節點1202和1204。利用根節點11400的這個初始劃分,當 然,待劃分的特定葉節點不存在選擇,只有一個節點。然而,根節點 中所有M個不同顏色在新的葉節點1202和1204之間的分配共同地基于 上文所述的熵速率和失真標準。具體地,熵速率量化器1126可以確定 針對把特定顏色分配給新的葉節點1202和1204中任一者的熵速率的邊 際增加。類似地,失真量化器1124可以確定針對把該顏色分配給新的 葉節點1202和1204中每一個的新的失真測量。這樣,針對葉節點1202 和1204中的每一個,可以確定基于速率和失真兩者的相關聯的有偏失真測量,而且可以把該顏色分配給葉節點1202和1204中具有較低的相關聯的有偏失真測量的葉節點。圖12b的圖表到圖12c的圖表的轉變更為復雜,因為在這個實例 中,存在兩個葉節點(葉節點1202和1204)以供在劃分之間進行選擇。 同樣,基于失真和熵速率兩者的考慮來決定對葉節點1202還是1204進 行劃分。根據本發明的一些實施例(參見上文描述的算法l、 3和4), 其中采用了固定的拉格朗日乘數,確定用于把葉節點變為與兩個新的 葉節點鏈接的非葉節點(劃分葉節點)的代價。然后,將對葉節點1202 和1204中具有較低代價的葉節點進行劃分。根據另一實施例(參見上 文描述的算法2),針對每一個可能的葉節點,確定該折衷或拉格朗日 乘數。然后,將會對葉節點1202和1204中獲得較大拉格朗日乘數(即, 失真減小和熵速率增大之間的最佳折衷)的葉節點進行劃分。通常,由熵速率量化器1126和失真量化器1124來確定對葉節點 1202和1204中的每一個進行劃分的代價。就是說,熵速率量化器1126 可以確定由于把特定葉節點變為與兩個新的葉節點鏈接的非葉節點所 產生的相關聯的熵速率的增加,而失真量化器1124可以確定由于把該 葉節點變為非葉節點所產生的相關聯的失真的改變。當然,在每一個 葉節點的情況下,當對新的葉節點之間不同的顏色分配進行測試時, 這也是迭代過程。 一旦針對葉節點1202和1204中的每一個確定了失真 和熵速率的相關聯的改變,那么如果失真和熵速率的改變之間的折衷 是固定的,則可以確定將要劃分的較佳的葉節點。在圖12c所示的示例 中,葉節點1202被分為兩個非葉節點1206和1208。在圖12c所示的節點 劃分過程中,剩余三個葉節點節點1204、 1206和1208。如上所述,當然,拉格朗日乘數可能不是固定的。在這種情況下, 可以針對圖12b中的每一個葉節點1202和1204來確定拉格朗日乘數。然 后,可以對具有較大可實現拉格朗日乘數的葉節點進行劃分。圖12c和圖12d之間的轉變中葉節點的劃分或樹的增大與圖12b和 12c之間的情形非常類似。在圖12c和12d這個稍后的轉變中,考慮進行 劃分的葉節點是葉節點1204、 1206和1208。在圖12d中,葉節點1206 己經被劃分,從而創建出兩個新的葉節點1210和1212。結果,現在存在4個葉節點1204、 1208、 1210和1212。這個葉節點的劃分過程可以繼 續進行,直到達到某個目標點。該目標點可以基于總的熵速率,或備 選地,可以基于由于最后的劃分所產生的葉節點的總數。例如,每當 對葉節點進行劃分時,存在相關聯的增加的熵速率。在某點上,與二 叉樹相關聯的總熵速率可能超過目標熵速率。此外,每當對葉節點進 行劃分時,葉節點的總數會增大一。在某點上,樹結構中葉節點的新 的總數可能超過葉節點的某個目標個數。這個葉節點的目標個數可以 是M (原始數字化彩色圖像中的顏色的個數),使得可以針對逐顏色分 裂算法(即算法l、 2和4)完整地再現該原始數字化彩色圖像。備選地, 這個葉節點的目標個數可以小于M。在某些實施例中,當相關聯的總 熵速率超過目標熵速率時、或葉節點的總數超過葉節點的目標個數時, 樹增大的過程或葉節點的劃分過程停止。根據本發明的實施例的方面,移動無線通信設備可以用于提供上 文所述的熵約束顏色分裂。下文描述的實施例通常涉及該移動無線通 信設備,此后稱作移動設備,其可以根據IT策略而配置。應當注意, 術語IT策略通常是指IT策略規則的集合,其中IT策略規則可以被定義 為分組的或非分組的,以及全局的或是針對特定用戶的。術語分組、 非分組、全局、針對特定用戶將在下文中定義。適用的通信設備的示 例包括尋呼機、蜂窩電話、蜂窩智能電話、無線管理器、個人數字助 理、計算機、膝上計算機、手持無線通信設備、啟用無線的筆記本計 算機等。移動設備是具有高級數據通信能力的雙向通信設備,包括通過收 發機站的網絡與其他移動設備或計算機系統進行通信的能力。移動設 備還可以具有允許語音通信的能力。取決于移動設備所提供的功能, 其可以被稱作數據消息收發設備、雙向尋呼機、具有數據消息收發能 力的蜂窩電話、無線因特網設備、或數據通信設備(具有或不具有電 話功能)。為了幫助讀者理解移動設備的結構以及其如何與其他設備和 主機系統進行通信,現在將參考圖13和圖14。首先參考圖B,示出了移動設備1300的典型實施例的框圖。移動 設備1300包括多個組件,例如控制移動設備1300的全部操作的主處理器1302。通過通信子系統1304來執行包括數據和語音通信的通信功能。通信子系統1304與無線網絡1400進行消息收發。在這個移動設備1300 的典型實施例中,根據全球移動通信系統(GSM)和通用分組無線業 務(GPRS)的標準來配置通信子系統1304。 GSM/GPRS無線網絡得到 廣泛的使用,而且期望這些標準最終可以被GSM系統的增強型數據業 務(EDGE)和通用移動電信服務(UMTS)所取代。新的標準仍在制 定中,但可以確信的是它們與這里描述的網絡行為相似,而且本領域 的技術人員還可以理解的是,這里描述的實施例可以使用將來研發出 的任意其它適合的標準。把通信子系統1304與網絡1400相連的無線鏈 路表示一個或更多個不同的射頻(RF)信道,它們根據被規定用于 GSM/GPRS通信的己制定的協議而操作。利用更新的網絡協議,這些 信道能夠支持電路交換語音通信和分組交換數據通信兩者。盡管在一個典型實施方式中與移動設備1300相關聯的無線網絡是 GSM/GPRS無線網絡,然而在變體實施方式中也可以使用其它與移動 設備1300相關的無線網絡。例如,可以采用的不同類型的無線網絡包 括數據中心無線網絡、語音中心無線網絡以及能夠支持相同物理基站 上的語音和數據通信兩者的雙模網絡。組合的雙模網絡包括但不限于 碼分多址(CDMA)或CDMA 14000網絡、GSM/GPRS網絡(如上所 述)以及像EDGE和UMTS那樣的未來的第三代(3G)網絡。數據中 心網絡的一些較早的示例包括Mobitex,無線電網絡和DataTac 無線 電網絡。較早的語音中心數據網絡的示例包括像GSM和時分多址 (TDMA)系統那樣的個人通信系統(PCS)網絡。主處理器1302還與附加的子系統進行交互,例如隨機存取存儲器 (RAM) 1306、閃速存儲器1308、顯示器1310、輔助輸入/輸出(I/O) 子系統1312、數據端口1314、鍵盤1316、揚聲器1318、麥克風1320、 短距離通信系統1322和其它設備子系統1324。移動設備1300的一些子系統執行與通信有關的功能,而其它子系 統可以提供"駐留"或在設備上功能。作為示例,顯示器1310和鍵盤1316 可以用于兩種與通信有關的功能,例如輸入在網絡1400上傳送的文本 消息、以及例如計算器或任務列表的設備駐留功能。在完成所需的網絡注冊或激活過程后,移動設備1300可以在網絡 1400上發送和接收通信信號。網絡訪問與移動設備1300的用戶相關。 為了識別用戶,移動設備1300需要把SIM/RUIM卡1326 (即用戶身份 模塊或可移除用戶身份模塊)插入SIM/RUIM接口 1328以便和網絡進 行通信。SIM卡或RUIM 1326是一種常規的"智能卡",其尤其可用于 識別移動設備1300的用戶并對移動設備1300進行個人化。如果沒有 SIM卡1326,那么移動設備1300不能夠完整可操作地與網絡1400進行 通信。通過把SIM卡/RUIM 1326插入SIM/RUIM接口 1328,用戶可以 訪問所有訂購的服務。服務可以包括網絡瀏覽和消息收發,例如電 子郵件、語音郵件、短消息服務(SMS)以及多媒體消息收發服務 (MMS)。更多高級服務可以包括銷售點、現場服務和銷售力量自 動化。SIM卡/RUIM 1326包括處理器和用于存儲信息的存儲器。 一旦 把SIM卡/RUIM 1326插入SIM/RUIM接口 1328,它就與主處理器1302 耦合。為了識別用戶,SIM卡/RUIM 1326包含一些用戶參數,例如國 際移動用戶身份(IMSI)。使用SIM卡/RUIM 1326的優點是,用戶不 必受到任意單一物理移動設備的束縛。SIM卡/RUIM 1326也可以存儲 額外的移動設備用戶信息,包括記事冊(或日歷)信息和最近的呼叫 信息。備選地,用戶身份信息還可以被編程到閃速存儲器1308中。移動設備1300是電池供電的設備,包括用于容納一個或多個可充 電電池1330的電池接口 1332。在至少一些實施例中,電池1330可以是 具有嵌入式處理器的智能電池。電池接口 1332與穩壓器(未示出)耦 合,穩壓器有助于使電池1330向移動設備1300提供電源V+。盡管當前 技術使用電池,例如微燃料電池的未來技術可以向移動設備1300供電。移動設備1300還包括操作系統1334和軟件組件1336至1346,其在 下文詳細描述。由主處理器1302執行的操作系統1334和軟件組件1336 至1346典型地存儲在例如閃速存儲器1308的持久性存儲器中,其備選 地是只讀存儲器(ROM)或類似的存儲器元件(未示出)。本領域的 技術人員可以理解,操作系統1334和軟件組件1336至1346的部分(特 定的設備應用或其一部分)可以試驗性地加載到例如RAM 1306的易 失性存儲器中。如本領域的技術人員所公知,還可以包括其他軟件組件。控制基本設備操作的軟件應用1336的子集(包括數據和語音通信應用)通常在移動設備B00的制造期間被安裝在移動設備1300上。其 他軟件應用包括消息應用1338,其可以是允許移動設備1300的用戶發 送和接收電子消息的任意適合的軟件程序。如本領域的技術人員所公 知,存在用于消息應用1338的各種備選。用戶已發送或接收的消息典 型地存儲在移動設備1300的閃速存儲器1308中,或移動設備1300中一 些其他適合的存儲元件中。在至少一些實施例中,已發送和接收的消 息中的一些可以遠離設備1300而存儲,例如存儲在移動設備1300與之 進行通信的相關聯的主機系統的數據存儲器中。軟件應用還可以包括設備狀態模塊1340、個人信息管理器(PIM) 1342、以及其他適合的模塊(未示出)。設備狀態模塊1340提供了持久 性,即設備狀態模塊1340確保重要的設備數據存儲在持久性存儲器中, 例如閃速存儲器1308中,從而當移動設備1300關閉或斷電時不會丟失 數據。PIM 1342包括組織和管理用戶感興趣的數據項的功能,例如但不 限于電子郵件、聯系人、日歷事件、語音郵件、約會和任務項。PIM 應用具有通過無線網絡1400發送和接收數據項的能力。PIM數據項通 過無線網絡1400與存儲在主計算機系統和/或與主計算機系統相關聯 的設備用戶的相應數據項進行無縫集成、同步和更新。這個功能在移 動設備1300上建立了關于這些數據項的鏡像主計算機。這一點在主計 算機機系統是移動設備用戶的辦公室計算機系統的情況下尤其有利。移動設備1300還包括連接模塊1344和IT策略模塊1346。連接模塊 1344實現了移動設備1300與無線基礎結構和任意主機系統進行通信所 需的通信協議,例如企業系統,移動設備1300被授權與之進行接口連 接。連接模塊1344包括能夠與移動設備1300集成的一組API,以允許 移動設備1300使用與企業系統相關聯的任意數目的業務。連接模塊 1344允許移動設備1300與主機系統建立端對端的、安全的且得到驗證 的通信管道。連接模塊1344所提供訪問的應用子集可以用于把IT策略命令從主機系統傳遞到移動設備1300。這可以無線或有線的方式來進行。然后,可以把這些指令傳遞到IT策略模塊1346,以修改設備1300 的配置。備選地,在一些情況下,也可以通過有線連接來進行IT策略更新。IT策略模塊1346接收對IT策略進行編碼的IT策略數據。然后,IT 策略模塊1346確保IT策略數據得到移動設備1300的驗證。然后,可以 把IT策略數據以其原來的形式存儲在閃速存儲器1306中。在IT策略數 據被存儲后,IT策略模塊1346可以把全局通知發送至駐留在移動設備 1300上的所有應用。然后,IT策略可用的應用通過發送IT策略數據而 做出響應,以查找可用的IT策略規則。IT策略模塊1346可以包括解析器(未示出),該解析器可由應用 來使用,以讀取IT策略規則。對于在通知時沒有運行的應用,當執行 該應用以確定新接收到的IT策略數據中是否存在任何有關的IT策略規 則時,可以調用解析器或IT策略模塊1346。對支持IT策略中的規則的所有應用進行編碼,以獲知期望的數據 類型。例如,針對"WEP用戶名稱"所設置的值己知為字符串;因此, IT策略數據中與該規則相對應的值被解釋為字符串。作為另一個示例, 針對"設置最大口令嘗試"IT策略規則的設置己知為整數,因而IT策略數據中與該規則相對應的值被解釋為整數。在將IT策略規則應用于可用的應用或配置文件之后,IT策略模塊 1346向主機系統發回應答,以指示IT策略數據被接收并成功地被應用。其他類型的軟件應用也可以被安裝在移動設備1300上。這些軟件 應用可以是第三方應用,其在移動設備1300的制造后添加。第三方應 用的示例包括游戲、計算器、實用工具等。附加的應用程序可以通過無線網絡1400、輔助I/0子系統1312、數 據端口1314、短距離通信子系統1322或任意其它適合的子系統1324而 加載到移動設備1300上。這種應用程序安裝的靈活性增加了移動設備 1300的功能,并且可以提供增強的在設備上功能、與通信有關的功能 或兩者都有。例如,安全通信應用程序使得能夠使用移動設備1300來 執行電子商務功能和其它這種金融交易。數據端口1314使用戶能夠通過外部設備或軟件應用程序來設置首選項,并通過向移動設備1300提供信息或軟件下載而擴展移動設備 1300的能力,這種擴展不是通過無線通信網絡而執行。備選的下載路徑例如可以用于通過直接而可靠的受信連接把加密密鑰加載到移動設備1300上,以提供安全的設備通信。數據端口1314可以是能夠實現移動設備1300和另一計算設備之間 的數據通信的任意適合的端口。數據端口1314可以是串口或并口。在 一些實例中,數據端口1314可以是USB端口,包括用于數據傳輸的數 據線和提供充電電流以對移動設備1300的電池1330進行充電的電源 線。不需使用無線網絡1400,短距離通信子系統1322提供了移動設備 1300與不同系統或設備之間的通信。例如,子系統1322可以包括用于 短距離通信的紅外設備以及相關的電路和組件。短距離通信的示例可 以包括由紅外數據協會(IrDA)、藍牙研制的標準,以及由IEEE研制 的802.11標準族。在使用中,例如文本消息、電子郵件消息或下載的網頁的已接收 信號可以由通信子系統1304進行處理,并輸入到主處理器1302。然后, 主處理器1302對已接收信號進行處理,以向顯示器1310或備選地向輔 助I/0子系統1312輸出。用戶還可以使用鍵盤1316、顯示器1310以及可 能的輔助I/0子系統1312來構成例如電子郵件消息的數據項。輔助子系 統1312可以包括例如如下設備觸摸屏、鼠標、跟蹤球、紅外指紋檢 測器或具有動態按鈕能力的滾輪。鍵盤1316優選地是字母數字鍵盤和/ 或電話型小鍵盤。然而,也可以使用其他類型的鍵盤。所構成的數據 項可以經通信子系統1304在無線網絡1400上傳輸。對于語音通信,移動設備1300的全部操作本質上是類似的,除了 已接收信號將會輸出到揚聲器1318且將要發送的信號由麥克風1320產生。例如語音消息記錄子系統的備選語音或音頻i/o子系統也可以在移動設備1300上實現。盡管語音或音頻信號輸出主要由揚聲器1318來完 成,然而顯示器1310也可以用于提供額外的信息,例如呼叫方的身份、 語音呼叫的持續時間或與語音呼叫有關的其它信息。現在參考圖14,示出了通信子系統組件1304的典型框圖。通信子 系統1304包括接收機1350、發射機1352、 一個或多個嵌入式或內部天 線元件1354、 1356、本地振蕩器(LO) 1358以及例如數字信號處理器 (DSP)的處理模塊1360。通信子系統1304的具體設計取決于移動設 備1300與之操作的通信網絡1400。因此,應當理解的是,圖14所示的 設計僅作為一個示例。天線1354通過無線網絡1400接收到的信號被輸入接收機1350,接 收機1350可以執行一般的接收機功能,例如信號放大、下變頻、濾波、 信道選擇以及模數(A/D)轉換。對已接收信號進行A/D轉換允許在 DSP 1360中執行更為復雜的通信功能,例如解調和解碼。以類似的方 式,DSP 1360對所要發送的信號進行處理,包括調制和編碼。把這些 經過DSP處理的信號輸入發射機1352進行數模(D/A)轉換、上變頻 逆、濾波、放大并通過天線1356在無線網絡1400上發送。DSP 1360不 僅對通信信號進行處理,而且還提供了接收機和發射機的控制。例如, 通過DSP 1360中實現的自動增益控制算法,可以自適應地控制施加到 接收機1350和發射機1352中的通信信號的增益。移動設備1300與無線網絡1400之間的無線鏈路可以包含移動設備 1300與無線網絡1400之間使用的一個或多個不同的信道(典型地為不 同的RF信道)以及相關協議。RF信道是必須被保存的有限資源,典型 地是因為移動設備1300的全部帶寬和有限的電池電力的限制。當移動設備1300完全可操作時,僅當發射機1352向無線網絡1400 進行發送時才激活(key)或開啟發射機1352,其它時間關閉發射機1352 以保存資源。類似地,在指定的時間周期中,周期性地關閉接收機1350 以保存電力,直到需要接收機1350接收信號或信息(如果存在的話) 為止。本專利文獻的公開內容的一部分包含受版權保護的材料。版權所 有者不反對對專利和商標局專利文件或記錄的專利文獻或專利公開內 容中任意一項進行復制再現,但保留其他所有版權。本發明的其他變體和修改是可能的。例如,本領域的技術人員可 以理解,本發明的實施例的方面也可以存儲在適合的記錄介質上的指令來體現,該指令可以隨后用于配置計算機系統以實現本發明的實施 例。所有這種修改或變體均被看作落入由所附權利要求限定的本發明 的范圍。
權利要求
1、一種使用數據處理系統對具有被分配給像素集的M個不同顏色的數字化彩色圖像進行漸進編碼的方法,通過把所述M個不同顏色中的每一個分配給所述像素集中至少一個像素而提供所述數字化彩色圖像,所述方法包括(a)通過提供至少一個起始葉節點來初始化樹結構,所述起始葉節點包括來自所述像素集的像素子集;(b)針對每一個起始葉節點,確定至少一個代表顏色;以及(c)通過如下步驟增大所述樹結構(i)基于相關聯的可實現代價,選擇葉節點n變為與兩個新的葉節點相鏈接的非葉節點n,其中所述相關聯的可實現代價通過如下步驟來確定確定由把所述葉節點變為與兩個新的葉節點相鏈接的非葉節點而產生的相關聯的失真改變;確定由把所述葉節點變為與兩個新的葉節點相鏈接的非葉節點而產生的相關聯的熵速率增加;以及,基于所述相關聯的失真改變以及所述相關聯的熵速率增加,確定所述相關聯的可實現代價;(ii)通過把n中的每一個像素分配給所述兩個新的葉節點之一而創建兩個新的葉節點;(iii)針對所述兩個新的葉節點中的每一個,確定代表顏色;以及(iv)對與葉節點n相關聯的索引信息、所述兩個新的葉節點的代表顏色、以及與n中每一個像素有關的信息進行編碼。
2、 根據權利要求l所述的方法,其中,所述步驟(c) (ii)包括 通過如下步驟來把n中的每一個像素分配給兩個新的葉節點之一.-針對兩個新的葉節點中的每一個,確定涉及到速率和失真的相關 聯的有偏失真測量,并把n中的像素分配給具有較低的相關聯的有偏失真測量的新的葉節點。
3、 根據權利要求2所述的方法,其中,針對兩個新的葉節點中的每一個,通過如下步驟針對n中的每一個像素而確定相關聯的有偏失真測量確定由向新的葉節點分配像素而產生的相關聯的失真改變; 確定由向新的葉節點分配像素而產生的相關聯的熵速率增加;以及基于相關聯的失真改變和相關聯的熵速率增加,計算相關聯的有 偏失真測量。
4、 根據權利要求3所述的方法,其中,所述確定由向新的葉節點分配像素而產生的相關聯的熵速率增加的步驟包括確定相鄰像素集,其中,相鄰像素集中的每一個像素與該像素鄰接;以及基于所述相鄰像素集和新的葉節點,確定針對該像素的熵速率增加。
5、 根據權利要求l所述的方法,其中步驟(C)還包括 確定以下至少一項(A)相關聯的增加的熵速率,所述相關聯的增加的熵速率通過把葉節點n中的每一個顏色分配給兩個新的葉節點 之一,將葉節點n變為與兩個新的葉節點相鏈接的非葉節點n而產生, 以及(B)葉節點的新的總數,所述葉節點的新的總數由將葉節點n變 為與兩個新的葉節點相鏈接的非葉節點n而產生;如果確定了相關聯的增加的熵速率,則若所述相關聯的增加的熵 速率小于目標熵速率,便重復步驟(c);以及如果確定了葉節點的新的總數,則若所述葉節點的新的總數小于 葉節點的目標個數,便重復步驟(c)。
6、 根據權利要求l所述的方法,其中所述確定葉節點的代表顏色 的步驟包括確定葉節點中所有像素的所有顏色;針對葉節點中的每一個顏色,確定數字化彩色圖像中具有該顏色 的多個像素;以及基于葉節點中具有與葉節點相關聯的每一個己確定顏色的像素 的個數,確定與葉節點相關聯的所有己確定顏色的質心。
7、 根據權利要求l所述的方法,其中所述步驟(C) (ii)包括通過如下步驟來把n中的每一個像素分配給兩個新的葉節點之一針對兩個新的葉節點中的每-一個,確定涉及到把像素分配給新的葉節點的速率和失真的相關聯的有偏失真測量,并把n中的像素分配給具有較低的相關聯的有偏失真測量的新的葉節點。
8、 根據權利要求l所述的方法,還包括.-根據每一個起始節點的至少一個代表顏色,初始化較低分辨率的圖像;其中,步驟(c) (iv)還包括根據步驟(c) (ii)中把n中的像素向兩個新的葉節點之一的 分配,確定n中所有像素的信息比特;以及使用算術編碼,基于較低分辨率的圖像對信息比特進行編碼。
9、 根據權利要求l所述的方法,還包括基于每一個起始節點的至少一個代表顏色,初始化己編碼的圖像;其中,步驟(c)還包括通過附加在步驟(c) (iv)中獲得的已 編碼比特,漸進地更新己編碼的圖像。
10、 一種在計算機上使用的計算機程序產品,對具有被分配給像 素集的M個不同顏色的數字化彩色圖像進行漸進編碼,通過把所述M 個不同顏色中的每一個分配給所述像素集中相關聯的像素子集而提供 所述數字化彩色圖像,所述計算機程序產品包括記錄介質;以及所述記錄介質上記錄的裝置,用于指揮計算機系統執行如下步驟(a) 通過提供至少一個起始葉節點來初始化樹結構,所述起始 葉節點包括來自所述像素集的像素子集;(b) 針對每一個起始葉節點,確定至少一個代表顏色;以及(C)通過如下步驟增大所述樹結構(i) 基于相關聯的可實現代價,選擇葉節點n變為與兩個新 的葉節點相鏈接的非葉節點n,其中所述相關聯的可實現代價通過如下步驟來確定確定由把所述葉節點變為與兩個新的葉節點相鏈接的 非葉節點而產生的相關聯的失真改變;確定由把所述葉節點變為與兩個新的葉節點相鏈接的非葉節點而產生的相關聯的熵速率增加;以及,基于所述相關聯的失真改變以及所述相關聯的熵速率 增加,確定所述相關聯的可實現代價;(ii) 通過把n中的每一個像素分配給所述兩個新的葉節點之 一而創建兩個新的葉節點;(iii) 針對所述兩個新的葉節點中的每一個,確定代表顏色;以及(iv) 對與葉節點n相關聯的索引信息、所述兩個新的葉節點 的代表顏色、以及與n中每一個像素有關的信息進行編碼。
11、 根據權利要求10所述的計算機程序產品,其中,所述步驟(c) (ii)包括通過如下步驟來把n中的每一個像素分配給兩個新的葉節點之 一針對兩個新的葉節點中的每一個,確定涉及到速率和失真的相關 聯的有偏失真測量,并把n中的像素分配給具有較低的相關聯的有偏失 真測量的新的葉節點。
12、 根據權利要求ll所述的計算機程序產品,其中,針對兩個新 的葉節點中的每一個,通過如下步驟針對n中的每一個像素而確定相關 聯的有偏失真測量確定由向新的葉節點分配像素而產生的相關聯的失真改變; 確定由向新的葉節點分配像素而產生的相關聯的熵速率增加;以及基于相關聯的失真改變和相關聯的熵速率增加,計算相關聯的有 偏失真測量。
13、 根據權利要求12所述的計算機程序產品,其中,所述確定向 新的葉節點分配像素而產生的相關聯的熵速率增加的步驟包括確定相鄰像素集,其中,相鄰像素集中的每一個像素與該像素鄰 接;以及基于所述相鄰像素集和新的葉節點,確定針對該像素的熵速率增加。
14、 根據權利要求10所述的計算機程序產品,其中,步驟(c)還包括確定以下至少一項(A)相關聯的增加的熵速率,所述相關聯的增加的熵速率通過把n中的每一個顏色分配給兩個新的葉節點之一,將 葉節點n變為與兩個新的葉節點相鏈接的非葉節點n而產生,以及(B)葉節點的新的總數,所述葉節點的新的總數由將葉節點n變為與兩個新 的葉節點相鏈接的非葉節點n而產生;如果確定了相關聯的增加的熵速率,則若所述相關聯的增加的熵速率小于目標熵速率,便重復步驟(C);以及如果確定了葉節點的新的總數,則若所述葉節點的新的總數小于葉節點的目標個數,便重復步驟(c)。
15、 根據權利要求10所述的計算機程序產品,其中,所述確定葉 節點的代表顏色的步驟包括確定葉節點中所有像素的所有顏色;針對葉節點中的每一個顏色,確定數字化彩色圖像中具有該顏色 的多個像素;以及基于葉節點中具有與葉節點相關聯的每一個已確定顏色的像素 的個數,確定與葉節點相關聯的所有已確定顏色的質心。
16、 根據權利要求10所述的計算機程序產品,其中,所述步驟(c) (ii)包括通過如下步驟來把n中的每一個像素分配給兩個新的葉節點之 一針對兩個新的葉節點中的每一個,確定涉及到把像素分配給新的 葉節點的速率和失真的相關聯的有偏失真測量,并把n中的像素分配給 具有較低的相關聯的有偏失真測量的新的葉節點。
17、 根據權利要求10所述的計算機程序產品,其中, 所述記錄介質上記錄的指令還可操作地指揮計算機系統根據每一個起始節點的至少一個代表顏色來初始化較低分辨率的圖像;而且 步驟(c) (iv)還包括根據步驟(c) (ii)中把n中的像素向兩個新的葉節點之一的 分配,確定針對n中所有像素的信息比特;以及使用算術編碼,基于較低分辨率的圖像對信息比特進行編碼。
18、 根據權利要求10所述的計算機程序產品,其中, 所述記錄介質上記錄的指令還可操作地指揮計算機系統根據每一個起始節點的至少一個代表顏色來初始化較低分辨率的圖像;其中,步驟(C)還包括通過附加在步驟(C) (iv)中獲得的己編碼比特,漸進地更新已編碼的圖像。
19、 一種對具有被分配給像素集的M個不同顏色的數字化彩色圖 像進行漸進編碼的系統,通過把所述M個不同顏色中的每一個分配給 所述像素集中相關聯的像素子集而提供所述數字化彩色圖像,所述系 統包括記錄介質;以及包括用于執行如下步驟的處理器的裝置(a) 通過提供至少一個起始葉節點來初始化樹結構,所述起始 葉節點包括來自所述像素集的像素子集;(b) 針對每一個起始葉節點,確定至少一個代表顏色;以及(c) 通過如下步驟增大所述樹結構(i)基于相關聯的可實現代價,選擇葉節點n變為與兩個新 的葉節點相鏈接的非葉節點n,其中所述相關聯的可實現代價通過如下 步驟來確定確定由把所述葉節點變為與兩個新的葉節點相鏈接的 非葉節點而產生的相關聯的失真改變;確定由把所述葉節點變為與兩個新的葉節點相鏈接的 非葉節點而產生的相關聯的熵速率增加;以及,基于所述相關聯的失真改變以及所述相關聯的熵速率 增加,確定所述相關聯的可實現代價;(ii) 通過把n中的每一個像素分配給所述兩個新的葉節點之 一而創建兩個新的葉節點;(iii) 針對所述兩個新的葉節點中的每一個,確定代表顏色;以及(iv) 對與葉節點n相關聯的索引信息、所述兩個新的葉節點 的代表顏色、以及與n中每一個像素有關的信息進行編碼。
20、 根據權利要求19所述的系統,其中,所述步驟(c) (ii)包括通過如下步驟來把n中的每一個像素分配給兩個新的葉節點之 -一針對兩個新的葉節點中的每一個,確定涉及到速率和失真的相關 聯的有偏失真測量,并把n中的像素分配給具有較低的相關聯的有偏失 真測量的新的葉節點。
21、 根據權利要求20所述的系統,其中,針對兩個新的葉節點中 的每一個,通過如下步驟針對n中的每一個像素而確定相關聯的有偏失確定由向新的葉節點分配像素而產生的相關聯的失真改變; 確定由向新的葉節點分配像素而產生的相關聯的熵速率增加;以及基于相關聯的失真改變和相關聯的熵速率增加,計算相關聯的有 偏失真測量。
22、 根據權利要求21所述的系統,其中,所述確定向新的葉節點 分配像素而產生的相關聯的熵速率增加的步驟包括確定相鄰像素集,其中,相鄰像素集中的每一個像素與該像素鄰 接;以及基于所述相鄰像素集和新的葉節點,確定針對該像素的熵速率增加。
23、 根據權利要求19所述的系統,其中,步驟(c)還包括 確定以下至少一項(A)相關聯的增加的熵速率,所述相關聯的增加的熵速率通過把n中的每一個顏色分配給兩個新的葉節點之一,將 葉節點n變為與兩個新的葉節點相鏈接的非葉節點n而產生,以及(B) 葉節點的新的總數,所述葉節點的新的總數由將葉節點n變為與兩個新 的葉節點相鏈接的非葉節點n而產生;如果確定了相關聯的增加的熵速率,則若所述相關聯的增加的熵 速率小于目標熵速率,便重復步驟(c);以及如果確定了葉節點的新的總數,則若所述葉節點的新的總數小于 葉節點的目標個數,便重復步驟(c)。
24、 根據權利要求19所述的系統,其中,所述確定葉節點的代表 顏色的步驟包括確定葉節點中所有像素的所有顏色;針對葉節點中的每一個顏色,確定數字化彩色圖像中具有該顏色 的多個像素;以及基于葉節點中具有與葉節點相關聯的每一個已確定顏色的像素 的個數,確定與葉節點相關聯的所有已確定顏色的質心。
25、 根據權利要求19所述的系統,其中,所述步驟(c) (ii)包括通過如下步驟來把n中的每一個像素分配給兩個新的葉節點之一針對兩個新的葉節點中的每一個,確定涉及到把像素分配給新的葉節點的速率和失真的相關聯的有偏失真測量,并把n中的像素分配給 具有較低的相關聯的有偏失真測量的新的葉節點。
26、 根據權利要求19所述的系統,其中,所執行的步驟還包括根據每一個起始節點的至少一個代表顏 色,初始化較低分辨率的圖像; 步驟(c) (iv)還包括根據步驟(c) (ii)中把n中的顏色向兩個新的葉節點之一的 分配,確定與兩個新的葉節點的兩個代表顏色相對應的數字化彩色圖 像的多個像素的信息比特;以及使用算術編碼,基于較低分辨率的圖像對信息比特進行編碼。
27、 根據權利要求19所述的系統,其中,所執行的步驟還包括基于每一個起始節點的至少一個代表顏 色,初始化己編碼的圖像;其中,步驟(C)還包括通過附加在步驟(C) (iv)中獲得的已 編碼比特,漸進地更新己編碼的圖像。
28、 根據權利要求19所述的系統,其中,所述系統是移動無線設備。
全文摘要
提供了一種使用數據處理系統對具有被分配給像素集的M個不同顏色的數字化彩色圖像進行漸進編碼的方法、系統和計算機程序產品,通過把所述M個不同顏色中的每一個分配給所述像素集中至少一個像素而提供所述數字化彩色圖像。這包括(a)通過提供至少一個起始葉節點來初始化樹結構,所述起始葉節點包括來自所述像素集的像素子集;(b)針對每一個起始葉節點,確定至少一個代表顏色;以及(c)通過如下步驟增大所述樹結構(i)基于相關聯的可實現代價,選擇葉節點n變為與兩個新的葉節點相鏈接的非葉節點n,其中所述相關聯的可實現代價通過如下步驟來確定1)確定由把所述葉節點變為與兩個新的葉節點相鏈接的非葉節點而產生的相關聯的失真改變;2)確定由把所述葉節點變為與兩個新的葉節點相鏈接的非葉節點而產生的相關聯的熵速率增加;以及,3)基于所述相關聯的失真改變以及所述相關聯的熵速率增加,確定所述相關聯的可實現代價;(ii)通過把n中的每一個像素分配給所述兩個新的葉節點之一而創建兩個新的葉節點;(iii)針對所述兩個新的葉節點中的每一個,確定代表顏色;以及(iv)對與葉節點n相關聯的索引信息、所述兩個新的葉節點的代表顏色、以及與n中每一個像素有關的信息進行編碼。
文檔編號G06T9/40GK101283377SQ200680035093
公開日2008年10月8日 申請日期2006年9月25日 優先權日2005年9月23日
發明者楊恩輝, 王隆吉 申請人:噴流數據有限公司