一種離散餘弦變換的整數反變換裝置及其方法
2023-05-23 19:11:01 1
專利名稱:一種離散餘弦變換的整數反變換裝置及其方法
技術領域:
本發明涉及離散餘弦變換(DCT)的反變換,尤其涉及一種可實現DCT 的整數反變換的裝置及其方法。
背景技術:
為了進一步節省圖像傳輸碼率,需要對圖像信號進行壓縮, 一般方法為 去除圖像信號中的相關性及減小圖像編碼的動態範圍,通常採用變換編碼及 量化技術。變換編碼將圖像時域信號變換成頻域信號,在頻域中,圖像信號 的能量大部分集中在低頻區域,相對於時域信號,碼率有較大的下降。圖像 中的變換編碼通常採用離散餘弦變換,而RV (real video)編解碼對圖像或預 測殘差採用了 4x4整數離散餘弦變換技術,避免了以往標準中使用的通用8x8 離散餘弦變換時,逆變換經常出現的失配問題。
RV正向離散餘弦變換公式如下,其中a, 6, c, J表示輸入的圖像或預測殘差。
formula see original document page 11
RV整數變換是一個分離的二維變換,通常利用以上公式先進行垂直方向 上的一維變換然後進行水平方向上的一維變換。
相應的,在整數反變換中用到的公式如下
formula see original document page 11
為了提高RV解碼器的運算速度,需要採用硬體來實現RV整亂良變換 中的上述運算,並且需要使用儘可能少的資源來取得足夠的運算速度。而目 前尚無硬體RV解碼器方案問世。
對於其他應用場景下的4X4大小的DCT變換的整數反變換,其通用的 反變換公式如下
formula see original document page 12
其中,A、 B、 C和D為需進行DCT整毅變換的4個輸入值,a',6',c'和 &為進行整數反變換後得到的4個輸出值,P。,A,g為整數反變換公式中的系 數,在不同應用場景下可能不同。
明顯,對基於其它應用場景下的DCT整數反變換,存在的問題是相同的。
其特徵在於,該裝置包括第一級、第二級、第三級和第四級反變換單元, 採用流水線方式對多組輸入值進行處理,每一組輸入值的整數反變換用10拍 完成,以下計為第l拍到第10拍,每拍為一時鐘周期,其中
第一級反變換單元用於在第1~4拍,根據依次輸入的j、萬、C和D分別 計算出輸入值的倍數值i^、 A萬和g5、屍。C、《£)和屍2/)並鎖存,在第2~
發明內容
本發明要解決的技術問題是提供一種離散餘弦變換的整數反變換裝置及 其方法,可以使用較少的硬體資源,實現較快的運算速度。
為了解決上述問題,本發明提供了 一種離散餘弦變換的整數反變換裝置, 用於依照下式對一組4個輸入值丄仏C和D進行離散餘弦變換的整數反變 換運算,得到4個輸出值"',6',c'和W,其中的係數屍。,《,屍2為整數
formula see original document page 12
拍將所述倍數值依次輸出到第二級反變換單元鎖存,從第5拍開始對下一組 輸入值的處理;
第二級反變換單元用於在第4~5拍,對鎖存的倍數值做加、減運算得到 4個中間值60,61,62,63 , 60 =屍0/4+屍。C, W = P0/4 —屍。C, 62 =屍25—i^Z), M = +屍2£>; 在6 7拍對4個中間值做加、減運算,得到4個輸出值a' ,c',6',, "' = 60+63, ^' = 60-M, Z>' = 6l + 62, c' = W-62,第7拍將a' ,d'輸出到第三級反變換單元, 在第8拍將6',c'輸出到第三級反變換單元並開始對下一組輸入值的處理;
第三級反變換單元用於在第7 10拍依次將4個輸出值"',6',c', J'輸出 到第四級反變換單元,從第IO拍的下一拍開始對下一組輸入值的處理;
第四級反變換單元用於鎖存輸出值a',6',c'和W,由後續裝置依次讀出。
進一步地,上述整數反變換裝置還可具有以下特點
所述第一級反變換單元包括一級輸入寄存器、 一級運算單元、 一級輸出 寄存器、 一級輸出選擇器和一級計數器,其中
所述一級計數器用於對時鐘周期進行計數,向所述一級運算單元和一級 輸出選擇器輸出在/。,/,,/2,A之間循環計數的計數值,第一次循環計數值 /。,A,/2,/3對應於對第一組輸入值進行整氣良變換的第1~4拍;
所述一級輸入寄存器用於鎖存依次輸入的丄5, C和D並輸出到所述一 級運算單元;
所述一級運算單元,用於在計數值為/。時對Z進行運算得到屍",在計數 值為/,時對5進行運算得到屍,和屍25 ,在計數值為/2時對C進行運算得到戶。C , 在計數值為/3時對D進行運算得到SZ)和/^D ,每拍的運算結果在該拍存入所 述一級輸出寄存器;
所述一級輸出寄存器用於在各拍分別鎖存倍數值i^4、 i^和i^、屍。C、 《Z>和屍2£>並輸出到所述一級輸出選擇器;
所述一級輸出選擇器用於在計數值為/,時',將i^4選通輸出,在計數值為 /2時,將^5和屍2萬選通輸出,在計數值為/3時,將屍。C選通輸出,在計數值為 /。時,將AZ)和iy)選通輸出,以上倍數值均輸出到第二級反變換單元。
進一步地,上述整數反變換裝置還可具有以下特點
所述離散餘弦變換的整數反變換為RV整數反變換,屍。=13,《=17,屍2 = 7; 所述一級運算單元包括第一移位運算單元、第二移位運算單元、第三移位運 行單元、 一級運算選擇器、 一級加法器和一級減法器,所述一級輸出寄存器 包括一級加法寄存器和一級減法寄存器,其中
所述第一移位運算單元用於將輸入值左移3位後輸出;
所述第二移位運算單元用於將輸入值左移2位並加上該輸入值後輸出;
所述第三移位運算單元用於將輸入值左移4位後輸出;
所述一級運算選擇器用於在計數值為/。和/2時,將第 一和第三移位運算
單元的輸出選通為一級加法器的兩個輸入,在計數值為/,和/;時,將第三移位 運算單元和一級輸入寄存器的輸出選通為一^口法器的兩個輸入,同時將第
一移位運算單元和一級輸入寄存器的輸出選通為一級減法器的兩個輸入; 所迷一級加法器用於將兩個輸入相加後寫入一級加法寄存器,在計數值
為/。,/,,/2,/3時結果分別為134,I7A13C,17D;
所述一級減法器用於將第一移位運算單元的輸出減去一級輸入寄存器的
輸出後寫入一級加法寄存器,在計數值為/,,/3時結果分別為7S,7Z);
所述一級加法寄存器和一級減法寄存器用於鎖存寫入的數值並輸出到一 級輸出選擇器。
進一步地,上述整數反變換裝置還可具有以下特點
所述第二級反變換單元包括至少6個二級輸入寄存器、二級運算選擇器、 二級加法器、二級減法器、二級加法寄存器、二級減法寄存器、二級輸出選 擇器、4個中間值寄存器和二級計數器,其中!
所述二級計數器比一級計數器延遲3拍計數,用於向所述二級運算選擇 器和二級輸出選擇器輸出在/。"',^"'之間循環計數的計數值;
所述6個二級輸入寄存器用於分別鎖存第一級反變換單元輸出的倍數值 屍。4、《5和屍25、屍。C、《£>和屍2£)並輸出到二級運算選擇器;所述二級運算選擇器與所述6個二級輸入寄存器和4個中伺值寄存器相 連,用於在計數值為/。'時,將i^和戶。C選通為二級加法器以及二級減法器的 兩個輸入,在計數值為時,將i^和屍力選通為二級加法器的兩個輸入,將i^ 和i^D選通為二級減法器的兩個輸入,在計數值為/2'時,將60和M選通為二 級加法器以及二級減法器的兩個輸入,在計數值為/3'時,將61和62選通二級 加法器以及二級減法器的兩個輸入;
所述二級加法器用於將兩個輸入相加後寫入二級加法寄存器,在計數值 為/。',/,',/2',/3時結果分別為6。,力3,">;
所述二級減法器用於將兩個輸入相減後寫入二級減法寄存器,在計數值 為/。', , /2' , /3'時結果分別為& , K c';
所述二級加法寄存器和二級減法寄存器用於鎖存寫入的數值並輸出到二 級輸出選擇器;
所述二級輸出選擇器用於在計數值為/。時,將60和M選通輸出到中間值 寄存器,在計數值為/:時,將61和62選通輸出到中間值寄存器,在計數值為/2' 時,將"'和J'選通輸出到第三級反變換單元,在計數值為/3'時,將6'和c'選 通輸出到第三級反變換單元;
所述4個中間值寄存器用於分別鎖存所述4個中間值M),W,62,63並輸出 到所述二^i4算選擇器。
進一步地,上述整數反變換裝置還可具有以下特點
所述第三級反變換單元包括至少2個三級輸入寄存器、三級輸出選擇器 和三級計數器,所述第四級反變換單元包括」四級輸出寄存器,其中
所述三級計數器比一級計數器延遲6拍計數,用於向所述三級輸出選擇 器輸出在/。',/1',/2',/3'之間循環計數的計數值;
所述2個三級輸入寄存器用於分別鎖存輸出值c', W;
所述三級輸出選擇器用於在計數值為/。'和/,'時,分別將二級反變換單元 輸出的"'和6'連通到第四級反變換單元的四級輸出寄存器,在計數值為/2'和 /3'時,分別將鎖存的輸出值c', d'連通到第四級反變換單元的四級輸出寄存 器。
進一步地,上迷整數反變換裝置還可具有以下特點
所述計數值/。,/,,/2,/3 、計數值/。',/,',/2',/3'和計數值/。',/,',/2',/3'均為0,1,2,3 ,
所述一級、二級和三級計數值均為4位計數器,用於對4組輸入進行循環計 數,其中的低2位輸出到相應的選擇器和運算器。
為了解決上述技術問題,本發明還提供了一種離散餘弦變換的整數反變
換裝置,用於依照下式對一組4個輸入值j, 5, C和D進行離散餘弦變換的 整數反變換運算,得到4個輸出值a',6',c'和c/',其中的係數戶。,^,g為整數
"'=屍0爿+ "萬+ P0C +屍2£ 6'=屍0爿+屍2萬-屍。C - ^Z) c' = i^4 -屍2萬 - 屍。C +《Z) d' = i^ - S萬+ P0C -,
其特徵在於,該裝置包括第一級、笫二級、第三級和第四級反變換單元, 採用流水線方式對多組輸入值進行處理,其中對每組輸入值的處理如下
第一級反變換單元用於對依次輸入的丄仏C和D,分別計算出倍數值 屍。丄/^和i^、戶。C、 AZ)和iy)並鎖存,然後將所述倍數值依次輸出到第 二級反變換單元;
第二級反變換單元用於鎖存輸入的倍數值並做加、減運算得到4個中間 值60,W,62,M, 60 =屍0爿+屍0(7,61 = /^—戶0(^,62 =屍2萬—i^D,W = i^+P2Z);然後對 4個中間《直做力口、;鹹運算,得至!] 4個車命出《直a' ,c',6',d', "' = 60 + 63, J' = 60 — 63, 6' = M + 62, c' = W —62,再將a' ,c',6',J'輸出到第三級反變4灸單元;
第三級反變換單元用於依次將4個輸出值a' ,&',c', d'輸出到第四級反變
換單元;
第四級反變換單元用於鎖存輸出值fl',6',C'和&,由後續裝置依次讀出。
進一步地,上述整數反變換裝置還可具有以下特點
所述第一級反變換單元包括一級輸入寄存器、 一級運算單元、 一級輸出 寄存器、 一級輸出選擇器和一級計數器,所述第二級反變換單元包括6個二 級輸入寄存器dina, dinbl, dinb2, dinc,dindl,dind2,其中
所述一級計數器用於對時鐘周期進行計數,向所述一級運算單元和一級
輸出選擇器輸出從小到大循環計數的4個計數值/。,A,^/;;
所述一級輸入寄存器用於鎖存輸入值並輸出到所述一級運算單元;
所述一級運算單元,用於在輸入計數值為/。,/2時完成對輸入值的"乘《" 運算,在輸入計數值為/,,/3時完成對輸入值的"乘A和乘A"運算,得到的倍 數值存入所述一級輸出寄存器;
所述一級輸出寄存器用於鎖存輸入的倍數值並輸出到一級輸出選擇器;
所述一級輸出選擇器用於在計數值為/。,/,,/2,/;時,將一級輸出寄存器在 上一時鐘周期鎖存的"乘iT,或"乘《"運算結杲分別連通到二級輸入寄存 器dina,dinbl,dinc,dindl,在計數值為/,,/3時,將一級輸出寄存器在上一時鐘 周期鎖存的"乘屍2"運算結果分別連通到二級輸入寄存器dinb2,dind2。
進一步地,上述整數反變換裝置還可具有以下特點
所述整lt^變換運算為RV解碼時採用的整lt^變換運算,P。=13,S = 17, 屍2=7,所述一級運算單元包括第一移位運算單元、第二移位運算單元、第三 移位運行單元、 一級運算選擇器、 一級加法器和一級減法器,所述一級輸出 寄存器包括一級加法寄存器和一級減法寄存器,其中
所述第一移位運算單元用於將輸入值左移3位後輸出;
所述第二移位運算單元用於將輸入值左移2位並加上該輸入值後輸出;
所述第三移位運算單元用於將輸入值左移4位後輸出;
所述一級運算選擇器用於在計數值為/。,/2時,將第一和第三移位運算單 元的輸出選通為一級加法器的兩個輸入,在計數值為/,,A時,將第三移位運 算單元和一級輸入寄存器的輸出選通為一射口法器的兩個輸入,同時將第一 移位運算單元和一級輸入寄存器的輸出選通為一級減法器的兩個輸入;
所述一級加法器用於將兩個輸入相加後寫入一級加法寄存器;
所述一級減法器用於將第一移位運算單元的輸出減去一級輸入寄存器的 輸出後寫入一級加法寄存器;
所述一級加法寄存器和一級減法寄存器用於鎖存寫入的數值並輸出到一級輸出選擇器。
進一步地,上述整數反變換裝置還可具有以下特點
所述第二級反變換單元包括6個二級輸入寄存器dina, dinbl, dinb2, dinc, dindl,dind2, 二級運算選擇器、二級加法器、二級減法器、二級加法寄存器、 二級減法寄存器、二級輸出選擇器、4個中間值寄存器ZbO,Zbl,Zb2,Zb3和 二級計數器;所述第三級反變換單元包括2個三級輸入寄存器Oc, Od、三級 輸出選擇器和三級計數器;第四級反變換單元包括四級輸出寄存器,其中
所述二級計數器用於向所述二級運算選擇器和二級輸出選擇器輸出從小 到大循環計數的四個計數值/。',
所述6個二級輸入寄存器dina, dinbl, dinb2, dinc, dindl,dind2用於分別鎖 存第一級反變換單元輸出的6個倍數值;
所述二級運算選擇器用於在計數值為/。'時,將寄存器dina和寄存器dinc 的輸出與二級加法器及二級減法器的輸入選通,計數值為/;時,將寄存器dinbl 和寄存器dind2的輸出與二級加法器的輸入連通,同時將寄存器dinb2和寄存 器dindl的輸出與二級減法器的輸入連通,計數值為/2'時,將寄存器ZbO和 寄存器Zbl的輸出與二歸。法器及二級減法器的輸入選通,計數值為/3時, 將寄存器Zbl和寄存器Zb2的輸出與二級加法器及二級減法器的輸入選通;
所述二級加法器用於將兩個輸入相加後寫入二級加法寄存器;
所述二級減法器用於將兩個輸入相減後寫入二級減法寄存器,其中以寄 存器dina,寄存器dinb2,寄存器ZbO,寄存器Zbl的輸出為被減數;
所述二級加法寄存器和二級減法寄存器用於鎖存寫入的數值並輸出到二 級輸出選擇器;
所述二級輸出選擇器用於在計數值為《,/;,/2',/;'時,分別將二級加法寄存 器上一時鐘周期鎖存的值選通輸出到寄存器zk),寄存器Zb3,三級輸出選擇 器和三級輸出選擇器,分別將二級減法寄存器上一時鐘周期鎖存的值選通輸 出到寄存器Zbl,寄存器Zb2,寄存器Oc,寄存器Od;
所述三級計數器用於向所述三級輸出選擇器輸出從小到大循環計數的四 個計數值/。',/,',/2',/3';
所述2個三級輸入寄存器Oc, Od分別用於對輸入值進行鎖存並輸出到三 級輸出選擇器;
所述三級輸出選擇器用於在計數值為/。'和/,'時,將從二級輸出選擇器直 接輸出的值連通到所述四級輸出寄存器,在計數值為/2'和/3'時,分別將寄存 器Oc和寄存器Od的輸出連通到所述四級輸出寄存器。
為了解決上述技術問題,本發明還提供了一種離散餘弦變換的整數反變 換方法,用於依照下式對一組4個輸入值A、 B、 C和D進行離散餘弦變換 的整數反變換,得到4個輸出值"',6',c'和W,其中的g,《,^為整數
formula see original document page 19
其特徵在於,通過四級流水完成對多組輸入值的整數反變換,從接收到 笫一個輸入值A開始,執行以下處理
第一級在第1~4拍,根據依次輸入的A、 B、 C和D計算出i^, i^,屍^,屍。C,i^D和gZ),在第2 5拍輸出到第二級鎖存,且從第5拍開始對 下一組輸入值的處理;
第二級在第4~7拍,先做加、減運算60 = +屍。C, W =屍。v4 -屍。C, 62 =屍2萬-SD, 63 = /^ +屍2/)並鎖存得到的中間值M), 61,62 ,M,再4故力p、減運算a'= 60 + 63, 6' = W + Z 2, c' = 6l-62,^ = 60-63,第7拍將a' ,d'輸出到第三級,在第8拍將 6',c'輸出到第三級且開始對下一組輸入值的處理;
第三級用於在第7 10拍依次將"',6',c', i輸出到第四級,且從第11拍 開始對下一組輸入值的處理;
第四級反變換單元鎖存輸出值a',6',c'和tT,由後續裝置讀出。
進一步地,上述整數反變換方法還可具有以下特點
所述第一級在第1拍根據輸入值A,計算出i^4並鎖存;第2拍根據輸入 值B,計算出《5和戶2萬並鎖存,同時將i^輸出到第二級;第3拍根據輸入值
C,計算出屍。C並鎖存,同時將i^和i^輸出到第二級;第4拍根據輸入值D, 計算出^9和/>2"並鎖存,同時將P。C輸出到第二級;第5拍將^)和屍2"輸出 到第二級。
進一步地,上述整數反變換方法還可具有以下特點
所述第二級在第4拍,對輸入的P^和《C作加法和減法運算,得到兩個 中間值60和W並鎖存,其中60 =屍^4+/^, W = i^_《C;在第5拍,對輸入的 A5、 i^、《"和屍2/)作加法和減法運算,得到另兩個中間值62和M並鎖存, 其中62 =屍2萬-i^D, M = i^+/>2Z);在第6拍,對得到的中間值60和M作加法 和減法運算,得到輸出值"'=60 + 63, ^' = 60-63並鎖存;在第7拍,對得到的 中間值60和63作加法和減法運算,得到輸出值6' = 61+62, c^61-62並鎖存, 同時將a'和W輸出到第三級;在第8拍,將6'和c'輸出到第三級。
進一步地,上述整數反變換方法還可具有以下特點
所述第三級在第7拍將輸入的a'直接輸出到第四級,同時將輸入的6'鎖 存;在第8拍將輸入的6'直接輸出到第四級,同時將輸入的c'鎖存;在第9 拍,將鎖存的c'輸出到第四級;在第10拍,將鎖存的&輸出到第四級。
進一步地,上述整數反變換方法還可具有以下特點
所述離散餘弦變換的整數反變換為用於RV解碼器的離散餘弦變換的RV 整數反變換,所述屍。=13,/^=17,屍2=7;所述第一級通過做兩級運算來得到所述 134,175, 7萬,13C , 17Z>和7Z> ,對輸入值A,在第 一級先做左移3位運算得到8A, 以及左移2位再加A的運算得到5A,然後在第二級做加法運算得到13A,對 輸入值B,在第一級先做左移4位運算、左移3位運算得到16B和犯,然後 在第二級對16B和B做加法運算,對8B和B做減法運算得到7B,對輸入值 C,第一級先做左移3位運算得到8C,以及左移2位再加C的運算得到5C, 然後在第二級做加法運算得到13C,對輸入值D,在第一級先做左移4位運 算、左移3位運算得到16D和8D,然後在第二級對16D和D做加法運算, 對8D和D做減法運算得到7D。
本發明離散餘弦變換的整數反變換裝置和方法沒有使用乘法運算單元,
充分利用了流水線實現技術,最大限度地減少了加減法器的使用,是利用硬 件資源最少的一種解決方案。
圖1是本發明實施例一級運算單元的硬體結構圖。
圖2是本發明實施例二級運算單元的硬體結構圖。
圖3是本發明實施例三級運算單元的硬體結構圖。
圖4是本發明實施例整數反變換裝置實現流水線運算的工作示意圖。
圖5是本發明實施例在連續組數數據輸入時的流水時序圖。
具體實施例方式
下面結合附圖對本發明的具體實施方式
進行詳細說明。
本實施例以RV解碼器中的DCT變換的整數反變換裝置為例,該裝置共 分為四級流水實現。以下將每一級流水使用的石更件資源作為一級反變換單元, 即該整數反變換裝置包括笫一級反變換單元PIPE1、第二級反變換單元 PIPE2、第三級反變換單元PIPE3和第四級反變換單元PIPE4。
第一級反變換單元PIPE1的硬體結構如圖l所示,其中A、 B、 C、 D為 順序輸入的4個需進行反變換的數值,依次輸入到一級輸入寄存器鎖存。與 一級輸入寄存器相連的3個運算單元分別是實現"乘8"運算的第一移位 運算單元,即將輸入值左移3位,圖中用"<<<3"表示;實現"乘5"運算 的第二移位運算單元,即將輸入值左移2位後再加該輸入值,圖中用"<<<2+1" 表示;實現"乘16"運算的第三移位運算單元,即將輸入值左移4位,圖中 用"< 4"表示。上述3個移位運算單元的輸出均連接到一級運算選擇器的 輸入端,該一級運算選擇器的另外1個輸入端直^"接一級輸入寄存器。該一 級運算選擇器的控制端連接到一級計數器idctcnt (四位表示)的低2位 idctcnt[l:O],該一級計數器從0到15依次循環計數,用於完成四組4點運算。 如果整數反變換公式中的係數g,《,g不同,則上述運算單元的個數和實現的 運算都可能不同,但均可釆用移位運算和加、減法運算的方式來實現整數的
乘法運算。
一級運算選擇器的兩路輸出sumainl 1及sumainl2作為 一級加法器的兩個 輸入信號,另兩路輸出subainll及subain12作為一級減法器的兩個輸入信號。 一級加法器的輸出送入一級加法寄存器鎖存,該一級加法寄存器的輸出 suma一l連接到一級輸出選擇器的輸入端, 一級減法器的輸出送入一級減法寄 存器鎖存,該一級減法寄存器的輸出suba—1連接到一級輸出選擇器的輸入端。 另圖1~圖3中均略去了輸入到選擇器、寄存器和計數器的時鐘信號CLK。
第一級反變換單元的運算由idctcnt[l: O]的值(從0到3)來控制,每一 個值對應的運算如下所示
當idctcnt[l: 0]=0時,
當idctcnt[l: 0]= 1時:
當idctcnt[l: 0]=2時,
當idctcnt[l: 0]=3時,
min 11 =爿 < 3 做min 12 = /4 < 2 +爿 幼6i"l 1 = 0 油'"12 = 0
sm min 11 = ;5 < 4
minl2 = 5 ■s 6/wl 1 = £ < 3
/minll = C《<3 /minl2 = C<《2 + C w6/'wl 1 = 0 油"12 = 0
幼min 11 = D < 4 幼minl2:D
1 = Z) < 3
formula see original document page 22(11)
formula see original document page 22(12)
formula see original document page 22(13)
formula see original document page 22(14)
請參照圖4,第一級流水線的工作過程是 在第一拍,idctcnt[l: 0]=0,執行以下處理
將A輸入到一級輸入寄存器中, 一級運算選擇器將第一移位運算單元和 第二移位運算單元的輸出分別連通到該一級運算選擇器的兩路輸出sumainl 1 和sumainl2並在一級加法器中完成加法運算,結果鎖存在一級加法寄存器, 其值為8A+5A=13A;此時一級運算選擇器的另兩路輸出subainll及subainl2 不與任何輸入接通,也不進行減法運算。
在第二拍,idctcnt[l: 0]=1,執行以下處理
一級輸出選擇器將一級加法寄存器的輸出連通到寄存器dina,將一級加 法寄存器上一拍鎖存的值13A寫入寄存器dina。
同時,將B輸入到一級輸入寄存器中, 一級運算選擇器將第三移位運算 單元和一級輸入寄存器的輸出分別連通到該一級運算選擇器的兩路輸出 sumainll和sumainl2並在一級加法器中完成加法運算,結果鎖存在一級加法 寄存器,其值為16B+B=17B。
同時,將第一移位運算單元的輸出連通到一級運算選擇器的輸出 subainll,將一級輸入寄存器的輸出連通到一級運算運算器的輸出subainl2 並在一級減法器中完成subainll減subainl2的運算,結果鎖存在一級減法寄 存器,其值為8B-B-7B。
在第三拍,idctcnt[l: 0]=2,執行以下處理
一級輸出選擇器將一級加法寄存器的輸出suma—1連通到寄存器dinb2, 將一級減法寄存器的輸出suba—1連通到寄存器dinbl,將一級加法寄存器上 一拍鎖存的值17B寫入寄存器dinb2,將一級^法寄存器上一拍鎖存的值7B 寫入寄存器dinbl。
同時,將C輸入到一級輸入寄存器中, 一級運算選擇器將第一移位運算 單元和第二移位運算單元的輸出分別連通到該一級運算選擇器的兩路輸出 sumainll和sumainl2並在一級加法器中完成加法運算,結果鎖存在一級加法 寄存器,其值為8C+5C=13C。此時一級運算選擇器的另兩路輸出subainll及 subainl2不與任何輸入接通,也不進行減法運算。
在第四拍,idctcnt[l: 0]=3,執行以下處理
一級輸出選擇器將一級加法寄存器的輸出suma一l連通到寄存器dinc,將 一級加法寄存器上一拍鎖存的值13C寫入寄存器dinc。
同時,將D輸入到一級輸入寄存器, 一級運算選擇器將第三移位運算單
元和一級輸入寄存器的輸出分別連通到該一級運算選擇器的兩路輸出
sumainll和sumainl2並在一級加法器中完成加法運算,結果鎖存在一級加法 寄存器,其值為16D+D=17D。
同時,將第一移位運算單元的輸出連通到一級運算選擇器的一輸出 subainll,將一級輸入寄存器的輸出連通到一級運算選擇的另一輸出subainl2 並在一級減法器中完成subainll減subainl2的運算,結果鎖存在一級減法寄 存器,其值為8D-D-7D。
至此,第一級反變換單元就基本完成了對一組4點的第一級反變換處理, 第一級反變換處理還包括在第五拍,將一級加法寄存器和一級減法寄存器中 的值取出,即 一級輸出選擇器將一級加法寄存器的輸出suma—l連通到寄存 器dind2,將一級減法寄存器的輸出suba_l連通到寄存器dindl,將一級加法 寄存器上一拍鎖存的值17D寫入寄存器dind2,將一級減法寄存器中上一拍鎖 存的值7D寫入寄存器dindl。 ^a^第五拍開始,已經可以開始另一組4點的 反變換運算了。
第二級反變換單元PIPE2的硬體結構如圖2所示,包括5個二級輸入寄 存器,分別用寄存器dina(13A)、寄存器dinbl(17B)、寄存器dinb2(7B)、寄存 器dinc(13C)、寄存器dindl(17D)和寄存器dind2 (7D)表示,括號中是該寄存 器中鎖存的數值。6個二級輸入寄存器的輸出均作為二級運算選擇器的輸入, 該二級運算選擇器的控制端連^妄到二級計數器idctcnt一se(四位表示)的低2位 idctcnt—se[l :0] , Idctcnt_se的啟動信號比idctcnt延遲3拍即3個時鐘周期,即 從第4拍開始計數,該延遲可以由外部電路來控制。
二級運算選擇器的兩路輸出sumain21及sumain22作為二級加法器的兩個 輸入信號,另兩路輸出subain21及subain22作為二級減法器的兩個輸入信號。 二級加法器的輸出送入二級加法寄存器鎖存,該二級加法寄存器的輸出 suma—2連接到二級輸出選擇器的輸入端,二級減法器的輸出送入二級減法寄 存器鎖存,該二級減法寄存器的輸出suba—2連接到二級輸出選擇器的輸入端。 二級輸出選擇器的輸出端與4個中間值寄存器Zb0 Zb3和2個三級輸入寄存 器連接,該4個中間值寄存器的輸出同時也作為二級運算選擇器的輸入。
第二級反變換單元的運算由idctcnt—se[l: 0]的值(從0到3,相當於第4 拍到第7拍)來控制,每一個值對應的運算如下所示
當idctcnt—se[l: 0]=0時,
當idctcnt_se[l: 0]= 1時,
當idctcnt—se[l: 0]=2時:
當idctcnt—se[l: 0]=3時:
5 min 22 = di'"c
'幼min21 = ^r'"62 幼min 22 =
■smW"22 = &>k/2
$Mmin21 = Z>0 sm min 22 = 63
s"W"22 = Z>3
min 22 ::■ 62 6/"21 = 61
式中的rffna, dwc, cft> //, Z械ZW, 分別表示相應寄
存器中的數值。
另外,下面將涉及到的中間值有
61 = 13爿—13C
62 = 75-17/)
存儲這些中間值的寄存器直接用這些值的符號來命名 請參照圖4,第二級流水線的工作過程是
在第四拍,idctcnt—se[l: 0]=0,執行以下處理
二級運算選擇器將寄存器dina的輸出連通到該二級運算選擇器的輸出 sumain21和subain21,將寄存器dinc的輸出連通到該二級運算選擇器的輸出 sumain22和subain22,在二級加法器中完成dina和dinc的加法運算,結果鎖 存的二級加法寄存器中,值為dina+dinc=13A+13C;同時在二級減法器中完 成dina和dinc的減法運算,結果鎖存的二級減法寄存器中,值為 dina-dinc=13A-13C。
在第五拍,idctcnt—se[l: 0]=1,執行以下處理
二級輸出選擇器將二級加法寄存器的輸出suma—2連通到寄存器Zb0,將 二級減法寄存器的輸出sumb—2連通到寄存器Zbl,即將二級加法寄存器在上 一拍鎖存的值13A+13C寫入寄存器ZbO,將二級減法寄存器在上一拍鎖存的 值13A-13C寫入寄存器Zbl。
同時,二級運算選擇器將寄存器dinb2和寄存器dindl的輸出分別連通到 該二級運算選擇器的輸出sumain21和sumain21,將寄存器dinbl和寄存器 dind2的輸出連通到該二Mit算選擇器的輸出subain22和subain22,在二級加 法器中完成dinb2和dindl的加法運算,結果鎖存的二級加法寄存器中,值為 dinb2+dindl=17B+7D;同時在二級減法器中完成dinbl減dind2的運算,結果 鎖存的二級減法寄存器中,值為dinbl-dind2=7B-17D。
在第六拍,idctcnt_se[l: 0]=2,執行以下處理
二級輸出選擇器將二級加法寄存器的輸出suma—2連通到寄存器Zb3,將 二級減法寄存器的輸出suml^2連通到寄存器Zb2,即將二級加法寄存器上一 拍鎖存的值17B+7D寫入寄存器Zb3,將二級減法寄存器上一拍鎖存的值 7B-17D寫入寄存器Zb2。
同時,二級運算選擇器將寄存器ZbO的輸出分別連通到該二級運算選擇 器的輸出sumain21和subain21,將寄存器Zb3的輸出連通到該二級運算選擇 器的輸出sumain22和subain22,在二^Jp法器中完成b0和b3的加法運算, 結果鎖存的二級加法寄存器中,值為bO+b3=13A+17B+13C+7D;同時在二級 減法器中完成b0減b3的運算,結杲鎖存的二級減法寄存器中,值為 bO-b3=13A-17B+13C-7D。
在第七拍,idctcnt_se[l: 0]=3,執行以下處理
二級運算選擇器將寄存器Zbl的輸出分別連通到該二級運算選擇器的輸 出sumain21和subain21,將寄存器Zb2的輸出連通到該二級運算選擇器的輸 出sumain22和subain22,在二級加法器中完成bl和b2的加法運算,結果鎖 存的二級加法寄存器中,值為bl+b2=13A+7B-13C-17D;同時在二級減法器 中完成bl減b2的運算,結果鎖存在二級減法寄存器中,值為 M-b2=13A-7B-13C+17D。
二級輸出選擇器將二級加法寄存器的輸出suma—2連通到三級輸出選擇 器,將二級減法寄存器的輸出sumb—2連通到寄存器Od,即將二級加法寄存 器上一拍鎖存的值13A+17B+13C+7D (等於a,)輸出到三級輸出選擇器,將 二級減法寄存器上一拍鎖存的值13A-17B+13C-7D寫入寄存器Od。
至此,第二級反變換單元就基本完成了對一組4點的第二級反變換處理, 第二級反變換處理還包括在第八拍,將二級加法寄存器和二級減法寄存器中 的值取出,即二級輸出選擇器將二級加法寄存器的輸出suma—2連通到三級 輸出選擇器,將二級減法寄存器的輸出suba_2連通到寄存器Oc,即將二級 加法寄存器上一拍鎖存的值13A+7B-13C-17D (等於b,)輸出到三級輸出選 擇器,將二級減法寄存器上一拍鎖存的值13A-7B-13C+17D寫入寄存器Oc。 但從第八拍開始,已經可以開始另一組4點的反變換運算了 。
第三級反變換單元PIPE3和第四級反變換單元PIPE4的硬體結構如圖3 所示,這兩級反變換單元主要是完成一個串並轉換的工作。其中第三級反變 換單元包括2個三級輸入寄存器、 一個三級輸出選擇器和一個三級計數器 idctcnt—se, 2個三級輸入寄存器即寄存器Oc和寄存器Od的輸出作為該三級 輸出選擇器的輸入,該三級輸出選擇器的另兩路輸入直接與二級輸出選擇器 的輸出相連。該三級輸出選擇器的控制端連接到三級計數器idctcnLse的低二 位idctcnt一se[l:0]。該三級輸出選擇器的一路輸出則連接到第四級的四級輸出 寄存器。三級計數器idctcnt_se比一級計數器idctcnt延遲6拍啟動,從第7 拍開始計數,即表示從數據輸入開始第六拍後四點一維整數反變換運算完成,
結果開始輸出。
第三級反變換單元的處理由idctcntjh[l: O]的值(從0到3,相當於第7 拍到第10拍)來控制,其工作流程如下
在第七拍,idctcntjh[l: 0]=0,執行以下處理
二級輸出選擇器將二級加法寄存器的輸出suma_2直接連通到三級輸出 選擇器,而三級輸出選擇器將該路輸入直接連通到四級輸出寄存器,即將a, 的值寫入四級輸出寄存器。
在第八拍,idctcnt—th[l: 0]=1,執行以下處理
二級輸出選擇器將二級加法寄存器的輸出suma_2直接連通到三級輸出 選擇器,而三級輸出選擇器將該路輸入直接連通到四級輸出寄存器,即將b, 的值寫入四級輸出寄存器。
在第九拍,idctent—th[l: 0]=2,執行以下處理
三級輸出選擇器將寄存器Oc的輸出連通到四級輸出寄存器,即將c,的 值寫入四級輸出寄存器。
在第十拍,idctcnt—th[l: 0]=3,執行以下處理
三級輸出選擇器將寄存器Od的輸出連通到四級,出寄存器,即將d,的 值寫入四級輸出寄存器。
至此,第三級反變換單元就完成了對一組4點的第三級反變換處理。而 第四級反變換單元是一個寄存器,其值依次為a,、 b,、 c,和d,,由後續裝置 將這些反變換的輸出數值依次讀出。從第九拍開始,第三級反變換單元可以 進4亍下一組的4點反變換處理了 。
一維運算需要進行四組4點的整數反變換。圖5中表示連續組數據輸入 時的流水時序圖。由圖可知, 一組4點的整數反變換需要10拍,而由於實現 了流水式工作且每一步運算都緊密銜4妄,進行一次4組16點的整數反變換總 共只需要22拍,速度可以滿足要求。同時從硬體結構看,只使用了很少的運 算單元、選擇器和寄存器,沒有乘法等複雜運算,成本也很低。
權利要求
1、一種離散餘弦變換的整數反變換裝置,用於依照下式對一組4個輸入值A,B、C和D進行離散餘弦變換的整數反變換運算,得到4個輸出值a′,b′,c′和d′,其中的係數P0,P1,P2為整數a′=P0A+P1B+P0C+P2Db′=P0A+P2B-P0C-P1Dc′=P0A-P2B-P0C+P1Dd′=P0A-P1B+P0C-P2D其特徵在於,該裝置包括第一級、第二級、第三級和第四級反變換單元,採用流水線方式對多組輸入值進行處理,每一組輸入值的整數反變換用10拍完成,以下計為第1拍到第10拍,每拍為一時鐘周期,其中第一級反變換單元用於在第1~4拍,根據依次輸入的A、B、C和D分別計算出輸入值的倍數值P0A、P1B和P2B、P0C、P1D和P2D並鎖存,在第2~5拍將所述倍數值依次輸出到第二級反變換單元鎖存,從第5拍開始對下一組輸入值的處理;第二級反變換單元用於在第4~5拍,對鎖存的倍數值做加、減運算得到4個中間值b0,b1,b2,b3,b0=P0A+P0C,b1=P0A-P0C,b2=P2B-P1D,b3=P1B+P2D;在6~7拍對4個中間值做加、減運算,得到4個輸出值a′,c′,b′,d′,a′=b0+b3,d′=b0-b3,b′=b1+b2,c′=b1-b2,第7拍將a′,d′輸出到第三級反變換單元,在第8拍將b′,c′輸出到第三級反變換單元並開始對下一組輸入值的處理;第三級反變換單元用於在第7~10拍依次將4個輸出值a′,b′,c′,d′輸出到第四級反變換單元,從第10拍的下一拍開始對下一組輸入值的處理;第四級反變換單元用於鎖存輸出值a′,b′,c′和d′,由後續裝置依次讀出。
2、 如權利要求l所述的整數反變換裝置,其特徵在於所述第一級反變換單元包括一級輸入寄存器、 一級運算單元、 一級輸出 寄存器、 一級輸出選擇器和一級計數器,其中所述一級計數器用於對時鐘周期進行計數,向所述一級運算單元和一級 輸出選擇器輸出在/。,/,A,/3之間循環計數的計數值,第一次循環計數值 /。,/,,/2,A對應於對第一組輸入值進行整數反變換的第1~4拍;所述一級輸入寄存器用於鎖存依次輸入的^ 、 S > C和Z)並輸出到所述一 級運算單元;所述一級運算單元,用於在計數值為/。時對乂進行運算得到i^,在計數 值為/,時對萬進行運算得到《5和屍25 ,在計數值為/2時對C進4亍運算得到屍。C , 在計數值為/3時對Z)進行運算得到和屍22),每拍的運算結果在該拍存入所 述一級輸出寄存器;所述一級輸出寄存器用於在各拍分別鎖存倍數值/^、 7^和屍25、屍。C、 《Z)和gZ)並輸出到所述一級輸出選擇器;所述一級輸出選擇器用於在計數值為/,時,將i^4選通輸出,在計數值為 /2時,將/^和屍25選通輸出,在計數值為/3時,將屍。C選通輸出,在計數值為 /。時,將/^)和屍2/)選通輸出,以上倍數值均輸出到第二級反變換單元。
3、如權利要求2所述的整數反變換裝置,其特徵在於,所述離散餘弦變換的整數反變換為RV整數反變換,屍。=13,《=17,P2 = 7; 所述一級運算單元包括第一移位運算單元、第二移位運算單元、第三移位運 行單元、 一級運算選擇器、 一級加法器和一級減法器,所述一級輸出寄存器 包括一級加法寄存器和一級減法寄存器,其中所述第一移位運算單元用於將輸入值左移3位後輸出;所述第二移位運算單元用於將輸入值左移2位並加上該輸入值後輸出;所述第三移位運算單元用於將輸入值左移4位後輸出;所述一級運算選擇器用於在計數值為/。和/2時,將第 一和第三移位運算單元的輸出選通為一級加法器的兩個輸入,在計數值為A和/3時,將第三移位 運算單元和一級輸入寄存器的輸出選通為一級加法器的兩個輸入,同時將第一移位運算單元和一級輸入寄存器的輸出選通為一級減法器的兩個輸入; 所述一級加法器用於將兩個輸入相加後寫入一級加法寄存器,在計數值為/。,/,,/2,/3時結果分別為13乂,17B,13C,17Z);所述一級減法器用於將第一移位運算單元的輸出減去一級輸入寄存器的 輸出後寫入一級加法寄存器,在計數值為/,,/3時結果分別為7萬,7D;所述一級加法寄存器和一級減法寄存器用於鎖存寫入的數值並輸出到一 級輸出選擇器。
4、如權利要求1或2或3所述的整數反變換裝置,其特徵在於 所述第二級反變換單元包括至少6個二級輸入寄存器、二級運算選擇器、二級加法器、二級減法器、二級加法寄存器、二級減法寄存器、二級輸出選擇器、4個中間值寄存器和二級計數器,其中所述二級計數器比一級計數器延遲3拍計數,用於向所述二級運算選擇 器和二級輸出選擇器輸出在d4之間循環計數的計數值;所述6個二級輸入寄存器用於分別鎖存第一級反變換單元輸出的倍數值 屍。爿、/^和屍2萬、屍。C、《"和屍2£>並輸出到二級運算選擇器;所述二級運算選擇器與所述6個二級輸入寄存器和4個中間值寄存器相 連,用於在計數值為/。'時,將/^和P。C選通為二級加法器以及二級減法器的 兩個輸入,在計數值為々時,將/^和屍2£>選通為二級加法器的兩個輸入,將屍25 和i^)選通為二級減法器的兩個輸入,在計數值為/2'時,將M)和63選通為二 級加法器以及二級減法器的兩個輸入,在計數值為/3'時,將61和62選通二級 加法器以及二級減法器的兩個輸入;所述二級加法器用於將兩個輸入相加後寫入二級加法寄存器,在計數值 為/。',/:,/2',A'時結果分別為6。A,a',6';所述二級減法器用於將兩個輸入相減後寫入二級減法寄存器,在計數值 為/。,/,',/;,A'時結果分別為、62 ;所述二級加法寄存器和二級減法寄存器用於鎖存寫入的數值並輸出到二 級輸出選擇器;所述二級輸出選擇器用於在計數<|[為/。時,將60和M選通輸出到中間值 寄存器,在計數值為/,'時,將M和62選通輸出到中間值寄存器,在計數值為/2' 時,將a'和J'選通輸出到第三級反變換單元,在計數值為/3'時,將6'和c'選通輸出到第三級反變換單元; 所述4個中間值寄存器用於分別鎖存所迷4個中間值M),M,62,63並輸出 到所述二級運算選擇器。
5、 如權利要求4所述的整H變換裝置,其特徵在於所述第三級反變換單元包括至少2個三級輸入寄存器、三級輸出選擇器 和三級計數器,所述第四級反變換單元包括一四級輸出寄存器,其中所述三級計數器比一級計數器延遲6拍計數,用於向所述三級輸出選擇 器輸出在/。',/,',/2',/3'之間循環計數的計數值;所述2個三級輸入寄存器用於分別鎖存輸出值c', W;所述三級輸出選擇器用於在計數值為/。'和/,'時,分別將二級反變換單元 輸出的"'和6'連通到第四級反變換單元的四級輸出寄存器,在計數值為/2'和 /3'時,分別將鎖存的輸出值c', J'連通到第四級反變換單元的四級輸出寄存 器。
6、 如權利要求5所述的整M變換裝置,其特徵在於所述計數值/。,^/"/3、計數值/。',/,',/2',/3'和計數值/。',/,',/2',/3'均為0,1,2,3, 所述一級、二級和三級計數值均為4位計數器,用於對4組輸入進行循環計 數,其中的低2位輸出到相應的選擇器和運算器。
7、 一種離散餘弦變換的整數反變換運算裝置,用於依照下式對一組4 個輸入值^、萬、C和D進行離散餘弦變換的整數反變換運算,得到4個輸出 值a',6',c'和d',其中的係數屍。,《,戶2為整數"'=屍04 +《萬+屍。C +屍2£) 6'=屍0乂 +戶2£ —屍qC — /|£> c' = i^ -屍2萬-屍。C + i^D d' = P"-《5 + P0C - i^Z)其特徵在於,該裝置包括第一級、第二級、第三級和第四級反變^:單元, 採用流水線方式對多組輸入值進行處理,其中對每組輸入值的處理如下第一級反變換單元用於對依次輸入的爿、萬、C和D,分別計算出倍數值 屍^4、《萬和屍2£、屍。C、《£>和屍2£>並鎖存,然後將所述倍數值依次輸出到第二級反變換單元;第二級反變換單元用於鎖存輸入的倍數值並做加、減運算得到4個中間《直60,61,62,M , 60 =屍04 +屍001 =戶"—戶。C,62:屍25 —/^),63 = /^ +屍2";然後對 4個中間<直{故力口、;鹹運算,得至1) 4個輸出j直a' ,c',6',d', a' = 60+M, d' = 60—63, ;6' = 61+62, c' = W-62,再將a' ,c',6',rf'輸出到第三級反變換單元;第三級反變換單元用於依次將4個輸出值a' ,6',c', W輸出到第四級反變 換單元;第四級反變換單元用於鎖存輸出值a',6',c'和W,由後續裝置依次讀出。
8、 如權利要求6所述的整M變換裝置,其特徵在於所述第一級反變換單元包括一級輸入寄存器、 一級運算單元、 一級輸出 寄存器、 一級輸出選擇器和一級計數器,所述第二級反變換單元包括6個二 級輸入寄存器din^ dinbl, dinb2, dinc,dindl,dind2,其中所述一級計數器用於對時鐘周期進行計數,向所述一級運算單元和一級 輸出選擇器輸出從小到大循環計數的4個計數值/。,/,,/2,/;;所述一級輸入寄存器用於鎖存輸入值並輸出到所述一級運算單元;所述一級運算單元,用於在輸入計數值為/。,/2時完成對輸入值的"乘A" 運算,在輸入計數值為^,/3時完成對輸入值的"乘^和乘S"運算,得到的倍 數值存入所述一級輸出寄存器;所述一級輸出寄存器用於鎖存輸入的倍數值並輸出到 一級輸出選擇器;所述一級輸出選擇器用於在計數值為/。,A,/2,/;時,將一級輸出寄存器在 上一時鐘周期鎖存的"乘戶。"或"乘《"運算結果分別連通到二級輸入寄存 器dina,dinbl,dinc,dindl,在計數值為/,,/3時,將一級輸出寄存器在上一時鐘 周期鎖存的"乘g"運算結果分別連通到二級輸入寄存器dinb2,dind2。
9、 如權利要求7所述的整數反變換裝置,其特徵在於所述整數反變換運算為RV解碼時採用的整氣良變換運算,戶。=13,^ = 17, 戶2=7,所述一級運算單元包括第一移位運算單元、第二移位運算單元、笫三 移位運行單元、 一級運算選擇器、 一級加法器和一級減法器,所述一級輸出寄存器包括一級加法寄存器和一級減法寄存器,其中所述第一移位運算單元用於將輸入值左移3位後輸出;所述第二移位運算單元用於將輸入值左移2位並加上該輸入值後輸出;所述第三移位運算單元用於將輸入值左移4位後輸出;所述一級運算選擇器用於在計數值為/。,/2時,將第一和第三移位運算單 元的輸出選通為一級加法器的兩個輸入,在計數值為/,,/3時,將第三移位運 算單元和一級輸入寄存器的輸出選通為一 口法器的兩個輸入,同時將第一 移位運算單元和一級輸入寄存器的輸出選通為一級減法器的兩個輸入;所述一級加法器用於將兩個輸入相加後寫入一級加法寄存器;所述一級減法器用於將第一移位運算單元的輸出減去一級輸入寄存器的 輸出後寫入一級加法寄存器;所述一級加法寄存器和一級減法寄存器用於鎖存寫入的數值並輸出到一 級輸出選擇器。
10、如權利要求8所述的整數反變換裝置,其特徵在於所述第二級反變換單元包括6個二級輸入寄存器dina, dinbl, dinb2, dinc, dindl,dind2, 二級運算選擇器、二級加法器、二級減法器、二級加法寄存器、 二級減法寄存器、二級輸出選擇器、4個中間值寄存器ZbO,Zbl,Zb2,Zb3和 二級計數器;所述第三級反變換單元包括2個三級輸入寄存器Oc, Od、三級 輸出選擇器和三級計數器;第四級反變換單元包^"四級輸出寄存器,其中所述二級計數器用於向所述二級運算選擇器和二級輸出選擇器輸出從小 到大循環計數的四個計數值/。',/,',/2',/3';所述6個二級輸入寄存器dina, dinbl, dinb2, dinc, dindl,dind2用於分別鎖 存第一級反變換單元輸出的6個倍數值;所述二級運算選擇器用於在計數值為/。時,將寄存器dina和寄存器dinc 的輸出與二射口法器及二級減法器的輸入選通,計數值為//時,將寄存器dinbl 和寄存器dind2的輸出與二級加法器的輸入連通,同時將寄存器dinb2和寄存 器dindl的輸出與二級減法器的輸入連通,計數值為/2'時,將寄存器ZbO和寄存器Zbl的輸出與二級加法器及二級減法器的輸入選通,計數值為/3時, 將寄存器Zbl和寄存器Zb2的輸出與二級加法器及二級減法器的輸入選通;所述二級加法器用於將兩個輸入相加後寫入二級加法寄存器;所述二級減法器用於將兩個輸入相減後寫入二級減法寄存器,其中以寄 存器dina,寄存器dinb2,寄存器ZbO,寄存器Zbl的輸出為被減數;所述二級加法寄存器和二級減法寄存器用於鎖存寫入的數值並輸出到二 級輸出選擇器;所述二級輸出選擇器用於在計數值為/。,/"^,/;'時,分別將二級加法寄存 器上一時鐘周期鎖存的值選通輸出到寄存器ZbO,寄存器Zb3,三級輸出選擇 器和三級輸出選擇器,分別將二級減法寄存器上一時鐘周期鎖存的值選通輸 出到寄存器ZM,寄存器Zb2,寄存器Oc,寄存器Od;所述三級計數器用於向所述三級輸出選擇器輸出從小到大循環計數的四 個計數值/。',C/2',/3';所述2個三級輸入寄存器Oc, Od分別用乎對輸入值進行鎖存並輸出到三 級輸出選擇器;所述三級輸出選擇器用於在計數值為/。'和時,將從二級輸出選擇器直 接輸出的值連通到所述四級輸出寄存器,在計數值為/2'和/3'時,分別將寄存 器Oc和寄存器Od的輸出連通到所述四級輸出寄存器。
11、 一種離散餘弦變換的整數反變換方法,用於依照下式對一組4個輸 入值A、 B、 C和D進行離散餘弦變換的整M變換,得到4個輸出值fl',6',c' 和rf',其中的屍。,《,g為整數:formula see original document page 8其特徵在於,通過四級流水完成對多組輸入值的整數反變換,從接收到 第一個輸入值A開始,執行以下處理第一級在第1~4拍,根據依次輸入的A、 B、 C和D計算出A爿, i^,i^,屍。C,i^和屍力,在第2 5拍輸出到第二級鎖存,且從第5拍開始對 下一組輸入值的處理;第二級在第4 7拍,先做加、減運算Z 0 =屍04, M =屍"-屍。C,62 =屍2萬-《Z), 63 = ^5+屍2/)並鎖存得到的中間值60,61,62,63 ,再做力口、減運算"'=60+63, 6' = 61 + 62, c' = 61-Z 2,rf' = 60-63,第7拍將a' ,d'輸出到第三級,在第8拍將 6',c'輸出到第三級且開始對下一組輸入值的處理;第三級用於在第7 10拍依次將"',6',c', i輸出到第四級,且從第11拍 開始對下一組輸入值的處理;第四級反變換單元鎖存輸出值"',6',c'和rf',由後續裝置讀出。
12、 如權利要求7所述的整數反變換方法,其特徵在於所述第一級在第1拍根據輸入值A,計算出i^4並鎖存;第2拍根據輸入 值B,計算出i^和i^並鎖存,同時將P^4輸出到第二級;第3拍根據輸入值 C,計算出戶。C並鎖存,同時將i^和i^輸出到第二級;第4拍根據輸入值D, 計算出A"和P2£>並鎖存,同時將P。C輸出到第二級;第5拍將A"和屍2£ 輸出 到第二級。
13、 如權利要求8所述的整數反變換方法,其特徵在於所述第二級在第4拍,對輸入的P3和戶。C作加法和減法運算,得到兩個 中間值60和61並鎖存,其中60 =屍"+戶。2Z);在第6拍,對得到的中間值60和M作加法 和減法運算,得到輸出值"'=60 + 63, c/'-60-63並鎖存;在第7拍,對得到的 中間值60和M作加法和減法運算,得到輸出值6' = 61 + 62, c'-W-62並鎖存, 同時將a'和&輸出到第三級;在第8拍,將6'和c'輸出到第三級。
14、 如權利要求9所述的整數反變換方法,其特徵在於所述第三級在第7拍將輸入的a'直接輸出到第四級,同時將輸入的6'鎖 存;在第8拍將輸入的6'直接輸出到第四級,同時將輸入的c'鎖存;在第9 拍,將鎖存的c'輸出到第四級;在第10拍,將鎖存的c/'輸出到第四級。
15、如權利要求7所述的整數反變換方法,其特徵在於所述離散餘弦變換的整數反變換為用於RV解碼器的離散餘弦變換的RV 整數反變換,所述屍。=13,/ = 17,屍2 = 7;所述第一級通過做兩級運算來得到所述 ,175,75,13C ,17/)和7Z),對輸入值A,在第 一級先做左移3位運算得到8A,;以及左移2位再加A的運算得到5A,然後在第二級做加法運算得到13A,對 輸入值B,在第一級先做左移4位運算、左移3位運算得到16B和犯,然後 在第二級對16B和B做加法運算,對8B和B做減法運算得到7B,對輸入值 C,第一級先做左移3位運算得到8C,以及左移2位再加C的運算得到5C, 然後在第二級做加法運算得到13C,對輸入值D,在第一級先做左移4位運'算、左移3位運算得到16D和8D,然後在第二級對16D和D i故加法運算, 對8D和D做減法運算得到7D。
全文摘要
一種離散餘弦變換的整數反變換裝置,包括第一至第四級反變換單元,採用流水線方式對多組輸入值進行處理,第一級反變換單元在第1~4拍,計算出輸入值的倍數值P0A、P1B和P2B、P0C、P1D和P2D並鎖存,在第2~5拍將倍數值依次輸出到第二級反變換單元鎖存;第二級反變換單元用於先對鎖存的倍數值做加、減運算得到4個中間值,再在6~7拍對4個中間值做加、減運算得到4個輸出值,在第7~8拍輸出到第三級反變換單元,第三級反變換單元在第7~10拍依次將4個輸出值輸出到第四級反變換單元。本發明可以使用較少的硬體資源,實現較快的運算速度。
文檔編號H04N7/30GK101355701SQ20081011977
公開日2009年1月28日 申請日期2008年9月9日 優先權日2008年9月9日
發明者萬紅星 申請人:北京中星微電子有限公司