一種二維dct圖像處理器的制造方法
【專利摘要】本發明屬于集成電路技術領域,具體的說涉及一種二維DCT圖像處理器。本發明的圖像處理器包括數據選擇模塊,狀態控制模塊,一維DCT模塊,和移位寄存器陣列;數據選擇模塊的數據輸入端接移位寄存器陣列的輸出端,控制信號輸入端接狀態控制模塊的輸出端,其輸出端接一維DCT模塊的數據輸入端;狀態控制模塊的輸出端接移位寄存器陣列的控制信號輸入端和數據選擇模塊的控制信號輸入端;一維DCT模塊的數據輸入端接數據選擇模塊的輸出端,控制信號輸入端接外部控制信號,其輸出端接移位寄存器陣列的數據輸入端,并且也是整個圖像處理器的數據輸出端。本發明的有益效果為,可以根據不同場合的精度需求調節二維DCT圖像處理器的工作模式,使其有更低的能耗。
【專利說明】
一種二維DCT圖像處理器
技術領域
[0001] 本發明屬于集成電路技術領域,特別涉及一種可變精度的低能耗二維DCT圖像處 理器。
【背景技術】
[0002] 離散余弦變換(DCT)是在數字信號處理領域廣受歡迎的一種技術,具備良好的正 交特性,分離特性,解相關特性和能量壓縮特性,是圖像壓縮的核心算法。圖像信息經過二 維DCT變換后絕大部分的能量集中在直流分量和少數低頻分量上,減少了空間冗余。JPEG (JointPhotographic Experts Group,聯合圖像專家組)、MPEG(MovingPicture Expert Group,運動圖像專家組),H.263等標準都采用了 DCT技術作為壓縮編碼的主要方案。
[0003] 二維DCT電路可以采用行列分離法分解為兩個一維DCT電路的組合,分別進行行計 算和列計算,所以二維DCT圖像處理器的核心是其內部一維DCT電路。傳統圖像處理器中的 一維DCT電路由22個乘法器和30個加法器組成,由于乘法器較加法器而言面積和功耗都比 較大,使得乘法器數目偏多的傳統二維DCT圖像處理器的面積和功耗也比較大。
[0004] 在不同的場合,對圖片質量的要求也有所不同,需要圖像處理器能夠動態的調節 圖片質量以適應不同的精度要求。傳統的二維DCT圖像處理器只能提供一種精度的圖像處 理,采用低精度的圖像處理方案不滿足系統需求,采用過高精度的圖像處理方案會造成能 量的浪費。
[0005] 相對于傳統圖像處理器而言,本發明的改進之處就在于,減少了乘法器的使用數 量,從而減少了圖像處理器的面積和功耗,同時可調精度的設計使得該二維DCT圖像處理器 能夠適應不同的場景需求,擁有更低的能耗。
【發明內容】
[0006] 本發明所要解決的,就是針對上述傳統二維DCT圖像處理器存在的問題,提出一種 可變精度的低能耗二維DCT圖像處理器。
[0007] 為實現上述目的,本發明采用如下技術方案:
[0008] -種可變精度的低能耗二維DCT圖像處理器,采用了折疊式架構,一共有四種工作 模式,分別為模式4,模式3,模式2和模式1,精度和能耗從模式4到模式1逐漸降低;該圖像處 理器包括數據選擇模塊,狀態控制模塊,一維DCT模塊,和移位寄存器陣列,其中一維DCT模 塊包括可變精度的固定位寬乘法器,加法器,減法器,閾值判斷模塊和流水線寄存器;所述 數據選擇模塊的數據輸入端接外部輸入數據和移位寄存器陣列的輸出端,控制信號輸入端 接狀態控制模塊的輸出端,數據選擇模塊的輸出端接一維DCT模塊的數據輸入端;所述狀態 控制模塊的控制信號輸入端接外部控制信號,其輸出端接移位寄存器陣列的控制信號輸入 端和數據選擇模塊的控制信號輸入端;所述一維DCT模塊的數據輸入端接數據選擇模塊的 輸出端,控制信號輸入端接外部控制信號,一維DCT模塊的輸出端接移位寄存器陣列的數據 輸入端,并且也是整個圖像處理器的數據輸出端;
[0009] 所述狀態控制模塊由一個有限狀態機組成,狀態分別為初始狀態,行計算狀態和 列計算狀態,并根據外部控制信號和內部數據變化進行狀態切換;該模塊所輸出的控制信 號決定了一維DCT模塊的輸入數據來源以及移位寄存器陣列的移動方向;
[0010] 所述數據選擇模塊根據控制信號決定輸入到一維DCT模塊的數據,行計算狀態時, 控制信號選擇外部輸入數據進入一維DCT模塊,列計算狀態時,控制信號選擇移位寄存器陣 列輸出端的數據進入一維DCT模塊;
[0011] 所述一維DCT模塊包含可變精度的固定位寬乘法器,加法器,減法器,閾值判斷模 塊和流水線寄存器,通過乘法器結果的近似復用降低硬件的復雜度,最終將固定位寬乘法 器的個數減少到8個;本設計中可變精度的固定位寬乘法器有兩種計算模式,分別為高精度 計算模式和低精度計算模式,該圖像處理器在模式4和模式3時采用高精度計算模式,模式2 和模式1時采用低精度計算模式;外部輸入數據在第一級加法和減法運算后輸入進閾值判 斷模塊,所述閾值判斷模塊根據當前工作模式決定閾值大小,輸入的數據只有大于閾值才 可以送入流水線寄存器,在下一個時鐘輸進固定位寬乘法器繼續計算;固定位寬乘法器的 結果經過一系列加法和減法操作后得到最終的計算結果,不同工作模式需要計算的DCT系 數個數也不相同,精度高的工作模式計算的系數個數比較多,耗費的加法器相對較多,精度 低的工作模式計算的系數個數比較少,耗費的加法器也相對較少;
[0012] 所述移位寄存器陣列由64個12位寄存器組成,每8個為一排,構成8乘8的矩陣陣 列;根據當前工作模式打開需要用到的寄存器并進行移位操作,工作模式的精度越高,一維 DCT模塊計算出的DCT系數就越多,需要移位的寄存器就越多;行計算狀態時,移位寄存器陣 列逐行存儲一維DCT模塊輸出的中間計算結果,信號控制移位寄存器陣列中的數據向下移 動直到所有的中間結果都存儲進移位寄存器陣列;列計算狀態時,移位寄存器陣列將轉置 后的中間計算結果逐列輸出到一維DCT模塊,信號控制移位寄存器陣列中的數據向左移動 直到所有的中間結果都移出了移位寄存器陣列;
[0013] 本發明的有益效果為,通過乘法器結果的近似復用降低圖像處理器的硬件復雜度 和功耗;可以根據不同場合的精度需求調節二維DCT圖像處理器的工作模式,使其有更低的 能耗;
【附圖說明】
[0014] 圖1為本發明中提出的二維DCT圖像處理器結構示意圖;
[0015]圖2為狀態控制模塊的狀態轉移示意圖;
[0016]圖3為數據選擇模塊結構示意圖;
[0017] 圖4為一維DCT模塊結構示意圖;
[0018] 圖5為移位寄存器陣列結構示意圖;
[0019] 圖6為傳統移位寄存器邏輯電路圖;
[0020] 圖7為模式相關移位寄存器邏輯電路圖。
【具體實施方式】
[0021] 下面結合附圖對本發明進行詳細的描述
[0022] 本發明提供一種可變精度的低能耗二維DCT圖像處理器,首先通過乘法器結果的 近似復用降低其硬件復雜度和功耗;然后通過對運算精度和運算次數的控制來調節其精度 和能耗,使其面對不同的應用場景切換合適的工作模式,達到減少能耗的目的。
[0023]如圖1所示,該二維DCT圖像處理器由數據選擇模塊,狀態控制模塊,一維DCT模塊 和移位寄存器陣列這四個模塊組成,每次運算處理64個圖像數據。首先模式控制信號將該 圖像處理器配置為指定的工作模式,然后外部控制信號將狀態控制模塊中的有限狀態機由 初始狀態切換到行計算狀態,并輸出相應的控制信號。數據選擇模塊開始每個時鐘接收8個 8位的外部輸入數據,將這些數據擴展為12位數據后輸入進一維DCT模塊,如此持續8個時鐘 直到64個圖像數據都輸入進了數據選擇模塊。一維DCT模塊每個時鐘周期計算8個12位圖像 數據,并得到8個12位的中間計算結果,將這些結果輸入進移位寄存器陣列進行存儲。移位 寄存器陣列根據控制信號將一維DCT模塊運算得到的中間結果逐行向下移動進行存儲,直 到存儲了全部的8行計算結果。此時狀態控制模塊根據內部控制數據的變化將狀態由行計 算狀態切換為列計算狀態,并輸出相應的控制信號。移位寄存器陣列開始每個時鐘周期將8 個轉置后的中間結果輸入進數據選擇模塊,如此持續8個時鐘周期直到所有的中間計算結 果都輸入到了數據選擇模塊,數據選擇模塊根據控制信號將轉置后的中間結果直接輸入進 一維DCT模塊進行計算。一維DCT模塊每個時鐘周期計算8個12位的行計算的結果,并得到8 個12位的列計算結果作為最終輸出數據,8個時鐘周期后得到全部64個壓縮后的圖像數據。 [0024]圖2為狀態控制模塊的狀態轉移示意圖,一共由三個狀態組成,分別是初始狀態, 行計算狀態和列計算狀態。start是系統開始信號,start為1時代表系統已經可以開始計算 了,此時狀態機由初始狀態跳轉到行計算狀態。enable_ r〇W[7]是移位寄存器陣列第八行寄 存器的行移位存儲使能信號,它為1時代表行計算的全部結果已經存儲進寄存器陣列,不需 要再做任何移位存儲操作,狀態會由行計算狀態跳轉到列計算狀態。enabl e_co lumn [ 7 ]是 移位寄存器陣列第7列的的列移位存儲使能信號,它為0時代表行計算的全部中間結果已經 移出寄存器陣列,此時64個圖像數據已經全部處理完畢,狀態由列計算狀態跳轉到初始狀 態,開始下一組圖像數據的處理。
[0025]數據處理模塊的結構示意圖如圖3所示,主要是由多路復用器構成,輸入分別為外 部輸入的圖像數據和一維DCT模塊的中間計算結果,其中外部輸入數據為8位圖像數據,需 要進行符號位擴展,變為12位數據后再輸入進一維DCT模塊進行計算。數據選擇信號來自狀 態控制模塊,當行計算狀態時,多路復用器選擇外部輸入的圖像數據,當列計算狀態時,多 路復用器選擇一維DCT模塊的中間計算結果。
[0026] 二維DCT變換的定義如下:
[0028]其中f(x,y)是壓縮前的圖像數據,C(u,v)是壓縮后的DCT系數,a(u)是關于u的函 數,表達式如下:
[0030] 二維DCT變換具有分離特性,可以分解為兩個連續一維DCT變換的組合,一維DCT變 換的定義如下:
[0032]傳統的一維DCT可以表示成矩陣計算的形式:
[0035] 其中XQ-X7是輸入數據,W〇-W7是計算得到的DCT系數,a = cos(3i/16),b = cos(2Ji/ 16),c = cos(3jt/16),d = cos(4Vl6),e = cos(5Vl6),f = cos(6Vl6),g = cos(7Vl6)。根 據上述矩陣進行計算需要用到22個全精度乘法器和30個加法器,由于乘法器較加法器而言 面積和功耗都比較大,這直接導致傳統的一維DCT電路在功耗和面積方面的表現都不理想, 也直接影響了傳統二維DCT圖像處理器的性能。本發明引入近似計算的方法將乘法器減少 到8個,具體方法如下:從矩陣乘法中可以看出,無論是計算偶系數還是計算奇系數,都是用 不同的常數乘以右邊的列矩陣,所以可以利用其中一個常數乘以列矩陣的結果通過移位的 方式表示其余常數的運算結果,達到節省乘法器的目的。通過仿真模擬和誤差分析,最終確 定偶系數由常數d乘以列矩陣的結果來表示:
[0036] b^d+d/4
[0037] f^d/2
[0038] W〇 = di+d2+d3+d4
[0039] W2 = di+di/4+d2/2-d3/2_d4-d4/4
[0040] W4=di-d2-d3+d4
[0041 ] W6 = di/2-d2-d2/4+d3+d3/4_d4/2
[0042] 其中(11,(12,(13,(14分別為常數(1乘以右邊列矩陣第一行,第二行,第三行和第四行的 結果。奇系數由常數C乘以列矩陣的結果來表示:
[0043] a^c+c/4
[0044] e^c/2+c/8
[0045] g^c/4
[0046] Wi = ci+ci/4+C2+C3/2+C3/8+C4/4
[0047] ff3 = C1-C2/4-C3-C3/4-C4/2-C4/8
[0048] ff5 = ci/2+ci/8-C2-C2/4+C3/4+C4
[0049] Ψγ = ci/4-C2/2-C2/8+C3-C4-C4/4
[0050] 其中(^,(32,(33,(34分別為常數(3乘以右邊列矩陣第一行,第二行,第三行和第四行的 結果。從W〇-W7的表達式可以看出,本發明的一維DCT電路只需要8個乘法器來計算do-ck和co-C4,并且表達式中有很多的相同的子表達式,硬件設計的時候可以共享這些子表達式,進一 步減少加法器的使用,降低電路的面積和功耗。
[0051] 如圖4所示,一維DCT模塊包含可變精度的固定位寬乘法器,加法器,減法器,閾值 判斷模塊和流水線寄存。輸入首先進行加法和減法運算,也就是上述列矩陣中的加法和減 法操作,然后將計算結果輸入到閾值判斷模塊。模式控制信號決定當前工作模式,閾值判斷 模塊根據當前工作模式決定閾值的大小,篩掉不符合的輸入數據,減少后一級固定位寬乘 法器的運算次數,達到降低系統能耗的目的。精度較高的模式選取相對小的閾值,在保證精 度的同時小幅度減少運算次數,精度較低的模式選取相對大的閾值,在精度可以接受的范 圍內大幅度減少運算次數。經過多次仿真模擬和誤差分析,最終確定模式4的閾值設置為2, 也就是輸入大于2時才可以進入固定位寬乘法器進行計算,否則不予計算并直接將乘法結 果置為〇,同時模式3的閾值為3,模式2的閾值為4,模式1的閾值為10。在輸入數據不通過閾 值模塊時,為了減少電路翻轉,加入一級寄存器來保持固定位寬乘法器的原有的數據,也就 是圖4中的流水線寄存器。引入流水線寄存器還可以縮短該圖像處理器的關鍵路徑,增大工 作頻率。
[0052] 圖中可變精度的固定位寬乘法器有兩種計算模式,分別為高精度計算模式和低精 度計算模式,由圖像處理器的工作模式決定固定位寬乘法器的計算模式。精度相對較高的 模式4和模式3采用高精度計算模式,精度相對較低的模式2和模式1采用低精度計算模式, 從而達到降低運算精度減少系統能耗的目的。最后一級是包括加法器和減法器的純組合邏 輯電路,將固定位寬乘法器的運算結果經過一系列加法和減法操作,得到最終的DCT系數。 因為W〇-W 7的運算式中有很多相同的子表達式,所以這部分電路采用了公共子表達式消除的 方法,從算法層面減少運算量,降低電路的復雜度。為了進一步降低系統的能耗,系統工作 的精度降低時需要計算的DCT系數也有所減少,需要工作的加法器和減法器也相應減少。 DCT系數的重要性從Wo到W 7逐漸減弱,所以減少的系數首先應該是W7,其次是W6,依此類推。 工作模式4精度最高,需要計算全部的DCT系數,模式3計算W〇-W 6,模式2計算W〇-W5,精度最差 的模式放棄計算三個DCT系數,也就是計算M4。
[0053]圖5展示的是移位寄存器陣列結構示意圖,從圖中可以看出該陣列由64個12位寄 存器組成,每8個為一排,構成8乘8的矩陣陣列。行計算狀態時,移位寄存器陣列逐行存儲一 維DCT模塊輸出的中間計算結果,信號控制移位寄存器陣列中的數據向下移動直到所有的 中間結果都存儲進移位寄存器陣列。列計算狀態時,移位寄存器陣列將轉置后的中間計算 結果逐列輸出到一維DCT模塊,信號控制移位寄存器陣列中的數據向左移動直到所有的中 間結果都移出了移位寄存器陣列。寄存器陣列中有兩種類型的移位寄存器,一種是受模式 信號控制的模式相關移位寄存器,另外一種是不受模式信號控制的傳統移位寄存器。圖6是 傳統移位寄存器邏輯電路圖,該寄存器可以從上面的寄存器接收數據,也可以從左邊的寄 存器接收數據,用一個多路復用器進行選擇,選擇信號由狀態控制模塊提供。它還有兩個使 能信號,分別控制行計算狀態時的移位存儲和列計算狀態時的移位存儲,也是由狀態控制 模塊提供。圖7是受模式信號控制的模式相關移位寄存器邏輯電路圖,整體電路結構與傳統 移位寄存器類似,唯一的區別在于多了模式信號控制寄存器的打開與關閉。陣列中最左邊 三列為模式相關移位寄存器,分別存儲W7,W 6,W5這三個DCT系數,其余5列都是傳統移位寄存 器。當本發明的圖像處理器工作在模式3時,會放棄計算系數W 7,此時模式信號就會關閉最 左邊這一列的模式相關寄存器以節省能耗,工作在模式2時關閉左邊兩列寄存器,模式1時 關閉左邊二列寄存器。
[0054]相比傳統的圖像處理器,本發明提出的可變精度的低能耗二維DCT圖像處理器可 以根據不同場合的精度需求調節自己的工作模式,在滿足系統需求的同時擁有更低的能 耗。該圖像處理器從工作模式4切換到模式3時,圖片的PSNR降低2.8dB,能耗降低17.4%;從 工作模式3切換到模式2時,圖片的PSNR降低2.6dB,能耗降低21.4% ;從工作模式2切換到模 式1時,圖片的?3順降低2.9(^,能耗降低26.3%。
【主權項】
1. 一種二維DCT圖像處理器,該圖像處理器包括數據選擇模塊、狀態控制模塊、一維DCT 模塊和移位寄存器陣列;所述數據選擇模塊的數據輸入端接外部輸入數據和移位寄存器陣 列的輸出端,控制信號輸入端接狀態控制模塊的輸出端,控制信號輸入端的輸出端接一維 DCT模塊的數據輸入端;所述狀態控制模塊的控制信號輸入端接外部控制信號,其輸出端接 移位寄存器陣列的控制信號輸入端和數據選擇模塊的控制信號輸入端;所述一維DCT模塊 的數據輸入端接數據選擇模塊的輸出端,一維DCT模塊的控制信號輸入端接外部控制信號, 一維DCT模塊的輸出端接移位寄存器陣列的數據輸入端,并且也是整個圖像處理器的數據 輸出端; 所述狀態控制模塊由一個有限狀態機組成,所述有限狀態機的狀態包括初始狀態、行 計算狀態和列計算狀態,有限狀態機可根據外部控制信號和內部數據變化進行狀態切換; 有限狀態機所輸出的控制信號決定了一維DCT模塊的輸入數據來源以及移位寄存器陣列的 移動方向; 所述數據選擇模塊根據控制信號決定輸入進一維DCT模塊的數據,行計算狀態時,控制 信號選擇外部輸入數據進入一維DCT模塊,列計算狀態時,控制信號選擇移位寄存器陣列輸 出端的數據進入一維DCT模塊; 所述一維DCT模塊包含依次連接的加減法器、閾值判斷模塊、流水線寄存器、可變精度 的固定位寬乘法器、加減法器;所述可變精度的固定位寬乘法器有兩種計算模式,分別為高 精度計算模式和低精度計算模式;外部輸入數據在第一級加法和減法運算后輸入進閾值判 斷模塊,所述閾值判斷模塊根據當前工作模式決定閾值大小,輸入的數據只有大于閾值才 可以送入流水線寄存器,在下一個時鐘輸進固定位寬乘法器繼續計算;固定位寬乘法器的 結果再經過加法和減法操作后得到最終的計算結果; 所述移位寄存器陣列由64個12位寄存器組成,每8個為一排,構成8乘8的矩陣陣列;根 據當前工作模式打開需要用到的寄存器并進行移位操作,工作模式的精度越高,一維DCT模 塊計算出的DCT系數就越多,需要移位的寄存器就越多;行計算狀態時,移位寄存器陣列逐 行存儲一維DCT模塊輸出的中間計算結果,信號控制移位寄存器陣列中的數據向下移動直 到所有的中間結果都存儲進移位寄存器陣列;列計算狀態時,移位寄存器陣列將轉置后的 中間計算結果逐列輸出到一維DCT模塊,信號控制移位寄存器陣列中的數據向左移動直到 所有的中間結果都移出了移位寄存器陣列。
【文檔編號】H04N19/625GK106028049SQ201610529240
【公開日】2016年10月12日
【申請日】2016年7月6日
【發明人】賀雅娟, 馬斌, 邢彥, 何進, 甄少偉, 羅萍, 張波
【申請人】電子科技大學