亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

離散余弦轉(zhuǎn)換及其逆轉(zhuǎn)換電路的制作方法

文檔序號:7724053閱讀:340來源:國知局
專利名稱:離散余弦轉(zhuǎn)換及其逆轉(zhuǎn)換電路的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及視頻編解碼,尤其涉及一種離散余弦轉(zhuǎn)換及其逆轉(zhuǎn)換電路。
背景技術(shù)
m^^^t^^kR^l^^^k (Discrete Cosine Transform/Inverse Discrete CosineTransform,DCT/IDCT)分別用于數(shù)字影像數(shù)據(jù)的編碼與解碼過程。在數(shù)字影像編碼 過程中,影像通常被細分為許多8*8的像素(Pixel)的方塊,再逐一對各方塊進行離散余弦 轉(zhuǎn)換(DCT),以轉(zhuǎn)換為頻域(Frequency Domain)的數(shù)據(jù)形態(tài),而解碼過程則將所述頻域數(shù) 據(jù)進行逆離散余弦轉(zhuǎn)換(IDCT),以還原為像素數(shù)據(jù)。通常,執(zhí)行一個二維的DCT/IDCT,可先 進行一維行或列的轉(zhuǎn)換,之后再進行一維列或行轉(zhuǎn)換來達成,這些運算過程包括了大量的 蝴蝶運算。目前,視頻編解碼協(xié)議類型多樣,主流的如H. 264、WMV9、MPEG-2等,其編碼與解碼 過程皆需用到DCT/IDCT運算。但是,各種編解碼協(xié)議所對應(yīng)的具體運算方法不一樣,由于 實際完成這些運算的是底層硬件電路,所以也就相應(yīng)的需要各種設(shè)計不同的底層硬件電路 來配合各種不同的編解碼協(xié)議?;谑袌鲂枨螅壳笆忻嫔系母黝愐曨l產(chǎn)品皆需要支持多 種編解碼協(xié)議,這樣就需要提供多種對應(yīng)的運算電路,使得底層硬件電路具有設(shè)計復(fù)雜、體 積龐大、成本高等缺點。

發(fā)明內(nèi)容
有鑒于此,需提供一種離散余弦轉(zhuǎn)換及其逆轉(zhuǎn)換(Discrete Cosine Transform/ Inverse Discrete Cosine Transform,DCT/IDCT)電路,用于實現(xiàn)各種類型的蝴蝶運算,以 同時支持多種編解碼協(xié)議,并進一步提升編解碼效率。本發(fā)明實施方式中的DCT/IDCT電路,用于實現(xiàn)多種類型的DCT/IDCT,每一 DCT/ IDCT包括多個蝴蝶運算,每一蝴蝶運算包括多個運算系數(shù)。DCT/IDCT電路包括微碼存儲 器、控制器及蝴蝶運算電路。微碼存儲器用于存儲多種類型DCT/IDCT對應(yīng)的微碼列表,其 中,微碼列表包括多組微碼,每一類型DCT/IDCT對應(yīng)一組微碼??刂破饔糜趶奈⒋a存儲器 內(nèi)查找所要實現(xiàn)的DCT/IDCT對應(yīng)的微碼組,并依序讀取其中的微碼。蝴蝶運算電路用于根 據(jù)控制器所讀取的微碼進行蝴蝶運算,以實現(xiàn)DCT/IDCT。蝴蝶運算電路包括系數(shù)寄存模塊、 選擇輸入模塊、運算模塊及結(jié)果寄存模塊。系數(shù)寄存模塊用于存儲蝴蝶運算的運算系數(shù)。結(jié) 果寄存模塊用于存儲蝴蝶運算的運算結(jié)果。選擇輸入模塊用于根據(jù)控制器所讀取的微碼選 擇系數(shù)寄存模塊內(nèi)存放的運算系數(shù)或結(jié)果寄存模塊內(nèi)存放的運算結(jié)果以輸出。運算模塊用 于根據(jù)控制器所讀取的微碼將選擇輸入模塊輸出的數(shù)據(jù)進行運算,并將運算結(jié)果存入結(jié)果 寄存模塊。本發(fā)明所提供的DCT/IDCT電路采用預(yù)先設(shè)計好的微碼來指導(dǎo)蝴蝶運算,可以同 時支援多種編解碼協(xié)議,而不需要更改硬件電路,從而大大降低了成本,提升了編解碼效率。


