專利名稱:手寫終端軌跡的壓縮和解壓方法
技術領域:
本發(fā)明屬于圖像壓縮領域,涉及一種針對在手寫終端上書寫的軌跡的壓縮方法, 尤其涉及一種融合預測編碼和熵編碼的手寫終端軌跡的壓縮方法。
背景技術:
手寫識別技術在手機、電子閱讀器等終端上得到了廣泛的應用。利用這些支持手寫技術的終端,用戶可以在閱讀的文檔上進行批注、在便簽中記事和備忘,隨之而產生的軌跡都需要予以保存。將這些軌跡保存為二值圖像是最直接的方式。由于軌跡是一系列間斷的點構成的,現有技術中采用二值圖像保存軌跡保存了所有的點的實際坐標值,且采用定長編碼方式。但是這種保存方式并沒有充分利用軌跡點之間存在的空間相關性,所以,這種保存所有間斷的點坐標占用了較大的存儲空間。如果具有電子紙顯示屏的手持式電子書閱讀器的分辨率為800X600,點的每個方向上坐標需要的編碼比特數為16bits,因此每個點坐標需要的編碼比特數為32bits。但是,實際上在800X600分辨率下,點的每個方向坐標需要的編碼比特數為lObits,每個點坐標需要的編碼比特數為20bits。再者,定長編碼中沒有考慮點之間的相鄰性。
發(fā)明內容
本發(fā)明所要解決的技術問題是提供一種手寫終端軌跡的壓縮方法和解壓方法,用以減少對軌跡進行存儲時需要的存儲空間。為解決上述技術問題,本發(fā)明提供了一種手寫終端軌跡的壓縮方法。該手寫終端軌跡的壓縮方法包括計算每條軌跡點的實際坐標與點的預測坐標的坐標差值;對坐標差值進行熵編碼得到碼字以完成每條軌跡的壓縮。手寫終端軌跡的壓縮方法還包括按照時間順序對每條軌跡的點的實際坐標進行排列形成點坐標的時間序列;按照點坐標的時間序列形成點的預測坐標。所述按照點坐標的時間序列形成點的預測坐標具體為根據毛=CI0Xpk+ axxt_k+l +··· + a^x^,yt = a0y^k + axy^k+x +··· + O^jm得到當
前點的預測坐標,其中,天表示當前預測點橫坐標,λ表示當前預測點縱坐標,徹,…, Bk^1為預測的抽頭系數,k為預測階數,(Xi_k,yi_k),(Xi_k+1,yi_k+1),…,(Xh,Yi^1)表示當前點的實際坐標(Xi, Yi)前的k個點的實際坐標。所述對坐標差值進行熵編碼以完成每條軌跡的壓縮具體為采用HUFFMAN編碼或者算術編碼算法對坐標差值進行熵編碼。所述預測階數k為1或2。所述軌跡由點擊書寫到點擊結束后形成的一系列連續(xù)的點構成。所述對坐標差值進行熵編碼以完成每條軌跡的壓縮具體為對每條軌跡的坐標差值進行概率統(tǒng)計,并根據統(tǒng)計的概率完成對當前軌跡的壓縮。對坐標差值進行熵編碼以完成每條軌跡的壓縮具體為根據預先建立的碼表以及坐標差值生成碼字。根據預先建立的碼表以及坐標差值生成碼字具體為判斷坐標差值是否位于預定的閾值范圍內,如果是,則根據變長編碼方式生成預先建立的碼表,根據預先建立的碼表和坐標差值生成碼字,否則,根據定長編碼方式以及坐標差值生成碼字。手寫終端軌跡的壓縮方法還包括在根據預先建立的碼表和坐標差值以及根據定長編碼方式和坐標差值生成的碼字之前增加標志位。為解決現有技術的上述技術問題,本發(fā)明還提供了一種手寫終端軌跡的解壓方法。手寫終端軌跡的解壓方法包括對保存的碼字進行熵解碼得到每條軌跡點的實際坐標與點的預測坐標的坐標差值;根據預測抽頭系數得到每條軌跡點的預測坐標;根據點的預測坐標和點的實際坐標與點的預測坐標的坐標差值得到每條軌跡點的實際坐標。手寫終端軌跡的解壓方法還包括獲取保存的碼字之前的標志位;根據標志位得到點的實際坐標與點的預測坐標的坐標差值。根據以及預測抽頭系數得到每條軌跡點的預測坐標具體為在預先建立的碼表中查找與坐標差值和預測抽頭系數對應的點的預測坐標。本發(fā)明中,在對軌跡進行壓縮編碼時利用軌跡點坐標的相關性,首先計算出每條軌跡點的實際坐標與點的預測坐標的坐標差值?;诖?,再對坐標差值進行熵編碼得到碼字以完成每條軌跡的壓縮。從而克服了現有技術中統(tǒng)一采用定長編碼的方式對軌跡進行編碼導致存儲空間較大的缺陷。
圖1為本發(fā)明手寫終端軌跡的壓縮方法實施例的流程圖;圖2為本發(fā)明手寫終端軌跡的壓縮方法流程圖對應的計算框圖;圖3為本發(fā)明手寫終端軌跡的解壓方法實施例的流程圖;圖4為本發(fā)明手寫終端軌跡的解壓方法實施例的流程圖對應的計算框圖。
具體實施例方式下面結合附圖和實施例,對本發(fā)明的技術方案做進一步的詳細描述。圖1為本發(fā)明手寫終端軌跡的壓縮方法實施例的流程圖。如圖1所示,本實施中的手寫終端軌跡的壓縮方法包括S101、計算每條軌跡點的實際坐標與點的預測坐標的坐標差值。在手寫終端的上進行書寫時,設備屏幕采樣輸入產生一系列間斷的點,這些點按書寫的時間先后順序連接起來就形成了每一條軌跡。在對軌跡進行保存時現有技術采用的是保存構成每一條軌跡的每一個軌跡點的實際坐標,但是這些點之間具有一定的相關性,即時間上連續(xù)的點之間在位置上也往往是相鄰的,后一個點總會在前一個點附近,而不會相隔很遠。因此,本實施例中充分利用了構成每一條軌跡的點在書寫上具有空間上的相關性,根據當前點之前的若干個點的實際坐標得到當前點的預測坐標,繼而獲得每一個點的預測坐標,可以消除軌跡點的坐標上的冗余以提高壓縮編碼的效率,節(jié)省存儲空間?;诖耍緦嵤├?,在計算點的實際坐標與點的預測坐標的坐標差值之前還可以包括按照時間順序對每條軌跡的點的實際坐標進行排列形成點坐標的時間序列;及按照點坐標的時間序列形成點的預測坐標。本實施例中,利用預測差分編碼對每一條軌跡的點坐標序列進行編碼,利用已利用當前點前的若干個過去點坐標得到當前點的預測坐標,詳細計算方法如下I = a°X'~k + “1 ak-lXi-l ( 1 )AX = Xi-Xi, Ay = yi-yi(2)式中,(U)表示當前點的實際坐標,(天,λ)表示當前點的預測坐標,徹,如…, ak—i表示預測抽頭系數,k表示預測階數,(Xi_k,Yi_k), (Xi_k+1,yi_k+1),…,(Xi^1, Yi^1)表示當前點的實際坐標(Xyyi)前已完成編碼k個點的實際坐標,(Δχ, Δγ)表示當前點的實際坐標與當前點的預測坐標的坐標差值。本實施例中,取預測階數k = 2,經統(tǒng)計發(fā)現,點的實際坐標與點的預測坐標的坐標差值(Δχ,Ay)都比較集中。點的實際坐標與點的預測坐標的坐標差值(ΔΧ,Ay)為零的概率約為30%,即橫坐標差值Δ χ和縱坐標差值Ay分別為零的概率均大約為30%。 而點的實際坐標與點的預測坐標的坐標差值(Δχ,Ay)位于-15至15以內的概率超過了 99%,即橫坐標差值Δ χ和縱坐標差值Ay均位于-15至15以外的概率均不超過99%。這些統(tǒng)計數據表明,每條軌跡點的坐標之間存在著很強的相關性,即存在著很強的冗余。利用這一特性可以有效地提高軌跡壓縮的效率,節(jié)省存儲空間。此處,根據壓縮的精度和計算量的大小來折中選擇預測階數k,比如預測階數k等于1。k越大則坐標差值分布越集中,壓縮效率越高,但同時計算量也會增加。在對每條軌跡的點坐標進行預測編碼時,預測編碼的是針對從點擊書寫到點擊結束后形成的一系列連續(xù)的點構成的一條軌跡,即只對構成每條軌跡的點坐標進行預測編碼,下一條軌跡的起始點坐標不能使用上一條軌跡的最后幾個點坐標進行預測編碼,必須重新按照上述計算方法重新預測編碼。S102、對坐標差值進行熵編碼以完成每條軌跡的壓縮。本實施例中,利用了每條軌跡點的坐標之間的冗余性,對經步驟SlOl得到的坐標差值進行熵編碼壓縮方式之后再存儲,比如可以采用HUFFMAN編碼或者算術編碼算法等無損壓縮方式,而區(qū)別于對預測差分編碼后的碼字直接進行存儲。本實施例中,采用HUFFMAN編碼具體過程可以為對每條軌跡的坐標差值進行概率統(tǒng)計,并按由大到小的順序對統(tǒng)計的概率進行排序;將最小的概率兩個概率進行相加,將相加后的概率與其余為進行相加運算的概率由大到小重新進行排序,直至只剩兩個概率序列。對僅剩的兩個概率進行二進制編碼賦值,從而得到HUFFMAN碼字,最終完成了每條軌跡的編碼。坐標差值的概率與HUFFMAN碼字成反比,即坐標差值的概率越大,HUFFMAN 碼字越短,反之,則HUFFMAN碼字越長。具體地,由于目前的電子書屏幕的分辨率為800X600,橫坐標差值Δχ的理論范圍為[-600,600],縱坐標差值Ay的理論范圍[-800,800]。但是,由于電子書采樣頻率的限制,橫坐標差值ΔΧ和縱坐標差值Ay位于-15至15之外的概率非常小。再者,要把多達1201個橫坐標差值ΔΧ和1601個縱坐標差值Ay進行編碼,編碼后的碼表就非常大;而且對于一些概率非常小的坐標差值(Δχ,Ay),比如坐標差值(Δχ,Δγ)為士800,對應的 HUFFMAN碼字就比較長。這樣,增加了 HUFFMAN碼表的制定難度,降低了后續(xù)解碼的效率。 因此,在進行HUFFMAN編碼時,需要結合電子書的屏幕分辨率以及概率統(tǒng)計的實際情況,設置一個針對坐標差值的閾值范圍即預定的閾值范圍。本實施例中,當預測階數k = 2時,點的實際坐標與點的預測坐標的坐標差值(Δχ,Ay)位于-15至15以內的概率超過了 99%。 所以,預定的閾值范圍設為-15至15以內。對于位于-15至15以內的坐標差值來說,直接在采用HUFFMAN編碼方法預先建立的碼表中進行查詢得到對應的HUFFMAN碼字。對于屏幕的分辨率為800X600的電子書來說,對于坐標差值位于-15至15以內的點來說,橫坐標和縱坐標方向上的坐標差值分別只需要的平均字節(jié)為:3bits,如表一所示,即每個點的只需要6bits。此處,預先建立的碼表是對大量的軌跡的坐標差值進行概率統(tǒng)計后建立的。因此,避免了對每條軌跡單獨進行坐標差值的概率統(tǒng)計和碼表建立,提高了軌跡壓縮的效率。 對于位于-15至15之外的坐標差值來說,直接對坐標差值進行定長編碼得到對應的定長碼字。對于屏幕的分辨率為800X600的電子書來說,有1201個橫坐標差值Δχ和1601個縱坐標差值,橫坐標和縱坐標方向上的坐標分別只用Ilbits來存儲,而區(qū)別于用16bits或者 32bits來存儲橫坐標和縱坐標方向的坐標,有效節(jié)省了存儲空間。本實施例中,為了區(qū)分是采用HUFFMAN編碼方法預先建立的碼表中的碼字還是定長編碼的碼字,需要設置標志位。比如定長編碼的碼字之前的標志位為0,HUFFMAN編碼的碼字之前的標志位為1因此,在每個方向上的碼字中均增加一個標志位的話,每個點的只需要Sbits進行存儲,與目前每個點需要32bits進行存儲來說,壓縮率提高了 75%。如果忽略坐標差值(Δ χ,Δγ)的概率小而對應的HUFFMAN碼字較長,也可以不設置針對坐標差值的閾值范圍即預定的閾值范圍以采用定長編碼和HUFFMAN編碼,而是針對所有的坐標差值都用HUFFMAN編碼,以完成軌跡的壓縮編碼。上述實施例中,在對壓縮后的筆跡進行保存時,需要在頭部記錄中記錄預測介數K 和預測抽頭系數徹,El1,…,Blri。圖2為本發(fā)明手寫終端軌跡的壓縮方法流程圖對應的計算框圖。如圖2所示,根據預測介數K設置延時器的個數,即可以利用當前點之前的K個已完成編碼的點的坐標和預測的抽頭系數%,B1,…,得到當前點的預測坐標。當前點的實際坐標(Xi,Yi)與當前點的預測坐標(戈,λ)之間做差即可得到當前點的實際坐標與當前點的預測坐標的坐標差值(ΔΧ,Ay)。當前點的實際坐標與當前點的預測坐標的坐標差值(ΔΧ,Ay)經上述的 HUFFMAN編碼得到HUFFMAN碼字,從而完成軌跡的壓縮。本實施例中,在對軌跡進行壓縮編碼時結合軌跡點的冗余性,首先計算出每條軌跡點的實際坐標與點的預測坐標的坐標差值?;诖耍賹ψ鴺瞬钪颠M行熵編碼得到碼字以完成每條軌跡的壓縮。從而克服了現有技術中統(tǒng)一采用定長編碼的方式對軌跡進行壓縮編碼導致存儲空間較大的缺陷。圖3為本發(fā)明手寫終端軌跡的解壓方法實施例的流程圖。圖4為本發(fā)明手寫終端軌跡的解壓方法實施例的流程圖對應的計算框圖。如圖3所示,本實施例中的解壓方法與上述壓縮方法在流程剛好相反,具體包括如下步驟S301、對保存的碼字進行熵解碼得到每條軌跡點的實際坐標與點的預測坐標的坐標差值(Δχ,Δγ);如果對根據預定的閾值范圍對坐標差值(Δ X,Δ y)進行了定長編碼和HUFFMAN編碼,生成的碼字會帶有區(qū)分這兩種不同編碼方式的標志位。所以說,在對保存的碼字進行熵解碼時,需要執(zhí)行如下步驟S311,讀取保存的碼字之前的標志位;如前所述,表明采用定長編碼的碼字之前的標志位為0,表明采用HUFFMAN編碼的碼字之前的標志位為1。S321,判斷標志位是0還是1,如果是0,則執(zhí)行S331,如果是1,則執(zhí)行S341。S331、讀取標志位后的11位碼值作為一部分點的實際坐標與點的預測坐標的坐標差值(Δχ,Ay)。S341、在預先建立的碼表中進行檢索并輸出檢索的碼值作為另外一部分點的實際坐標與點的預測坐標的坐標差值(Δχ,Ay)。相應地,如表一所示,由于碼表比較小,在存儲時可以直接按照HUFFMAN樹結構進行存儲。在檢索時,逐位從碼流中讀取數據進行樹檢索得到其碼值。從表一看出,碼字最大長度為10,所以最多比較10次可以檢索到每一個碼字,而隨著碼字長度的增加,碼字出現的概率越來越小,實際上每個坐標差值的解碼需要的比較次數等于其平均編碼長度3bits 左右,計算量并不大。表一坐標差值與對應碼字的碼表
8
權利要求
1.一種手寫終端軌跡的壓縮方法,其特征在于,包括計算每條軌跡點的實際坐標與點的預測坐標的坐標差值;對坐標差值進行熵編碼得到碼字以完成每條軌跡的壓縮。
2.根據權利要求1所述的手寫終端軌跡的壓縮方法,其特征在于,還包括按照時間順序對每條軌跡的點的實際坐標進行排列形成點坐標的時間序列;按照點坐標的時間序列形成點的預測坐標。
3.根據權利要求2所述的手寫終端軌跡的壓縮方法,其特征在于,所述按照點坐標的時間序列形成點的預測坐標具體為根據毛=a^i-k + +··· + Ok^l,yt = O0^it + ^y^ +··· + O^1 兄_,得到當前點的預測坐標,其中,毛表示當前預測點橫坐標,λ表示當前預測點縱坐標,徹,^,…,Slri為預測的抽頭系數,k為預測階數,(Xi_k,yi_k),(Xi-k+1, yi-k+1),…,(χ^,γ^)表示當前點的實際坐標Ui, Yi)前的k個點的實際坐標。
4.根據權利要求1或2或3所述的手寫終端軌跡的壓縮方法,其特征在于,所述對坐標差值進行熵編碼以完成每條軌跡的壓縮具體為采用HUFFMAN編碼或者算術編碼算法對坐標差值進行熵編碼。
5.根據權利要求4所述的手寫終端軌跡的壓縮方法,其特征在于,所述預測階數k為1 或2。
6.根據權利要求4所述的手寫終端軌跡的壓縮方法,其特征在于,所述軌跡由點擊書寫到點擊結束后形成的一系列連續(xù)的點構成。
7.根據權利要求6所述的手寫終端軌跡的壓縮方法,其特征在于,所述對坐標差值進行熵編碼以完成每條軌跡的壓縮具體為對每條軌跡的坐標差值進行概率統(tǒng)計,并根據統(tǒng)計的概率完成對當前軌跡的壓縮。
8.根據權利要求6所述的手寫終端軌跡的壓縮方法,其特征在于,對坐標差值進行熵編碼以完成每條軌跡的壓縮具體為根據預先建立的碼表以及坐標差值生成碼字。
9.根據權利要求8所述的手寫終端軌跡的壓縮方法,其特征在于,根據預先建立的碼表以及坐標差值生成碼字具體為判斷坐標差值是否位于預定的閾值范圍內,如果是,則根據變長編碼方式生成預先建立的碼表,根據預先建立的碼表和坐標差值生成碼字,否則,根據定長編碼方式以及坐標差值生成碼字。
10.根據權利要求8所述的手寫終端軌跡的壓縮方法,其特征在于,還包括在根據預先建立的碼表和坐標差值以及根據定長編碼方式和坐標差值生成的碼字之前增加標志位。
11.一種手寫終端軌跡的解壓方法,其特征在于,包括對保存的碼字進行熵解碼得到每條軌跡點的實際坐標與點的預測坐標的坐標差值;根據預測抽頭系數得到每條軌跡點的預測坐標;根據點的預測坐標和點的實際坐標與點的預測坐標的坐標差值得到每條軌跡點的實際坐標。
12.根據權利要求11所述的手寫終端軌跡的解壓方法,其特征在于,還包括獲取保存的碼字之前的標志位;根據標志位得到點的實際坐標與點的預測坐標的坐標差值。
13.根據權利要求11或12所述的手寫終端軌跡的解壓方法,其特征在于,根據以及預測抽頭系數得到每條軌跡點的預測坐標具體為在預先建立的碼表中查找與坐標差值和預測抽頭系數對應的點的預測坐標。
全文摘要
本發(fā)明公開了一種手寫終端軌跡的壓縮方法和解壓方法,屬于圖像壓縮領域。該手寫終端軌跡的壓縮方法包括計算每條軌跡點的實際坐標與點的預測坐標的坐標差值;對坐標差值進行熵編碼得到碼字以完成每條軌跡的壓縮。手寫終端軌跡的解壓方法包括對保存的碼字進行熵解碼得到每條軌跡點的實際坐標與點的預測坐標的坐標差值;根據預測抽頭系數得到每條軌跡點的預測坐標;根據點的預測坐標和點的實際坐標與點的預測坐標的坐標差值得到每條軌跡點的實際坐標。本發(fā)明中,在對軌跡進行壓縮編碼時利用軌跡點坐標的相關性,克服了現有技術中統(tǒng)一采用定長編碼的方式對軌跡進行編碼導致存儲空間較大的缺陷。
文檔編號H03M7/30GK102299718SQ20101021955
公開日2011年12月28日 申請日期2010年6月25日 優(yōu)先權日2010年6月25日
發(fā)明者王曉楠, 鄭士奇 申請人:漢王科技股份有限公司