專利名稱:可重構運算裝置、數據壓縮裝置和可重構運算方法
技術領域:
本發明涉及可重構運算裝置、數據壓縮裝置和可重構運算方法。
背景技術:
盡管行程長度壓縮為簡單算法,但由于該算法與圖像數據很好地匹配,因此通常用作圖像數據壓縮方法。行程長度壓縮是用長度(行程長度)信息替換具有相同值的連續段(行程)的方法。對于執行行程長度壓縮的數據壓縮裝置,例如,JP-A-2000-261675公開了一種數
據壓縮裝置。該數據壓縮裝置輸入圖像數據串并且輸出各顏色像素連續的行程長度,并且該數據壓縮裝置包括變化點檢測電路,其接收m位圖像數據串的輸入,并且輸出像素變化的像素變化點;以及行程分解電路,其接收變化點檢測電路的輸出并且將m位圖像數據串最大限度地分解成η個行程。
發明內容
本發明一些方面的優點是提供可重構運算裝置、數據壓縮裝置和可重構運算方法,其中與始終執行并行處理的構造相比,所述方法可以在不增加電路規模的情況下壓縮數據。[1]根據本發明的一方面,可重構運算裝置包括可重構電路、存儲單元和控制單元。可重構電路具有多個小電路,并且基于所記錄的電路信息利用從多個小電路中選出的小電路來重構電路。存儲單元存儲分別與第一壓縮電路和第二壓縮電路對應的第一電路信息和第二電路信息。控制電路根據輸入數據串,通過將第一電路信息或第二電路信息記錄在可重構電路中,來將可重構電路重構成第一壓縮電路或第二壓縮電路。[2]根據本發明的另一個方面,數據壓縮裝置包括根據項[1]所述的可重構運算裝置。第一壓縮電路是對輸入數據串執行行程長度壓縮的電路。第二壓縮電路為以下電路, (i)輸入作為多個并行數據串的輸入數據串,(ii)執行關于多個并行數據串的行程判斷以及(iii)基于行程判斷執行行程長度壓縮。控制電路根據第一壓縮電路或第二壓縮電路的輸入數據的行程長度,將第一電路信息或第二電路信息記錄在可重構電路中。[3]在項[2]所述的數據壓縮裝置中,第一壓縮電路和第二壓縮電路構造成,通過分別向第一通道和第二通道輸入輸入數據串來執行行程長度壓縮,并且控制單元根據輸入數據串的行程長度和可用小電路的空狀態來判斷輸入至第二壓縮電路的第一通道和第二通道的并行數據串的量,并且將與所確定的并行數據串的量對應的第二電路信息記錄在可重構電路中。[4]根據本發明的另一方面,一種用于可重構運算裝置的可重構運算方法,所述可重構運算裝置包括可重構電路,其具有多個小電路,并且其基于所記錄的電路信息利用從多個小電路中選出的小電路來重構電路;以及存儲單元,其存儲分別與第一壓縮電路和第二壓縮電路對應的第一電路信息和第二電路信息,所述運算方法包括根據輸入數據串,通過將第一電路信息或第二電路信息記錄在可重構電路中,來將可重構電路重構成第一壓縮電路或第二壓縮電路。利用項[1]和項[4]所述的構造,與始終執行并行處理的構造相比,可以在不增加電路規模的情況下壓縮數據。禾Ij用項[2]所述的構造,可以簡單地壓縮數據。利用項[3]所述的構造,可以有效地使用小電路。
將基于附圖詳細描述本發明的示例性實施例,其中圖1是示出根據本發明第一實施例的數據壓縮裝置的示意性構造的正視圖;圖2是示出可重構運算裝置的構造實例的框圖;圖3是示出典型電路的構造實例的框圖;圖4是示出高速電路的構造實例的框圖;圖5是示出可重構運算裝置的整個操作實例的流程圖;圖6是示出判斷程序的操作實例的流程圖;圖7A至圖7E示出了壓縮操作的詳細實例,其中圖7A是示出輸入數據實例的視圖,圖7B是示出運算電路的視圖,圖7C是示出輸出數據實例的視圖,圖7D是示意性示出典型電路的視圖,以及圖7E是示意性示出高速電路的視圖;圖8A至圖8C是示出根據本發明第二實施例在重構之后的可重構電路實例的視圖;圖8D至圖8F是示出根據本發明第二實施例在重構之后的可重構電路實例的視圖;圖9是示出本發明第二實施例的操作實例的流程圖;以及圖10是示出本發明第二實施例的操作實例的流程圖。
具體實施例方式圖1是示出根據本發明第一示例性實施例的數據壓縮裝置的構造實例的正視圖;數據壓縮裝置1包括CPU 2,其控制數據壓縮裝置的各個單元;可重構運算裝置 10 ;存儲器4 ;DMAC (直接存儲存取控制器)5 ;以及仲裁器6,其經通過總線3與CPU 2連接。例如,數據壓縮裝置1可應用于在圖像形成裝置中傳送數據的情況,諸如對圖像讀取單元所讀取的數據進行壓縮并將其輸出至圖像處理單元;以及在裝置與裝置之間壓縮并傳送數據的情況,諸如在PC(個人計算機)與如打印機和復印機等具有多種功能的多功能裝置之間,或者在PC與如傳真機等圖像形成裝置之間。在該情況下,數據壓縮裝置1的應用實例不限于上述情形。存儲器4存儲壓縮之前的數據和通過根據本實施例的方法對壓縮之前的數據進行壓縮而獲得的數據。DMAC 5直接控制在存儲器4與可重構運算裝置10之間的DMA數據傳送,且不經過 CPU 2的處理。
仲裁器6用作在DMAC 5等執行數據傳送時進行總線3的使用權判斷的判斷單元。圖2是示出可重構運算裝置10的構造實例的框圖。可重構運算裝置10包括控制單元11,其基于判斷程序110和重構控制程序111來控制可重構運算裝置10的各個單元;可重構電路12,其能夠重構電路;以及構造數據存儲單元13,其作用存儲電路信息的存儲單元。可重構電路12也稱DRP (動態可重構處理器)。可重構電路12包括諸如ALU (算術邏輯單元)、RAM(隨機存取存儲器)等多個小電路,并且能夠基于所記錄的電路信息利用從多個小電路中選出的小電路來重構電路。構造數據存儲單元13存儲第一構造數據130和第二構造數據131,第一構造數據用于將可重構電路12重構成典型電路,第二構造數據用于將可重構電路12重構成高速電路。在該情況下,構造數據存儲單元13還可以存儲將可重構電路12重構成除典型電路和高速電路以外的其它電路的構造數據。第一重構數據130是第一電路信息的實例,而第二重構數據131是第二電路信息的實例。另外,典型電路是第一壓縮電路的實例,而高速電路是第二壓縮電路的實例。控制單元11基于判斷程序110和重構控制程序111來執行處理。控制單元11通過判斷程序110來判斷由可重構電路12獲得的狀態信息,并且向重構控制程序111輸出作為判斷結果的判斷信息。此外,控制單元11構造成,基于由判斷程序110輸出的判斷信息并通過重構控制程序111對可重構電路12執行重構控制,并且對構造數據存儲單元13執行構造控制。判斷程序110構造成,監視來自可重構電路12的狀態信息,并且如果包含于狀態信息的行程長度等于或大于閾值(例如,4),則判斷程序110選擇高速電路,而如果行程長度小于閾值,則判斷程序110選擇典型電路。判斷程序110將與所選電路有關的信息通知重構控制程序111。如果判斷程序110通知選擇了典型電路,則重構控制程序111通過將構造數據存儲單元13中的第一構造數據載入可重構電路12來將可重構電路12重構成典型電路12a。 另外,如果判斷程序110通知選擇了高速電路,則重構控制程序111通過將構造數據存儲單元13中的第二構造數據131載入可重構電路12來將可重構電路12重構成高速電路12b。圖3是示出典型電路的構造實例的框圖。如圖3中所示,通過將第一構造數據130 載入可重構電路12來將可重構電路12重構成典型電路12a。典型電路12a是執行輸入數據串的行程長度壓縮的電路,并且包括判斷單元 120a、行程長度計數器121a、行程長度控制單元122a、數據控制單元123、FIFO單元IMa、 合并單元125和重構中斷判斷單元126。判斷單元120a,例如,接收從存儲器4通過DMAC 5傳送的輸入數據。另外,判斷單元120a判斷是否存在與輸入數據具有相同值的數據的連續部分(行程)。輸入數據可以為,例如,具有與黑色和白色對應的兩個值或與多種顏色(例如,紅、綠和藍)對應的多個值的圖像數據。在該情況下,輸入數據不限于圖像數據。行程長度計數器121a對判斷單元120a判斷的行程計數,并且輸出行程的長度 (行程長度Ln)。行程長度控制單元12 將從行程長度計數器121a輸出的行程長度按像素輸出至FIFO單元Ma。另外,行程長度控制單元12 產生包含電路信息的狀態信息,并且向判斷程序110輸出狀態信息,所述電路信息指示出行程長度和當前可重構電路12是典型電路1 還是高速電路12b。數據控制單元123按像素向FIFO單元IM輸出輸入數據。FIFO單元12 對來自數據控制單元123的數據和來自行程長度控制單元12 的行程長度進行緩沖,并且根據合并單元125進行處理所需的時間長度使數據和行程長度延遲,以便向合并單元125輸出延遲后的數據和行程長度。合并單元125通過合并行程和數據來生成輸出數據。例如,輸出數據通過DMAC 5 傳送至存儲器4。如果由CPU 2等產生結束中斷,則重構中斷判斷單元126向控制單元11輸出結束中斷信號Si。圖4是示出高速電路的構造實例的框圖。如圖4中所示,通過將第二構造數據131 載入可重構電路12來將可重構電路12重構成高速電路12b。高速電路12b是輸入作為多個(在本實施例中為4個)并行數據串的輸入數據串, 并且通過對多個0個)數據串執行行程判斷來執行行程長度壓縮的電路。高速電路12b 包括判斷單元120b、行程長度計數器121b、行程長度控制單元122b、、FIFO單元124b和重構中斷判斷單元126。在不使用典型電路1 所使用的數據控制單元123和合并單元125 的情況下來構造高速電路12b。判斷單元120b按像素輸入多個(在本實施例中為4個)并行數據串,并且判斷是否存在與輸入數據具有相同值的數據的連續部分(行程)。由判斷單元120b判斷的并行數據串的量對應于判斷程序110所使用的閾值(4)。行程長度計數器121b對判斷單元120b并行判斷的行程計數,并且輸出作為計數和的行程長度。行程長度控制單元122b構造成,當途中行程不連續(例如,行程長度小于4)并發生重構時,僅在不連續之前的連續行程中保持數據。行程長度計數器121b合并并且輸出輸出行程長度和保持數據。 FIFO單元124b輸出通過將行程長度和由行程長度控制單元122b輸出的數據合并所獲得的數據,作為連續輸出數據。圖5是示出可重構運算裝置10的整個操作實例的流程圖。重構控制程序111將構造數據存儲單元13中的第一構造數據130載入可重構電路12 (步驟Si)。在載入第一構造數據時,將可重構電路12重構成典型電路12a。重構控制程序111啟動可重構電路12,即典型電路12a的處理(步驟S2)。重構中斷判斷單元1 判斷是否存在結束中斷(步驟S3),并且如果判斷出存在結束中斷(步驟S3中為是),則重構中斷判斷單元126向控制單元11輸出結束中斷信號Si。重構控制程序111基于來自重構中斷判斷單元126的結束中斷信號Si來停止由可重構電路12執行的處理(步驟S4)。在步驟S3中,如果重構中斷判斷單元1 判斷出不存在結束中斷(步驟S3中為否),則由于未從重構中斷判斷單元126輸出結束中斷信號Si,判斷程序110基于來自可重構電路12的狀態信息來判斷是否執行重構(步驟S6)。如果判斷出執行重構(步驟S6中為是),則判斷程序110將選擇高速電路的信息通知重構控制程序111 (步驟S7)。重構控制程序111停止由可重構電路12執行的處理(步驟S8),并且將構造數據存儲單元13中的選擇高速電路的第二構造數據131載入可重構電路12 (步驟S9)。將可重構電路12重構成高速電路12b。重構控制程序111重啟由可重構電路12執行的處理(步驟 S10)。圖6是示出判斷程序110的操作實例的流程圖。該附圖示出了圖5中的步驟S5、 步驟S6和步驟S7的細節。判斷程序110從可重構電路12獲取狀態信息(步驟S21),并且根據狀態信息判斷當前電路為典型電路12a還是高速電路12b (步驟S22)。如果判斷程序110判斷出當前電路為典型電路12a(步驟S22),則判斷程序110判斷行程長度Ln是否等于或大于閾值Th (例如,4)(步驟S23)。如果行程長度Ln等于或大于閾值Th (步驟S23中為是),則判斷程序 110選擇高速電路12b,并且通知重構控制程序111已經選擇高速電路12b (步驟S24)。如果行程長度Ln小于閾值Th (步驟S23中為否),則判斷程序110選擇不重構(步驟S25)。在步驟S22中,如果判定當前電路為高速電路12b (步驟S22),則判斷程序110判斷行程長度Ln是否為最大行程長度,該最大行程長度可以用一般的行程長度壓縮方法來壓縮(步驟S26)。如果行程長度Ln不是最大行程長度(步驟S^中為否),則判斷程序110 判斷行程是否連續(步驟S27),并且如果行程不連續(步驟S27中為否),則判斷程序110 判斷行程長度Ln是否等于或大于閾值Th(步驟S28)。如果行程長度Ln小于閾值Th(步驟S28中為否),則判斷程序110選擇典型電路12a,并且通知構造控制程序111已經選擇典型電路12a (步驟S29)。在步驟S26中行程長度變為最大行程長度(步驟S26中為是)的情況下,在步驟 S27中行程連續(步驟S27為是)的情況下,或者在步驟S28中行程長度Ln等于或大于閾值Th (步驟S28中為是)的情況下,判斷程序選擇不重構(步驟S30)。圖7A至圖7E示出了壓縮操作的詳細實例。具體地說,圖7A是示出輸入數據實例的視圖,圖7B是示出壓縮輸入數據的電路的視圖,圖7C是示出輸出數據實例的視圖,圖7D 是示意性示出典型電路的視圖,以及圖7E是示意性示出高速電路的視圖。如圖7A所示,由于輸入數據片段“AABCC”中的行程長度小于閾值(4),因此將可重構電路12重構成典型電路12a以處理輸入數據。如圖7D所示,典型電路1 通過判斷各個像素(px)的行程是否存在來壓縮輸入數據,并且輸出輸出數據“2AB2C”。在下一組輸入數據“DDDDD……DDDDD”中,行程長度等于或大于閾值0),進而將可重構電路12重構成高速電路12b以處理輸入數據。如圖7E中所示,高速電路12b對輸入數據執行并行處理,并且輸出輸出數據“256D 256D 120D”。在下一組輸入數據“A”中,行程長度小于閾值,進而將可重構電路12重構成典型電路12a以處理輸入數據。典型電路12a將輸入數據“A”輸出為輸出數據“A”。在下一組數據“BBBBB……BBBBB”中,行程長度等于或大于閾值0),進而將可重構電路12重構成高速電路12b以處理輸入數據。如圖7E所示,高速電路12b對輸入數據執行并行處理,并且輸出輸出數據“256B 256B 200B”。在下一組輸入數據“CCXD”中,行程長度小于閾值,進而將可重構電路12重構成典型電路12a以處理輸入數據。如圖7D所示,典型電路1 壓縮輸入數據“CCXD”,并且輸出輸出數據“3CD”。圖8A至圖8F是示意性示出根據本發明第二實施例的在重構之后的可重構電路實例的視圖。在圖8A至圖8F中,省略了行程長度計數器、數據控制單元、行程長度控制單元和構造中斷判斷單元。在第一實施例中,示例出了輸入數據經由通道l(chl)輸入的例子,而在第二實施例中,示例出了輸入數據經由通道l(chl)和通道2(cM)輸入的例子。如下文將描述的圖 8A至圖8F所示,構造數據存儲單元13存儲用于重構電路的構造數據。如圖8A所示,在該實施例中,典型電路1 包括判斷單元120 ,其作為通道1處理輸入數據&,;FIFO單元1 ;合并單元125 ;判斷單元120 ,其作為通道2處理輸入數據X2 ;FIFO單元124a2 ;以及合并單元125 。如圖8B所示,4X1并行高速電路Ub1包括判斷單元UOb1,其作為通道1處理4 串輸入數據& ;FIFO單元IMb1 ;判斷單元120b2,其作為通道2處理一串輸入數據\ ;FIFO 單元124b2 ;以及合并單元125b2。如圖8C所示,8X 1并行高速電路12 包括判斷單元UOb1,其作為通道1處理8 串輸入數據& ;FIFO單元IMb1 ;判斷單元120b2,其作為通道2處理一串輸入數據\ ;FIFO 單元124b2 ;以及合并單元125b2。如圖8D所示,1 X4并行高速電路Ub1包括判斷單元UOb1,其作為通道1處理一串輸入數據& ;FIFO單元IMb1 ;合并單元125bi ;判斷單元120b2,其作為通道2處理4串輸入數據\ ;以及FIFO單元124b2。如圖8E所示,4X4并行高速電路Ub1包括判斷單元UOb1,其作為通道1處理4 串輸入數據;FIFO單元IMb1 ;判斷單元120b2,其作為通道2處理4串輸入數據\。如圖8F所示,1X8并行高速電路12 包括判斷單元UOb1,其作為通道1處理一串輸入數據& ;FIFO單元IMb1 ;合并單元125bi ;判斷單元120b2,其作為通道2處理8串輸入數據\ ;以及FIFO單元124b2。圖9和圖10是示出本發明第二實施例的操作實例的流程圖。通過獲取通道(ch) 1的狀態信息來執行關于chl的判斷處理(步驟S41),并且通過獲取通道(ch) 2的狀態信息來執行關于ch2的判斷處理(步驟S43)。判斷當前構造,并且判斷并行數據串的量是否等于當前狀態(步驟S45)。如果并行數據串的量等于當前狀態(步驟S45中為是),則選擇不重構(步驟S46)。如果并行數據串的量不同于當前狀態(步驟S45中為否),則通知重構控制程序111判斷的構造(步驟 S47)。在步驟S42和步驟S44中,執行如圖10所示的處理。下面,將參考圖10描述判斷處理。判斷途中行程是否不連續(步驟S51),并且如果途中行程并非不連續(步驟S51 中為否),則確定通道X中并行數據串的量。如果通道χ中并行數據串的量為“1”,則判斷行程長度Ln是否等于或大于閾值 TW4),并且判斷原數據串中是否存在空部分(步驟S53)。如果行程長度Ln等于或大于閾值Th,并且原數據串中存在空部分(步驟S53中為是),則將并行數據串的量設定為“4”(步驟S54),而如果行程長度Ln小于閾值Th或如果原數據串中不存在空部分,即使行程長度Ln等于或大于閾值Th (步驟S53中為否),則也將并行數據的量設定為“1”(步驟S55)。如果通道χ中并行數據串的量為“4”,則判斷行程長度Ln是否等于或大于閾值 ThX2,并且判斷原數據串中是否存在空部分(步驟S56)。如果行程長度Ln等于或大于閾值ThX 2,并且原數據串中存在空部分(步驟S56中為是),則將并行數據串的量設定為 “8”(步驟S57),而如果行程長度Ln小于閾值ThX 2或如果原數據串中不存在空部分,即使行程長度Ln等于或大于閾值ThX2(步驟S56中為否),則也將并行數據的量設定為“1”(步驟 S58)。如果通道χ中并行數據串的量為“8”,則判斷行程長度Ln是否等于或大于閾值 ThX2,并且判斷原數據串中是否存在空部分(步驟S59)。如果行程長度Ln等于或大于閾值ThX 2,并且原數據串中存在空部分(步驟S59中為是),則將并行數據串的量設定為 “8”(步驟S60),而如果行程長度Ln小于閾值ThX 2或如果原數據串中不存在空部分,即使行程長度Ln等于或大于閾值ThX2(步驟S59中為否),則也將并行數據的量設定為“1”(步驟 S61)。在第二實施例中,盡管通道量設定為“2”,但也可以設定為“3”或更高。本發明不限于上述實施例,并且在不脫離本發明范圍的情況下可以對本發明進行各種修改。例如,用于上述實施例的程序可以存儲并設置在諸如CD-ROM等記錄介質中。另外,可以用諸如ASIC等硬件來實現根據上述實施例的各個裝置的一部分或所有部分。此外,可以對上述實施例描述的步驟進行變換、刪除和添加等。出于示例和說明的目的提供了本發明的示例性實施例的上述說明。其意圖不在于窮舉或將本發明限制為所公開的確切形式。顯然,對于本領域的技術人員而言許多修改和變型是顯而易見的。選擇和說明這些實施例是為了最佳地解釋本發明的原理及其實際應用,從而使得本領域的其他人員能夠理解各種實施例的發明和適合于特定預期應用的各種修改。本發明的目的在于用所附權利要求書及其等同內容來限定本發明的范圍。
權利要求
1.一種可重構運算裝置,包括可重構電路,其具有多個小電路,并且其基于所記錄的電路信息利用從多個小電路中選出的小電路來重構電路;存儲單元,其存儲分別與第一壓縮電路和第二壓縮電路對應的第一電路信息和第二電路信息;以及控制單元,其根據輸入數據串,通過將所述第一電路信息或第二電路信息記錄在所述可重構電路中,來將所述可重構電路重構成所述第一壓縮電路或第二壓縮電路。
2.一種數據壓縮裝置,包括根據權利要求1所述的可重構運算裝置,其中,所述第一壓縮電路是對輸入數據串執行行程長度壓縮的電路,所述第二壓縮電路為以下電路,(i)輸入作為多個并行數據串的輸入數據串,(ii)執行關于所述多個并行數據串的行程判斷,以及(iii)基于所述行程判斷執行行程長度壓縮,并且所述單元電路根據所述第一壓縮電路或第二壓縮電路的輸入數據的行程長度,將所述第一電路信息或第二電路信息記錄在所述可重構電路中。
3.根據權利要求2所述的數據壓縮裝置,其中,所述第一壓縮電路和第二壓縮電路構造成,通過分別向所述第一通道和第二通道輸入所述輸入數據串來執行所述行程長度壓縮,并且所述控制單元根據所述輸入數據串的行程長度和可用小電路的空狀態來判斷輸入至所述第二壓縮電路的第一通道和第二通道的并行數據串的量,并且將與所確定的并行數據串的量對應的第二電路信息記錄在所述可重構電路中。
4.一種用于可重構運算裝置的可重構運算方法,所述可重構運算裝置包括可重構電路,其具有多個小電路,并且其基于所記錄的電路信息利用從多個小電路中選出的小電路來重構電路;以及存儲單元,其存儲分別與第一壓縮電路和第二壓縮電路對應的第一電路信息和第二電路信息,所述運算方法包括根據輸入數據串,通過將所述第一電路信息或第二電路信息記錄在所述可重構電路中,來將所述可重構電路重構成所述第一壓縮電路或第二壓縮電路。
全文摘要
本發明公開一種可重構運送裝置、數據壓縮裝置和可重構運算方法可重構運算裝置包括可重構電路、存儲單元和控制單元。可重構電路具有多個小電路,并且基于所記錄的電路信息利用從多個小電路中選出的小電路來重構電路。存儲單元存儲分別與第一壓縮電路和第二壓縮電路對應的第一電路信息和第二電路信息。控制電路根據輸入數據串,通過將第一電路信息或第二電路信息記錄在可重構電路中,來將可重構電路重構成第一壓縮電路或第二壓縮電路。
文檔編號H04N1/41GK102387289SQ20111005629
公開日2012年3月21日 申請日期2011年3月9日 優先權日2010年8月25日
發明者松本大輔 申請人:富士施樂株式會社