一種獲取、更新bin的上下文概率模型值的方法及裝置的製作方法
2023-05-12 05:16:36 2
專利名稱:一種獲取、更新bin的上下文概率模型值的方法及裝置的製作方法
技術領域:
本發明涉及ー種數位訊號處理中獲取、更新bin的上下文概率模型值方法及裝置,尤其涉及一種視頻編解碼晶片熵編解碼中的獲取、更新bin的上下文概率模型值的方法及裝置。
背景技術:
基於上下文的自適應ニ進位算術編碼在視頻、圖像編碼中被廣泛應用,例如視頻編碼標準H. 264中就採用了基於上下文的自適應ニ進位算術編碼方法。在HEVC等下一代視頻編碼標準的初步模型中,使用了新的熵編碼方法,這種新的熵編碼方法對H. 264的ニ進位算術編碼引擎進行了改進,但仍舊採用基於上下文建模的方法。熵編碼的語法元素經過ニ值化,得到系列ニ進位比特串,稱為bin串。對每個bin使用上下文建模的方法得到對 應的上下文概率模型值,即獲取bin的上下文概率模型值。然後按該上下文概率模型值對bin進行ニ進位算術編碼。一般,熵編碼開始時,要對上下文概率模型值進行初始化,得到初始概率模型值;在熵編碼過程中,要對上下文概率模型值進行更新,即更新bin的上下文概率模型值。熵解碼過程中的上下文概率模型值初始化、獲取bin的上下文概率模型值、更新bin的上下文概率模型值與熵編碼過程中的一祥。雖然基於上下文的自適應ニ進位算術編碼可以大幅提高編碼效率,但是計算複雜度很高,獲取、更新bin的上下文概率模型值是提高熵編碼和熵解碼速度的瓶頸所在,因此提出ー種快速的獲取、更新bin的上下文概率模型值方法與裝置非常有意義。大部分有關基於上下文的自適應ニ進位算術編碼的文獻只涉及ニ進位算術編碼引擎的實現方法。而對bin的上下文概率模型值獲取與更新涉及較少。而上下文概率模型需要的存儲量與計算量很大,例如H. 264中,上下文概率模型共計1024個,而計算上下文概率模型地址時需要使用上下文信息,即與當前塊相鄰的左邊塊與右邊塊的信息或前面已處理的bin值或當前bin所屬語法元素的位置信息等。這些都給上下文建模的實現帶來困難,直接影響熵編碼和熵解碼的吞吐率,因此,提出ー種高效的獲取、更新bin的上下文概率模型值的方法與裝置對系統的性能的提高具有重要意義。
發明內容
本發明的目的是提供ー種獲取、更新bin的上下文概率模型值的方法及裝置。與上述現有技術不同的是,本發明從方便尋址的角度出發提出了ー種新型的獲取、更新bin的上下文概率模型值的方法與裝置,其基本思想是以簡便的運算快速方便的得到概率模型地址,從而較快獲得bin的上下文概率模型值或較快更新bin的上下文概率模型值,進而加快熵編碼、熵解碼的系統處理速度。本發明的第一目的在於提出一種獲取bin的上下文概率模型值的方法,該方法包括以下步驟a)計算概率模型起始地址addr_init (i) = (i_j) << η,所述i是所述bin的分組號,所述η應滿足2η大於等於y,其中y是在所有bin的分類中屬於同一 bin的分類的上下文概率模型數目最大的bin的分類所對應的上下文概率模型數目,所述j是起始的分組號;b)由所述bin和所述bin的上下文信息計算概率模型地址偏移量;c)計算概率模型地址,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和;d)查所述概率模型存儲表中概率模型地址指向的単元,得到所述bin的上下文概率模型值;所述的概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。 所述bin的分組號按如下方法獲得將屬於同一分組的bin進行分類,所述分組對應的上下文概率模型數目為X ;如果X小於等於2n,則所述分組劃分為d個分類,d = I ;否則,所述分組劃分為d個分類,d應保證x-(d-l)*2n小於等於2n ;其中最後ー個分類對應x-(d-l)*2nf上下文概率模型,其餘(d-Ι)個分類對應2"個上下文概率模型;為d個分類分配d個連續的分類號,這些連續的分類號中的任何一個分類號都不與已有的分類號重複;所述的bin的分組號是這些連續的分類號中最小的分類號。所述的分組的特徵至少包括以下之一a)某語法元素ニ值化bin串中的所有的bin屬於ー個分組;b)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另一個分組;c)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另一種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。本發明的另一目的是提出ー種更新bin的上下文概率模型值的方法,該方法包括以下步驟a)計算概率模型起始地址addr_init (i) = (i_j) << η,所述i是所述bin的分組號,所述η應滿足2η大於等於y,其中y是在所有bin的分類中屬於同一 bin的分類的上下文概率模型數目最大的bin的分類所對應的上下文概率模型數目,所述j是起始的分組號;b)由所述的bin和所述bin的上下文信息計算概率模型地址偏移量;c)計算概率模型地址,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和;d)將所述bin的上下文概率模型值寫入概率模型存儲表中概率模型地址指向的単元;所述概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。所述bin的分組號按如下方法獲得將屬於同一分組的bin進行分類,所述分組對應的上下文概率模型數目為X ;如果X小於等於2n,則所述分組劃分為d個分類,d = I ;否則,所述分組劃分為d個分類,d應保證x-(d-l)*2n小於等於2n ;其中最後ー個分類對應x-(d-l)*2nf上下文概率模型,其餘(d-Ι)個分類對應2"個上下文概率模型;
為d個分類分配d個連續的分類號,這些連續的分類號中的任何一個分類號都不與已有的分類號重複;所述的bin的分組號是這些連續的分類號中最小的分類號。所述的分組的特徵至少包括以下之一a)某語法元素ニ值化bin串中的所有的bin屬於ー個分組;b)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另一個分組;c)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另一種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。
本發明的又一目的在於提出一種獲取bin的上下文概率模型值的裝置,該裝置包括概率模型起始地址計算單元;概率模型地址偏移量計算單元;概率模型地址計算単元;概率模型存儲器;概率模型起始地址計算單元計算概率模型起始地址addr_init (i) = (i_j)
<< n,所述i是所述bin的分組號,所述η應滿足2η大於等於y,其中y是在所有bin的分類中屬於同一 bin的分類的上下文概率模型數目最大的bin的分類所對應的上下文概率模型數目,所述j是起始的分組號;概率模型地址偏移量計算單元由所述bin和所述bin的上下文信息計算得到概率模型地址偏移量;概率模型地址計算単元對概率模型起始地址與概率模型地址偏移量求和,得到所述bin的概率模型地址;所述的概率模型存儲器中按照上下文概率模型索引由小到大依次連續存放同一分組的bin對應的上下文概率模型,讀取所述的概率模型存儲器中概率模型地址指向的単元,獲得所述bin的上下文概率模型值。所述的分組的特徵至少包括以下之一a)某語法元素ニ值化bin串中的所有的bin屬於ー個分組;b)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另一個分組;c)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另一種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。本發明的又一目的在於提出ー種更新bin的上下文概率模型值的裝置,該裝置包括概率模型起始地址計算單元;概率模型地址偏移量計算單元;概率模型地址計算単元;概率模型存儲器;概率模型起始地址計算單元計算概率模型起始地址addr_init (i) = (i_j)
<< n,所述i是所述bin的分組號,所述應滿足2n大於等於y,其中y是在所有bin的分類中屬於同一 bin的分類的上下文概率模型數目最大的bin的分類所對應的上下文概率模型數目,所述j是起始的分組號;概率模型地址偏移量計算單元由所述bin和所述bin的上下文信息計算得到概率模型地址偏移量;概率模型地址計算単元對概率模型起始地址與概率模型地址偏移量求和,得到概率模型地址;所述的概率模型存儲器中按照上下文概率模型索引由小到大依次連續存放同 一分組的bin對應的上下文概率模型,將所述bin的上下文概率模型值寫入概率模型存儲器中概率模型地址指向的単元。所述的分組的特徵至少包括以下之一a)某語法元素ニ值化bin串中的所有的bin屬於ー個分組;b)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另一個分組;c)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另一種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。本發明涉及的獲取、更新bin的上下文概率模型值的方法及裝置也可以用於其它數位訊號處理領域。
圖I是本發明實施例的某語法元素ニ值化bin串中的bin的上下文概率模型值在概率模型存儲表中的存儲示意圖。圖2是某語法元素ニ值化bin串中的某bin的上下文信息示意圖。圖3是某語法元素ニ值化bin串中的bin的上下文概率模型值在概率模型存儲表中的存儲不意圖。圖4是某語法元素ニ值化bin串中的bin的上下文概率模型值在概率模型存儲表中的存儲不意圖。圖5是獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置圖。圖6是某語法元素ニ值化bin串中的bin的上下文概率模型值在概率模型存儲器中的存儲不意圖。圖7是獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置圖。圖8是某語法元素ニ值化bin串中的bin的上下文概率模型值在概率模型存儲器中的存儲不意圖。圖9是獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置圖。圖10是某語法元素ニ值化bin串中的bin的上下文概率模型值在概率模型存儲器中的存儲示意圖。圖11是更新某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置圖。圖12是更新某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置圖。圖13是更新某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置圖。
具體實施例方式下面,結合附圖和具體實施例對本發明的具體實施方式
作詳細說明。首先,對bin的分組方法進行舉例說明。I)某語法元素ニ值化bin串中的所有的bin屬於ー個分組。例如H. 264標準的語法元素mb_field_decoding_flag ニ值化bin串的bin屬於同一分組,使用索引為70的上下文概率模型。
2)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另ー個分組。例如H. 264標準的語法元素coded_block_pattern ニ值化的bin串的所有前綴部分的bin屬於ー個分組,使用索引為73 76的上下文概率模型;語法元素coded_block_pattern ニ值化的bin串的所有後綴部分的bin屬於另一分組,使用索引為78 84的上下文概率模型。3)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另一種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。例如H. 264標準的語法元素mb_skip_flag在編碼參數slice類型為P或SP條件下的ニ值化的bin屬於ー個分組,使用索引為11 13的上下文概率模型;在編碼參數slice類型為B條件下的ニ值化的bin屬於另一個分組,使用索引為24 26的上下文概率模型。對於不同的語法元素,可以組合使用上述分組方法。此外相同的語法元素也可以組合使用上述分組方法。例如,在編碼參數條帶類型為SI條件下語法元素mb_type ニ值化bin串的所有後綴部分的bin與在編碼參數條帶類型為I條件下的mb_type ニ值化的bin串的所有的bin屬於同一個分組,使用索引為3的上下文概率模型。對於bin的分組方法,在實施例中不再--舉例。其次,bin的上下文信息可有以下類型l)bin的上下文信息包括相鄰塊的信息;2) bin的上下文信息包括之前處理的bin值;3)bin的上下文信息包括該bin所屬的語法元素的位置。對於各種類型的bin的上下文信息,在實施例中不再一一舉例。實施例I :本實施例舉例說明了獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的方法。本例中取η = 2,因此第i個bin的分類對應的上下文概率模型數目yi;而y等於所有Ii中的最大值,I應該不超過2n,此實施例中2n = 4。例如AVS標準的語法元素intra_chroma_pred_mode, ニ值化bin串的所有的bin屬於同一分組,根據標準規定的這些bin的上下文概率模型的索引為23 26,可知該分組的上下文概率模型數目X = 4。因為x = 2n = 4,所以該分組的bin劃分為I個分類。假設之前分類號O 8已使用,則分配該分類的分類號為9,則該bin的分組的分組號就是同一分組中最小的分類號9。起始分組號是所有分組號中最小的ー個,本例中假設起始分組號j=O。該分類對應的上下文概率模型數目y9 = 4。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖I所示,在概率模型存儲表中,從地址36開始,按照概率模型索引由小到大依次存儲4個上下文概率模型地址36存放索引為23的上下文概率模型,地址37存放索引為24的上下文概率模型,地址38存放索引為25的上下文概率模型,地址39存放索引為26的上下文概率模型。獲取語法元素intra_chroma_pred_mode ニ值化bin串中的bin的上下文概率模型值的方法,包括以下步驟、
I)計算概率模型起始地址addr_init (i) = (9-0) くく 2 = 36。此處的「<<」表示向左移位,可以用其它等效的方法實現。
2)由所述bin和該bin的上下文信息計算概率模型地址偏移量例如,對於AVS標準的語法元素intra_chroma_pred_mode ニ值化bin串中的第O個bin,由AVS標準可知該bin的上下文信息包括相鄰塊的信息即如圖2所示的相鄰塊A與B是否可用、以及A與B的預測模式是否為O。例如A可用並且A的預測模式為O則a = 0,B可用並且B的預測模式為I則b = I,根據AVS標準所述第O個bin的概率模型地址偏移量為a+b = I。3)計算概率模型地址,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和;例如語法元素intra_chroma_pred_mode ニ值化bin串中的第O個bin的概率模型地址是36+1 = 37。此處「和」也可以用其它等效的方法實現。4)查所述概率模型存儲表中概率模型地址指向的単元,得到所述bin的上下文概率模型值。例如查概率模型存儲表中概率模型地址37指向的単元,得到所述第O個bin的上下文概率模型值。實施例2:本實施例舉例說明了獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的方法。本例中取η = 3,因此第i個bin的分類對應的上下文概率模型數目yi;而y等於所有Ii中的最大值,I應該不超過2n,此實施例中2n = 8。例如在條帶類型為B這種編碼參數條件下H. 264標準的語法元素SUb_mb_type ニ值化bin串的所有的bin屬於同一分組,根據標準規定的這些bin對應的上下文概率模型索引為36 39,可知該分組的上下文概率模型數目X = 4。因為X < 2n,所以該分組的bin劃分為I個分類。假設之前分類號I 5已使用,分配該分類的分類號為6,則該bin的分組的分組號就是同一分組中最小的分類號6。本例中假設起始分組號j = I。該分類對應的上下文概率模型數目y6 = 4。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖3所示,在概率模型存儲表中,從地址40開始,按照概率模型索引由小到大依次存儲4個上下文概率模型地址40存放索引為36的上下文概率模型,地址41存放索引為37的上下文概率模型,地址42存放索引為38的上下文概率模型,地址43存放索引為39的上下文概率模型。而後續的44 47總共(2η-χ) = 4個地址不存儲概率模型值。獲取在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第2個bin的上下文概率模型值的方法,包括以下步驟I)計算概率模型起始地址i = 6, η = 3, j = I,因此 addr_init (i) = (6-1) *23=5*8 = 40。2)由所述bin和所述bin的上下文信息計算概率模型地址偏移量。例如,在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第2個bin的概率模型地址偏移量由所述bin和所述bin的上下文信息計算得到。按照H. 264標準,此處上下文信息為所述bin之前處理的bin值即第I個bin的值。假設第I個bin的值是0,根據H. 264標準的規定,計算得到概率模型地址偏移量為3。
3)計算概率模型地址 ,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和。例如概率模型起始地址是40,概率模型地址偏移量是3,則概率模型地址是40+3 = 43。4)查所述概率模型存儲表中概率模型地址指向的単元,得到所述bin的上下文概率模型值。例如,查概率模型存儲表中概率模型地址43指向的單元,得到在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中第2個bin的上下文概率模型值。實施例3:本實施例舉例說明了獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的方法。本例中取η = 3,因此第i個bin的分類對應的上下文概率模型數目yi;而y等於所有Ii中的最大值,I應該不超過2n,此實施例中2n = 8。例如在編碼參數Frame coded blocks、ctxBlockCat = 5條件下,H. 264標準的語法元素significant_coeff_flag ニ值化bin串中的所有的bin屬於同一分組。根據標準規定,這些bin對應的上下文概率模型索引為402 416,可知該分組的上下文概率模型數目X是15。因為X > 2n,所以該分組的bin被劃分為d = 2個分類,其中前ー個分類對應2n = 8個上下文概率模型,最後ー個分類對應x-(d-l)*2n = 7個上下文概率模型。假設之前分類號O 24已使用,為該2個分類分配2個連續的分類號25、26,這兩個分類號都不與已有的分類號重複。所述的bin的分組號是這些分類號中最小的分類號,即為25。本例中假設起始分組號j = O。該分組劃分成的第一個分類對應的上下文概率模型數目y25 = 8,分組劃分成的第二個分類對應的上下文概率模型數目y26 = 7。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖4所示,在概率模型存儲表中,從地址200開始,按照概率模型索引由小到大依次存儲15個上下文概率模型值起始地址200指向的単元存儲索引402的上下文概率模型值,地址201指向的単元存儲索引403的上下文概率模型值,地址202指向的単元存儲索引404的上下文概率模型值,以此類推,地址214指向的単元存儲索引416的上下文概率模型值,而地址215不存儲上下文概率模型值。獲取在Frame coded blocks、ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化bin串中的bin的上下文概率模型值的方法,包括以下步驟I)計算概率模型起始地址因為 i = 25, η = 3, j = O, addr_init (25) = (25-0)くく 3 = 200。2)由所述bin和所述bin的上下文信息計算概率模型地址偏移量。例如對於在Frame coded blocks>ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化bin串中的第O個bin,按照H. 264標準,該bin的上下文信息為該bin所屬的語法元素的位置LevelListIdx的值。假設LevelListIdx = O,則按照H. 264標準的規定,計算得到概率模型地址偏移量為O。3)計算概率模型地址,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和。例如概率模型起始地址是200,所述第O個bin的概率模型地址偏移量是0,得到所述第O個bin的概率模型地址是200+0 = 200。
4)查所述概率模型存儲表中概率模型地址指向的単元,得到所述bin的上下文概率模型值。例如,查概率模型存儲表中概率模型地址200指向的單元,得到在Frame codedblocks>ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化 bin 串第 O 個bin的上下文概率模型值。實施例4:本實施例舉例說明了更新某語法元素ニ值化bin串中的某bin的上下文概率模型值的方法。本例中取η = 2,因此每個bin的分類的上下文概率模型數目應該均不超過2n,此實施例中2n = 4。例如AVS標準的語法元素intra_chroma_pred_mode, ニ值化bin串的所有的bin屬於同一分組,根據標準規定的這些bin的上下文概率模型的索引為23 26,可知該分組的上下文概率模型數目X = 4。因為X = 2n = 4,所以該分組的bin劃分為I個分類。假設之前分類號O 8已使用,則分配該分類的分類號為9,則該bin的分組的分組號就是就是同一分組中最小的分類號9。起始分組號是所有分組號中最小的ー個,本例中假設起始分組號j = O。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖I所示,在概率模型存儲表中,從地址36開始,按照概率模型索引由小到大依次存儲4個上下文概率模型地址36存放索引為23的上下文概率模型,地址37存放索引為24的上下文概率模型,地址38存放索引為25的上下文概率模型,地址39存放索引為26的上下文概率模型。更新語法元素intra_chroma_pred_mode ニ值化bin串中的bin的上下文概率模型值的方法,包括以下步驟I)計算概率模型起始地址addr_init (i) = (9-0) <<2 = 36。此處的「<<」表示向左移位,可以用其它等效的方法實現。2)由所述bin和該bin的上下文信息計算概率模型地址偏移量例如,對於AVS標準的語法元素intra_chroma_pred_mode ニ值化bin串中的第O個bin,由AVS標準可知該bin的上下文信息包括相鄰塊的信息即如圖2所示的相鄰塊A與B是否可用、以及A與B的預測模式是否為O。例如A可用並且A的預測模式為O則a = 0,B可用並且B的預測模式為I則b = I,根據AVS標準所述第O個bin的概率模型地址偏移量為a+b = I。3)計算概率模型地址,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和;例如語法元素intra_chroma_pred_mode ニ值化bin串中的第O個bin的概率模型地址是36按位或I = 37。4)將所述bin的上下文概率模型值寫入概率模型存儲表中概率模型地址指向的単元。例如將所述第O個bin的上下文概率模型值寫入概率模型存儲表中概率模型地址37指向的單元。實施例5:本實施例舉例說明了更新某語法元素ニ值化bin串中的某bin的上下文概率模型值的方法。 本例中取η = 3,因此每個bin的分類的上下文概率模型數目應該均不超過2n,此實施例中2n = 8。例如在條帶類型為B這種編碼參數條件下H. 264標準的語法元素SUb_mb_type ニ值化bin串的所有的bin屬於同一分組,根據標準規定的這些bin對應的上下文概率模型索引為36 39,可知該分組的上下文概率模型數目X = 4。因為X 2n,所以該分組的bin被劃分為d = 2個分類,其中前ー個分類對應2n = 8個上下文概率模型,最後ー個分類對應x-(d-l)*2n = 7個上下文概率模型。假設之前分類號O 24已使用,為該2個分類分配2個連續的分類號25、26,這兩個分類號都不與已有的分類號重複。所述的bin的分組號是這些分類號中最小的分類號,即為25。本例中假設起始分組號j = O。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖4所示,在概率模型存儲表中,從地址200開始,按照概率模型索引由小到大依次存儲15個上下文概率模型值起始地址200指向的単元存儲索引402的上下文概率模型值,地址201指向的単元存儲索引403的上下文概率模型值,地址202指向的単元存儲索引404的上下文概率模型值,以此類推,地址214指向的単元存儲索引416的上下文概率模型值,而地址215不存儲上下文概率模型值。更新在Frame coded blocks、ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化bin串中的bin的上下文概率模型值的方法,包括以下步驟I)計算概率模型起始地址因為 i = 25, η = 3, j = O, addr_init (25) = (25-0)くく 3 = 200。2)由所述bin和所述bin的上下文信息計算概率模型地址偏移量。例如對於在Frame coded blocks>ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化bin串中的第O個bin,按照H. 264標準,該bin的上下文信息為該bin所屬的語法元素的位置LevelListIdx的值。假設LevelListIdx = O,則按照H. 264標準的規定,計算得到概率模型地址偏移量為O。3)計算概率模型地址,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和。例如概率模型起始地址是200,所述第O個bin的概率模型地址偏移量是0,得到所述第O個bin的概率模型地址是200+0 = 200。4)將所述bin的上下文概率模型值寫入概率模型存儲表中概率模型地址指向的單兀。例如將在 Frame coded blocks、ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化bin串中第O個bin的上下文概率模型值寫入概率模型存儲表中概率模型地址200指向的單元。實施例7:本實施例舉例說明獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置。本例中取η = 2,因此每個bin的分類的上下文概率模型數目應該均不超過2n,此實施例中2n = 4。例如AVS標準的語法元素intra_chroma_pred_mode, ニ值化bin串的所有的bin屬於同一分組,根據標準規定的這些bin的上下文概率模型的索引為23 26,可知該分組 的上下文概率模型數目X = 4。因為X = 2n = 4,所以該分組的bin劃分為I個分類。假設之前分類號O 8已使用,則分配該分類的分類號為9,則該bin的分組的分組號就是9。起始分組號是所有分組號中最小的ー個,本例中假設起始分組號j = O。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖6所示,在概率模型存儲表中,從地址36開始,按照概率模型索引由小到大依次存儲4個上下文概率模型地址36存放索引為23的上下文概率模型,地址37存放索引為24的上下文概率模型,地址38存放索引為25的上下文概率模型,地址39存放索引為26的上下文概率模型。獲取語法元素intra_chroma_pred_mode ニ值化bin串中的bin的上下文概率模型值的裝置例如圖5所示。概率模型起始地址計算單元I計算概率模型起始地址addr_init (i) = (i_j)
<< η。例如,語法元素intra_chroma_pred_mode ニ值化bin串中的第O個bin,概率模型起始地址 addr_init (i) = (9-0) くく 2 = 36。概率模型地址偏移量計算單元2由所述bin和所述bin的上下文信息計算概率模型地址偏移量例如,對於AVS標準的語法元素intra_chroma_pred_mode ニ值化bin串中的第O個bin,由AVS標準可知該bin的上下文信息包括相鄰塊的信息即如圖2所示的相鄰塊A與B是否可用、以及A與B的預測模式是否為O。例如A可用並且A的預測模式為O則a = 0,B可用並且B的預測模式為I則b = 1,根據AVS標準所述第O個bin的概率模型地址偏移量為a+b = I ο 概率模型地址計算単元3由所述bin的概率模型起始地址36與概率模型地址偏移量I求和,得到所述bin的概率模型地址37。從概率模型存儲器4中地址為概率模型地址37的単元,獲得所述bin的上下文概率模型值。實施例8:本實施例說明了獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置。本例中取η = 3,因此每個bin的分類的上下文概率模型數目應該均不超過2n,此實施例中2n = 8。例如在條帶類型為B這種編碼參數條件下H. 264標準的語法元素SUb_mb_type ニ值化bin串的所有的bin屬於同一分組,根據標準規定的這些bin對應的上下文概率模型索引為36 39,可知該分組的上下文概率模型數目X = 4。因為X < 2n,所以該分組的bin劃分為I個分類。假設之前分類號I 5已使用,分配該分類的分類號為6,則該bin的分組的分組號就是同一分組中最小的分類號6。本例中假設起始分組號j = I。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖8所示,在概率模型存儲表中,從地址40開始,按照概率模型索引由小到大依次存儲4個上下文概率模型地址40存放索引為36的上下文概率模型,地址41存放索引為37的上下文概率模型,地址42存放索引為38的上下文概率模型,地址43存放索引為39的上下文概率模型。而後續的44 47總共(2η-χ) = 4個地址不存儲概率模型值。獲取在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第2個bin的上下文概率模型值的裝置如圖7所示。概率模型起始地址計算單元I計算概率模型起始地址addr_init (i) = (i_j)<< η。在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第2 個 bin 的概率模型起始地址 addr_init (i) = (6-1) *23 = 5*8 = 40。概率模型地址偏移量計算單元2由所述bin和所述bin的上下文信息計算概率模型地址偏移量。例如,在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第2個bin的概率模型地址偏移量由所述bin和所述bin的上下文信息計算得至IJ。按照H. 264標準,此處上下文信息為所述bin之前處理的bin值即第I個bin的值。假設第I個bin的值是O,根據H. 264標準的規定,計算得到概率模型地址偏移量為3。概率模型地址計算単元3由所述bin的概率模型起始地址40與概率模型地址偏移量3求和,得到所述bin的概率模型地址43。從概率模型存儲器4中地址為概率模型地址43的単元,獲得所述bin的上下文概率模型值。實施例9:本實施例說明了獲取某語法元素ニ值化bin串中的某bin的上下文概率模型值的
裝置。 本例中取η = 3,因此每個bin的分類的上下文概率模型數目應該均不超過2n,此實施例中2n = 8。例如在編碼參數Frame coded blocks、ctxBlockCat = 5條件下,H. 264標準的語法元素significant_coeff_flag ニ值化bin串中的所有的bin屬於同一分組。根據標準規定,這些bin對應的上下文概率模型索引為402 416,可知該分組的上下文概率模型數目X是15。因為X > 2n,所以該分組的bin被劃分為d = 2個分類,其中前ー個分類對應2n = 8個上下文概率模型,最後ー個分類對應x-(d-l)*2n = 7個上下文概率模型。假設之前分類號O 24已使用,為該2個分類分配2個連續的分類號25、26,這兩個分類號都不與已有的分類號重複。所述的bin的分組號是這些分類號中最小的分類號,即為25。本例中假設起始分組號j = O。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖10所示,在概率模型存儲表中,從地址200開始,按照概率模型索引由小到大依次存儲15個上下文概率模型值起始地址200指向的単元存儲索引402的上下文概率模型值,地址201指向的単元存儲索引403的上下文概率模型值,地址202指向的単元存儲索引404的上下文概率模型值,以此類推,地址214指向的単元存儲索引416的上下文概率模型值,而地址215不存儲上下文概率模型值。獲取在Frame coded blocks、ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化bin串中的bin的上下文概率模型值的裝置如圖9所示。概率模型起始地址計算單元I計算所述的bin的概率模型起始地址addr_init (i)=(i-j) <<n。在 Frame coded blocks、ctxBlockCat = 5 條件下語法兀素 significant—coeff_flag ニ值化bin串中的bin的概率模型起始地址addr_init (25) = (25-0) <<3=200。概率模型地址偏移量計算單元2由所述bin和所述bin的上下文信息計算概率模型地址偏移量。例如對於在Frame coded blocks、ctxBlockCat = 5條件下語法元素signif icant_coeff_f lag ニ值化bin串中的第O個bin,按照H. 264標準,該bin的上下文信息為該bin所屬的語法元素的位置LevelListIdx的值。假設LevelListIdx = O,則按照H. 264標準的規定,計算得到概率模型地址偏移量為O。概率模型地址計算単元3由所述b in的概率模型起始地址200與概率模型地址偏移量O求和,得到所述bin的概率模型地址200。從概率模型存儲器4中地址為概率模型地址200的単元,讀取所述bin的上下文概率模型值。
實施例10 本實施例說明了更新某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置。本例中取η = 2,因此每個bin的分類的上下文概率模型數目應該均不超過2n,此實施例中2n = 4。例如AVS標準的語法元素intra_chroma_pred_mode, ニ值化bin串的所有的bin屬於同一分組,根據標準規定的這些bin的上下文概率模型的索引為23 26,可知該分組的上下文概率模型數目X = 4。因為X = 2n = 4,所以該分組的bin劃分為I個分類。假設之前分類號O 8已使用,則分配該分類的分類號為9,則該bin的分組的分組號就是9。起始分組號是所有分組號中最小的ー個,本例中假設起始分組號j = O。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖6所示,在概率模型存儲表中,從地址36開始,按照概率模型索引由小到大依次存儲4個上下文概率模型地址36存放索引為23的上下文概率模型,地址37存放索引為24的上下文概率模型,地址38存放索引為25的上下文概率模型,地址39存放索引為26的上下文概率模型。更新語法元素intra_chroma_pred_mode ニ值化bin串中的bin的上下文概率模型值的裝置例如圖11所示。概率模型起始地址計算單元5計算概率模型起始地址addr_init (i) = (i-j)
<< η。例如,語法元素intra_chroma_pred_mode ニ值化bin串中的第O個bin,概率模型起始地址 addr_init (i) = (9-0) くく 2 = 36。概率模型地址偏移量計算單元6由所述bin和所述bin的上下文信息計算概率模型地址偏移量例如,對於AVS標準的語法元素intra_chroma_pred_mode ニ值化bin串中的第O個bin,由AVS標準可知該bin的上下文信息包括相鄰塊的信息即如圖2所示的相鄰塊A與B是否可用、以及A與B的預測模式是否為O。例如A可用並且A的預測模式為O則a = 0,B可用並且B的預測模式為I則b = 1,根據AVS標準所述第O個bin的概率模型地址偏移量為a+b = I ο概率模型地址計算単元7由所述bin的概率模型起始地址36與概率模型地址偏移量I求和,得到所述bin的概率模型地址37。將語法兀素intra_chroma_pred_mode ニ值化bin串中的第O個bin的上下文概率模型值寫入概率模型存儲器8中概率模型地址37指向的単元。實施例11 本實施例說明了更新某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置。本例中取η = 3,因此每個bin的分類的上下文概率模型數目應該均不超過2n,此 實施例中2n = 8。例如在條帶類型為B這種編碼參數條件下H. 264標準的語法元素SUb_mb_type ニ值化bin串的所有的bin屬於同一分組,根據標準規定的這些bin對應的上下文概率模型索引為36 39,可知該分組的上下文概率模型數目X = 4。因為X < 2n,所以該分組的bin劃分為I個分類。假設之前分類號I 5已使用,分配該分類的分類號為6,則該bin的分組的分組號就是同一分組中最小的分類號6。本例中假設起始分組號j = I。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖8所示,在概率模型存儲表中,從地址40開始,按照概率模型索引由小到大依次存儲4個上下文概率模型地址40存放索引為36的上下文概率模型,地址41存放索引為37的上下文概率模型,地址42存放索引為38的上下文概率模型,地址43存放索引為39的上下文概率模型。而後續的44 47總共(2η-χ) = 4個地址不存儲概率模型值更新在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第2個bin的上下文概率模型值的裝置如圖12所示。概率模型起始地址計算單元5計算概率模型起始地址addr_init (i) = (i-j)<< η。在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第
2個 bin 的概率模型起始地址 addr_init (i) = (6-1) *23 = 5*8 = 40。概率模型地址偏移量計算單元6由所述bin和所述bin的上下文信息計算概率模型地址偏移量。例如,在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第2個bin的概率模型地址偏移量由所述bin和所述bin的上下文信息計算得至IJ。按照H. 264標準,此處上下文信息為所述bin之前處理的bin值即第I個bin的值。假設第I個bin的值是0,根據H. 264標準的規定,計算得到概率模型地址偏移量為3。概率模型地址計算単元7由所述bin的概率模型起始地址40與概率模型地址偏移量3求和,得到所述bin的概率模型地址43。將在條帶類型為B這種編碼參數條件下語法元素sub_mb_type ニ值化bin串中的第2個bin的上下文概率模型值寫入概率模型存儲器8中概率模型地址43指向的単元。實施例12 本實施例說明了更新某語法元素ニ值化bin串中的某bin的上下文概率模型值的裝置。本例中取η = 3,因此每個bin的分類的上下文概率模型數目應該均不超過2n,此實施例中2n = 8。例如在編碼參數Frame coded blocks、ctxBlockCat = 5條件下,H. 264標準的語法元素significant_coeff_flag ニ值化bin串中的所有的bin屬於同一分組。根據標準規定,這些bin對應的上下文概率模型索引為402 416,可知該分組的上下文概率模型數目X是15。因為X > 2n,所以該分組的bin被劃分為d = 2個分類,其中前ー個分類對應2n = 8個上下文概率模型,最後ー個分類對應x-(d-l)*2n = 7個上下文概率模型。假設之前分類號O 24已使用,為該2個分類分配2個連續的分類號25、26,這兩個分類號都不與已有的分類號重複。所述的bin的分組號是這些分類號中最小的分類號,即為25。本例中假設起始分組號j = O。概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。如圖10所示,在概率模型存儲表中,從地址200開始,按照概率模型索引由小到大依次存儲15個上下文概率模型值起始地址200指向的単元存儲索引402的上下文概率模型值,地址201指向的単元存儲索引403的上下文概率模型值,地址202指向的単元存儲索引404的上下文概率模型值,以此類推,地址214指向的単元存儲索引416的上下文概率模型值,而地址215不存儲上下文概率模型值。更新在Frame coded blocks、ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化bin串中的bin的上下文概率模型值的裝置如圖13所示。概率模型起始地址計算單元5計算所述的bin的概率模型起始地址addr_init (i)=(i-j) <<n。在 Frame coded blocks、ctxBlockCat = 5 條件下語法兀素 significant—coeff_flag ニ值化bin串中的bin的概率模型起始地址addr_init (25) = (25-0) <<3=200。概率模型地址偏移量計算單元6由所述bin和所述bin的上下文信息計算概率 模型地址偏移量。例如對於在Frame coded blocks、ctxBlockCat = 5條件下語法元素signif icant_coeff_f lag ニ值化bin串中的第O個bin,按照H. 264標準,該bin的上下文信息為該bin所屬的語法元素的位置LevelListIdx的值。假設LevelListIdx = O,則按照H. 264標準的規定,計算得到概率模型地址偏移量為O。概率模型地址計算単元7由所述bin的概率模型起始地址200與概率模型地址偏移量O求和,得到所述bin的概率模型地址200。將在Frame coded blocks、ctxBlockCat = 5 條件下語法兀素 significant_coeff_flag ニ值化bin串中的bin的上下文概率模型值寫入概率模型存儲器8中概率模型地址200指向的單元。本發明並不僅局限於H. 264、AVS標準的熵編碼、熵解碼的實現,也不僅局限於所述語法元素。本發明還可用於數位訊號處理的其它領域。
權利要求
1.一種獲取bin的上下文概率模型值的方法,其特徵在於包括以下步驟 a)計算概率模型起始地址addr_init(i) = (i-j) << η,所述i是所述bin的分組號,所述η應滿足2η大於等於y,其中y是在所有bin的分類中屬於同一 bin的分類的上下文概率模型數目最大的bin的分類所對應的上下文概率模型數目,所述j是起始的分組號; b)由所述bin和所述bin的上下文信息計算概率模型地址偏移量; c)計算概率模型地址,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和; d)查所述概率模型存儲表中概率模型地址指向的単元,得到所述bin的上下文概率模型值;所述的概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。
2.如權利要求I所述的獲取bin的上下文概率模型值的方法,其特徵在於所述bin的分組號按如下方法獲得將屬於同一分組的bin進行分類,所述分組對應的上下文概率模型數目為X ; 如果X小於等於2n,則所述分組劃分為d個分類,d = I ; 否則,所述分組劃分為d個分類,d應保證x-(d-l)*2n小於等於2n ;其中最後一個分類對應x-(d-l)*2nf上下文概率模型,其餘(d-Ι)個分類對應2"個上下文概率模型; 為d個分類分配d個連續的分類號,這些連續的分類號中的任何一個分類號都不與已有的分類號重複;所述的bin的分組號是這些連續的分類號中最小的分類號。
3.權利要求2所述的獲取bin的上下文概率模型值的方法,所述的分組的特徵至少包括以下之一 a)某語法元素ニ值化bin串中的所有的bin屬於ー個分組; b)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另一個分組; c)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另ー種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。
4.ー種更新bin的上下文概率模型值的方法,其特徵在於包括以下步驟 a)計算概率模型起始地址addr_init(i) = (i-j) << η,所述i是所述bin的分組號,所述η應滿足2η大於等於y,其中y是在所有bin的分類中屬於同一 bin的分類的上下文概率模型數目最大的bin的分類所對應的上下文概率模型數目,所述j是起始的分組號; b)由所述的bin和所述bin的上下文信息計算概率模型地址偏移量; c)計算概率模型地址,所述概率模型地址為所述概率模型起始地址與概率模型地址偏移量之和; d)將所述bin的上下文概率模型值寫入概率模型存儲表中概率模型地址指向的単元;所述概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放。
5.如權利要求4所述的更新bin的上下文概率模型值的方法,其特徵在於所述bin的分組號按如下方法獲得將屬於同一分組的bin進行分類,所述分組對應的上下文概率模型數目為X ; 如果X小於等於2n,則所述分組劃分為d個分類,d = I ;否則,所述分組劃分為d個分類,d應保證x-(d-l)*2n小於等於2n ;其中最後一個分類對應x-(d-l)*2nf上下文概率模型,其餘(d-Ι)個分類對應2"個上下文概率模型; 為d個分類分配d個連續的分類號,這些連續的分類號中的任何一個分類號都不與已有的分類號重複;所述的bin的分組號是這些連續的分類號中最小的分類號。
6.權利要求5所述的更新bin的上下文概率模型值的方法,所述的分組的特徵至少包括以下之一 a)某語法元素ニ值化bin串中的所有的bin屬於ー個分組; b)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另一個分組; c)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另ー種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。
7.一種獲取bin的上下文概率模型值的裝置,其特徵在於包括 概率模型起始地址計算單元(I); 概率模型地址偏移量計算單元(2); 概率模型地址計算単元(3); 概率模型存儲器(4); 概率模型起始地址計算單元⑴計算概率模型起始地址addr_init(i) = (i-j)<< n,所述i是所述bin的分組號,所述η應滿足2η大於等於y,其中y是在所有bin的分類中屬於同一 bin的分類的上下文概率模型數目最大的bin的分類所對應的上下文概率模型數目,所述j是起始的分組號;概率模型地址偏移量計算單元(2)由所述bin和所述bin的上下文信息計算得到概率模型地址偏移量;概率模型地址計算単元(3)對概率模型起始地址與概率模型地址偏移量求和,得到所述bin的概率模型地址;所述的概率模型存儲器(4)中按照上下文概率模型索引由小到大依次連續存放同一分組的bin對應的上下文概率模型,讀取所述的概率模型存儲器(4)中概率模型地址指向的単元,獲得所述bin的上下文概率模型值。
8.如權利要求I所述的獲取bin的上下文概率模型值的裝置,所述的分組的特徵至少包括以下之一 a)某語法元素ニ值化bin串中的所有的bin屬於ー個分組; b)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另一個分組; c)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另ー種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。
9.ー種更新bin的上下文概率模型值的裝置,其特徵在於包括 概率模型起始地址計算單元(5); 概率模型地址偏移量計算單元(6); 概率模型地址計算単元(7); 概率模型存儲器(8); 概率模型起始地址計算單元(5)計算概率模型起始地址addr_init(i) = (i-j)くく n,所述i是所述bin的分組號,所述應滿足2"大於等於y,其中y是在所有bin的分類中屬於同一 bin的分類的上下文概率模型數目最大的bin的分類所對應的上下文概率模型數目,所述j是起始的分組號;概率模型地址偏移量計算單元出)由所述bin和所述bin的上下文信息計算得到概率模型地址偏移量;概率模型地址計算単元(7)對概率模型起始地址與概率模型地址偏移量求和,得到概率模型地址;所述的概率模型存儲器(4)中按照上下文概率模型索引由小到大依次連續存放同一分組的bin對應的上下文概率模型;將所述bin的上下文概率模型值寫入概率模型存儲器(8)中概率模型地址指向的単元。
10.權利要求9所述的更新bin的上下文概率模型值的裝置,所述的分組的特徵至少包括以下之一 a)某語法元素ニ值化bin串中的所有的bin屬於ー個分組; b)某語法元素ニ值化bin串中的所有前綴部分的bin屬於ー個分組,並且該語法元素ニ值化bin串中的所有後綴部分的bin屬於另一個分組; c)某種編碼參數下的某語法元素ニ值化bin串中的所有的bin屬於ー個分組,另ー種編碼參數下的該語法元素ニ值化bin串中的所有的bin屬於另ー個分組。
全文摘要
本發明公開了一種獲取、更新bin的上下文概率模型值的裝置,該裝置中的概率模型存儲表中同一分組的bin對應的上下文概率模型按照上下文概率模型索引由小到大依次連續存放,該裝置計算概率模型地址,並使用所計算的概率模型地址查概率模型存儲表,獲取或更新相應的bin的上下文概率模型值。本發明還公開了一種獲取、更新bin的上下文概率模型值的方法。本發明可以實現概率模型地址的快速計算,提高系統處理速度。本發明涉及的獲取、更新bin的上下文概率模型值的方法及裝置也可以用於其它數位訊號處理領域。
文檔編號H04N7/26GK102650969SQ20111004752
公開日2012年8月29日 申請日期2011年2月27日 優先權日2011年2月27日
發明者丁丹丹, 虞露 申請人:浙江大學