專利名稱:一種正交變換處理器的制作方法
本發(fā)明與信號(hào)處理器有關(guān),更確切地說,與高速集成電路信號(hào)處理器有關(guān)。
過去,對實(shí)時(shí)信號(hào)處理問題要求有效解時(shí),廣泛采用專用計(jì)算機(jī)來實(shí)現(xiàn)運(yùn)算緊張的算法。隨著通用計(jì)算機(jī)價(jià)格的下降和速度的提高,對專門設(shè)計(jì)的計(jì)算機(jī)的這種需求也逐漸降低了,當(dāng)然始終仍有一些重大問題要處理。用作外圍協(xié)同處理器的常規(guī)集成電路處理器能夠滿足這種需要。如果設(shè)計(jì)和使用合適,這些常規(guī)的集成電路處理器可以大大提高用于許多運(yùn)算緊張的程序的通用計(jì)算機(jī)系統(tǒng)的性能。
常規(guī)的實(shí)時(shí)信號(hào)處理芯片的例子有用于圖象編碼實(shí)行正和逆的離散余弦變換(DCT)的各種實(shí)施例。例如像M.Vetterli和A.Ligtenberg在“一種離散付立葉-余弦變換芯片”(“A Discrete Fourier-Cosine Transform Chip”IEEE Journal on Selected Areas in Communications,Vol SAC-4,No.1,January 1986,pp.49-61)中所描述的那種芯片。
DCT是一種正交變換,對圖象編碼非常有用,因?yàn)閳D象含有大量的冗余信息,因此可以對圖象進(jìn)行分塊處理。這種分塊的二維DCT變換通常保存了大部份低頻分量,而忽略的這些高頻(低幅度)分量對編了碼的圖象的質(zhì)量并沒有多少損害。雖然圖象編碼采用DCT有利于電位傳輸和存貯,但運(yùn)算的負(fù)擔(dān)是相當(dāng)重的。工作在視頻采樣率需要每秒鐘處理約640萬個(gè)樣點(diǎn)(假設(shè)按照美國國家電視系統(tǒng)委員會(huì)要求,每秒進(jìn)行15734次行掃描,每行約有400個(gè)樣點(diǎn))。一個(gè)8點(diǎn)DCT至少需要13次乘法和29次加法。一個(gè)二維變換能夠用先對行進(jìn)行一維變換,再對列進(jìn)行一維變換來計(jì)算。因此,對于實(shí)時(shí)圖象處理,一個(gè)DCT集成電路要求每秒完成160萬個(gè)8點(diǎn)變換,這常涉到要做大約200萬次乘法和470萬次加法。
常規(guī)的實(shí)時(shí)正交變換信號(hào)處理器的另一種用途是用于解最小二乘問題的系統(tǒng)。這類問題充斥在信號(hào)處理和線性規(guī)劃之中。例如,應(yīng)用卡馬克(Karmarkar)算法的一個(gè)線性規(guī)劃問題,最繁重的運(yùn)算實(shí)際上是解每次迭代時(shí)的最小二乘問題,用一個(gè)由正交變換處理器的陣列構(gòu)成的協(xié)同處理器能解決這個(gè)問題(每一個(gè)正交變換器由四個(gè)乘法器,一個(gè)加法器和一個(gè)減法器組成),應(yīng)用這種協(xié)同處理器可以把運(yùn)行卡馬克軟件包的時(shí)間降低一個(gè)數(shù)量級(jí)。
為了達(dá)到諸如以上所提到的與DCT圖象編碼有關(guān)的許多應(yīng)用所要求的高性能,必須回答二個(gè)問題。第一個(gè)問題為,涉及這些操作的基本構(gòu)成方框是什么,第二個(gè)問題為,這些構(gòu)成方框的有效VLSI(超大規(guī)模集成)結(jié)構(gòu)是什么。這二個(gè)問題的回答是密切相關(guān)的,因?yàn)椴恢涝鯓雍线m地劃分算法就不能得到一個(gè)有效的VLSI實(shí)現(xiàn),而不知道如何能實(shí)現(xiàn)一個(gè)有效的VLSI結(jié)構(gòu)也就不能得到算法的最佳劃分。
在1986年4月9日頒發(fā)給米雅格奇(Miyaguchi)等人的美國專利4,510,578中提到了這些困難,在該專利中,介紹用來對輸入信號(hào)進(jìn)行正交變換的電路。該電路有一個(gè)由三個(gè)存儲(chǔ)器器構(gòu)成的第一級(jí),這三個(gè)存儲(chǔ)器并行工作,并且饋送給8個(gè)常系數(shù)乘法器。這些乘法器的輸出信號(hào)加到三個(gè)加法器上,其中二個(gè)加法器為三輸入加法器。第一級(jí)的三個(gè)輸出加到三個(gè)第二復(fù)數(shù)乘法器級(jí)上,每一個(gè)復(fù)數(shù)乘法器級(jí)有二個(gè)存儲(chǔ)器,四個(gè)乘法器和二個(gè)加法器。在米雅格奇的電路中沒有竭力采用運(yùn)行非??斓脑O(shè)計(jì),而似乎強(qiáng)調(diào)用常規(guī)的模塊(加法器、乘法器)組合起來,以最直接的方式達(dá)到所希望的變換。
相反,為了制造出一個(gè)良好的集成電路,必需要考慮的不僅是所需的乘法器和加法器的數(shù)目,還要考慮這些元件的大小和這些元件引起是時(shí)延,例如在有些器件中,加后再乘的時(shí)延要比乘后再加大得多。
本發(fā)明的目的是提供一種特別適用于做成集成電路的正交變換處理器電路。本發(fā)明的另一個(gè)目的是提供一種正交變換處理器,這種正交變換器的結(jié)構(gòu)可以最大地發(fā)揮集成電路的速度潛力。
一個(gè)由一個(gè)旋轉(zhuǎn)運(yùn)算電路,一個(gè)通信電路和一個(gè)內(nèi)部或外部查表電路所組成的正交變換處理器用來實(shí)現(xiàn)上述及其它各種目的,旋轉(zhuǎn)運(yùn)算電路完成旋轉(zhuǎn)所要求的復(fù)數(shù)乘法運(yùn)算,必需的系數(shù)由查表電路提供。通信電路的任務(wù)是接收輸入信號(hào),把每次迭代所需信號(hào)加到旋轉(zhuǎn)運(yùn)算電路并送出作為結(jié)果的輸出信號(hào)。旋轉(zhuǎn)運(yùn)算器是用一個(gè)立體鄰接的乘法器和加法器模塊所構(gòu)成的矩陣來實(shí)現(xiàn)的,其中每一模塊包括在旋轉(zhuǎn)運(yùn)算器內(nèi)必需的每一個(gè)乘法器(有時(shí)或?yàn)榧臃ㄆ?的一部份,查表電路是一個(gè)無計(jì)數(shù)器的只讀存儲(chǔ)器,而通信電路是一組雙輸入/雙輸出連接的寄存器。
圖1為根據(jù)本發(fā)明原理構(gòu)成的正交變換處理器的原理方框圖。
圖2說明旋轉(zhuǎn)運(yùn)算器300的一個(gè)實(shí)施例。
圖3畫出圖2旋轉(zhuǎn)運(yùn)算器中一個(gè)典型元件320的方框圖。
圖4描述用圖1系統(tǒng)完成離散余弦變換必需的信號(hào)流程和旋轉(zhuǎn)運(yùn)算順序。
圖5描述圖1所示通信電路100中存儲(chǔ)器的一般結(jié)構(gòu)。
圖6描述用圖1系統(tǒng)完成離散余弦變換的另一種信號(hào)流程和旋轉(zhuǎn)運(yùn)算順序。
圖7描述圖1所示通信電路的一個(gè)更為詳細(xì)的方框圖。
圖8畫出圖5中存儲(chǔ)單元之間的信息交換方式。
圖9介紹實(shí)現(xiàn)圖7中規(guī)格化單元的一個(gè)實(shí)施例。
圖10例示一個(gè)快速無計(jì)數(shù)器查表電路的結(jié)構(gòu)。
圖11描繪具有二個(gè)存儲(chǔ)器元件56的圖1中查表電路的一個(gè)增添結(jié)構(gòu)。
圖12介紹為完成一個(gè)二維正交變換的框圖。
圖13為圖12中跨接存儲(chǔ)器502的一個(gè)實(shí)施例。
圖14為圖13跨接存儲(chǔ)器的存儲(chǔ)單元503的結(jié)構(gòu)。
圖1為本發(fā)明的正交變換處理器的原理方框圖。其中,輸入信號(hào)加在與通信電路100相連的引線10上,而輸出信號(hào)由通信電路100在引線20上送出。輸出電路100受引線40的“就緒”控制信號(hào)和查表電路200給出的控制信號(hào)控制。通信電路100通過引線30與旋轉(zhuǎn)運(yùn)算器300互相作用,把信號(hào)送到旋轉(zhuǎn)運(yùn)算器300,或從旋轉(zhuǎn)運(yùn)算器300取出信號(hào)。查表電路200受相同的“就緒”信號(hào)控制和受任選的“逆”控制信號(hào)控制。除了向通信電路100提供控制信號(hào)以外,查表電路200還向旋轉(zhuǎn)運(yùn)算器300提供系數(shù)信號(hào)。圖1中各元件的功能和工作情況詳細(xì)說明如下。旋轉(zhuǎn)運(yùn)算器正交變換計(jì)算本原的最小公分母是一個(gè)復(fù)數(shù)乘法運(yùn)算(或旋轉(zhuǎn)運(yùn)算)。描述旋轉(zhuǎn)運(yùn)算器的方程為
其中Xi和Yi分別為輸入和輸出,C1和C2分別為諸如Cosθ和Sinθ那樣的系數(shù)。直接計(jì)算等式(1)需要4次乘法運(yùn)算和2次加法運(yùn)算。方程(1)經(jīng)變換后,可以得到如下表達(dá)式
其中A=C1-C2,B=C2,C=C1+C2這個(gè)變形的表達(dá)式需要3次乘法運(yùn)算和3次加法運(yùn)算,初看,它似乎提供了一個(gè)更為緊湊的實(shí)現(xiàn)方式。然而,當(dāng)認(rèn)真地比較一下采用并行乘法器的這二種方案的超大規(guī)模集成的合適程度時(shí)就可以看出,總的來說,方程(1)形成一個(gè)較佳的實(shí)現(xiàn)方式。首先,方程(2)實(shí)現(xiàn)方程的總延遲時(shí)間要長于方程(1)的實(shí)現(xiàn)方式,因?yàn)榧臃ㄟ\(yùn)算(X0+X1)前于乘法運(yùn)算。其次,方程(1)的實(shí)現(xiàn)方式只需要二個(gè)系數(shù),而方程(2)的實(shí)現(xiàn)方式則需要三個(gè)系數(shù)。第三,方程(1)的實(shí)現(xiàn)方式因?yàn)檫m于構(gòu)成旋轉(zhuǎn)運(yùn)算器的各元件之間的比較有規(guī)律的通信結(jié)構(gòu),所以消耗較少的硅“不動(dòng)產(chǎn)”。
本發(fā)明實(shí)現(xiàn)旋轉(zhuǎn)運(yùn)算電路300中方程(1)旋轉(zhuǎn)運(yùn)算器的這種方式是按照一種乘法運(yùn)算算法,這種算法類似于Baugh-Wooley所提出的那種算法,采用把在乘法運(yùn)算過程中的不同項(xiàng)進(jìn)行整理和合
的方法,說明如下。
眾所周知,用二進(jìn)制補(bǔ)碼形式表示的一個(gè)具有n-1位的負(fù)數(shù)可以表示成下面的差
采用這種表示方法,乘法運(yùn)算的積為
展開成
Σj=0N-22jCj-2N-1CN-1Σi=0N-22ixi(5)]]>下面的陣列表示組成式(5)各項(xiàng)所產(chǎn)生的部份乘積項(xiàng)(當(dāng)N=3時(shí))前三行相應(yīng)于式(5)的第一項(xiàng),第四行相應(yīng)于第二項(xiàng),第五和第七行相應(yīng)于表示成二進(jìn)制補(bǔ)碼形式的第三項(xiàng),而第六和第八行相應(yīng)于式(5)的最后一項(xiàng)。
C3C2C1C0X3X2X1X0X1C2X1C1X1C00X2C2X2C1X2C00 00 X3C30 0 0 0 0 01 1
X3C2X3C1X3C01 1 11 1
X2C2X1C3X0C31 1 10 0 0 0 0 0 0 10 0 0 0 0 0 0 1以上陣列經(jīng)整理后得到部份乘積項(xiàng)的陣列如下。
X0C3X0C2X0C1X0C0X1C3X1C2X1C1X0C0X2C3X2C2X2C1X2C11 X3C3X3C2X3C1X3C01由上可見,所需的乘積可以僅用二位乘積項(xiàng)求和來獲得,需要的基本元件是帶有全加器和半加器的與門和與非門,有些全加器和半加器的進(jìn)位輸入置為“1”,而大多數(shù)置為“0”。具體一些說,精細(xì)地研究上面所表示的第二個(gè)乘法陣列可見,第一行僅需要三個(gè)與門(X0C0,X0C1,X0C2)及一個(gè)與非門(
X0C3)。第二行需要三個(gè)與門和進(jìn)位輸入置為“0”的半加器(X1C0,X1C1,X1C2)以及一個(gè)與非門和進(jìn)位輸入置為“1”的半加器,第三行需要三個(gè)與門和全加器(X2C0,X2C1,X2C2)以及一個(gè)與非門和一個(gè)全加器(
X2C2)。最后一行需要三個(gè)與非門和全加器(
X3C0,
X3C1,
X3C2)以及一個(gè)與門和一個(gè)全加器(X3C3)。這個(gè)門與加法器的模式很容易以規(guī)則形式擴(kuò)展到乘數(shù)和被乘數(shù)都高于四位的情況。
圖2所示為按照本發(fā)明設(shè)計(jì)的一個(gè)旋轉(zhuǎn)運(yùn)算器的結(jié)構(gòu),它包括一個(gè)乘法運(yùn)算部件310以及一個(gè)加法運(yùn)算和減法運(yùn)算部件330。圖2的旋轉(zhuǎn)運(yùn)算器的一個(gè)重要特點(diǎn)是所有元件都是以交錯(cuò)形式結(jié)構(gòu)的,這意味著部件310中的四個(gè)乘法器的相應(yīng)功能都做成一個(gè)單元,物理上互相近似,這種交錯(cuò)具有許多優(yōu)點(diǎn)首先是所有信號(hào)引線(包括輸入引線)都很短,這提高了速度性能;第二個(gè)優(yōu)點(diǎn)是所有相應(yīng)的引線的長度基本相同,這把時(shí)間延遲的差異減小到最低程度,從而提高了速度性能;第三個(gè)優(yōu)點(diǎn)是由于結(jié)構(gòu)完全是有規(guī)律的,因此可以有效地利用“硅”的“不動(dòng)產(chǎn)”。
在圖2中乘法運(yùn)算部件310由許多四分之一乘法器(QM)模塊320組成。每個(gè)模塊320都有二個(gè)信號(hào)輸入和二個(gè)系數(shù)輸入,還有和及進(jìn)位輸入以處理來自另一方框320的信息。模塊320排列成一個(gè)二維矩陣,每一“行”和“列”上的元320與較高序號(hào)的“行”上的二個(gè)元相連一個(gè)在相同的“列”上,而另一個(gè)在序號(hào)較高的列上。也就是說,一個(gè)在i“行”和j“列”上的元320(QM)i,j與(QM)i+1,j和(QM)i+1,j+1相連。部件310的結(jié)構(gòu)基本上是矩形的,相應(yīng)于乘法運(yùn)算陣列的移位變形,如下X0C3X0C2X0C1X0C0X1C3X1C2X1C1X1C0X2C3X2C2X2C1X2C0X3C3X3C2X3C1X3C0由上乘法運(yùn)算過程的分析可見,模塊320并不是在所有方面都是相同的,每一模塊都負(fù)責(zé)對三個(gè)進(jìn)入位(二位在某些退化狀態(tài))進(jìn)行運(yùn)算,形成和及進(jìn)位輸出位,而對乘積有所貢獻(xiàn)。就這個(gè)意義上所有的模塊320都是相同的。模塊320的不同在于有些需要與門,而另一些需要與非門,有些需要全加器,而另一些需要半加器,正如前面所描述的那樣。并且,雖然在有些應(yīng)用中所有的QM元件都不計(jì)時(shí)或不寄存(即非流水線的)在另外一些應(yīng)用中有些或全部模塊310都是寄存的以提供所希望的流水線程度。
圖3所示為由一個(gè)全加器和一個(gè)寄存器所組成的一個(gè)QM元件。這是一個(gè)通用的實(shí)施例,因?yàn)橛幸粋€(gè)半加器和沒有寄存器的QM元件實(shí)質(zhì)上就是圖3所示的QM元件的一個(gè)摘取變形,圖3中,元件400是部件310中某一行最后一列的QM元件320。元件390是在比元件400高一行同一列的一個(gè)QM元件,元件380是在比元件400高一行比元件400所在列低一個(gè)算術(shù)有效位的列上的一個(gè)QM元件,而元件410是在比元件400低的行上的一個(gè)QM元件。
在元件400中有全加器401-404,這些全加器響應(yīng)乘數(shù)位Ci和Cj,被乘數(shù)字Xm和Xn的相同被乘數(shù)位(如第三位),從QM元件380來的和數(shù)位,以及從QM元件390來的進(jìn)數(shù)位。更具體一些說,加法器401響應(yīng)從元件380和390輸入的和數(shù)和進(jìn)位以及Ci和Xm的一個(gè)選定邏輯組合;加法器402響應(yīng)從元件380和390輸入的和數(shù)和進(jìn)位以及Cj和Xm的相同邏輯組合;加法器403響應(yīng)從元件380和390輸入的和數(shù)和進(jìn)位以及Ci和Xn的相同邏輯組合,最后,加法器401響應(yīng)從元件380和390輸入的和數(shù)和進(jìn)位以及Cj和Xn的相同邏輯組合。每一個(gè)全加器(401-404)都產(chǎn)生由一個(gè)和數(shù)輸出信號(hào)和一個(gè)進(jìn)位輸出信號(hào)構(gòu)成的一對信號(hào)。在圖3所示的這個(gè)具體電路中,每對這樣的信號(hào)都加到一個(gè)寄存器上,該寄存器受時(shí)鐘信號(hào)C控制。這些寄存器(409-413)的定時(shí)輸出信號(hào)形成QM元件400的輸出信號(hào)。進(jìn)位信號(hào)加到QM元件410,而和數(shù)信號(hào)則加到元件410所在行中高一個(gè)有效位的QM元件。上面所提到的Ci和Cj與Xm和Xn的邏輯組合,由元件405-408完成,或是與門,或是與非門,這由元件390所在的行和列所決定。
圖2中部件330由完成旋轉(zhuǎn)運(yùn)算所必需的加法器和減法器的網(wǎng)絡(luò)組成,處在陣列320的最后一行(末行)和最小有效位列(最右面的一列)的每一個(gè)QM元件送出四個(gè)和數(shù)位,這些位必須適當(dāng)?shù)剡M(jìn)行加和減。因此,部件330中的每一個(gè)加法/減法元件均由一個(gè)二位加法器和一個(gè)二位減法器組成。按常規(guī)設(shè)計(jì)技術(shù),簡單地將所需減去的輸入求反,再在陣列中第一個(gè)加法器的輸入位置加“1”就完成了減法器。換句話說,部件330可以簡單地用二個(gè)行波加法器來構(gòu)成。
通信電路圖1的通信電路用來把數(shù)據(jù)傳遞到旋轉(zhuǎn)運(yùn)算器和把數(shù)據(jù)從旋轉(zhuǎn)運(yùn)算器傳遞出來。這種數(shù)據(jù)傳遞是專門對所要完成的算法的,但下面所述的硬件實(shí)現(xiàn)是通用的,可以證明,一個(gè)正交變換(矩陣Q)可以按照下式用一系列平面旋轉(zhuǎn)(矩陣Tij)來完成
其中1 0 · · · 00 1 · · · ·Tij(θ)=· · Cosθ · Sinθ ·· · · · · ·· ·-Sinθ · Cosθ ·0 · · · · 1這個(gè)原理在我們這個(gè)與離散余弦變換(DCT)的實(shí)施例有關(guān)的變換處理器中得到應(yīng)用,說明如下一個(gè)8點(diǎn)DCT變換可以用下列矩陣表示Y0354 354 354 354 354 354 354 354 X0
Y1490 416 278 098 -098 -278 -416 -490 X1Y2462 191 -191 -462 -462 -191 191 462 X2Y3416 -098 -490 -278 278 490 098 -416 X3Y4354 -354 -354 354 354 -354 -354 354 X4Y5278 -490 098 416 -416 -098 490 -278 X5Y6191 -462 462 -191 -191 462 -462 191 X6Y7098 -278 416 -490 490 -416 278 -098 X7重排各列,并且將所選擇的被變換的輸出信號(hào)看成為信號(hào)對,上列矩陣可以分解而形成四組,每一組包括四項(xiàng)由方程(1)所規(guī)定的形式。
這類表達(dá)式變換的硬件實(shí)現(xiàn)可以用于上述旋轉(zhuǎn)運(yùn)算器電路也可以用于具有足夠存儲(chǔ)器以寄存輸入信號(hào)和運(yùn)算中間結(jié)果的通信電路,然而,更為有效的一種實(shí)現(xiàn)方法是應(yīng)用“快速DCT”算法。
圖4所示為“快速DCT”算法的信號(hào)流程,圖4中每一個(gè)圓圈(如圖圈17)表示一個(gè)就地旋轉(zhuǎn)運(yùn)算,所謂“就地旋轉(zhuǎn)運(yùn)算”是指旋轉(zhuǎn)運(yùn)算操作是與通信電路一起執(zhí)行的,通信電路把二個(gè)輸入信號(hào)從特定貯存位置送到旋轉(zhuǎn)運(yùn)算器,而結(jié)果(從旋轉(zhuǎn)運(yùn)算器來)送回到相同的貯存位置。必需適當(dāng)?shù)乜刂菩盘?hào)送到和送出通信電路100的順序以得到圖4中所規(guī)定的最終結(jié)果,該最終結(jié)果概括于下面的表1內(nèi)。
表1
y4=c2c21(-x0-x7+x4+x3)+c5c21(-x2+x1-x5+x6)y1=c5c21(-x0+x7-x4-x3)+c5c21(-x2+x1-x5+x6)y0=c31(x0+x7+x4+x3+x2+x1+x5+x6)y2=c31(-x0-x7-x4-x3+x2+x1x+5x+x6)y5=c4(c21(x0-x7)+c31(-x2-x1+x5+x6))+c7(c31(x2-x1-x5+x6)+c21(-x4+x3))y6=c7(c21(-x0+x7)+c31(x2+x1-x5-x6))+c7(c31(x2-x1-x5+x6)+c21(-x4+x3))y7=c3(c21(-x0+x7)+c31(-x2-x1+x5+x6))+c6(c31(-x2+x1+x5-x6)+c21(-x4+x3))y3=c6(c21(x0-x7)+c31(x2+x1-x5-x6))+c3(c31(-x2+x1+x5-x6)+c21(-x4+x3))除了把輸入信號(hào)和中間結(jié)果加到旋轉(zhuǎn)運(yùn)算電路的任務(wù)以外,畫出二種工作方式的通信電路100在新數(shù)據(jù)到來時(shí)還必需接收新數(shù)據(jù)。注意到這二個(gè)功能,圖5提出一個(gè)與我們發(fā)明原理一致的通信電路100的原理圖。按圖5,電路100含有一個(gè)可尋址存儲(chǔ)器121和一個(gè)不可尋址存儲(chǔ)器122,存儲(chǔ)器122基本上是一個(gè)串聯(lián)存儲(chǔ)器,這也就是說,輸入數(shù)據(jù)從線123移入存儲(chǔ)器122,而變換后的輸出信號(hào)從線124移出存儲(chǔ)器122。這個(gè)情況畫在圖5的左半面,冠以標(biāo)題“正?!?。當(dāng)輸入數(shù)據(jù)移入存儲(chǔ)器122時(shí),存儲(chǔ)器121就與旋轉(zhuǎn)運(yùn)算器300連接,完成旋轉(zhuǎn)運(yùn)算結(jié)果與旋轉(zhuǎn)運(yùn)算器的輸入信號(hào)的就地代換。這這是很容易達(dá)到的,因?yàn)榇尜A儲(chǔ)121是可尋址的,并且其配置保證除了二個(gè)選定的地址以外所有來自其它存貯地址的數(shù)據(jù)全部反饋回原來地址。在這二個(gè)選定地址上,發(fā)生上面所提到的代換,如圖5中信號(hào)X0,X1,Y0,Y1所示。當(dāng)完成由旋轉(zhuǎn)運(yùn)算器300所執(zhí)行的變換時(shí),收集在存儲(chǔ)器122中的數(shù)據(jù)必須放入存儲(chǔ)器121,準(zhǔn)備下一次變換。同時(shí),必須移動(dòng)貯存在存儲(chǔ)器器121中的變換結(jié)果。這用存儲(chǔ)器121與存儲(chǔ)器122交換內(nèi)容來完成,如圖5右部標(biāo)題“交換”下的圖所示。
表2表示存儲(chǔ)器122的尋址順序和加到旋轉(zhuǎn)運(yùn)算器300的系數(shù),表2的地址和系數(shù)與圖4的規(guī)定相應(yīng)。
表2地址 系數(shù)5,6 0.707 0.7072,1 0.707 0.7070,7 0.707 0.7074,3 0.707 0.7072,5 0.707 0.7071,6 0.707 0.7070,4 0.707 0.7076,3 0.707 0.7070,2 0.707 0.7074,1 0.383 0.9247,3 0.195 0.9815,6 0.556 0.831表2的順序不是唯一可能的順序。圖4表明任何保證一些旋轉(zhuǎn)運(yùn)算不超前于另一些旋轉(zhuǎn)運(yùn)算的順序都是可以采用的。可能也都注意到圖4的快速DCT也不是唯一可能的“快速DCT”算法,舉例來說,圖6介紹了一種算法,就某些意義上而言,比圖4的算法更加規(guī)律。
圖7為完成圖5的功能圖的一個(gè)通信電路100的具體實(shí)施方案。輸入信號(hào)Y0和Y1加到規(guī)格化單元110和120,規(guī)格化單元110和120的輸出加到地址多路轉(zhuǎn)換器111和112。多路轉(zhuǎn)換器111和112響應(yīng)地址信號(hào)addr0和addr1。這些地址信號(hào)按確定了的順序(例如按表2)由查表電路200送到通信電路100。多路轉(zhuǎn)換器111和112使輸入信號(hào)Y0和Y1分別出現(xiàn)在多路轉(zhuǎn)換器111和112的多個(gè)輸出端中的一個(gè)輸出端,就這個(gè)意義上來說,多路轉(zhuǎn)換器111和112是常規(guī)的一對多的選擇器。多路轉(zhuǎn)換器111和112與常規(guī)的多路轉(zhuǎn)換器還有所不同,除了各輸出引線外還有一條識(shí)別出現(xiàn)信號(hào)的輸出引線的輔助控制引線。這條引線使從所有不接收信號(hào)Y的寄存器送出的信號(hào)能夠反饋,正如在有關(guān)圖5的討論中所述。多路轉(zhuǎn)換器111和112的輸出與一個(gè)多輸入一多輸出存儲(chǔ)塊130連接,這存儲(chǔ)塊130擁有存儲(chǔ)器121和122,由大量存儲(chǔ)塊131組成。每一個(gè)存儲(chǔ)塊131具有二個(gè)輸入和二個(gè)輸入,一個(gè)“就緒”控制信號(hào)輸入,一個(gè)起動(dòng)控制信號(hào),以及二個(gè)寄存器。多路轉(zhuǎn)換器的那些輸出逐一與不同的存儲(chǔ)塊131的一個(gè)輸入端相連。多路轉(zhuǎn)換器112的輸出逐一與多路轉(zhuǎn)換器111的輸出并行連接。每一個(gè)存儲(chǔ)塊131的另一個(gè)輸入連接到前一個(gè)存儲(chǔ)塊131的一個(gè)輸出,從而形成輸入和輸出與串聯(lián)存儲(chǔ)器電路122的連接。存儲(chǔ)塊131的另一個(gè)輸出加到受addr0和addr1控制信號(hào)控制的地址多路轉(zhuǎn)換器113和114。多路轉(zhuǎn)換器113和114(多對一)的輸出信號(hào)是加到旋轉(zhuǎn)運(yùn)算器300的信號(hào)X0和X1。信號(hào)X0和X1或者是輸入信號(hào)X,或者是中間結(jié)果項(xiàng),如同信號(hào)流程圖圖4所描述的那樣,如上所指出的那樣,信號(hào)Y0和Y1為旋轉(zhuǎn)運(yùn)算器的計(jì)算結(jié)果,在完成時(shí),就等于Y0和Y1。
圖8畫出存儲(chǔ)塊131的一個(gè)實(shí)現(xiàn)方式。它有二個(gè)寄存器133和134,一個(gè)雙刀雙擲開關(guān)132,以及一個(gè)單刀雙擲開關(guān)135。來自多路轉(zhuǎn)換器111和112的輸入信號(hào)加到開關(guān)135的輸入口上,來自多路轉(zhuǎn)換器111和112的起動(dòng)信號(hào)加到開關(guān)135的控制口上。開關(guān)135的另一個(gè)輸入得自寄存器133的輸出,因而獲得信號(hào)反饋的能力。開關(guān)135的輸出信號(hào)加到開關(guān)132的一個(gè)輸入上,而塊131的串聯(lián)輸入加到開關(guān)132的另一個(gè)輸入上。開關(guān)132受“就緒”控制信號(hào)控制。通常,“就緒”控制信號(hào)被置位,這樣,串聯(lián)輸入由開關(guān)132加到寄存器134上,而另一個(gè)輸入(來自開關(guān)135)則加到寄存器133上。寄存器133的輸出加到多路轉(zhuǎn)換器113和114上(還加到開關(guān)135上),而寄存器134的輸出信號(hào)則加到下一塊131的串聯(lián)輸入上。
圖7中的規(guī)格化單元110和120是必需的,因?yàn)樾D(zhuǎn)運(yùn)算器300的乘法運(yùn)算結(jié)果的位數(shù)等于乘數(shù)與被乘數(shù)的位數(shù)的和(加1)。如果這結(jié)果不是隨著每次迭代增長,則位數(shù)必須減少到被乘數(shù)的位數(shù)。這能用簡單的舍位來做到,但我們建議用規(guī)格化單元對不常出現(xiàn)的大數(shù)值進(jìn)行限幅。這種限幅使我們舍去較少的位,從而減小了舍位誤差。圖9畫出一個(gè)實(shí)現(xiàn)規(guī)格化單元110和120的簡單方法。寄存器115接收旋轉(zhuǎn)運(yùn)算器300的結(jié)果,寄存器115的經(jīng)選擇高有效輸出位加到檢測器110,如果檢測器116發(fā)現(xiàn)所有都是0或都是1(符號(hào)位),被選擇的寄存器115的一組次最高有效位通過門電路117至圖7的多路轉(zhuǎn)換器,否則,檢測器116堵住這些輸出位而代之以符號(hào)位。
查表電路正交變換是采用迭代方法來構(gòu)成的,迭代法需要一系數(shù)序列和一個(gè)緊接一個(gè)的地址控制信號(hào)“addr”常規(guī)的只讀存儲(chǔ)器和計(jì)數(shù)器可以完成這個(gè)功能,但很難提高標(biāo)準(zhǔn)只讀存儲(chǔ)器中地址解碼的速度,而且計(jì)數(shù)器比所必需的復(fù)雜,串行尋址只讀存儲(chǔ)器滿足這種變換的結(jié)構(gòu)的要求,并且具有移位寄存器精心設(shè)計(jì)的優(yōu)點(diǎn)。
參照圖10,只讀存儲(chǔ)器包含在組件56內(nèi),組件56有一組信號(hào)線51,52和53,以及可激勵(lì)接點(diǎn)54。信號(hào)線按順序51,52,53,52,51,52,……交叉配置,而接點(diǎn)54在被激勵(lì)時(shí)連接所選定的相鄰線,線51全都接到相當(dāng)于邏輯電平“1”的第一電源V1上,而線54全都接到相當(dāng)于邏輯電平“0”的第二電源V0上,線52形成存儲(chǔ)器的輸出,接點(diǎn)54是通常的半導(dǎo)體開關(guān),受激勵(lì)信號(hào)控制,接點(diǎn)成組配置,每組有一個(gè)接點(diǎn),與每根線52相聯(lián),全部接點(diǎn)都受一個(gè)信號(hào)控制信號(hào)控制,各組的控制信號(hào)都從寄存器55獲得,當(dāng)每一個(gè)“就緒”信號(hào)加到查表電路200上時(shí),寄存器55寫入一個(gè)脈沖,隨著“就緒”脈沖移過寄存器55,就存入存儲(chǔ)器相繼的字。
圖1中還畫有一個(gè)加到查表電路上的“反”控制信號(hào),該信號(hào)提供進(jìn)行反變換,反變換可用裝在元件200內(nèi)的第二個(gè)查表電路實(shí)現(xiàn),如圖11所示,所需要的只是應(yīng)用二個(gè)由寄存器55和多路轉(zhuǎn)換器57控制的組件56,多路轉(zhuǎn)換器在“反”控制信號(hào)的控制下從二個(gè)組件56的存儲(chǔ)器中選擇一個(gè)。這第二查表電路允許規(guī)定一個(gè)不同的地址系數(shù)序列。
二維變換國際低比特率圖象碼變換標(biāo)準(zhǔn)的一種選擇方案是8×8象點(diǎn)塊的二維DCT。這種變換是可分的,首先對具有8個(gè)象點(diǎn)的每一行進(jìn)行一維8點(diǎn)變換,然后再對每一列進(jìn)行一維8點(diǎn)變換,這類變換可以用一個(gè)與跨接存儲(chǔ)器502和另一個(gè)正交變換器處理器501級(jí)聯(lián)的正交變換處理器501來完完,如圖12所示;也可以用單個(gè)正交變換處理器501來完成,但這個(gè)處理器存儲(chǔ)器要容納64個(gè)樣點(diǎn),查表電路也要適當(dāng)處置。
圖13介紹一種實(shí)現(xiàn)跨接存儲(chǔ)器502的方法。它由一個(gè)存儲(chǔ)寄存器503的二維陣列組成,并且做成可以用水平或垂直光柵掃描方式移位。具體一些說,每一個(gè)存貯寄存器503有一個(gè)水平輸入和輸出,一個(gè)垂直輸入和輸出,以及一個(gè)方向控制信號(hào)輸入,寄存器503陣列的連接如下一行內(nèi)的水平輸出與同一行內(nèi)的水平輸入相連,而一列內(nèi)的垂直輸出與同一列內(nèi)的垂直輸入相連,除了處在第一或最后一列或行的元件外都用這種連接法在每一列中最后一行的垂直輸出與下一列中第一行的垂直輸入相連,類似地,每一行中最后的水平輸出與下一行中第一個(gè)水平輸入相連,在第一行第一列上的寄存器的二個(gè)輸入連在一起,成為跨接存儲(chǔ)器502的輸入。在最后一最后一列的寄存器的二個(gè)輸出連在一起成為跨接存儲(chǔ)器502的輸出。
如圖14所示,每一個(gè)存儲(chǔ)寄存器503含有一個(gè)寄存器504和一個(gè)選擇器505。選擇器505響應(yīng)方向控制信號(hào),選擇水平輸入或垂直輸入,被選擇的輸入加到寄存器504,而寄存器504的輸出則加到水平和方位這二個(gè)輸出。
工作時(shí),數(shù)據(jù)移入,直至充滿矩陣。然后移位方向(方向控制信號(hào))反轉(zhuǎn),數(shù)據(jù)移出,而下一數(shù)據(jù)塊移入。因此,方向控制信號(hào)是一個(gè)簡單的方波。這種結(jié)構(gòu)的優(yōu)點(diǎn)是能以極高的速度工作。
這里所作的揭示和所描述的各種具體電路當(dāng)然只是說明我們這個(gè)發(fā)明的例子,許多結(jié)構(gòu)變化以及廣泛的不同具體實(shí)現(xiàn)和應(yīng)用無疑會(huì)使熟悉于該技藝的人們覺得這些都并不脫離本發(fā)明的精神和范圍。舉例來說,處理器可以有幾個(gè)處理元件,如一個(gè)旋轉(zhuǎn)運(yùn)算器和一個(gè)單獨(dú)的加/減運(yùn)算器的組合,來完成45°旋轉(zhuǎn)運(yùn)算,由于具有算法平行的優(yōu)點(diǎn),這將會(huì)提高該組合的處理速度。也就是說,雖然圖1畫出的通信電路100用作與一個(gè)處理元件(旋轉(zhuǎn)運(yùn)算器300)通信的輸入/輸出接口和存儲(chǔ)器裝置,簡單地?cái)U(kuò)展我們這個(gè)發(fā)明,就能用多個(gè)處理元件與這輸入/輸出接口和存儲(chǔ)器相連(或在其它情況下,看作對在旋轉(zhuǎn)運(yùn)算器300里)。
權(quán)利要求
1.一個(gè)正交變換處理器,其組成為一個(gè)旋轉(zhuǎn)運(yùn)算器,它響應(yīng)一個(gè)第一旋轉(zhuǎn)運(yùn)算器的輸入信號(hào)X0,一個(gè)第二旋轉(zhuǎn)運(yùn)算器的輸入信號(hào)X1,一個(gè)第一系數(shù)信號(hào)C0,以及一個(gè)第二系數(shù)信號(hào)C1,形成一個(gè)第一旋轉(zhuǎn)運(yùn)算器的輸出信號(hào)C0X0+C1X1和一個(gè)第二旋轉(zhuǎn)運(yùn)算器的輸出信號(hào)-C1X0+C0X1;一個(gè)通信電路,它響應(yīng)所加的處理器輸入信號(hào),提供所說的旋轉(zhuǎn)運(yùn)算器所說的第一和第二旋轉(zhuǎn)運(yùn)算器的輸入信號(hào),接收所說的第一和第二旋轉(zhuǎn)運(yùn)算器的輸出信號(hào),以及送出所說的正交變換處理器的變換輸出信號(hào);和設(shè)備,它向所說的通信電路提供控制信號(hào),以及向所說的旋轉(zhuǎn)運(yùn)算器提供所說的第一和第二系數(shù)信號(hào)。
2.權(quán)利要求
1的處理器中所說的設(shè)備用來提供控制信號(hào),它也響應(yīng)一個(gè)“逆”控制信號(hào),當(dāng)所說的“逆”控制信號(hào)處于一個(gè)第一邏輯電平時(shí),使所說的處理器成為一個(gè)預(yù)定的正交變換處理器,當(dāng)所說的“逆”控制信號(hào)處于一個(gè)第二邏輯電平時(shí),使所說的處理器進(jìn)行所說的預(yù)定正交變換的逆變換。
3.權(quán)利要求
1的變換處理器中所說的第一和第二旋轉(zhuǎn)運(yùn)算器的輸入信號(hào)屬于包括所說的處理器輸入信號(hào)以及所說的第一和第二旋轉(zhuǎn)運(yùn)算器輸出信號(hào)的一組信號(hào)。
4.權(quán)利要求
1的變換處理器中所說的旋轉(zhuǎn)運(yùn)算器有四個(gè)乘法器,每一個(gè)乘法器包括多個(gè)模塊,所說的四個(gè)乘法器的相應(yīng)模塊機(jī)械上相互緊鄰。
5.權(quán)利要求
1的變換處理器中所說的旋轉(zhuǎn)運(yùn)算器完成四個(gè)乘法運(yùn)算,它包括一個(gè)相互連接的模塊陣列,每個(gè)模塊由四部分組成,一個(gè)模塊中的各個(gè)部分完成相似的一部份在所說的旋轉(zhuǎn)運(yùn)算器內(nèi)要完成的乘法運(yùn)算。
6.權(quán)利要求
1的變換處理器中所說的旋轉(zhuǎn)變換器完成四個(gè)乘法運(yùn)算,它包括一個(gè)空間鄰接的乘法器一加法器模塊的矩陣,每一模塊由四部分組成,在一個(gè)模塊中的各個(gè)部分完成相似的一部份在所說的旋轉(zhuǎn)運(yùn)算器中要完成的乘法運(yùn)算。
7.權(quán)利要求
1的變換處理器中所說的旋轉(zhuǎn)運(yùn)算器完成四個(gè)乘法運(yùn)算,它由一個(gè)空間相鄰并互相連接的乘法器和加法器模塊矩陣組成,每一模塊的組成為一個(gè)第一乘法運(yùn)算邏輯元件,它響應(yīng)X0和C0;一個(gè)第一加法器,它響應(yīng)所加的和數(shù)與進(jìn)位信號(hào)以及所說的第一乘法運(yùn)算邏輯元件,形成一個(gè)輸出和數(shù)信號(hào)和一個(gè)輸出進(jìn)位信號(hào);一個(gè)第二乘法運(yùn)算邏輯元件,它響應(yīng)X0和C1;一個(gè)第二加法器,它響應(yīng)所加的和數(shù)與進(jìn)位信號(hào)以及所說的第二乘法運(yùn)算邏輯元件,形成一個(gè)輸出和數(shù)信號(hào)和一個(gè)輸出進(jìn)位信號(hào);一個(gè)第三乘法運(yùn)算邏輯元件,它響應(yīng)X1和C0;一個(gè)第三加法器,它響應(yīng)所加的和數(shù)與進(jìn)位信號(hào)以及所說的第三乘法運(yùn)算邏輯,形成一個(gè)輸出和數(shù)信號(hào)和一個(gè)輸出進(jìn)位信號(hào);一個(gè)第四乘法運(yùn)算邏輯元件,它響應(yīng)X1和C1;一個(gè)第四加法器,它響應(yīng)所加的和數(shù)與進(jìn)位信號(hào)以及所說的第四乘法運(yùn)算邏輯元件,形成一個(gè)輸出和數(shù)信號(hào)和一個(gè)輸出進(jìn)位信號(hào)。
8.權(quán)利要求
7的模塊還包括寄存器器件,它響應(yīng)所說的第一、第二、第三和第四加法器的所說的輸出和數(shù)信號(hào)和輸出進(jìn)位信號(hào)以及所加的一個(gè)時(shí)鐘信號(hào),形成所說的模塊的定時(shí)和數(shù)與進(jìn)位輸出信號(hào)。
9.權(quán)利要求
7的模塊中所說的乘法運(yùn)算邏輯元件是和門。
10.權(quán)利要求
1的變換處理器中所說的用來提供控制信號(hào)的設(shè)備包括一個(gè)移位寄存器,它響應(yīng)所說的原始控制信號(hào),形成所說的原始控制信號(hào)的延遲翻版;多組連接點(diǎn),各組由所說的原始控制信號(hào)的各個(gè)不同的所說的延遲翻版控制。
11.權(quán)利要求
1的處理器中所說的通信電路包括第一和第二存儲(chǔ)段,其中所說的第一存儲(chǔ)段在所說的原始控制信號(hào)控制下存儲(chǔ)所說的外加的處理器輸入信號(hào),并且向所說的第二存儲(chǔ)段提供所說的被存儲(chǔ)的處理器輸入信號(hào);所說的第二存儲(chǔ)段響應(yīng)來自形成控制信號(hào)的所說的設(shè)備的控制信號(hào),存儲(chǔ)由所說的第一存儲(chǔ)段提供的信號(hào),把信號(hào)加到所說的旋轉(zhuǎn)運(yùn)算器,存儲(chǔ)所說的旋轉(zhuǎn)運(yùn)算器的所說的輸出信號(hào),以及在所說的原始控制信號(hào)控制下,把所說的變換輸出信號(hào)加到所說的第一存儲(chǔ)段。
12.權(quán)利要求
1的變換處理器中所說的旋轉(zhuǎn)運(yùn)算器包括四個(gè)乘法器,每個(gè)乘法器含有多個(gè)模塊,所說的四個(gè)乘法器的相應(yīng)模塊物理上非常近似,加法器/減法器網(wǎng)絡(luò)響應(yīng)某些所說的模塊。
專利摘要
一個(gè)正交變換處理器包括一個(gè)旋轉(zhuǎn)運(yùn)算器電路,一個(gè)查表電路和一個(gè)通信電路。旋轉(zhuǎn)運(yùn)算完成旋轉(zhuǎn)運(yùn)算器所需的復(fù)數(shù)乘法運(yùn)算,必需的系數(shù)由查表電路提供,通信電路負(fù)責(zé)接收輸入信號(hào),把每次迭代所需的信號(hào)加給旋轉(zhuǎn)運(yùn)算器,以及送出結(jié)果輸出信號(hào)。旋轉(zhuǎn)運(yùn)算器用一個(gè)空間相鄰互相連接的乘法器和加法器模塊矩陣來實(shí)現(xiàn),其中每一模塊包括旋轉(zhuǎn)運(yùn)算器必需的每個(gè)乘法器的一部分。
文檔編號(hào)G06F17/14GK87107679SQ87107679
公開日1988年8月31日 申請日期1987年11月9日
發(fā)明者阿德里魯斯·利坦伯格, 扎·亨里·奧尼爾 申請人:美國電話電報(bào)公司導(dǎo)出引文BiBTeX, EndNote, RefMan