圖1為本發(fā)明一實施方式的DCT/IDCT電路的模塊圖。圖2為WMV9協(xié)議的8*8的IDCT轉(zhuǎn)換為多個蝴蝶運算后的示意圖。圖3為圖1所示的蝴蝶運算電路一實施方式的具體電路圖。圖4為本發(fā)明一實施方式中根據(jù)蝴蝶運算編制微碼及根據(jù)微碼進行蝴蝶運算的 示意圖。圖5為圖1所示的控制器控制蝴蝶運算電路進行蝴蝶運算的流程圖。圖6為本發(fā)明一實施方式中完成的蝴蝶運算的類型示意圖。
具體實施例方式請參閱圖1,所示為本發(fā)明一實施方式中的離散余弦轉(zhuǎn)換及其逆轉(zhuǎn)換(Discrete CosineTransform/Inverse Discrete Cosine Transform,DCT/IDCT)電路 10 的模塊圖。一般情況下,各種視頻編解碼協(xié)議所包括的DCT/IDCT皆可轉(zhuǎn)換為多個蝴蝶運算 (Butterfly Operation),且視頻編解碼協(xié)議對此都有詳細規(guī)定,只是不同的視頻編解碼協(xié) 議所對應(yīng)的具體蝴蝶運算不同。因此,若增加蝴蝶運算的效率,DCT/IDCT的效率也將隨之 提升。請參閱圖2,所示為WMV9協(xié)議的8*8的IDCT轉(zhuǎn)換為多個蝴蝶運算的示意圖。其中,
COXl......C7等為DCT/IDCT的運算系數(shù),_3、8、3、_5等為DCT/IDCT的運算常量,D0、D1......
D7等為DCT/IDCT的運算結(jié)果。DCT/IDCT的運算系數(shù)根據(jù)像素方塊的參數(shù)不同而不同,而 DCT/IDCT的運算常量則針對每一種DCT/IDCT都是固定的。從圖中可以看出,8*8的IDCT 最終都可以轉(zhuǎn)換為蝴蝶運算。其它視頻編解碼協(xié)議的各種IDCT也可以轉(zhuǎn)換為類似的蝴蝶 運算,因為此轉(zhuǎn)換為現(xiàn)有技術(shù),故在此不做贅敘。需要說明的是,圖2僅為示例,本發(fā)明所示的DCT/IDCT電路10并非僅針對圖2所 示的IDCT運算,而是可以解決所有的IDCT運算,如2*2、4*4等,且本發(fā)明所示的DCT/IDCT 電路10能支援多種視頻編解碼協(xié)議,如H. 264、MPEG-2等協(xié)議。請再次參閱圖1,在本實施方式中,DCT/IDCT電路10包括微碼存儲器12、控制器 13及蝴蝶運算電路14。微碼存儲器12用于存儲多種類型的DCT/IDCT對應(yīng)的微碼列表。在本實施方式 中,每一種視頻協(xié)議對應(yīng)不同大小的DCT/IDCT,如2*2、4*4、8*8等。每一種DCT/IDCT又對 應(yīng)一組微碼。因每一種視頻協(xié)議都規(guī)定了其對應(yīng)的DCT/IDCT及其包括的蝴蝶運算,所以微 碼存儲器12內(nèi)存儲了多組微碼,形成微碼列表,每一組微碼包括多個微碼。每一蝴蝶運算 對應(yīng)至少一個微碼。在本實施方式中,微碼列表根據(jù)視頻協(xié)議預(yù)先設(shè)定好并存儲于微碼存 儲器12內(nèi)。控制器13用于從微碼存儲器12內(nèi)讀取微碼并控制蝴蝶運算電路14進行蝴蝶運 算,以實現(xiàn)DCT/IDCT。在本實施方式中,蝴蝶運算電路14用于根據(jù)微碼進行蝴蝶運算,包括系數(shù)寄存模 塊140、選擇輸入模塊142、運算模塊144及結(jié)果寄存模塊146。系數(shù)寄存模塊140用于存儲蝴蝶運算的系數(shù)。結(jié)果寄存模塊146用于存儲蝴蝶運算的結(jié)果。
選擇輸入模塊142用于根據(jù)微碼選擇系數(shù)寄存模塊140內(nèi)存放的蝴蝶運算的系數(shù) 或結(jié)果寄存模塊146內(nèi)存放的蝴蝶運算的結(jié)果以輸出。運算模塊144用于根據(jù)微碼將從選擇輸入模塊142接收的數(shù)據(jù)進行蝴蝶運算,并 按照微碼將運算結(jié)果存入結(jié)果寄存模塊146。具體而言,控制器13控制選擇輸入模塊142 在特定的時鐘周期輸入特定的數(shù)據(jù)到運算模塊144,以供運算模塊144進行運算。請參閱圖3,所示為圖1所示的蝴蝶運算電路14 一實施方式的具體電路圖。需說 明的是,在本發(fā)明的附圖中,為了簡單清楚,若元件名稱一致,則僅標(biāo)識其中的一個,但用于 指代所有名稱相同的元件。且,因運算單元結(jié)構(gòu)一致,所以省略了部分運算單元的詳細電 路。在本實施方式中,選擇輸入模塊142包括多個多工器1420與多個D觸發(fā)器1422。多工器1420用于選擇輸出系數(shù)寄存模塊140內(nèi)存放的蝴蝶運算的系數(shù)或結(jié)果寄 存模塊146內(nèi)存放的蝴蝶運算的結(jié)果。在本實施方式中,多工器1420還用于在運算模塊 144進行新一輪運算時選擇輸出運算模塊144的上一輪運算的運算結(jié)果。D觸發(fā)器1422用于控制多工器1420輸出數(shù)據(jù)的時鐘周期,以同步其輸入到運算模 塊144的數(shù)據(jù)。在本實施方式中,控制器13先將特定的系數(shù)通過多工器1420送到D觸發(fā) 器1422,再在特定的時間周期通過D觸發(fā)器1422送到運算模塊144。運算電路144包括至少二個運算單元145。在本實施方式中,每一運算單元145包 括移位器1450與加減法器1452。移位器1450與選擇輸入模塊142相連,用于將選擇輸入模塊142輸入的數(shù)據(jù)進行 移位運算。在本實施方式中,若移位器1450將所輸入的數(shù)據(jù)向左移η位,表示將所輸入的 數(shù)據(jù)乘以2η,若向右移η位,表示將所輸入的數(shù)據(jù)除以2η。如,向左移1位,表示將移位器 1450將所輸入的數(shù)據(jù)乘以2,若向左移2位,表示將所輸入的數(shù)據(jù)乘以4,若向左移3位,表 示將所輸入的數(shù)據(jù)乘以8。加減運算器1452的第一輸入端與移位器1450的輸出端相連,第二輸入端與選擇 輸入模塊142相連,用于對移位器1450的輸出端輸出的數(shù)據(jù)、選擇輸入模塊142輸入的數(shù) 據(jù)進行加減運算,并將結(jié)果存入結(jié)果寄存模塊146。請參閱圖4,所示為本發(fā)明一實施方式中根據(jù)蝴蝶運算編制微碼及根據(jù)微碼進行 蝴蝶運算的示意圖。在本實施方式中,每一微碼包括運算指令、結(jié)果存放地、多個數(shù)據(jù)來源 及移位值。結(jié)果存放地用于指示加減運算器1452輸出的運算結(jié)果在結(jié)果寄存模塊146中的 存放位置。在本實施方式中,結(jié)果存放地預(yù)先設(shè)定好,加減運算器1452根據(jù)結(jié)果存放地的 指示將結(jié)果存放到預(yù)先設(shè)定好的區(qū)域。舉例而言,若需要將運算結(jié)果存入第一寄存器,則可 設(shè)定結(jié)果存放地為rl,若需要將運算結(jié)果存入第二寄存器,則可設(shè)定結(jié)果存放地為r2。多個數(shù)據(jù)來源用于指示運算模塊144所進行運算的數(shù)據(jù)的來源。在本實施方式 中,多個數(shù)據(jù)來源指示移位器1450與加減運算器1452從選擇輸入模塊142獲取的數(shù)據(jù)的 來源。其中,選擇輸入模塊142輸入到運算模塊144的數(shù)據(jù)包括兩類,一類為需要進行運算 的DCT/IDCT的運算系數(shù),另一類為結(jié)果寄存模塊146中所存放的運算結(jié)果。舉例而言,若 需要獲取DCT/IDCT的運算系數(shù),可以將數(shù)據(jù)來源設(shè)定為相應(yīng)D觸發(fā)器1422的輸出端,再控 制相應(yīng)D觸發(fā)器1422在特定的時鐘周期輸出所需的系數(shù),若需要獲取運算結(jié)果,可以將數(shù)據(jù)來源設(shè)定為運算結(jié)果的結(jié)果存放地,如第一寄存器。移位值用于指示運算模塊144中的移位器1450對選擇輸入模塊142輸入的數(shù)據(jù) 進行移位的位數(shù)。運算指令用于指示運算模塊144進行運算的數(shù)據(jù)及對進行運算的數(shù)據(jù)進行的運 算規(guī)則,包括移位方向、多個運算數(shù)據(jù)及多個運算規(guī)則。運算電路144根據(jù)移位值與移位方 向?qū)⒍鄠€運算數(shù)據(jù)進行移位運算得到移位結(jié)果,根據(jù)多個運算規(guī)則將移位結(jié)果與多個運算 數(shù)據(jù)進行運算。舉例說明,運算指令可包括移位方向、第一運算數(shù)據(jù)、第二運算數(shù)據(jù)、第三運 算數(shù)據(jù)、第四運算數(shù)據(jù)、第一運算規(guī)則、第二運算規(guī)則,此時,運算電路144可將第一運算數(shù) 據(jù)先按照移位值與移位方向進行移位運算,再將移位運算的結(jié)果與第二運算數(shù)據(jù)按照第一 運算規(guī)則進行運算,并將第三運算數(shù)據(jù)先按照移位值與移位方向進行移位運算,再將移位 運算的結(jié)果與第四運算數(shù)據(jù)按照第二運算規(guī)則進行運算。運算規(guī)則包括運算單元145可實現(xiàn)的運算,如加、減、求相反數(shù)后再加。運算數(shù)據(jù)包括數(shù)據(jù)來源所指示的數(shù)據(jù)。在運算模塊144進行新一輪運算時,運算 數(shù)據(jù)還包括運算模塊144的上一輪運算的運算結(jié)果。在本實施方式中,一個蝴蝶運算對應(yīng)至少一個微碼,若運算模塊144包括兩個運 算單元145,運行每一微碼僅需一個時鐘周期,則如果需要增加運算速度,則僅需要增加運 算單元的數(shù)量。若如圖3所示,運算模塊144包括四個運算單元,則運行每兩個微碼才需要 一個時鐘周期,明顯增加了運算速度。且,本發(fā)明運算單元145采用簡單的移位器1450來 代替復(fù)雜的乘法器來實現(xiàn)乘法運算,明顯減少了電路的復(fù)雜度,大大降低了成本。舉例而言,參閱圖4所示的第一個蝴蝶運算BF1,其需要計算的公式可表示為R2 = 5C0+16C4 與 R3 = 16C0-5C4,其中,CO 與 C4 為 DCT/IDCT 的運算系數(shù),5 與 16 為 DCT/IDCT 的運算常量,R2與R3為該第一個蝴蝶運算BFl的運算結(jié)果,則其微碼可編寫為“Asl_rA_ add_rA_rB_add_rB, rDO, RH, RL,2” 與 “Asl_rA_add_DA_rB_sub_DB,rDl, RL, RH,4”,其中, “Asl_rA_add_rA_rB_add_rB”與“Asl_rA_add_DA_rB_sub-DB” 為運算指令,rDO 與 rDl 為結(jié) 果存放地,RH與RL分別為數(shù)據(jù)來源,2與4為移位值。在運算指令中,Asl表示移位器1450 將接收的數(shù)據(jù)向左移,即對接收的數(shù)據(jù)進行乘法運算。rA、rB表示從數(shù)據(jù)來源獲取的數(shù)據(jù), DA與DB表示上一個時鐘周期的運算結(jié)果。rA_add_rA表示先將rA向左移2位,再將移位 結(jié)果與rA相加,rB_add_rB表示先將rB向左移2位,再將移位結(jié)果與rB相加,此時得出的 運算結(jié)果為 RO = (CO << 2)+CO = 5C0、Rl = (C4 << 2)+C4 = 5C4。rA_add_DA 表示先 將rA向左移4位,再將移位結(jié)果與DA相加,rB_sub_DB表示先將rB向左移4位,再將移位 結(jié)果與DB相減,其中DA與DB為上一個時鐘周期的運算結(jié)果,此處為RO與Rl,此時得出的 運算結(jié)果為 R2 = (C4 << 4) +5C0 = 16C4+5C0、R3 = (CO << 4) -5C4 = 16C0-5C4。圖4所示的第二個蝴蝶運算BF2的編制原理與第一個蝴蝶運算BFl差不多,其中 的rB_isub_DB表示先將rB向左移位后求相反數(shù),再將結(jié)果與DB相加,此時得出的運算結(jié) 果為 R5 = - (C4 < < 4) +Rl = -16C4+4C0。 請參閱圖5,所示為圖1所示的控制器13控制蝴蝶運算電路14進行蝴蝶運算的流 程圖。在本實施方式中,該蝴蝶運算通過圖3所示的具體電路完成。其中,將第一運算單元 中的移位器與加減法器定義為第一移位器與第一加減法器,將第二運算單元中的移位器與 加減法器定義為第二移位器與第二加減法器,在此以運算模塊144包括這兩個運算單元來舉例說明蝴蝶運算電路14如何進行蝴蝶運算。在步驟S500,控制器13根據(jù)所要進行的DCT/IDCT的類型從微碼存儲器12內(nèi)找到 對應(yīng)的微碼組,按順序讀取該微碼組內(nèi)的一個微碼。在本實施方式中,所讀取的微碼包括運 算指令、結(jié)果存放地、多個數(shù)據(jù)來源及移位值,運算指令包括移位方向、第一運算數(shù)據(jù)、第二 運算數(shù)據(jù)、第三運算數(shù)據(jù)、第四運算數(shù)據(jù)、第一運算規(guī)則及第二運算規(guī)則。在步驟S502,控制器13根據(jù)所讀取的微碼的運算指令控制選擇輸入模塊142將第 一運算數(shù)據(jù)送入第一移位器。在步驟S504,控制器13控制第一移位器將第一運算數(shù)據(jù)按照移位值進行移位運 算,并將運算結(jié)果送入第一加減法器的第一輸入端。在步驟S506,控制器13根據(jù)微碼中的運算指令將第二運算數(shù)據(jù)送入第一加減法 器的第二輸入端。在步驟S508,控制器13根據(jù)第一運算規(guī)則控制第一加減法器對第一輸入端與第 二輸入端的數(shù)據(jù)進行運算,并將運算結(jié)果存入結(jié)果存放地。在步驟S510,控制器13根據(jù)微碼的運算指令控制選擇輸入模塊將第三運算數(shù)據(jù) 送入第二移位器。在步驟S512,控制器13控制第二移位器將第三運算數(shù)據(jù)按照移位值進行移位運 算,并將運算結(jié)果送入第二加減法器的第一輸入端。在步驟S514,控制器13根據(jù)微碼的運算指令將第四運算數(shù)據(jù)送入第二加減法器 的第二輸入端。在步驟S516,控制器13根據(jù)第二運算規(guī)則控制第二加減法器對第一輸入端與第 二輸入端的數(shù)據(jù)進行運算,并將結(jié)果存入結(jié)果存放地。這樣,當(dāng)控制器13控制蝴蝶運算電路14將該微碼組內(nèi)的所有微碼都運算完,則該 組微碼對應(yīng)的DCT/IDCT運算也就完成了。由于運算模塊144至少包括兩個運算單元145,則上述兩組運算S502-S508與 S510-S516可以看作同步進行,所以根據(jù)一個微碼所進行的運算可以看作在一個時鐘周期 內(nèi)完成。此時,若能增加一倍的運算單元145的數(shù)量,則可以將兩個微碼同步運算,進一步 減少運算時間,提升運算效能。在本實施方式中,按照運算所需的時鐘周期數(shù)量,根據(jù)DCT/IDCT的運算常量的取 值不同可以將本發(fā)明實施方式實現(xiàn)的蝴蝶運算分為三個類型,具體請參閱圖6,所示為所述 的蝴蝶運算的類型示意圖。其中,第一類為a與b分別或皆為1,此類蝴蝶運算對應(yīng)一個微 碼,僅需兩個運算單元145運算一個時鐘周期。第二類為a為2"或l/2n,b為2n、l/2n、2n±l 或l/2n±l,此類蝴蝶運算對應(yīng)二個微碼,需兩個運算單元145運算兩個時鐘周期。其他的 為第三類,對應(yīng)三個微碼,需兩個運算單元145運算三個時鐘周期。經(jīng)過統(tǒng)計,若需要進行 的IDCT運算對應(yīng)WMV9視頻協(xié)議所規(guī)定的8*8的IDCT運算,那么第一類蝴蝶運算的數(shù)量占 總數(shù)的50%,第二類蝴蝶運算占總數(shù)的28%,第三類蝴蝶運算占總數(shù)的22%。若需要進行 的IDCT運算對應(yīng)H. 264視頻協(xié)議所規(guī)定的8*8的IDCT運算,那么第一類蝴蝶運算占總數(shù)的 85%,第二類蝴蝶運算占總數(shù)的15%。由此可見,DCT/IDCT電路10能大大提高DCT/IDCT 運算效率。本發(fā)明實施方式所提供的DCT/IDCT電路10采用將不同的視頻協(xié)議轉(zhuǎn)換為不同的微碼組,并根據(jù)微碼組進行蝴蝶運算的方式,能實現(xiàn)支援所有類型的視頻協(xié)議的所有DCT/ IDCT,大大減少了 DCT/IDCT所需的硬件電路的復(fù)雜度。且,由于本實施方式采用移位器來 代替?zhèn)鹘y(tǒng)電路中的乘法器來實現(xiàn)乘法運算,且采用多個運算單元并行運算,所以不僅可以 顯著地降低電路成本,而且還能夠大大增加運算速度,提升運算效能。
權(quán)利要求
一種離散余弦轉(zhuǎn)換及其逆轉(zhuǎn)換(DCT/IDCT)電路,用于實現(xiàn)多種類型的DCT/IDCT,每一DCT/IDCT包括多個蝴蝶運算,每一蝴蝶運算包括多個運算系數(shù),其特征在于,所述DCT/IDCT電路包括微碼存儲器,用于存儲所述多種類型的DCT/IDCT對應(yīng)的微碼列表,其中,所述微碼列表包括多組微碼,每一類型的DCT/IDCT對應(yīng)一組微碼;控制器,用于從所述微碼存儲器內(nèi)查找所要實現(xiàn)的DCT/IDCT對應(yīng)的微碼組,并依序讀取其中的微碼;及蝴蝶運算電路,用于根據(jù)所述控制器所讀取的微碼進行蝴蝶運算,以實現(xiàn)所述DCT/IDCT,所述蝴蝶運算電路包括系數(shù)寄存模塊,用于存儲所述蝴蝶運算的運算系數(shù);結(jié)果寄存模塊,用于存儲所述蝴蝶運算的運算結(jié)果;選擇輸入模塊,用于根據(jù)所述控制器所讀取的微碼選擇所述系數(shù)寄存模塊內(nèi)存放的所述運算系數(shù)或所述結(jié)果寄存模塊內(nèi)存放的所述運算結(jié)果以輸出;及運算模塊,用于根據(jù)所述控制器所讀取的微碼將所述選擇輸入模塊輸出的數(shù)據(jù)進行運算,并將運算結(jié)果存入所述結(jié)果寄存模塊。
2.如權(quán)利要求1所述的DCT/IDCT電路,其特征在于,每一微碼包括運算指令,用于指示所述運算模塊進行運算的數(shù)據(jù)及對所述數(shù)據(jù)進行的運算規(guī)則; 結(jié)果存放地,用于指示所述運算模塊輸出的運算結(jié)果在所述結(jié)果寄存模塊中的存放位置;多個數(shù)據(jù)來源,用于指示所述選擇輸入模塊選擇輸入所述運算模塊的數(shù)據(jù);及 移位值,用于指示所述運算模塊對所述選擇輸入模塊所輸入的數(shù)據(jù)進行移位的位數(shù)。
3.如權(quán)利要求2所述的DCT/IDCT電路,其特征在于,所述運算指令包括移位方向,用于指示所述運算模塊對所述選擇輸入模塊所輸入的數(shù)據(jù)進行移位的方向 多個運算數(shù)據(jù),用于表示所述運算模塊進行運算的數(shù)據(jù);及 多個運算規(guī)則,用于指示運算模塊進行的運算。
4.如權(quán)利要求3所述的DCT/IDCT電路,其特征在于,所述多個運算規(guī)則包括加、減、求 相反數(shù)后再加。
5.如權(quán)利要求3所述的DCT/IDCT電路,其特征在于,所述多個運算數(shù)據(jù)包括所述多個 數(shù)據(jù)來源所指示的數(shù)據(jù)。
6.如權(quán)利要求5所述的DCT/IDCT電路,其特征在于,所述多個運算數(shù)據(jù)還包括在所述 運算模塊進行新一輪運算時,所述運算模塊的上一輪運算的運算結(jié)果。
7.如權(quán)利要求3所述的DCT/IDCT電路,其特征在于,所述運算模塊還用于根據(jù)所述移 位值與所述移位方向?qū)⑺龆鄠€運算數(shù)據(jù)進行移位運算得到移位結(jié)果,并根據(jù)所述多個運 算規(guī)則將所述移位結(jié)果與所述多個運算數(shù)據(jù)進行運算,以得出所述運算結(jié)果。
8.如權(quán)利要求1所述的DCT/IDCT電路,其特征在于,所述運算模塊包括至少二個運算 單元,每一運算單元包括移位器,與所述選擇輸入模塊相連,用于將選擇輸入模塊輸入的數(shù)據(jù)進行移位運算;及 加減運算器,其第一輸入端與所述移位器的輸出端相連,其第二輸入端與所述選擇輸 入模塊相連,用于根據(jù)所述控制器所選擇的微碼對從所述移位器輸入的數(shù)據(jù)與所述選擇輸入模塊輸入的數(shù)據(jù)進行加減運算,以得出所述運算結(jié)果。
9.如權(quán)利要求1所述的DCT/IDCT電路,其特征在于,所述選擇輸入模塊包括多個多工器,用于選擇輸出所述系數(shù)寄存模塊內(nèi)存放的所述運算系數(shù)或所述結(jié)果寄存 模塊內(nèi)存放的所述運算結(jié)果;及多個D觸發(fā)器,用于控制所述多工器輸出數(shù)據(jù)的時鐘周期,以同步其輸入到所述運算 模塊的數(shù)據(jù)。
10.如權(quán)利要求9所述的DCT/IDCT電路,其特征在于,所述多工器還用于在所述運算模 塊進行新一輪運算時選擇輸出所述運算模塊的上一輪運算的運算結(jié)果。
全文摘要
一種DCT/IDCT電路,包括微碼存儲器、控制器、蝴蝶運算電路。微碼存儲器用于存儲DCT/IDCT對應(yīng)的微碼列表??刂破饔糜谧x取微碼并控制蝴蝶運算電路進行運算。蝴蝶運算電路包括系數(shù)寄存模塊、選擇輸入模塊、運算模塊及結(jié)果寄存模塊。系數(shù)寄存模塊用于存儲蝴蝶運算的運算系數(shù)。結(jié)果寄存模塊用于存儲蝴蝶運算的運算結(jié)果。選擇輸入模塊用于根據(jù)微碼選擇系數(shù)寄存模塊內(nèi)存放的運算系數(shù)或結(jié)果寄存模塊內(nèi)存放的運算結(jié)果以輸出。運算模塊用于根據(jù)微碼將選擇輸入模塊輸出的數(shù)據(jù)進行運算,并將運算結(jié)果存入結(jié)果寄存模塊。本發(fā)明所提供的DCT/IDCT電路采用預(yù)先設(shè)計好的微碼來指導(dǎo)蝴蝶運算,可以同時支援多種編解碼協(xié)議。
文檔編號H04N7/26GK101989254SQ200910305238
公開日2011年3月23日 申請日期2009年8月5日 優(yōu)先權(quán)日2009年8月5日
發(fā)明者李一心, 李佳盈, 童怡新, 許銘忠 申請人:鴻富錦精密工業(yè)(深圳)有限公司;鴻海精密工業(yè)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1