專利名稱:基于jpeg2000標準的算術(shù)編碼概率區(qū)間值確定方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像處理技術(shù)領(lǐng)域,特別是一種基于JPEG2000標準的算術(shù)編碼概率 區(qū)間確定方法,用于各種數(shù)字設備的圖像壓縮編碼。
背景技術(shù):
隨著多媒體和網(wǎng)絡技術(shù)的發(fā)展及其在醫(yī)學影像、遙感圖像和數(shù)字圖像/視頻傳輸 等方面的應用,已有的靜止圖像壓縮標準JPEG已不能滿足當前實際應用的要求,為此國際 標準化組織于2000年11月制定了新的靜止圖像壓縮標準JPEG2000。該標準的核心技術(shù)之 一就是采用算術(shù)編碼方法對小波變換后的數(shù)據(jù)進行編碼,實現(xiàn)圖像數(shù)據(jù)的壓縮處理。所述的算術(shù)編碼方法的編碼原理敘述如下算術(shù)編碼的輸入為上下文符號對CXD,包括上下文標號CX和上下文判決D,其輸出 則是對應的壓縮碼流,其中CX表示由當前編碼像素生成的上下文標號,取值范圍為0-18, D表示對應上下文的判決,取值范圍為0-1。算術(shù)編碼方法根據(jù)輸入的上下文標號CX自適 應地選擇相應判決D的概率,依據(jù)判決D的值得出待編碼符號的類型,即大概率符號MPS或 小概率符號LPS,以及在小概率符號LPS情況下對應的概率Qe,然后調(diào)整相應的概率區(qū)間 值A(chǔ),并輸出編碼碼值。該概率區(qū)間值A(chǔ)采用16位無符號整數(shù)表示。對于編碼符號的概率 Qe,采用一個具有47個索引的數(shù)組實現(xiàn),該數(shù)組稱為概率估計表PET,表中每一項對應一個 16位的小概率符號LPS符號的Qe值。依據(jù)JPEG2000標準的規(guī)定,將當前編碼符號對應的 上下文標號CX作為地址來訪問一個大小為19 X 6的數(shù)組,得到概率估計表PET的入口索引 Index,然后以Index為地址讀取PET表中對應LPS符號概率值Qe,并結(jié)合當前概率區(qū)間值 和碼值判定具體編碼的過程。如果當前概率區(qū)間值小于等于0. 75,該值對應于十六進制下 為0x8000,為了防止溢出,需要對概率區(qū)間值和碼值進行歸一化處理,通過左移概率區(qū)間值 和碼值使概率區(qū)間值大于0x8000。在歸一化的同時,如果碼值中碼流組成整字節(jié),則進行碼 流輸出過程,即得到最終的編碼輸出碼流。為了防止進位傳遞,通過設置特定的比特位填充 以截斷進位的傳遞。根據(jù)算術(shù)編碼原理可知,對概率區(qū)間值的確定是整個算術(shù)編碼方法的一個核 心部分。然而,JPEG2000標準協(xié)議僅給出了在單一上下文符號對的情況下對概率區(qū)間 值進行更新的方法,在硬件實現(xiàn)算術(shù)編碼器時,由于上下文符號對按串行方式處理,因 而形成速度瓶頸。典型的算術(shù)編碼器硬件實現(xiàn)方法,例如中國臺灣學者K. -K. Ong和 Jen-Shiun Chiang 分別在 2002 年 Int. Conf. Image Process. (ICIP,02)和 2004 年 IEEE Int. Symp. Circuits and Systems 國際會議上發(fā)表的文章"A high throughput low costcontext-based adaptive arithmetic codec for multiple standards,, (2002, vol.1, pp. 1872-1875)和“High-speeds EBCOT with dual context-modeling coding architecture forJPEG2000”(2004,vol. 3,pp. 865-868.)中提出的算術(shù)編碼方法,該方法 對概率區(qū)間值的更新處理是按照單一的上下文符號對進行的,使得編碼器吞吐率僅為單個 時鐘處理1個上下文符號對。國內(nèi)學者梅魁 志等人在2007年IEEE Trans, on CircuitsandSystem for Video Technology 期干丨J上發(fā)表的文章“VLSI Design of a High-Speed andArea-Efficient JPEG2000 Encoder"(2007 年第 17 卷,第 8 期,第 1065-1078 頁)中提 出的算術(shù)編碼方法,雖然采用多輸入同步流水技術(shù)實現(xiàn)算術(shù)編碼,但對概率區(qū)間值的更新 處理也是基于單個上下文符號對進行的,其整體處理速度只有單個時鐘處理0. 625個上下 文符號對。國內(nèi)學者許超在2005年Int. Conf. Image Process. (ICIP'05)國際會議上發(fā)表 的文章"A Dual-Symbol Coding Arithmetic Coder Architecture Design forHigh Speed EBCOT Coding Engine in JPEG2000”中提出的算術(shù)編碼方法,當兩個上下文符號對的上 下文標號不同時,該方法對概率區(qū)間值更新處理的速度達到單個時鐘處理2個上下文符號 對,但是當兩個上下文符號對的上下文標號相同時,該方法的處理能力僅為每時鐘處理1 個上下文符號對。澳大利亞學者M. Dyer在2006年IEEETransactions on Circuits and Systems-I :Regular Papers 期干丨J發(fā)表的文章 ConcurrencyTechniques for Arithmetic Coding in JPEG2000 (VOL. 53,NO. 6,pp. 1203-1213,June2006)中提出 了一種高速算術(shù)編碼 方法。國內(nèi)學者劉奇衛(wèi)在2006年的浙江大學碩士學位論文“基于JPEG2000 二進制算術(shù)編 碼器的研究與設計”提出了一種4級流水處理的2個上下文符號對的算術(shù)編碼方法。雖然 M.Dyer和劉奇衛(wèi)的方法都可以實現(xiàn)雙上下文符號對并行處理,但是相應方法中的存儲位都 較多,對芯片設計造成一定困難。上述各種算術(shù)編碼方法在確定概率區(qū)間值時具有以下缺陷第一,K. -K. Ong和Jen-Shiun Chiang的方法,只能達到單個時鐘處理1個上下文 符號對的能力,在確定概率區(qū)間值時沒有考慮到后續(xù)的上下文符號對情況,無法提高編碼 速度。第二,梅魁志的方法,其整體處理速度只有單個時鐘處理0. 625個上下文符號對, 也沒有考慮到后續(xù)上下文符號對與當前概率區(qū)間值的關(guān)系,因而也無法提高編碼速度。第三,許超的方法,當輸入的兩個上下文符號對的上下文標號相同時,該方法無法 將兩個上下文符號對的概率區(qū)間值更新過程有效地排開,造成了編碼處理的停頓。當連續(xù) 輸入的雙上下文符號對的上下文標號相同時,該編碼方法的處理能力僅為單個時鐘處理一 個上下文符號對。第四,M. Dyer和劉奇衛(wèi)的方法雖然都能夠處理雙上文符號對,但這些方法在處理 時,并沒有將雙上下文符號對直接分類,從而使得處理時各模塊之間的關(guān)系復雜,同時這些 方法都將概率區(qū)間值更新所需要的參數(shù)變量表完全增加到概率估值表中,沒有考慮到概率 估值表中各個字段之間的相互關(guān)系,因此所需的內(nèi)部存儲位較多。
發(fā)明內(nèi)容
本發(fā)明的目的在于避免上述已有技術(shù)的不足,提供一種基于JPEG2000標準的算 術(shù)編碼概率區(qū)間值確定方法,可以對同時輸入的任意兩個上下文符號對的概率區(qū)間值進行 更新,以提高處理速度,同時降低內(nèi)部存儲位。實現(xiàn)本發(fā)明目的的技術(shù)關(guān)鍵是通過雙上下文符號對分類進行概率區(qū)間值更新, 并且采用特定的概率估值表,實現(xiàn)雙上下文符號對的并行處理,以提高處理速度,同時降低 內(nèi)部存儲位。為實現(xiàn)上述目的,本發(fā)明包括如下步驟
(1)從編碼索引數(shù)組中讀取雙上下文符號對分別對應的雙編碼索引,以及雙上下 文標號分別對應的雙大概率符號標識,并根據(jù)雙大概率符號標識與相應的雙上下文判決, 確定雙上下文符號對的概率類型(Ia)如果第一大概率符號標識MPS_CX0與第一上下文判決DO相等,并且第二大概率符號標識MPS_CX1與第二判決Dl相等,則雙上下文符號對的概率類型為雙大概率符號;(Ib)如果第一大概率符號標識MPS_CX0與第一判決DO相等,而第二大概率符號標 識MPS_CX1與第二判決Dl不相等,則雙上下文符號對的概率類型為大概率/小概率符號;(Ic)如果第一大概率符號標識MPS_CX0與第一判決DO不相等,而第二大概率符號 標識MPS_CX1與第二判決Dl相等,則雙上下文符號對的概率類型為小概率/大概率符號;(Id)如果第一大概率符號標識MPS_CX0與第一判決DO不相等,并且第二大概率符 號標識MPS_CX1與第二判決Dl不相等,則雙上下文符號對的概率類型為雙小概率符號;(2)根據(jù)輸入的雙上下文標號,確定上下文標號的異同,如果雙上下文標號相等, 則判定為雙上下文標號相同,否則,判定為雙上下文標號相異;(3)根據(jù)上下文標號的異同和雙上下文符號對的概率類型,聯(lián)合確定雙上下文符 號對的類型為雙大概率符號相同、雙大概率符號相異、大概率/小概率符號相同、大概率/ 小概率符號相異、小概率/大概率符號相同、小概率/大概率符號相異、雙小概率符號相同 和雙小概率符號相異;(4)設計特定的概率估值表,根據(jù)雙編碼索引從該概率估值表中分別得到第一小 概率符號概率值QeO及第二小概率符號概率值Qel ;(5)根據(jù)雙上下文符號對的類型,更新概率區(qū)間值,并計算概率區(qū)間值移位計數(shù) 值;(6)輸出更新后的概率區(qū)間值。上述步驟(4)所述的概率估值表包括如下4個不同容量的子表(a)小概率符號概率值表,該表的深度為32,寬度為13位,容量為32 X 13位,即采 用13位表示概率值;(b)下一個上下文符號為大概率符號的概率值表,該表的深度為32,寬度為13位, 容量為32X13位;(c)下一個上下文符號為小概率符號的概率值表,該表的深度為30,寬度為13位, 容量為30X13位;(d)前導零計數(shù)表,該表的深度為32,寬度為4位,容量為32 X 4位,表中存儲的每 一個前導零計數(shù)值的取值范圍從1到15。上述步驟(5)所述的更新概率區(qū)間值,按如下步驟進行(5a)將第一小概率符號概率值QeO及第二小概率符號概率值Qel,分別保存到第 一臨時變量temp2和第二臨時變量tempO中,同時計算當前概率區(qū)間值A(chǔ)與第一小概率符 號概率值QeO的差值,即A-QeO,并將其保存到第三臨時變量tempi中;(5b)以相同的方法,分別更新第一和第三臨時變量值;(5c)同時根據(jù)雙上下文符號對的類型,更新第二臨時變量值;(5d)根據(jù)當前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO的關(guān)系,對不同概率類 型的雙上下文符號對,分別計算概率區(qū)間臨時變量值A(chǔ)_temp 如果雙上下文符號對的概率類型為雙大概率符號,則計算雙大概率符號下的概率區(qū)間臨時變量值;如果雙上下文符號對的概率類型為大概率/小概率符號,則計算大概率/小概率符號下的概率區(qū)間臨時變量 值;如果雙上下文符號對的概率類型為小概率/大概率符號,則計算小概率/大概率符號下 的概率區(qū)間臨時變量值;如果雙上下文符號對的概率類型為雙小概率符號,則計算雙小概 率符號下的概率區(qū)間臨時變量值;(5e)對概率區(qū)間臨時變量值A(chǔ)_temp進行修正,如果概率區(qū)間臨時變量值A(chǔ)_temp 小于十六進制值0x8000,則將其值左移一位,此后重復該判斷過程,直到A_temp大于或等 于十六進制值0x8000 ;(5f)將概率區(qū)間值A(chǔ)更新為修正后的概率區(qū)間臨時變量值A(chǔ)_temp。上述步驟(5b)所述的更新第一和第三臨時變量值,是通過該第一和第三臨時變 量值與十六進制值0x8000的關(guān)系進行更新,如果該臨時變量值小于十六進制值0x8000,則 將該臨時變量值左移一位,此后重復該判斷過程,直到該臨時變量值大于或等于十六進制 值0x8000。上述步驟(5c)所述的更新第二臨時變量值,按如下步驟進行如果雙上下文符號對的類型是雙大概率符號相同或者大概率/小概率符號相同, 則將第二臨時變量值更新為概率估值表中下一個上下文符號為大概率符號的概率值;如果雙上下文符號對的類型是雙小概率符號相同或者小概率/大概率符號相同, 則將第二臨時變量值更新為概率估值表中下一個上下文符號為小概率符號的概率值。本發(fā)明由于采用特定的概率估值表結(jié)構(gòu)對雙上下文符號對的概率區(qū)間值進行預 測,并且將雙上下文符號對分為八種不同的類型分別進行處理,充分利用了雙上下文符號 對處理的并行度,有效地提高了概率區(qū)間值更新處理速度,降低了內(nèi)部存儲位。本發(fā)明是高 速實現(xiàn)雙上下文符號對不間斷的流水處理的算術(shù)熵編碼系統(tǒng)的核心部分,采用本發(fā)明可以 顯著提高整個算術(shù)熵編碼系統(tǒng)的編碼速度和效率,在高速實時圖像編碼領(lǐng)域,如高速數(shù)碼 相機、圖像檢索、高速衛(wèi)星遙感圖像編碼、戰(zhàn)場監(jiān)控等多個民用及軍用場合具有巨大的應用 價值。
圖1是本發(fā)明的整體流程圖;圖2是本發(fā)明的雙大概率符號概率區(qū)間值更新子流程圖;圖3是本發(fā)明的大概率/小概率符號概率區(qū)間值更新子流程圖;圖4是本發(fā)明的小概率/大概率符號概率區(qū)間值更新子流程圖;圖5是本發(fā)明的雙小概率符號概率區(qū)間值更新子流程圖。
具體實施例方式本發(fā)明的編碼方法采用Xilinx ISE 9. 1集成開發(fā)軟件和VHDL、Verilog HDL語 言,在Xilinx公司的型號為XC2V3000-6BG728的可編程芯片上實現(xiàn)。參照圖1,本發(fā)明的基于JPEG2000標準的算術(shù)編碼概率區(qū)間值確定方法,包括如 下步驟步驟1,讀取雙編碼索引和雙大概率符號標識。
同時輸入第一上下文符號對(CXO,DO)和第二上下文符號對(CX1,Dl),分別以第 一上下文標號CXO和第二上下文標號CXl作為地址,從預先設定好的編碼索引數(shù)組中讀取 對應的第一編碼索引IndexO和第二編碼索引Indexl,以及第一上下文標號CXO和第二上下 文標號CXl分別對應的第一大概率符號標識MPS_CX0和第二大概率符號標識MPS_CX1。該 編碼索引數(shù)組的容量為19X7位。CXO和CXl的取值范圍是0-18,用5位二進制位串表示, IndexO和Indexl取值范圍是0_46,用6位二進制位串表示,MPS_CX0和MPS_CX1取值范圍 是0-1,用1位二進制位串表示。步驟2,確定雙上下文符號對的概率類型。
通過比較步驟1得到的兩個大概率符號標識與輸入的兩個上下文判決之間的關(guān) 系,確定雙上下文符號對的概率類型,具體過程如下(2. 1)如果第一大概率符號標識MPS_CX0與第一判決DO相等,并且第二大概率符 號標識MPS_CX1與第二判決Dl相等,則雙上下文符號對的概率類型確定為雙大概率符號 MPSMPS ;(2. 2)如果第一大概率符號標識MPS_CX0與第一判決DO相等,而第二大概率符號 標識MPS_CX1與第二判決Dl不相等,則雙上下文符號對的概率類型確定為大概率/小概率 符號 MPSLPS ;(2. 3)如果第一大概率符號標識MPS_CX0與第一判決DO不相等,而第二大概率符 號標識MPS_CX1與第二判決Dl相等,則雙上下文符號對的概率類型確定為小概率/大概率 符號 LPSMPS ;(2. 4)如果第一大概率符號標識MPS_CX0與第一判決DO不相等,并且第二大概率 符號標識MPS_CX1與第二判決Dl不相等,則雙上下文符號對的概率類型確定為雙小概率符 號 LPSLPS。該雙上下文符號對的概率類型的取值包括MPSMPS、MPSLPS、LPSMPS和LPSLPS這四 種情況,采用2位二進制位串表示。步驟3,根據(jù)輸入的雙上下文標號,確定上下文標號的異同。如果第一上下文標號CXO與第二上下文標號CXl相等,則判定為雙上下文標號相 同,否則,判定為雙上下文標號相異。雙上下文標號的異同采用相異標記DIFF來標識,DIFF 的取值范圍是0-1,用1位二進制位串表示。如果雙上下文標號相同,則設置相異標記DIFF 為0,否則設為1。步驟4,確定雙上下文符號對的類型。根據(jù)上下文標號的異同和雙上下文符號對的概率類型,按照如下規(guī)則判斷雙上下 文符號對的類型(4. 1)如果雙上下文標號相同,且雙上下文符號對的概率類型為雙大概率符號,則 雙上下文符號對類型為雙大概率符號相同;(4. 2)如果雙上下文標號相同,且雙上下文符號對的概率類型為大概率符號/小 概率符號,則雙上下文符號對類型為大概率符號/小概率符號相同;(4. 3)如果雙上下文標號相同,且雙上下文符號對的概率類型為小概率符號/大 概率符號,則雙上下文符號對類型為小概率符號/大概率符號相同;(4. 4)如果雙上下文標號相同,且雙上下文符號對的概率類型為雙小概率符號,則雙上下文符號對類型為雙小概率符號相同;(4. 5)如果雙上下文標號相異,且雙上下文符號對的概率類型為雙大概率符號,則雙上下文符號對類型為雙大概率符號相異;(4. 6)如果雙上下文標號相異,且雙上下文符號對的概率類型為大概率符號/小 概率符號,則雙上下文符號對類型為大概率符號/小概率符號相異;(4. 7)如果雙上下文標號相異,且雙上下文符號對的概率類型為小概率符號/大 概率符號,則雙上下文符號對類型為小概率符號/大概率符號相異;(4. 8)如果雙上下文標號相異,且雙上下文符號對的概率類型為雙小概率符號,則 雙上下文符號對類型為雙小概率符號相異。步驟5,概率區(qū)間值更新。(5. 1)設計特定的概率估值表PET,根據(jù)步驟1得到的第一編碼索引IndexO和第 二編碼索引Indexl,從該概率估值表中分別得到對應的第一小概率符號概率值QeO及第二 小概率符號概率值Qe 1。本發(fā)明設計的概率估值表PET由四個子表構(gòu)成,分別為(a)小概率符號概率值表,用于存儲小概率符號概率值Qe ;(b)下一個上下文符號為大概率符號的概率值表,用于存儲下一個上下文符號為 大概率符號的概率值NT_NMPS_QE1 ;(c)下一個上下文符號為小概率符號的概率值表,用于存儲下一個上下文符號為 小概率符號的概率值NT_NLPS_QE1 ;(d)前導零計數(shù)值表,用于存儲小概率符號概率值的前導零計數(shù)值,即16減去小 概率符號概率值最高有效位位置的所有可能的差值,其取值范圍從1到15。根據(jù)JPEG2000標準規(guī)定,對每一個概率值表中的概率均采用一個16位的二進制 數(shù)表示,但是由于標準中給出的概率值的最低兩位均為“01”,并且最高位均為“0”,因此在 存儲時可以采用13位,而不是16位表示單一的概率值。此外,雖然JPEG2000標準規(guī)定每一 個概率值表存儲47個索引對應的概率值,但是存在概率值相同的情況,例如Qe
,Qe[6]、 Qe[14], Qe[46]的值均為十六進制值0x5601,因此在存儲時僅需要存儲不同的概率值,而 通過簡單的運算定位到每一個存儲單元。對小概率符號概率值表和下一個上下文符號為大概率符號的概率值表,由于這兩 個表中僅有32個不同的概率值,因此這兩個表的深度均為32,寬度均為13位,容量均為 32X13位。對下一個上下文符號為小概率符號的概率值表,由于該表中僅有30個不同的概 率值,故該表的深度為30,寬度為13位,容量為30 X 13位。對于前導零計數(shù)表,由于每一個 前導零計數(shù)值需要用4位表示,故該表的深度為32,寬度為4位,容量為32X4位。綜合起來,概率估值表的總?cè)萘繛?2X 13+32X 13+30X 13+32X4 = 1350位。該 概率估值表的具體內(nèi)容分別如表1、表2、表3所示。表1小概率符號概率值子表和前導零計數(shù)子表
表2下一個上下文符號為大概率符號概率值子表 表3下一個上下文符號為小概率符號概率值子表
(5. 2)根據(jù)雙上下文符號對的類型,將概率區(qū)間值更新分為四種不同的情況,包括 雙大概率符號概率區(qū)間值更新、大概率/小概率符號概率區(qū)間值更新、小概率/大概率符號 概率區(qū)間值更新和雙小概率符號概率區(qū)間值更新。對每一種情況,分別更新當前概率區(qū)間 值,其中(a)雙大概率符號概率區(qū)間值更新的過程如下首先,建立第一、第二和第三臨時變量,將第一小概率符號概率值QeO和第二小概率符號概率值Qel,分別保存到第一臨時變量temp2和第二臨時變量tempO中,同時計算當 前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO的差值,即A-QeO,并將其保存到第三臨時變 量tempi中;其次,分別更新第一、第二和第三臨時變量值,其中對第一臨時變量temp2,如果 該第一臨時變量值小于十六進制值0x8000,則將該第一臨時變量值左移一位,此后重復該 過程,直到該第一臨時變量值大于或等于十六進制值0x8000 ;對第二臨時變量tempO,如 果相異標記值為0,則從概率估值表中讀出下一個上下文符號為大概率符號的概率值NT_ NMPS_QE1,并將該第二臨時變量值更新為NT_NMPS_QE1 ;對第三臨時變量tempi,其更新過 程與第一臨時變量temp2相同;再次,按照概率區(qū)間值A(chǔ)的大小計算概率區(qū)間臨時變量值A(chǔ)_temp 如果概率區(qū)間 值A(chǔ)大于或等于2 XQeO,比較第三臨時變量tempi與第二臨時變量tempO的關(guān)系,若tempi 小于2XtempO,則A_temp等于tempO,否則,A_temp等于templ-tempO ;如果概率區(qū)間值 A小于2XQeO,比較第一臨時變量temp2與第二臨時變量tempO的關(guān)系,若temp2小于 2 X tempO,貝Ij A_temp 等于 tempO,否貝Ij,A_temp 等于 temp2_temp0 ;然后,修正概率區(qū)間臨時變量值A(chǔ)_temp,如果概率區(qū)間臨時變量值A(chǔ)_temp小于 十六進制值0x8000,則將該概率區(qū)間臨時變量值左移一位,重復該判斷過程,直到該概率區(qū) 間臨時變量值大于或等于十六進制值0x8000 ;最后,更新概率區(qū)間值A(chǔ),將概率區(qū)間值A(chǔ)更新為修正后的概率區(qū)間臨時變量值八_
tempo(b)按照如下過程對大概率/小概率符號概率區(qū)間值進行更新首先,建立第一、第二和第三臨時變量,將第一小概率符號概率值QeO和第二小概 率符號概率值Qel,分別保存到第一臨時變量temp2和第二臨時變量tempO中,同時計算當 前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO的差值,即A-QeO,并將其保存到第三臨時變 量tempi中;其次,分別更新第一、第二和第三臨時變量值,其中對第一臨時變量temp2,如果 該第一臨時變量值小于十六進制值0x8000,則將該第一臨時變量值左移一位,此后重復該 過程,直到該第一臨時變量值大于或等于十六進制值0x8000 ;對第二臨時變量tempO,如 果相異標記值為0,則從概率估值表中讀出下一個上下文符號為大概率符號的概率值NT_ NMPS_QE1,并將該第二臨時變量值更新為NT_NMPS_QE1 ;對第三臨時變量tempi,其更新過 程與第一臨時變量temp2相同;再次,根據(jù)概率區(qū)間值A(chǔ)的大小計算概率區(qū)間臨時變量值A(chǔ)_temp 如果概率區(qū)間 值A(chǔ)大于或等于2 XQeO,比較第三臨時變量tempi與第二臨時變量tempO的關(guān)系,若tempi 大于或等于2 X tempO,則A_temp等于tempO,否則,A_temp等于templ-tempO ;如果概率區(qū)間值A(chǔ)小于2XQeO,比較第一臨時變量temp2與第二臨時變量tempO的關(guān)系,若temp2大于 或等于 2X tempO,貝Ij A—temp 等于 tempO,否貝Ij,A—temp 等于 temp2_temp0 ;然后,修正概率區(qū)間臨時變量值A(chǔ)_temp,如果概率區(qū)間臨時變量值A(chǔ)_temp小于 十六進制值0x8000,則將該概率區(qū)間臨時變量值左移一位,重復該判斷過程,直到該概率區(qū) 間臨時變量值大于或等于十六進制值0x8000 ;最后,更新概率區(qū)間值A(chǔ),將概率區(qū)間值A(chǔ)更新為修正后的概率區(qū)間臨時變量值八_
tempo(c)小概率/大概率符號概率區(qū)間值更新的過程如下首先,建立第一、第二和第三臨時變量,將第一小概率符號概率值QeO和第二小概 率符號概率值Qel,分別保存到第一臨時變量temp2和第二臨時變量tempO中,同時計算當 前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO的差值,即A-QeO,并將其保存到第三臨時變 量tempi中;其次,分別更新第一、第二和第三臨時變量值,其中對第一臨時變量temp2,如果 該第一臨時變量值小于十六進制值0x8000,則將該第一臨時變量值左移一位,此后重復該 過程,直到該第一臨時變量值大于或等于十六進制值0x8000 ;對第二臨時變量tempO,如 果相異標記值為0,則從概率估值表中讀出下一個上下文符號為小概率符號的概率值NT_ NLPS_QE1,并將該第二臨時變量值更新為NT_NLPS_QE1 ;對第三臨時變量tempi,其更新過 程與第一臨時變量temp2相同;再次,根據(jù)概率區(qū)間值A(chǔ)的大小計算概率區(qū)間臨時變量值A(chǔ)_temp,如果概率區(qū)間 值A(chǔ)小于2XQeO,比較第三臨時變量tempi與第二臨時變量tempO的關(guān)系,若tempi小于 2 X tempO,則A_temp等于tempO,否則,A_temp等于temp 1-tempO ;如果概率區(qū)間值A(chǔ)大 于或等于2XQeO,比較第一臨時變量temp2與第二臨時變量tempO的關(guān)系,若temp2小于 2 X tempO,貝Ij A_temp 等于 tempO,否貝lj,A_temp 等于 temp2_temp0 ;然后,修正概率區(qū)間臨時變量值A(chǔ)_temp,如果概率區(qū)間臨時變量值A(chǔ)_temp小于 十六進制值0x8000,則將該概率區(qū)間臨時變量值左移一位,重復該判斷過程,直到該概率區(qū) 間臨時變量值大于或等于十六進制值0x8000 ;最后,更新概率區(qū)間值A(chǔ),將概率區(qū)間值A(chǔ)更新為修正后的概率區(qū)間臨時變量值八_
tempo(d)雙小概率符號概率區(qū)間值更新過程如下首先,建立第一、第二和第三臨時變量,將第一小概率符號概率值QeO和第二小概 率符號概率值Qel,分別保存到第一臨時變量temp2和第二臨時變量tempO中,同時計算當 前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO的差值,即A-QeO,并將其保存到第三臨時變 量tempi中;其次,分別更新第一、第二和第三臨時變量值,其中對第一臨時變量temp2,如果 該第一臨時變量值小于十六進制值0x8000,則將該第一臨時變量值左移一位,此后重復該 過程,直到該第一臨時變量值大于或等于十六進制值0x8000 ;對第二臨時變量tempO,如 果相異標記值為0,則從概率估值表中讀出下一個上下文符號為小概率符號的概率值NT_ NLPS_QE1,并將該第二臨時變量值更新為NT_NLPS_QE1 ;對第三臨時變量tempi,其更新過 程與第一臨時變量temp2相同;
再次,根據(jù)概率區(qū)間值A(chǔ)的大小計算概率區(qū)間臨時變量值A(chǔ)_temp,如果概率區(qū)間 值A(chǔ)小于2XQeO,比較第三臨時變量tempi與第二臨時變量tempO的關(guān)系,若tempi大于 或等于2 X tempO,則A_temp等于tempO,否則,A_temp等于templ-tempO ;如果概率區(qū)間值 A大于或等于2XQeO,比較第一臨時變量temp2與第二臨時變量tempO的關(guān)系,若temp2大 于或等于 2 X tempO,貝Ij A—temp 等于 tempO,否貝Ij,A—temp 等于 temp2_temp0 ;然后,修正概率區(qū)間臨時變量值A(chǔ)_temp,如果概率區(qū)間臨時變量值A(chǔ)_temp小于 十六進制值0x8000,則將該概率區(qū)間臨時變量值左移一位,重復該判斷過程,直到該概率區(qū) 間臨時變量值大于或等于十六進制值0x8000 ; 最后,更新概率區(qū)間值A(chǔ),將概率區(qū)間值A(chǔ)更新為修正后的概率區(qū)間臨時變量值八_
tempo(5. 3)計算兩個概率區(qū)間值移位計數(shù)值,其中第一概率區(qū)間值移位計數(shù)值為概率 區(qū)間值A(chǔ)更新前的前導零計數(shù)值,第二概率區(qū)間值移位計數(shù)值為概率區(qū)間值A(chǔ)更新后的前 導零計數(shù)值。步驟6,輸出更新后的概率區(qū)間值。本發(fā)明的效果可以通過以下實驗數(shù)據(jù)進一步說明。本發(fā)明的概率估值表充分考慮了概率估值表中各個字段的關(guān)系后,其容量僅為 1350位,而現(xiàn)有技術(shù)中M. Dyer采用的概率估值表需要47 X 32 X 2 = 3008位,現(xiàn)有技術(shù)中劉 奇衛(wèi)采用的概率估值表需要47X96 = 4512位,可見本發(fā)明顯著降低了內(nèi)部存儲位。以上描述僅是本發(fā)明的一個具體實施例,顯然對于本領(lǐng)域的專業(yè)人員來說,在了 解了本發(fā)明內(nèi)容和原理后,都可能在不背離本發(fā)明原理、結(jié)構(gòu)的情況下,進行形式和細節(jié)上 的各種修正和改變,但是這些基于本發(fā)明思想的修正和改變?nèi)栽诒景l(fā)明的權(quán)利要求保護范 圍之內(nèi)。
權(quán)利要求
一種基于JPEG2000標準的算術(shù)編碼概率區(qū)間值確定方法,包括如下步驟(1)從編碼索引數(shù)組中讀取雙上下文符號對分別對應的雙編碼索引,以及雙上下文標號分別對應的雙大概率符號標識,并根據(jù)雙大概率符號標識與相應的雙上下文判決,確定雙上下文符號對的概率類型(1a)如果第一大概率符號標識MPS_CX0與第一上下文判決D0相等,并且第二大概率符號標識MPS_CX1與第二判決D1相等,則雙上下文符號對的概率類型為雙大概率符號;(1b)如果第一大概率符號標識MPS_CX0與第一判決D0相等,而第二大概率符號標識MPS_CX1與第二判決D1不相等,則雙上下文符號對的概率類型為大概率/小概率符號;(1c)如果第一大概率符號標識MPS_CX0與第一判決D0不相等,而第二大概率符號標識MPS_CX1與第二判決D1相等,則雙上下文符號對的概率類型為小概率/大概率符號;(1d)如果第一大概率符號標識MPS_CX0與第一判決D0不相等,并且第二大概率符號標識MPS_CX1與第二判決D1不相等,則雙上下文符號對的概率類型為雙小概率符號;(2)根據(jù)輸入的雙上下文標號,確定上下文標號的異同,如果雙上下文標號相等,則判定為雙上下文標號相同,否則,判定為雙上下文標號相異;(3)根據(jù)上下文標號的異同和雙上下文符號對的概率類型,聯(lián)合確定雙上下文符號對的類型為雙大概率符號相同、雙大概率符號相異、大概率/小概率符號相同、大概率/小概率符號相異、小概率/大概率符號相同、小概率/大概率符號相異、雙小概率符號相同和雙小概率符號相異;(4)設計特定的概率估值表,根據(jù)雙編碼索引從該概率估值表中分別得到第一小概率符號概率值Qe0及第二小概率符號概率值Qe1;(5)根據(jù)雙上下文符號對的類型,更新概率區(qū)間值,并計算概率區(qū)間值移位計數(shù)值;(6)輸出更新后的概率區(qū)間值。
2.根據(jù)權(quán)利要求1所述的算術(shù)編碼概率區(qū)間值確定方法,其特征在于步驟(4)所述的 概率估值表包括如下4個不同容量的子表(a)小概率符號概率值表,該表的深度為32,寬度為13位,容量為32X 13位,即采用13 位表示概率值;(b)下一個上下文符號為大概率符號的概率值表,該表的深度為32,寬度為13位,容量 為32X13位;(c)下一個上下文符號為小概率符號的概率值表,該表的深度為30,寬度為13位,容量 為30X13位;(d)前導零計數(shù)表,該表的深度為32,寬度為4位,容量為32X 4位,表中存儲的每一個 前導零計數(shù)值的取值范圍從1到15。
3.根據(jù)權(quán)利要求1所述的算術(shù)編碼概率區(qū)間值確定方法,其特征在于步驟(5)所述的 更新概率區(qū)間值,按如下步驟進行(3a)將第一小概率符號概率值QeO及第二小概率符號概率值Qel,分別保存到第一臨 時變量temp2和第二臨時變量tempO中,同時計算當前概率區(qū)間值A(chǔ)與第一小概率符號概 率值QeO的差值,即A-QeO,并將其保存到第三臨時變量tempi中;(3b)以相同的方法,分別更新第一和第三臨時變量值;(3c)同時根據(jù)雙上下文符號對的類型,更新第二臨時變量值;(3d)根據(jù)當前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO的關(guān)系,對不同概率類型的 雙上下文符號對,分別計算概率區(qū)間臨時變量值A(chǔ)_temp 如果雙上下文符號對的概率類型 為雙大概率符號,則計算雙大概率符號下的概率區(qū)間臨時變量值;如果雙上下文符號對的 概率類型為大概率/小概率符號,則計算大概率/小概率符號下的概率區(qū)間臨時變量值;如 果雙上下文符號對的概率類型為小概率/大概率符號,則計算小概率/大概率符號下的概 率區(qū)間臨時變量值;如果雙上下文符號對的概率類型為雙小概率符號,則計算雙小概率符 號下的概率區(qū)間臨時變量值; (3e)對概率區(qū)間臨時變量值A(chǔ)_temp進行修正,如果概率區(qū)間臨時變量值A(chǔ)_temp小 于十六進制值0x8000,則將其值左移一位,此后重復該判斷過程,直到A_temp大于或等于 十六進制值0x8000 ;(3f)將概率區(qū)間值A(chǔ)更新為修正后的概率區(qū)間臨時變量值々_切!^。
4.根據(jù)權(quán)利要求3所述的算術(shù)編碼概率區(qū)間值確定方法,其特征在于步驟(3b)所述的 更新第一和第三臨時變量值,是通過該第一和第三臨時變量值與十六進制值0x8000的關(guān) 系進行更新,如果該臨時變量值小于十六進制值0x8000,則將該臨時變量值左移一位,此后 重復該判斷過程,直到該臨時變量值大于或等于十六進制值0x8000。
5.根據(jù)權(quán)利要求3所述的算術(shù)編碼概率區(qū)間值確定方法,其特征在于步驟(3c)所述的 更新第二臨時變量值,按如下步驟進行(5a)如果雙上下文符號對的類型是雙大概率符號相同或者大概率/小概率符號相同, 則將第二臨時變量值更新為概率估值表中下一個上下文符號為大概率符號的概率值;(5b)如果雙上下文符號對的類型是雙小概率符號相同或者小概率/大概率符號相同, 則將第二臨時變量值更新為概率估值表中下一個上下文符號為小概率符號的概率值。
6.根據(jù)權(quán)利要求3所述的算術(shù)編碼概率區(qū)間值確定方法,其特征在于步驟(3d)所述的 計算雙大概率符號下的概率區(qū)間臨時變量值,按如下步驟進行(6a)比較當前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO ;(6b)如果概率區(qū)間值A(chǔ)大于或等于第一小概率符號概率值QeO的2倍,比較第三臨時 變量tempi與第二臨時變量tempO的關(guān)系,若tempi小于tempO的2倍,則概率區(qū)間臨時變 量值 A_temp 為 tempO,否則,A_temp 為 templ-tempO ;(6c)如果概率區(qū)間值A(chǔ)小于第一小概率符號概率值QeO的2倍,比較第一臨時變量 temp2與第二臨時變量tempO的關(guān)系,若temp2小于tempO的2倍,則A_temp為tempO,否 則,A_temp 為 temp2_temp0。
7.根據(jù)權(quán)利要求3所述的算術(shù)編碼概率區(qū)間值確定方法,其特征在于步驟(3d)所述的 計算大概率/小概率符號下的概率區(qū)間臨時變量值,按如下步驟進行(7a)比較當前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO ;(7b)如果概率區(qū)間值A(chǔ)大于或等于第一小概率符號概率值QeO的2倍,比較第三臨時 變量tempi與第二臨時變量tempO的關(guān)系,若tempi大于或等于tempO的2倍,則概率區(qū)間 臨時變量值 A_temp 為 tempO,否貝U, A_temp 為 templ-tempO ;(7c)如果概率區(qū)間值A(chǔ)小于第一小概率符號概率值QeO的2倍,比較第一臨時變量 temp2與第二臨時變量tempO的關(guān)系,若temp2大于或等于tempO的2倍,則A_temp為 tempO,否則,A_temp 為 temp2_temp0。
8.根據(jù)權(quán)利要求3所述的算術(shù)編碼概率區(qū)間值確定方法,其特征在于步驟(3d)所述的 計算小概率/大概率符號下的概率區(qū)間臨時變量值,按如下步驟進行(8a)比較當前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO ;(8b)如果概率區(qū)間值A(chǔ)小于第一小概率符號概率值QeO的2倍,比較第三臨時變量 tempi與第二臨時變量tempO的關(guān)系,若tempi小于tempO的2倍,則概率區(qū)間臨時變量值 A_temp 為 tempO,否則,A_temp 為 templ-tempO ;(8c)如果概率區(qū)間值A(chǔ)大于或等于第一小概率符號概率值QeO的2倍,比較第一臨時 變量temp2與第二臨時變量tempO的關(guān)系,若temp2小于tempO的2倍,則A_temp為tempO, 否貝A_temp 為 temp2-temp0。
9.根據(jù)權(quán)利要求3所述的算術(shù)編碼概率區(qū)間值確定方法,其特征在于步驟(3d)所述的 計算雙小概率符號下的概率區(qū)間臨時變量值,按如下步驟進行(9a)比較當前概率區(qū)間值A(chǔ)與第一小概率符號概率值QeO ;(9b)如果概率區(qū)間值A(chǔ)小于第一小概率符號概率值QeO的2倍,比較第三臨時變量 tempi與第二臨時變量tempO的關(guān)系,若tempi大于或等于tempO的2倍,則概率區(qū)間臨時 變量值 A_temp 為 tempO,否貝A_temp 為 templ-tempO ;(9c)如果概率區(qū)間值A(chǔ)大于或等于第一小概率符號概率值QeO的2倍,比較第一臨時 變量temp2與第二臨時變量tempO的關(guān)系,若temp2大于或等于tempO的2倍,則A_temp 為 tempO,否則,A_temp 為 temp2_temp0。
全文摘要
本發(fā)明公開了一種基于JPEG2000標準的算術(shù)編碼概率區(qū)間值確定方法,主要解決現(xiàn)有方法處理速度低、內(nèi)部存儲位多、且不能對任意雙上下文符號對的概率區(qū)間值進行有效更新的問題。其確定過程是首先判斷雙上下文符號對的類型,然后從概率估值表中得出對應的小概率符號概率值,對不同類型的雙上下文符號對,分別進行概率區(qū)間值更新,同時計算概率區(qū)間值移位計數(shù)值,最后輸出更新后的概率區(qū)間值。本發(fā)明具有處理速度高、內(nèi)部存儲位低的優(yōu)點,可用于各種高速數(shù)字設備的圖像壓縮編碼,特別是高速實時衛(wèi)星遙感圖像編碼。
文檔編號H04N7/30GK101848387SQ20101012873
公開日2010年9月29日 申請日期2010年3月19日 優(yōu)先權(quán)日2010年3月19日
發(fā)明者劉凱, 曾偉, 李云松, 王柯儼 申請人:西安電子科技大學