專利名稱:帶有多種濾波模式的可重配置數(shù)字濾波器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明用于基于硬件體系結(jié)構(gòu)的可對不同濾波模式進行重新配置的數(shù)字濾波器。
背景包括微處理器和數(shù)字信號處理器在內(nèi)的計算機裝置已經(jīng)被設(shè)計用于大范圍的應(yīng)用,并且事實上已經(jīng)用在了每種產(chǎn)業(yè)中。出于多種原因,這些應(yīng)用中的很多都被用來處理視頻數(shù)據(jù)并且要求最小級別的能量消耗和緊密度。有些應(yīng)用還進一步需要能在實時或準實時基礎(chǔ)上有效執(zhí)行的高速計算引擎。這些視頻處理應(yīng)用中有很多都需要能夠以不斷增長的速度執(zhí)行多個功能的數(shù)據(jù)信號處理電路。
不幸的是,實現(xiàn)高數(shù)據(jù)處理速度和提供多種功能是對立的趨勢。例如,通用視頻信號處理通常包括有限脈沖響應(yīng)(FIR)或無限脈沖響應(yīng)(IIR)濾波,與像實時壓縮和解壓縮視頻數(shù)據(jù)這樣的專用視頻數(shù)據(jù)濾波處理相位比它相對要慢一些。因為與專用視頻數(shù)據(jù)濾波處理連同使用的計算體系結(jié)構(gòu)通常都進行了優(yōu)化以跟上視頻數(shù)據(jù)的實時速度,專用視頻數(shù)據(jù)濾波處理通常在執(zhí)行與通用視頻信號處理有關(guān)的多種任務(wù)時并不是很有效。
在有些應(yīng)用中采用的是一種稱為“多相位”濾波器的專用視頻數(shù)據(jù)濾波器。在視頻處理應(yīng)用中,有時用多相位濾波器來通過操縱所存儲的數(shù)據(jù)重新調(diào)整像素大小以表示用來刷新顯示的水平和垂直行。在這樣的應(yīng)用中,輸出像素的數(shù)量與輸入像素的數(shù)量的比值被定義為縮放因子;然而,對通用濾波來說,輸出像素的數(shù)量等于輸入像素的數(shù)量。當縮放因子大于1時調(diào)整大小的操作也被稱為擴展或上取樣;否則,調(diào)整大小操作通常被稱為壓縮或下取樣。通常,為了重新調(diào)整一幅圖片的大小(按比例增加或減小)來提供固定的縮放,多相位濾波器是用它的系數(shù)來實現(xiàn)的,這些系數(shù)被定義為正在處理的像素的位置或相位的函數(shù)。為了在高精度的視頻應(yīng)用中重新調(diào)整像素大小,用更獨特的體系結(jié)構(gòu)實現(xiàn)多相位濾波以提供實現(xiàn)精度所需的算術(shù)。一般來說,這種類型的多相位濾波是以一種稱作是“多相位-轉(zhuǎn)置”濾波的形式實現(xiàn)的。對更典型的視頻應(yīng)用來說,通常用比FIR濾波這樣的通用濾波更常見的計算體系結(jié)構(gòu)把多相位濾波實現(xiàn)為多相位直接濾波器。因為分別與通用濾波器像多相位轉(zhuǎn)置濾波器這樣特定的專用濾波器相關(guān)的必要算術(shù)的原因,結(jié)構(gòu)上的不相容已經(jīng)導致從這樣的專用濾波器獨立設(shè)計這些通用濾波器。關(guān)于這樣的多相位濾波器的進一步的細節(jié)和范例實現(xiàn),參見美國專利5,892,695號,題為“Sample RateConversion”,Van Dalfsen等,它被委托給直接代理人并在此通過引用而被全面合并。
在上述每個視頻處理應(yīng)用中,主要的開銷都與設(shè)計、制造并維持用來提供這種功能的集成電路有關(guān)。在每個這樣的應(yīng)用中,如果專用濾波模式在體系結(jié)構(gòu)上是不兼容的,那么與附加結(jié)構(gòu)相關(guān)的花費是主要的。因此,大家廣泛認識到需要開發(fā)一種相對緊湊的能夠提供這些多樣的濾波模式并且吞吐量不能有大量損失的視頻處理濾波器結(jié)構(gòu)。
概述本發(fā)明用于解決上面提到的挑戰(zhàn)并提供能夠針對不同類型的濾波模式進行重新配置的硬件體系結(jié)構(gòu)的可編程數(shù)字濾波器。已經(jīng)在大量實現(xiàn)和申請中示范了本發(fā)明,下面總結(jié)了其中的一些實現(xiàn)和申請。
依照一種示例性實施方案,本發(fā)明提供有多種濾波模式的硬件可重配置數(shù)字濾波器。該數(shù)字濾波器包括邏輯電路、模式選擇電路和計算電路。邏輯電路有一個X*Y的寄存器陣列(X,Y均至少是2),適用于處理輸入數(shù)據(jù)。模式選擇電路在多個不同的濾波模式間切換可編程數(shù)字濾波器,計算電路通過執(zhí)行計算對邏輯電路做出響應(yīng)并包括至少Y個乘法邏輯電路和至少Y個加法邏輯電路。在更明確的實施方案中,每個乘法和加法邏輯電路都有輸出和輸入,其輸出入輸出可以有選擇地與沿著Y方向的乘法和加法邏輯電路中的另一個耦合,濾波模式包括多相位濾波和通用濾波應(yīng)用(例如FIR濾波)。
在其它更明確的實施方案中濾波模式包括多相位直接濾波、多相位轉(zhuǎn)置濾波和至少一種通用濾波,針對所選的通用濾波可以把上面提到的寄存器陣列配置成一個線性陣列,針對其它選中的濾波模式也可以把它排列成一個二維陣列。
依照另一種更明確的示例性實施方案,本發(fā)明用于類似的硬件可重配置數(shù)字濾波器,其中邏輯電路適用于處理并鏡像(mirror)與對應(yīng)于一個視頻圖像段中選中的目標結(jié)點的數(shù)據(jù)點有關(guān)的濾波器輸入相對應(yīng)的數(shù)據(jù)。邏輯電路包括一個X*Y的寄存器陣列,其中Y大于等于X并且X至少是2。模式選擇電路適用于在多相位轉(zhuǎn)置濾波模式和至少一種其它濾波模式之間切換可編程數(shù)字濾波器。計算電路適用于響應(yīng)邏輯電路執(zhí)行計算并且包括至少Y個乘法邏輯電路和至少Y個加法邏輯電路,每個乘法和加法邏輯電路都有用響應(yīng)模式選擇電路的選擇信號有選擇地耦合到另一個乘法或加法邏輯電路的輸出和輸入。
用于本發(fā)明的特定的示例性實施方案的其它方面和優(yōu)點。
本發(fā)明的上述摘要并非為了描述每個本發(fā)明的每個示例實施方案和每種實現(xiàn)。更準確地遵循本發(fā)明的附圖和詳述將示范這些實施方案。
附圖概述考慮本發(fā)明的不同實施方案的詳細描述可以完整地理解本發(fā)明,這些詳細描述與附圖結(jié)合在一起。這些圖包括依照本發(fā)明,
圖1和2分別描述一個示例性的可重配置數(shù)字濾波器的通用框圖和應(yīng)用于使用可重配置數(shù)字濾波器的特定實例環(huán)境的整個功能單元的詳細的示例性的頂級微體系結(jié)構(gòu)。
圖3到8也依照本發(fā)明分別描述圖2中所示模塊的擴充實現(xiàn)。更準確地說圖3描述時鐘發(fā)生器模塊;圖4描述與裝載濾波器系數(shù)以及讀/寫濾波數(shù)據(jù)連同使用的的頂級有限狀態(tài)機(FSM)模塊的狀態(tài)圖。
圖5描述以狀態(tài)表的形式描述用來讀取系數(shù)的程序設(shè)定值的有限狀態(tài)機的示例實現(xiàn),這些系數(shù)與圖2中的模塊連同使用。
圖6A描述了圖2的系數(shù)-RAM模塊的偏序邏輯,圖6B描述了讀入圖2的內(nèi)部系數(shù)存儲器的系數(shù)的通用配置。
圖7描述了提供操作控制和通用處理功能的中央可配置濾波器。
圖8是一個數(shù)據(jù)電路/流程圖,它依照本發(fā)明描述了包括圖2中所示的數(shù)據(jù)通路模塊和控制模塊的中央濾波器宏-模塊。
圖9是描述和圖8中的模塊連同使用的濾波器算術(shù)邏輯的數(shù)據(jù)通路配置。
圖10是一個數(shù)據(jù)電路/流程圖,描述用于與圖8和9中所示的數(shù)據(jù)通路配置連同使用的特定多相位-直接濾波的輸入管道結(jié)構(gòu)。
圖11是一個數(shù)據(jù)電路/流程圖,依照本發(fā)明描述用于特應(yīng)用(FIR12)的圖10中的電路的另一種配置。
圖12是一個數(shù)據(jù)電路/流程圖,依照本發(fā)明描述用于特應(yīng)用(FIR11)的圖10中的電路的另一種配置。
圖13是一個數(shù)據(jù)電路/流程圖,依照本發(fā)明描述用于特定多相位-轉(zhuǎn)置濾波應(yīng)用的圖10中的電路的另一種配置;圖14和15是依照本發(fā)明描述在圖7中的可重配置電路裝置中的結(jié)構(gòu)相似的“片斷(slice)”電路各自的頂層和底層觸發(fā)器的多路復(fù)用器裝置的電路圖。
盡管本發(fā)明有義務(wù)提出不同的變體和選擇,但這里已經(jīng)通過附圖中的實例描述了一些具體細節(jié)并將詳細描述它們。但應(yīng)該理解這樣做的目的并不是為了限制本發(fā)明為所描述的特定實現(xiàn)方案。相反地,其目的是為了覆蓋所有符合所附權(quán)利要求中所定義的精神和范圍的所有變體、等價設(shè)計以及選擇方案。
公開實施方案的詳細描述相信本發(fā)明能夠用于多種不同類型的濾波,而且還發(fā)現(xiàn)它尤其適用于從易于配置以多種濾波模式中的任意一種進行操作的數(shù)字濾波器體系結(jié)構(gòu)受益的視頻濾波應(yīng)用。通過對使用這些應(yīng)用的實例的論述可以理解本發(fā)明的不同方面。
圖1中描述了本發(fā)明的第一個示例實施方案。圖1提供了有可選濾波模式的硬件-可重配置數(shù)字濾波器100。數(shù)字濾波器100包括模式選擇電路110、邏輯電路112和計算電路114。邏輯電路112有一個X*Y的寄存器陣列,適用于處理從存儲器120傳入輸入數(shù)據(jù)接口邏輯122的輸入數(shù)據(jù)。計算電路114通過在計算電路114的每個CY塊中用一個乘法邏輯電路和一個加法邏輯電路執(zhí)行計算來對邏輯電路112做出響應(yīng)。熟練的技術(shù)人員將會理解X*Y寄存器陣列被描述成2*4陣列只是為了說明性的目的,對濾波算法的特定實現(xiàn)和選擇將決定該陣列的實際大小。模式選擇電路110被描述為包括一個處理器,并因此為濾波器100提供控制處理操作以及濾波模式選擇操作;然而,不同的特定應(yīng)用可以規(guī)定單獨實現(xiàn)模式選擇電路110的處理器部分和模式選擇電路。
模式選擇電路110在不同的多個濾波模式間切換數(shù)字濾波器100的方式取決于特定的應(yīng)用。例如,一種實例應(yīng)用使第一種濾波模式涉及第一高精度類型的濾波,例如多相位轉(zhuǎn)置濾波,并使第二種濾波模式涉及一種更通用類型的濾波操作,例如脈沖響應(yīng)濾波操作。這種情況下,模式選擇電路110命令每個CY塊中的乘法邏輯和加法電路中的方向為這兩種模式中的一種重新配置數(shù)字濾波器100。在一種特定的實施方案中,每個乘法和加法邏輯電路都有輸出和輸入,它們允許按照由從模式選擇電路110接收到的命令信號所指定的對計算進行計算。因此,對第一種高精度類型的濾波來說,模式選擇電路110命令乘法和加法邏輯電路的不同方向為特定類型的高精度濾波所用的算法優(yōu)化吞吐率,對第二種更通用的濾波模式來說第二種模式所用的設(shè)置沒有改變方向??梢匀我獾赜眠@兩種模式中的一種作為缺省模式。
另一種示例應(yīng)用使第一和第二種濾波模式,每種濾波模式都涉及不同類型的第二種更通用的濾波。這樣的濾波模式的實例包括多相位直接濾波以及不同類型的脈沖響應(yīng)濾波,例如M-拍FIR和N-拍FIR濾波(M和N是整數(shù),例如大于等于2)。對這些類型的更通用的濾波模式中的許多模式來說,模式選擇電路110可以通過控制邏輯電路112的各個單元中的寄存器間數(shù)據(jù)的方向和通信來重新配置濾波器100,而且這種重新配置并不改變計算電路114中的乘法邏輯和加法電路的方向。一個這樣的確定實施方案,不需要在其中改變計算電路114中乘法邏輯和加法電路的方向,它采用模式選擇電路110來控制邏輯電路112以在多相位直接濾波和至少一種像FIR這樣的通用濾波之間進行切換。
也是依照本發(fā)明,一種特殊的視頻處理應(yīng)用采用一種與上述濾波器100類似的水平濾波單元(HFL)來實現(xiàn)“重新調(diào)整”存儲在存儲器模塊(例如,圖1的120)的水平像素行的多相位濾波器。在這種環(huán)境中,當縮放因子大于1時“重新調(diào)整”就像上面結(jié)合擴展發(fā)生所描述的那樣。通常,(對多相位濾波器)使用固定的縮放因子來按比例增大或縮小圖片,所用的濾波器系數(shù)是可變的,取決于正在處理的像素的位置或相位。采用正確的程序設(shè)計,該濾波器還可以有使濾波器為每個輸出像素改變縮放因子的多相位濾波模式,例如在一個由適用于管理數(shù)字濾波器功能的微程序控制處理器執(zhí)行的處理步驟中。通常我們可以調(diào)節(jié)濾波器的控制參數(shù)以使縮放因子整體趨向輸出行的中心,但漸漸地更大或更小的因子趨向于行的兩邊。這個特性被稱為可變或全景縮放,在調(diào)整輸入視頻的縱橫比以適應(yīng)整個物理屏幕時非常有用。
在一種示例應(yīng)用中,用一個微程序主控制處理器(MCP)來提供控制和背景以及數(shù)字濾波器的片上視頻處理操作。MCP用“處理步驟”處理顯示像素,一個處理步驟指用來處理與產(chǎn)生最大數(shù)量的輸出像素所用最大數(shù)量的的輸入像素對應(yīng)的數(shù)據(jù)所需的MCP操作數(shù)。在一個特定實例中,產(chǎn)生最多256個輸出像素的輸入像素的最大數(shù)量是256。在普通操作模式下,可以對多種片上視頻處理單元(水平濾波器、垂直濾波器、混合器、顏色調(diào)節(jié))、存儲器以及連接交叉進行編程(通過MCP中的微代碼)以使每個處理步驟和計算能夠正確地開始。盡管這個處理步驟仍在進行,也可以把下一個處理步驟的控制值編程進下一個處理步驟的保持寄存器中。隨后在下個處理步驟的開始把下個處理步驟的控制值從保持寄存器傳遞到工作寄存器中,然后處理重新開始。
對很多典型應(yīng)用來說,圖1中的每個HFL主要用于像素內(nèi)容的水平增、減。在一種特定的示例應(yīng)用中,HFL是一個通用FIR濾波器,能夠通過對它的控制寄存器編程來進行配置以在一個處理步驟中用下列模式之一進行操作多相位直接模式、多相位轉(zhuǎn)置模式、FIR11或奇數(shù)-拍FIR模式(帶偶對稱的11-拍FIR)以及FIR12或偶數(shù)-拍FIR模式(帶偶對稱的12-拍FIR)。
使用HFL的多相位模式的一個重要優(yōu)點是能夠?qū)λ叫邢袼?存儲在存儲器模塊中)重新調(diào)整。同樣,定義輸出像素數(shù)與輸入像素數(shù)的比值為縮放因子。當縮放因子大于1時重新調(diào)整操作也被稱作擴展或上縮放;否則,這個比值被稱為壓縮或下縮放??s放因子的許可范圍可以選擇為任意值;在這個示例設(shè)計中,許可范圍是從0.25到8.0(包含0.25和8.0)。采用正確的程序設(shè)計,還可以使HFL在一個處理步驟中為每個輸出像素改變縮放因子。調(diào)節(jié)HFL控制參數(shù)使縮放因子整體上接近輸出行的中心,但漸漸地更大或更小的因子趨向于行的兩邊這種重調(diào)特性被稱為可變或全景縮放,用于調(diào)節(jié)輸入視頻的縱橫比以適應(yīng)整個物理屏幕(例如,16∶9的圖像放在4∶3的屏幕上,反之亦然)。
另一方面FIR模式也用于通用濾波(輸出像素數(shù)等于輸入像素數(shù))。用戶可以在1到256(包括1和256)之間(通過設(shè)置計數(shù)為0來對256編程)對HFL在每個處理步驟中消耗和產(chǎn)生的像素數(shù)進行編程。可以在軟件控制下在每個處理步驟結(jié)尾時把HFL的臨界狀態(tài)或“上下文”保存到一個存儲器模塊中。在下一個處理步驟的開始可以把這個上下文重新裝載為初始狀態(tài),以使這兩個處理步驟可以被看作是一個連續(xù)步驟。這種保存和裝載上下文的機制允許HFL同時服務(wù)多個輸入行,這樣每個處理步驟都能被以一種輪轉(zhuǎn)調(diào)度方式應(yīng)用到不同的輸入行,直到每個輸入行都處理完畢為止。HFL上下文的內(nèi)容取決于操作模式(特定的濾波模式)。如果在切換到另一個輸入行之前當前輸入行已經(jīng)處理完畢就不需要保存和裝載上下文,因為在缺省情況下HFL執(zhí)行來自上一個處理步驟的結(jié)束狀態(tài)而不是下一處理步驟中的初始狀態(tài)。
對于多相位濾波器用于這樣的擴展或壓縮的詳細信息,可以參考上面提到的美國專利5,892,695號中所說明和描述的實施方案。
每個HFL包含兩組獨立的濾波器系數(shù),每個系數(shù)對應(yīng)于一個有符號二進制數(shù)(例如,在[-0.5,0.5]范圍內(nèi)的10-位數(shù))。濾波器系數(shù)被以和裝載輸入像素和上下文類似的方式從存儲器模塊裝載。像素的濾波和系數(shù)的裝載可以在一個處理步驟中并行發(fā)生,因為每個處理訪問一組不同的系數(shù)。
圖1的可重配置HFL的實現(xiàn)能夠方便地支持兩種多相位濾波模式用于上下縮放(圖像的按比例縮放)的多相位直接(用于擴展和壓縮)和多相位轉(zhuǎn)置(僅用于壓縮)和至少兩種通用FIR濾波模式(用于基于數(shù)字濾波的信號處理)。此外,圖1的HFL支持從0.25到8.0的縮放因子,支持可變縮放因子,可以實現(xiàn)為只使用有符號10-位濾波器系數(shù),能夠支持8-位和10-位輸入像素格式,保存兩組濾波器系數(shù)并且允許從一組系數(shù)濾波像素和裝載系數(shù)到另一組中并行地進行,允許在多相位模式中在32相位和64相位之間切換并因此允許選擇濾波器系數(shù),并且提供存儲和裝載上下文的機制,并由此支持在每個處理步驟上在多個長輸入行之間來回切換。此外,該HFL還適用于支持對像素的鏡像(在每一行的開始和結(jié)束)。
對一種特定的示例應(yīng)用來說,圖2描述使用圖1中所示的方法用于實現(xiàn)可重配置數(shù)字濾波器的頂層微體系結(jié)構(gòu)。圖2的結(jié)構(gòu)裝置包括時鐘發(fā)生器模塊210(圖3中有更詳細的描述);用來控制讀濾波器系數(shù)和裝載濾波數(shù)據(jù)的初始器模塊212(圖4中有更詳細的說明);描述用來產(chǎn)生訪問濾波器系數(shù)的控制信號的CR(系數(shù)-讀取)模塊214(圖5中有更詳細的說明);CRAM(系數(shù)-RAM)存儲器模塊224(圖7中有更詳細的說明);和一個包括數(shù)據(jù)通路模塊228和控制模塊230的中央濾波器宏-模塊(圖8中有更詳細的說明)。
通常,濾波器單元或圖2的裝置響應(yīng)初始器(或“頂層FSM”)模塊212的指令處理數(shù)據(jù),模塊212總是活動的。初始器模塊212命令低層濾波器模塊初始化系數(shù)-讀取和濾波操作。系數(shù)-讀取模塊214為系數(shù)訪問模塊222產(chǎn)生控制信號,并且是負責向數(shù)據(jù)通路模塊228和控制模塊230以及外部耦合設(shè)備產(chǎn)生控制信號的主模塊。因此,系數(shù)-讀模塊214負責讀輸入數(shù)據(jù)、從系數(shù)存儲器讀取系數(shù)、寫出處理過的數(shù)據(jù)、讀入上下文并寫出上下文。
在一個示例性的系統(tǒng)實現(xiàn)中,濾波器單元是由微-程序主控制處理器(MCP)通過對濾波器單元的存儲器-映射控制寄存器(未顯示)進行編程而對其編程的多個功能單元之一。每個單元還有一組輸入和輸出數(shù)據(jù)端口通過“交叉互連網(wǎng)絡(luò)”與一個存儲池相連(因此,這個池中的存儲器也被稱為“互連存儲器”)。與各個數(shù)據(jù)端口相聯(lián)的是由該單元產(chǎn)生的next_location信號;這個信號的任務(wù)是指示存儲體更新它的地址計數(shù)器以用于下一個讀或?qū)懖僮?。這個“next_location”信號對應(yīng)于輸入端口的“next_read”和輸出端口的“next_write”信號。該單元和MCP之間的通信協(xié)議使用兩組信號,每組裝載一對信號。MCP在向該單元的工作存儲器映射輸入輸出(MMIO)寄存器寫入一組數(shù)值后發(fā)送load_conf信號請求該功能單元從工作存儲器裝載它的配置參數(shù)到映像MMIO寄存器。該單元通過發(fā)送conf_loaded信號確認請求以向MCP指示它已經(jīng)為下一個操作序列更新過它的內(nèi)部配置并準備啟動。這時,MCP發(fā)出啟動信號(當然,是在系統(tǒng)中的所有單元都已經(jīng)裝載了它們的配置之后)到該單元,該單元在當前操作序列的末尾通過發(fā)送end_operation信號通知MCP當前操作序列完成。這種采用工作寄存器和映像寄存器的方式允許MCP在(當前處理步驟中的)當前操作序列仍在進行時對(下一個操作步驟的)下一個操作序列編程。這種并發(fā)操作減少了系統(tǒng)延遲。
在一種示例性應(yīng)用系統(tǒng)的環(huán)境中,可以把濾波器單元的基本操作看作是包括下列處理步驟首先(通過基于MCP的MMIO寄存器編程)對濾波器編程以從交叉存儲器中讀取濾波器參數(shù)(注意預(yù)處理步驟用通過對存儲器-接口模塊的基于MCP的編程而從外部存儲器獲得的值裝載交叉存儲器,存儲器-接口模塊不是HFL的一部分但負責從片外SDRAM取出系數(shù)和像素數(shù)據(jù)到片上交叉存儲器)并在一個處理步驟中填充它的內(nèi)部系數(shù)存儲器(圖2中的模塊224),并且在下一個處理步驟中對該單元編程以再次從另一個交叉存儲器讀取實際的視頻數(shù)據(jù)并產(chǎn)生濾波輸出(用濾波器系數(shù)計算)。濾波輸出隨后(通過數(shù)據(jù)-寫端口HFL_OUT上的HFL_next_wr1信號,如圖2中所示)被寫入一個交叉存儲器。根據(jù)處理的狀態(tài),由另一個視頻處理單元對濾波出的數(shù)值進行進一步的處理,或者在適當?shù)母袷睫D(zhuǎn)換和同步插入之后送出片外以顯示在屏幕上。通過HFL_next_read3信號從外部存儲器讀濾波器系數(shù),該信號與系數(shù)-讀取端口HFL_Incoeff(圖2)相關(guān)聯(lián)。對該單元編程以通過HFL_next_read1信號從存儲器讀取實際的視頻數(shù)據(jù),但這時在數(shù)據(jù)-讀端口HFL_IN像素上(圖2)。
其它系統(tǒng)使用特征包括存儲器-讀操作有三個時鐘周期的延遲(從圖5中的狀態(tài)機圖中的等待周期可以明顯地看到這一點)以及存儲器-寫操作有兩個周期的延遲。因為濾波器能夠執(zhí)行按比例放大或縮小,它實質(zhì)上是相對于輸入數(shù)據(jù)改變輸出流;對壓縮來說,濾波器讀取較多的像素但產(chǎn)生較少的輸出,相反的情況就是擴展。如果由MCP編程的話濾波單元還允許上下文切換(從一個視頻行切換操作到另一行)。參考圖2,這可以通過與上下文數(shù)據(jù)的一對專用讀(HFL_Incontext)寫(HFL_OUTcontext)端口相關(guān)聯(lián)的上下文-讀(HFL_next_rd2)和上下文-寫(HFL_next_wr2)信號來實現(xiàn)。
一旦圖2的HFL由外部處理器(例如MCP)通過對HFL的內(nèi)部存儲器映射控制總線(CBUS)寄存器(CREG)的編程而編程,初始器模塊212就檢查CBUS寄存器240以確定它是否是NOP(要求“無操作”),這種情況下初始器模塊212產(chǎn)生一個代碼來指示處理正處在操作結(jié)束(end_of_operation)模式。在OP模式下,初始器模塊212再次讀CBUS寄存器240以確定它是否是COEFFICIENT-READ(系數(shù)-讀取)操作或FILTERING(濾波)操作。對COEFFICIENT-READ操作來說,初始器模塊212指令系數(shù)-讀取模塊214通過第三數(shù)據(jù)輸入242讀取控制系數(shù)并通過系數(shù)訪問模塊222把它們寫入CRAM存儲模塊224。對FILTERING(濾波)操作來說,初始器模塊212指令中央濾波器宏-模塊讀取數(shù)據(jù)和/或上下文輸入上的數(shù)據(jù)和/或上下文。這些輸入在功能-單元數(shù)據(jù)通路模塊228中被乘以適當?shù)南禂?shù)(來自系數(shù)存儲器)以產(chǎn)生需要的輸出,這些輸出被寫入外部HFL存儲器,“XBAR”或在初始器模塊212的管理下通過模塊230與HFL存儲器互連的交叉存儲器。
圖3以擴展形式描述了圖2的時鐘發(fā)生器模塊210。時鐘發(fā)生器模塊210包括幾個時鐘樹門(“CTG”),它們負責產(chǎn)生由圖2中所示其它模塊所用的開啟并適當緩沖(用于正確的平衡)的時鐘信號。對可選的節(jié)能模式來說,第一個CTG310在掃描模式或者在沒有維持可選的降低功耗模式時的非掃描模式中被激活。第一個CTG310供給初始器模塊212(它需要始終保持ON狀態(tài),除非斷電)。CTG310連同CTG312、314、316、318和320一起由信號HFL_top_hold(在需要在降低功耗模式下關(guān)閉HFL的情況下)、HFL_cw_hold(在不寫系數(shù)的情況下關(guān)閉系數(shù)-寫邏輯)、HFL_cr_hold(關(guān)閉從外部存儲器讀取系數(shù)的邏輯)和HFL_f_hold(在因為NOP或因為在當前處理步驟中只讀取系數(shù)而使濾波器數(shù)據(jù)通路無效的情況下)激活,這些信號由電源管理(未顯示)產(chǎn)生。因為頂層狀態(tài)機保持活動并且響應(yīng)三種編程模式(NOP、系數(shù)讀取、濾波器處理)之一,所以CTG312總是處于激活狀態(tài)(除非斷電)。CTG2 312產(chǎn)生供給系數(shù)寫狀態(tài)機(圖5)和相關(guān)的寫邏輯的系數(shù)寫時鐘。當以O(shè)P模式編程HFL時,對系數(shù)讀來說,響應(yīng)時鐘末梢HFL_cr_hold,CTG 314和316也被激活直到操作結(jié)束。當以O(shè)P模式編程HFL時,對濾波操作來說,響應(yīng)時鐘末梢HFL_cr_hold,CTG 318和320也被激活直到操作結(jié)束。只有在適當時間并且只在必要時激活CTG才會影響優(yōu)化動態(tài)電源管理。
圖3描述了用來(從一個主時鐘分支)提供多個時鐘分支的時鐘發(fā)生器模塊,把這些子分支稱作末梢、散開更合適一些,它們由強大的緩沖區(qū)驅(qū)動到不同的邏輯塊/部分。這種分支方法在考慮有限數(shù)量的邏輯中有用,一個時鐘-分支能夠在可接受的周期-變形限制范圍內(nèi)驅(qū)動,這種機制也可用于激活分支提供無效邏輯上的選擇、周期關(guān)閉(取決于濾波模式),并因此節(jié)省電能。
圖4描述了圖2的初始器模塊的功能。初始器模塊212用來管理讀濾波器系數(shù)并裝載濾波數(shù)據(jù),這些動作發(fā)生在不同的處理步驟。初始器模塊212控制影響系數(shù)和數(shù)據(jù)讀以及數(shù)據(jù)寫任務(wù)的模塊(222和230),還控制主要的外部(到HFL但在片上)微程序主控制處理器(例如,MCP)和HFL單元之間的通信協(xié)議。與圖2的模塊210相關(guān)的頂層有限狀態(tài)機(FSM)的狀態(tài)圖是和裝載濾波器系數(shù)以及讀&寫濾波數(shù)據(jù)連同使用的。FSM產(chǎn)生在一個處理步驟中從外部存儲器讀取濾波器系數(shù)的控制信號(goCoeff=1)以及在另一個處理步驟中從外部存儲器讀取濾波輸出的控制信號(goFilter=1)。一旦這個過程結(jié)束(通過Cdone或Fdone為1來判斷),狀態(tài)機返回到空狀態(tài)并一個處理步驟。load_config信號用來通過寄存器中的編程來裝載配置。
如圖4中的狀態(tài)圖部分所描述的,初始器模塊在狀態(tài)418時響應(yīng)接收load_config命令(在來自MCP的觸發(fā)器412上并且僅在由觸發(fā)器410上的啟動命令激活后)而被激活,并且轉(zhuǎn)換到狀態(tài)430或432。觸發(fā)器在這里僅用于定時,以使來自MCP的全局信號(load_config和start信號)并不直接(由此看到大負載并導致慢響應(yīng))驅(qū)動頂-層狀態(tài)機(在片上的多個與HFL類似的視頻處理單元中)但進行注冊而且每個模塊(例如,HFL)中本地注冊的版本驅(qū)動FSM。初始器模塊響應(yīng)接收到start.NOP(即,編程為NOP模式時的start信號)命令轉(zhuǎn)換到狀態(tài)430,并在返回到等待狀態(tài)418之前轉(zhuǎn)換到狀態(tài)432。初始器模塊響應(yīng)接收到start.OP(即,當編程為OP模式時的start信號)命令轉(zhuǎn)換到狀態(tài)434并在濾波器進行重新配置和處理時保持在狀態(tài)434。初始器模塊響應(yīng)接收到終止狀態(tài)(end_condition)或操作結(jié)束信號(end_of_operation)轉(zhuǎn)換到空閑狀態(tài)430,在空閑狀態(tài)中初始器模塊保持空閑直到從讀或?qū)懩K接收到Cdone或Fdone信號并最終接收到load_configuration操作結(jié)束(end_of_operation)信號為止,然后通過空閑狀態(tài)432返回到等待狀態(tài)418。
圖4的初始器模塊212的輸入包括load_config,由MCP提供用于從鏡像裝載配置(控制值)到工作CBUS寄存器(圖2的240)并在裝載之后一個周期取消end_op(操作結(jié)束);start,由MCP提供用于在取消config_loaded輸出信號之后啟動操作;Cdone,由系數(shù)-讀取模塊(圖2中的222)提供用來表示系數(shù)讀取(處理步驟)的結(jié)束;Fdone,由操作模塊(圖2的230)用來表示濾波和數(shù)據(jù)寫操作(一個處理步驟)的結(jié)束,如果編程為這樣的模式它們表示上下文的結(jié)束;HSRC_CTRL[70],由存儲器映射輸入-輸出(“MMIO”)模式控制CBUS寄存器提供用來傳遞控制命令;tfsm_clk,由時鐘模塊(圖2的210)提供給頂層FSM的輸入時鐘;resetBar,用來將初始器模塊212和HFL當作一個整體進行復(fù)位的異步復(fù)位信號(低電平有效)。
圖4的初始器模塊212的輸出包括start_p,注冊并且經(jīng)過圖2的其它模塊的start信號;config_loaded,送往MCP并為濾波器維持配置裝載結(jié)束的信號;end_op,向MCP指示處理完成的信號;goFilter,通知主模塊230的數(shù)據(jù)讀/寫部分啟動讀、處理和寫數(shù)據(jù)的信號;goCoeff,通知系數(shù)-訪問模塊222啟動讀系數(shù)的信號。
圖5描述了用來響應(yīng)來自初始器模塊(圖2的212)的指令產(chǎn)生從存儲器讀取濾波器系數(shù)的控制信號(系數(shù)-讀請求)的系數(shù)-訪問模塊222(圖2)的狀態(tài)表。系數(shù)-訪問模塊222還產(chǎn)生選擇正確的存儲體并向該存儲體寫入系數(shù)的控制信號。系數(shù)訪問模塊222接收下列輸入HSRC_MODE[70],對應(yīng)于8-位MMIO寄存器(未顯示);goCoeff,來自初始器表示系數(shù)讀取操作開始的信號;cfsm_clk,來自時鐘模塊(圖2的210)的輸入時鐘;resetBar,前述異步低電平復(fù)位信號。在一種示例性實現(xiàn)中,圖5的狀態(tài)表描述用來讀入程序設(shè)定數(shù)量(crcounter)的系數(shù)的有窮狀態(tài)機的操作,CWi(i=1到3)等于3表示補償所用系統(tǒng)中3個周期的延遲。
系數(shù)-訪問模塊222產(chǎn)生下列輸出HFL_next_rd3,讀取系數(shù)的讀請求信號;Cdone,向頂層FSM表示系數(shù)讀取完成的讀完成信號;wphi[40],相位計數(shù)器,指定32個相位中正在為其從系數(shù)存儲器讀取或?qū)懭?個系數(shù)的那個相位;bcount[20],是從0增加到7的字節(jié)-計數(shù)信號,該信號還經(jīng)過HFL_coeff_am_block(它包括系數(shù)存儲器)以允許讀取8*8=64位,這64位最終形成特定相位的6個10-位系數(shù)(4位(64-6*10)沒有使用);ldstate,指定FSM處于正確的系數(shù)-裝載狀態(tài)(用于激活HFL_coeff_ram中的實際存儲模塊中的寫操作)。
圖5的狀態(tài)表與系數(shù)讀取FSM-HFL_cread_fsm或CFSM(圖2)有關(guān)—它負責從交叉存儲器讀取需要數(shù)量的系數(shù)值并通過系數(shù)-存儲器寫邏輯(圖2中的模塊222)寫入系數(shù)存儲器(圖2中的模塊224)。請求信號crreq與HFL_next_rd3(來自圖2的214)相同,在開始向系數(shù)存儲器寫入系數(shù)之前(狀態(tài)510)該信號被維持3個周期;因此,一旦在狀態(tài)520中發(fā)出crreq信號,狀態(tài)機就在系數(shù)數(shù)據(jù)開始從存儲器流入之前遍歷三個空閑狀態(tài)540、560和580。狀態(tài)520是穩(wěn)定狀態(tài),在這個狀態(tài)下系數(shù)-讀取狀態(tài)機等待來自頂層狀態(tài)機(圖2的212)的goCoeff信號以啟動它的操作。一旦啟動后,當數(shù)據(jù)在三個時鐘周期的延遲后開始到來時,狀態(tài)機到達系數(shù)-滿狀態(tài)510,在這個狀態(tài)下正確的存儲體已經(jīng)被系數(shù)所充滿。系數(shù)-讀取計數(shù)器(crcounter)被初始化255(要讀取256個系數(shù))并用來在這個狀態(tài)中每個時鐘周期減少計數(shù)。一旦已經(jīng)讀取了所需數(shù)量的系數(shù)(當crcounter的值達到3時,為了解決3個周期的延遲),就產(chǎn)生Cdone標志并且狀態(tài)機跳轉(zhuǎn)到它的空閑狀態(tài)。Cdone標志由頂層狀態(tài)機用來向MCP通知系數(shù)-讀取操作結(jié)束。
注意在32-相位模式中,只寫入每個64-相位存儲體的低或高32-相位。信號wphi(指示寫相位)跟蹤任意半體的當前相位(正在讀或?qū)懴禂?shù)-組的相位),“bcount”(字節(jié)計數(shù))是HFL_coeff_ram中的字節(jié)-激活。另外,在系數(shù)存儲器中每讀或?qū)?個新的10-位系數(shù)(對應(yīng)于一個新的相位)就給wphi加1;用8個10-位讀讀取60個位(每次丟棄讀取的10-位字的最低兩位),其中8*8=64個有用的位形成10個系數(shù)的60位(其余4位不用)并用字節(jié)-激活的8個值(bcount)寫8字節(jié)讀取。信號crcounter在任意時刻跟蹤已經(jīng)發(fā)生的讀取的次數(shù)并被初始化為255以使倒計數(shù)到0時能夠讀取所有256(=32個相位*每個相位的6個系數(shù)的8次讀取)個數(shù)值。
圖6A和6B描述圖2的系數(shù)-存儲器模塊224。圖6A描述系數(shù)-RAM模塊的偏序邏輯,圖6B顯示了從交叉存儲器到存儲器或HFL單元的內(nèi)在系數(shù)RAM(圖2的模塊224)的系數(shù)讀取的通用配置。這些存儲器中有兩個允許先前充滿的一個用于當前處理步驟中的濾波,另一個用于填充。
這個模塊從系數(shù)-讀取FSM(HFL_cread_fsm)獲取多個控制信號并負責在系數(shù)-存儲體中實際寫入系數(shù)。這個模塊中的邏輯也負責讀取濾波操作的每個步驟中所需要的6個系數(shù)。有兩個存儲體,每個能夠存儲64組系數(shù);64個相位中的每個相位有一組6個10-位系數(shù),在一個存儲體用來從濾波操作讀取系數(shù)的同時,可以用不同處理步驟中所用的不同系數(shù)組裝載另一個存儲體。
系數(shù)-存儲器模塊224的輸入包括MMIO寄存器HSRC_CTRL[70]和HSRC_MODE[70];whpi[40]是來自cread模塊的相位計數(shù)器信號,指定32個相位中正在系數(shù)存儲器中為其讀和寫6個系數(shù)的那個相位;bcount[20]是來自cread模塊的字節(jié)-計數(shù)信號,從0增加到7并用于改變到coeff_ram模塊以允許讀取64(8*8=64)位,這64位最終形成特定相位的6個10-位系數(shù)(其余4(64-10*6)位不用);rphi[50]是來自HFL_dp_cntrl的6-位系數(shù)-讀取相位或系數(shù)-讀取地址。主狀態(tài)機部分(圖7)通過重新配置包括系數(shù)讀取、數(shù)據(jù)讀取、數(shù)據(jù)處理、數(shù)據(jù)寫、像素映射、上下文切換等在內(nèi)的多種操作的數(shù)據(jù)通路來控制濾波器操作并且等價于跟蹤當前像素位置的計數(shù)器IFC的分數(shù)部分的6個MSB;clk1是bank1的讀時鐘;clk2是bank2的讀時鐘;clk3是在bank1輸出上的注冊時鐘;clk4是在bank2輸出上的注冊時鐘;resetBar是異步低電平有效復(fù)位信號;HFL_Incoeff[90]是來自XBAR存儲器的信號輸入,其中8個MSB有正確的值;ldstate是來自HFL_cread_fsm布爾值信號,它通告FSM是否處于系數(shù)-裝載狀態(tài)(CFILL)。OUTPUTS是濾波操作的系數(shù)讀取,它由C1、C2、C3、C4、C5、C6[90]表示。
對每個存儲體來說,HFL_coeff_ram例示HFL_coeff_bank,HFL_coeff_bank是包含由存儲發(fā)生器產(chǎn)生的實際存儲實體“m64*64core_shell”的模塊。
參考圖6A和6B,(系數(shù)-存儲器讀/寫)模塊的設(shè)計和操作如下BANK2RD是(來自CREG的)MMIO控制信號,它通過在存儲體的rd_en(讀激活)輸入上確保高電平來在兩個存儲體中選擇一個用于在濾波操作期間讀取系數(shù)(可以向另一個存儲體寫入)。激活為寫入系數(shù)所選的存儲體取決于下列三個條件的同時存在(AND)1)正確的系數(shù)裝載狀態(tài)(來自系數(shù)-讀取FSM);2)由MCP編程進CREG中表示當前處理步驟打算裝載系數(shù)的裝載-系數(shù)(LD COEFF)命令;3)與要寫的存儲體(不是正在讀的那個存儲體,因此它是正在讀取的存儲體的補充或反相位)相連的正確的寫-激活(=1)。一旦一個存儲體的寫狀態(tài)被置位,系數(shù)-讀取狀態(tài)機就開始循環(huán)通過它的狀態(tài),系數(shù)數(shù)據(jù)響應(yīng)crreq(=圖2中的HFL_next_rd3)信號的維持開始在圖2的HFL_Incoeff端口上流入(每個時鐘周期一個數(shù)據(jù))。
寫操作按照如下順序進行1)字節(jié)計數(shù)(圖5中的bcount)從初始值7開始每個時鐘加1;2)根據(jù)bcount設(shè)置字節(jié)-激活(圖6A和6B中的bend)以使正確的子-字節(jié)被寫入存儲體;3)6個10-位系數(shù)的8個字節(jié),bcount從0到7計數(shù),在8個連續(xù)的時鐘周期中被寫入各個地址,這些地址也表示存儲體的相位;4)字節(jié)-計數(shù)每次到達7就繼續(xù)循環(huán),意味著寫完了一個相位的所有6個系數(shù),wphi被初始化為0并與存儲器-寫-地址相連,每次給wphi加1以使與下一個存儲位置由與下一相位值對應(yīng)的系數(shù)開始填充;5)這些步驟重復(fù)進行直到所有256個系數(shù)都被寫入存儲體為止。注意寫地址的最高位是硬布線到CREG WR_HI(如圖6A所示)中以便能夠在任意處理步驟中寫低32相位和高32相位;在所有64個相位的系數(shù)都要寫入到存儲體中的情況下,通過翻轉(zhuǎn)WR_HI的值(由MCP完成)重復(fù)整個過程以使在濾波操作開始前有兩個系數(shù)-讀取處理步驟。
在正常濾波操作過程中,從中讀取系數(shù)的存儲體的讀信號是由BANK2RD CBUS寄存器(0表示讀bank1)的MCP編程而激活的,濾波器是運行32-或64-相位模式取決于PHASE32 CBUS寄存器值。6位存儲器讀地址(圖6A和6B中的c_rd_addr)是由主數(shù)據(jù)通路控制狀態(tài)機模塊(HFL_dp_cntrl)中的像素位置計算確定的讀相位(rphi)的函數(shù);但是如果只有32個相位用于濾波,6-位存儲器-讀地址的最高位是從RD_HI CBUS寄存器獲得的(如圖6A所示);因此,如果PHASE32=0,所有64個相位都用于濾波而且c_rd_addr實際上等于讀相位的所有6位(圖6A中的rphi[5]被多路傳輸進topbit),如果PHASE32=1,c_rd_addr的最高位直接來自RD_HI控制寄存器(其中1意味著高32位地址或所選存儲體的上半部,如果為0則相反)。
圖7描述圖2的主-濾波器可重配置數(shù)據(jù)通路模塊228的示例性實現(xiàn),該模塊負責通用算術(shù)濾波處理功能。模塊700由圖2的HFL_dp_cntrl模塊230控制。連同這個示例性實現(xiàn),圖2的模塊230是用RTL Verilog設(shè)計語言編寫以合成并產(chǎn)生控制和配置可重配置數(shù)據(jù)通路模塊228的電路。模塊230控制從XBAR讀取的輸入-數(shù)據(jù),寫入XBAR的輸出-數(shù)據(jù),從系數(shù)存儲器讀取的系數(shù),從XBAR讀取的上下文,以及寫入XBAR的上下文。這個模塊還根據(jù)濾波類型(例如,多相位直接“PD”、多相位轉(zhuǎn)置“PT”、FIR 11-拍、或者FIR 12-拍)和處理要求(左鏡像、無鏡像、右鏡像、以FIR模式輪回等)為重新配置數(shù)據(jù)通路提供不同的控制信號。除了使用“PD”和“PT”之外,其它縮寫詞包括FIR(11/12),即FIR(11/12)濾波;MLE,即左邊緣鏡像;MRE,即右邊緣鏡像;LDCXT,裝載上下文;SVXT,保存上下文。
模塊230控制數(shù)據(jù)通路的重新配置和操作,它主要是一個帶7種狀態(tài)的有限狀態(tài)機(“FSM”),下面列出了在這些狀態(tài)中發(fā)生的主要事件1)DPCIDLE當下列操作發(fā)生時,如果Fdone信號(來自不同狀態(tài),表示濾波操作完成)為高,當下列操作發(fā)生時取消Fdone并且FSM保持在這個狀態(tài)直到它從頂層FSM接收到goFilter命令-初始化incount和outcount-消耗的輸入像素數(shù)和產(chǎn)生的輸出像素數(shù)-并且MRE=1(在一個圖像行的末尾),根據(jù)濾波類型用要鏡像的像素數(shù)(-1,因為倒計數(shù)仍然是0)初始化右-鏡像計數(shù)器(MCR)。
-如果LDCXT=1,根據(jù)濾波類型用上下文數(shù)值的數(shù)量裝載上下文讀取計數(shù)器,發(fā)送請求讀取上下文,以及FSM跳轉(zhuǎn)到狀態(tài)DPCW1。
-如果MLE=1,根據(jù)濾波器類型用將要鏡像的像素數(shù)(-1,因為倒計數(shù)仍然為0)初始化左-鏡像計數(shù)器(MCL),初始化濾波事件標志(RSVAL),RSVAL的值決定在不寫的情況下移入更多像素或是寫回迄今為止計算出的結(jié)果,初始化位置-和-相位計數(shù)器(IFC),從XBAR請求(通過維持連接到HFL_next_rd1的reqml)鏡像像素(除非PT=1,這時要為鏡像階段保持輸入值)。為PT=1初始化start_write信號為0,因為該信號是在鏡像階段被維持以激活數(shù)據(jù)通路把結(jié)果寫入XBAR。
-如果濾波必須在沒有任何上下文或鏡像動作(即,LDCXT=MLE=0并且硬件必須從它在上一處理步驟中停止的地方開始)的情況下立即啟動,根據(jù)濾波類型初始化控制向數(shù)據(jù)通路寄存器提供像素的多路復(fù)用器的控制信號CR、S1U、S1D、S2U、S3U、S3DAB、S3DC(圖7)而且FSM跳轉(zhuǎn)到狀態(tài)DPCFP。
2.DPCW1如果LDCXT=1,為裝入上下文值正確地設(shè)置多路復(fù)用器控制器(圖7);否則,根據(jù)濾波器類型為左鏡像適當?shù)卦O(shè)置復(fù)用器控制器(除非在PT=1的情況下,設(shè)置已經(jīng)正確)。這是一個延遲狀態(tài)。FSM跳轉(zhuǎn)到DPCW2。
3.DPCW2FSM跳轉(zhuǎn)到DPCW2。這只是一個普通的延遲狀態(tài)。
4.DPCW3如果PD=1,就取消左-鏡像像素請求(reqml),因為該請求對所需要的3個周期(對3周期的延遲來說)已經(jīng)是高電平,并取得所需的3個像素。如果MLE=1,就為已經(jīng)消耗的鏡像像素調(diào)整incount,如果濾波器不是PT模式就維持移位信號以準備數(shù)據(jù)通路向數(shù)據(jù)通路-寄存器移入像素。下一個FSM狀態(tài)是DPCCM。
5.DPCCM如果LDCXT=1,根據(jù)濾波器類型和CC值依次裝入上下文值-IFC(最新和當前像素位置)、RSVAL(先前和當前像素位置之間的差別)、縮放參數(shù)和數(shù)據(jù)通路寄存器內(nèi)容,并在每個周期中更新CC。根據(jù)濾波器類型,也正確地維持和取消移位信號(向數(shù)據(jù)通路寄存器的上半段或下半段移入數(shù)據(jù)值必需的oshifthi和oshiftlo)以裝入上下文值到數(shù)據(jù)通路-寄存器的上半部或下半部(先裝載上半部,然后在中途開始對下半部的裝載和移入)。也在適當時間維持和取消對寄存器值的請求信號(reqc),以便不至于錯誤地增加XBAR存儲器指針。FSM在裝載上下文之后跳轉(zhuǎn)到DPCFP。如果LDCXT=0并且不是PT模式,就在每個周期中減少MCL直到它為0(此時FSM跳轉(zhuǎn)到DPCFP),并根據(jù)鏡像計數(shù)器的值在保持鏡像像素請求(reqml)幾個周期后取消它,保持的周期數(shù)等于需要鏡像的像素數(shù),取消數(shù)據(jù)通路-多路復(fù)用器控制器(S3U),并取消數(shù)據(jù)通路-寄存器移位信號(oshifthi和oshiftlo)。在鏡像完成并且鏡像像素已經(jīng)在數(shù)據(jù)-通路寄存器中之后,(根據(jù)濾波器類型)為濾波操作設(shè)置所有的數(shù)據(jù)通路-多路復(fù)用器控制器。
6.DPCFP這是發(fā)生實際濾波操作的狀態(tài)。在不涉及過多細節(jié)的情況下,在這個狀態(tài)中所進行的操作的基本思想如下到incount和outcount為0為止,同時存在的0值表示處理步驟的結(jié)束,輸出像素的位置和它的相位是連續(xù)計算的。
相位信息用來從系數(shù)存儲器查找系數(shù)。對PD情況(FIR情況與固定相位且縮放比例(zoom)為1的PD類似)來說,按照下列方式更新IFC和RSVALIFC(t)=IFC(t-1)+1/zoom;RSVAL=[IFC(t)-IFC(t-1)]的整數(shù)部分并且在任意時刻均大于0,由來自縮放比例(zoom)寄存器的小數(shù)部分的進位輸出確定(連同圖8描述),遞減RSVAL并移入輸入像素直到RSVAL=0,這時把濾波器輸出寫入XBAR。對PT情況來說,IFC(t)=IFC(t-1)+zoom;RSVAL=[IFC(t)-IFC(t-1)]的整數(shù)部分,只要RSVAL=0就讀取并移入輸入像素直到RSVAL變得大于0為止,然后把濾波器輸出寫入XBAR。在這個狀態(tài)中還通過適當?shù)乜刂歧R像計數(shù)器和數(shù)據(jù)通路-多路復(fù)用器控制器來考慮所有類型濾波器的右鏡像。
在PD模式下需要特殊考慮位置和相位的預(yù)計算(使用信號bflag和RSVALnxt來區(qū)分它和RSVALcur或RSVAL,因為已經(jīng)在這次記錄中用過了它)。在沒有預(yù)計算的情況下,即使在當前位置和相位需要向XBAR寫入濾波過的值時也能夠在不停頓的情況下計算下一個位置和相位,將會丟失一個寫周期。送往XBAR的結(jié)果以及用zoom=0.5這樣處理過的n個像素在最壞的情況下將占用難以接受的2n個周期。
因為數(shù)據(jù)通路是流水操作,通過多個觸發(fā)器將寫入濾波結(jié)果到XBAR的決定作為寫請求傳播出去,以使這個信號在輸出數(shù)據(jù)到達的同時到達XBAR。同樣,通過可變數(shù)量的觸發(fā)器傳播系數(shù)的地址(相位)以及來自系數(shù)存儲器的實際系數(shù),以使乘法器系數(shù)在正確的時間(在解決了XBAR存儲器讀延遲和數(shù)據(jù)通路管道之后)到達數(shù)據(jù)通路。
如果SVCXT=1,設(shè)置數(shù)據(jù)通路-復(fù)用器控制器以使上下文值能夠被寫出并且FSM跳轉(zhuǎn)到DPCCO;FSM在維持end_of_op信號之后返回到它的DPCIDLE狀態(tài)。
7.DPCCO當SVCXT=1時這個狀態(tài)用于上下文輸出。根據(jù)濾波器類型和CC值,在每個周期中更新CC并分配數(shù)據(jù)通路-上下文-輸出-復(fù)用器控制器(CCS)以便寫正確的上下文值。出上下文之后,F(xiàn)SM跳回它的DPCIDLE狀態(tài)。
考慮到這些部件的上述功能,用圖8中所示的水平濾波器800能最好地理解數(shù)據(jù)通路模塊700的細節(jié)。尤其圖8說明了包括數(shù)據(jù)通路和一般描述成圖7的6個結(jié)構(gòu)相似的部分的控制模塊(圖2的224、228和230)的一些明確特性的中央濾波器宏-模塊。水平濾波器800的輸入是沿著HFL_IN像素行810的像素以及沿著HFL_IN系數(shù)行812的濾波器系數(shù)數(shù)據(jù)。像素由數(shù)據(jù)通路820接收,濾波器系數(shù)數(shù)據(jù)由系數(shù)存儲器電路824接收,系數(shù)存儲順地址由電路831提供,電路832-837提供機制來確定當前相位并因此提供在下一時鐘周期中所用的特定系數(shù)組和動作(移入新的輸入像素或者繼續(xù)在不讀入任何新像素的情況下產(chǎn)生下一個輸出)。
數(shù)據(jù)通路820包括6個并行的加法電路,其中一個是820a,供給乘法器級820b。乘法器級820b有6個并行的乘法電路,圖中只顯示了其中一個。6個并行的乘法電路820b的輸出被反饋作為各自安排的加法電路820a的輸入,來自前五個并行加法電路820a的輸出前饋作為下一個并行加法電路820a的累積輸入。最后一個并行加法電路820a是驅(qū)動下一部分中的乘法器級的累加值,下一層的乘法器級的輸出在852線上提供濾波過的/按比例縮放過的水平像素值。一旦用濾波器系數(shù)寫入存儲體856,就能夠通濾波波器數(shù)據(jù)通路在下一個處理步驟中讀取濾波器系數(shù)(以使濾波操作能夠潛在地進行),而現(xiàn)在能夠用一組新系數(shù)值隨意地寫入存儲體858。電路832-837負責更新zoom值并由此更新當前相位(關(guān)于輸入的當前輸出位置)的計算,當前相位決定讀出在隨后的時鐘周期中所用的系數(shù)組的系數(shù)-存儲體地址;這個相位還確定在下一個時鐘周期中將要執(zhí)行的動作(例如,移入新的輸入像素或在不讀入任何新像素的情況下繼續(xù)產(chǎn)生下一個輸出)。每個時鐘周期更新一次zoom值(或它的倒數(shù),取決于所用的多相位濾波器模式)并且增加后的值的小數(shù)部分產(chǎn)生當前相位。計算出的小數(shù)部分(836)和計算出的整數(shù)部分(833)分別存儲在寄存器837和834中。從zoom-更新計算獲得的從小數(shù)部分(837)到整數(shù)部分(834)的進位決定上面提到的動作。寫存儲體858是響應(yīng)HFL_nxt_rd3信號從HFL_Incoefficient信號裝入的。
如圖9所示并與圖8的數(shù)據(jù)通路820符合,用于濾波器運算的數(shù)據(jù)通路配置可以看過有三個主要部分,直接輸入管道910、乘法器級920和累加器930。直接輸入管道910準備送往乘法器的值(在這個例子中也叫作“直接輸入管道”)。乘法器級920是一級乘法器電路,它把系數(shù)乘以來自直接輸入管道910的倍數(shù)值。累加器930實現(xiàn)乘法和累積的6個結(jié)果的總和。
圖9的直接輸入管道910適合處理12個像素值并為對稱FIR應(yīng)用執(zhí)行加法。通過圖10的輸入管道結(jié)構(gòu)描述了直接輸入管道的一個更詳細的示例性實現(xiàn)。在圖10中,像素值存儲在12個不同的寄存器中。本質(zhì)上,6級中的每一級包括適合將觸發(fā)器1010和1012各自的輸出相位加的加法器1002。觸發(fā)器1010和1012各自的輸出與根據(jù)濾波器的配置選擇的端口相連。每個加法器還接收從上一級接收到的輸入。
圖11描述了怎樣配置圖10的這12個寄存器以連接到加法器,而隨后的三個附圖(圖12-14)描述按照1/z整數(shù)寄存器(圖8的834)的增量的定義移入新像素時的數(shù)據(jù)流;如果沒有移入新像素,每個寄存器保持它最近的值(圖11中未顯示)。在12-拍對稱FIR配置的情況下,每個寄存器簡單地連接到前一個寄存器,如圖11所示。在11-拍對稱FIR配置的情況下,兩個寄存器A和AA(在圖12中用數(shù)字表示為1230和1232)接收相同數(shù)值,以使在用移入的超過11個的像素的數(shù)據(jù)初始化管道之后,這兩個寄存器中存儲數(shù)值in[pos+5]。因而,6個加法器(圖12的1207)的輸出仍然是in[pos+5];這在算術(shù)上符合X+X>>1=X的關(guān)系。
圖13描述了在6-拍多相位濾波器的情況下怎樣配置圖12的這12個寄存器。在這種配置下并且使用與上述相同的屬性,每個移進的數(shù)值都存儲在兩個寄存器中而且這兩個寄存器都連接到相同的加法器。
現(xiàn)在參考圖7的數(shù)據(jù)通路,功能單元包含數(shù)據(jù)通路特性HFL_dp_slice1(1次),HFL_dp_slice2(2次),HFL_dp_slice3(3次)和HFL_dp_slice4(1次),其中第4片段對應(yīng)于圖7中所示的電路而不是6個片段711到716的電路。為了有可重用代碼,每一片段中的大部分電路是對6個片斷711到716中的每一個都公用的設(shè)計;通過片斷713中所示除多路復(fù)用器718之外的的所有電路簡化了這種等效電路(在每個片斷內(nèi)部初始化的“HFL_dp_common”)。
如同上面圖10-13連同描述的那樣,圖7的數(shù)據(jù)通路有12個觸發(fā)器(“FF”)的可重配置連接。這個可重配置是基于濾波器的類型和當前操作類型(上下文讀取、濾波和上下文保存)。通過對到多個關(guān)鍵多路復(fù)用器的選擇信號的適當選擇可以影響FF的重新配置。數(shù)據(jù)通路控制器FSM(帶有前面描述過的7個狀態(tài))負責在正確的時間產(chǎn)生正確的控制信號。
能夠理解圖7中所描述的每個FF實際上是基于FF并且有頂部FF部分和底部FF部分的電路,每個FF部分是用shifthi和shiftlo信號分別單獨裝載的。頂部和底部FF的輸入由多路復(fù)用器(連接到S*,即圖7中的S1U、S1D、S2U等)并且被實際實現(xiàn)成了多路復(fù)用器FF,其中多路復(fù)用器(未顯示)實際上是由shifthi和shiftlo信號控制。圖14和15描述了在圖7的可重配置電路裝置中所用的結(jié)構(gòu)相信的“片斷”電路各自的頂部和底部的多路復(fù)用器(“mux”)裝置。
在討論圖7的特定附加特性和方面之前,已經(jīng)按照順時針方向從1到12標注12個觸發(fā)器,上面一行最左邊的FF標為1,上邊一行最右邊的FF標為6,第2行最右邊的FF標為7,第2行的最左邊FF標為12。此外,在下面的討論中,第i個FF被稱為FFi,i是從1到12的整數(shù)。
1.用字母a、b、c…、f標記的線條表示對特定情形數(shù)據(jù)流過的地方,例如,“ae”意思是在“a”(多相位直接)和“e”(在一條線的開始鏡像)的情況下有效。在圖7的右上角給出了對這些字母的解釋。
2.FIR在一條線的開始鏡像,例如,在多相位直接情況下,主動性主的前三個像素數(shù)值不僅應(yīng)該輸入FF 1到3,還應(yīng)該以反序輸入FF 4到6;這提供了p3p2p1p1p2p3模式,其中pi表示讀入的第i個像素。這種模式是通過編程(從數(shù)據(jù)通路-控制狀態(tài)機)多路復(fù)用器選擇CR=0(以使LINE IN通過)、S1U=1、S2U=0和S3U=1(以使FF1、FF2和FF3被連接成移位寄存器方式而且讀入的3個像素僅移過(像p3、p2、p1),而無論什么移進FF1、FF2和FF3,也都按順序分別移進FF6、FF5和FF4以便實現(xiàn)鏡像。
3.在上述模式中,較低的FF(7到12)應(yīng)該和頂部FF(6到1)有相同的值。這個目標是通過對多路復(fù)用器選擇編程為S1D=S2D=S3DAB=S3DC=0而實現(xiàn)的。和能夠看到的一樣,這種機制把較低的FF的多路復(fù)用的輸入和頂部FF的輸入綁在一起以使頂行和底行FF移入相同的值。
4.為了在一行的末尾鏡像,頂行的前3個(1到3)FF接收和后3個(4到6)FF一樣的值,但方向相反。因此,S1U被編程為0并且隨后被EMS適當?shù)馗淖?每個時鐘周期)以使反饋路徑以和FF 6到4中相同的值填充FF 1到3。
5.信號“RND”是多路復(fù)用器二進制選擇信號,當其為真時通過提供向加法器的數(shù)字1的進位而允許循環(huán)。
6.在多相位轉(zhuǎn)置濾波模式中,PT=1,乘法器前面的多路復(fù)用器選擇直接來自LINE IN的乘法器數(shù)據(jù),乘法器輸出(不同的系數(shù)乘以相同的輸入)被送往加法器以便對它們進行累加并存儲在器中。在每個片段中形成一對的頂部和底部寄存器用來存儲累加和的高精度值。但是對所有其它模式來說PT=0;因此,一個片斷中每對頂部和底部寄存器的內(nèi)容首先被加和右移,然后乘以系數(shù)。因此,來自數(shù)據(jù)通路控制FSM的適當?shù)目刂菩盘栐试S根據(jù)濾波模式有不同的算術(shù)操作順序在PT模式中先乘后加,否則先加后乘。
因此,可以實現(xiàn)本發(fā)明的多種實施方案來提供有多種濾波模式硬件可重配置數(shù)字濾波器,濾波模式包括從(但并不局限于)多相位直接、多相位轉(zhuǎn)置、FIR 11-拍和FIR 12-拍組成的的集合所選取的組合。上述不同實施方案僅僅通過說明而提供的,不能理解為限制本發(fā)明。根據(jù)上面的論述和說明,本領(lǐng)域的專家應(yīng)該能夠認識到可以在不必嚴格遵循這里所說明和描述的示例性實施方案和應(yīng)用的情況下對本發(fā)明做出多種更改和變動。這些更改和變動不能偏離下面的權(quán)利要求中所闡明的本發(fā)明的真實精神和范圍。
權(quán)利要求
1.一種有多個濾波模式的硬件可重配置數(shù)字濾波器包括適用于處理與輸入數(shù)據(jù)對應(yīng)的數(shù)據(jù)的邏輯電路(100),該邏輯電路包括一個X*Y的寄存器陣列(112),該陣列使用線性排列的寄存器支持至少一種第一濾波模式,使用非線性排列的寄存器支持至少一種第二濾波模式,其中X和Y至少為2;計算電路(114),適用于響應(yīng)邏輯電路執(zhí)行計處,包括至少Y個乘法邏輯電路和至少Y個加法邏輯電路;模式選擇電路(110),適用于在多種濾波模式這間切換數(shù)字濾波器。
2.權(quán)利要求1中的硬件可重配置數(shù)字濾波器,其中邏輯電路和計算電路是可配置的(圖7),響應(yīng)模式選擇電路執(zhí)行下列濾波模式中的至少兩種多相位直接、多相位轉(zhuǎn)置、有限脈沖響應(yīng)11-拍以及有限脈沖響應(yīng)12-拍。
3.權(quán)利要求1中的硬件可重配置數(shù)字濾波器,其中響應(yīng)模式選擇電路,沿著Y軸方向的每個乘法和加法邏輯電路(圖7)有適用于重新配置沿著Y-軸方向的乘法和加法邏輯電路的重配置電路,第一濾波模式支持一種脈沖響應(yīng)濾波模式,第二濾波模式支持一種多相位濾波模式和另一種脈沖響應(yīng)濾波模式。
4.權(quán)利要求1的硬件可重配置數(shù)字濾波器,其中邏輯電路和計算電路是可重新配置以下列濾波模式之一進行操作多相位直接濾波模式、多相位轉(zhuǎn)置濾波模式和FIR濾波模式。
5.權(quán)利要求4的硬件-可重配置數(shù)字濾波器,其中模式選擇電路適用于在多相位轉(zhuǎn)置濾波模式和另一種濾波模式之間切換數(shù)字濾波器。
6.權(quán)利要求5的硬件-可重配置數(shù)字濾波器,其中模式選擇電路包括第一選擇電路和第二選擇電路,第一選擇電路適用于把數(shù)字濾波器切換到多相位轉(zhuǎn)置濾波模式,第二選擇電路適用于把數(shù)字濾波器在非多相位轉(zhuǎn)置的其它濾波模式之間切換。
7.權(quán)利要求6的硬件-可重配置數(shù)字濾波器,其中第一選擇電路適用于重新配置計算電路,第二選擇電路適用于重新配置邏輯電路。
8.權(quán)利要求6的硬件-可重配置數(shù)字濾波器,其中非多相位轉(zhuǎn)置的濾波模式包括多相位直接濾波模式和兩種FIR濾波模式,其中一種FIR濾波模式比另一種FIR濾波模式包括更多拍。
9.權(quán)利要求1的硬件-可重配置數(shù)字濾波器,其中邏輯電路和計算電路可配置用來支持保存并裝載上下文切換的視頻數(shù)據(jù)并在多個長輸入行之間來回切換。
10.權(quán)利要求1的硬件-可重配置數(shù)字濾波器,其中陣列中的多個寄存器被調(diào)整成沿著Y寄存器的排列定義的坐標軸方向上劃分成片斷的電路。
11.權(quán)利要求1的硬件-可重配置數(shù)字濾波器,其中陣列中第一組多個寄存器中的每個寄存器都被調(diào)整為沿著由Y寄存器的隊列定義的坐標軸上第一個劃分成片斷的電路,陣列中第二組多個寄存器中的每一個被調(diào)整為沿著由Y寄存器的隊列定義的方向上第二個劃分成片斷的電路。
12.一種有多個濾波模式的硬件-可重配置數(shù)字濾波器包括邏輯電路,適用于處理和鏡像對應(yīng)于與視頻圖像段中選中的目標結(jié)點對應(yīng)的數(shù)據(jù)點有關(guān)的濾波器輸入的數(shù)據(jù),該邏輯電路包括一個X*Y的寄存器陣列,其中Y大于等于X,X至少為2;計算電路,適用于響應(yīng)邏輯電路執(zhí)行計算并且包括至少Y個乘法邏輯電路和至少Y個加法邏輯電路;模式選擇電路,適用于通過配置邏輯電路和計算電路控制數(shù)字濾波器為多相位轉(zhuǎn)置濾波模式以便用線性陣列中的寄存器處理數(shù)據(jù),以及通過配置邏輯電路和計算電路控制數(shù)字濾波器為另一種濾波模式以便用非線性陣列中的寄存器處理數(shù)據(jù)。
13.權(quán)利要求12中的硬件-可重配置數(shù)字濾波器,其中陣列中的多個寄存器被調(diào)整成片斷的電路。
14.權(quán)利要求12中的硬件-可重配置數(shù)字濾波器,其中陣列中的多個寄存器被調(diào)整成沿著由Y寄存器的隊列定義的方向上的劃分成片斷的電路。
15.權(quán)利要求12中的硬件-可重配置數(shù)字濾波器,其中陣列中的第一組多個寄存器中的每個寄存器都被調(diào)整為沿著由Y寄存器的隊列定義的坐標軸上的第一組劃分成片斷的電路,陣列中的第二組多個寄存器中的每個寄存器都被調(diào)整為沿著由Y寄存器的隊列定義的坐標軸上的第二組劃分成片斷的電路。
16.權(quán)利要求12中的硬件-可重配置數(shù)字濾波器,其中X等于2,Y不小于6,而且其中的多種濾波模式包括多相位轉(zhuǎn)置濾波模式、多相位直接濾波模式和兩種FIR濾波模式,其中一種FIR濾波模式比另一種包括更多拍。
17.權(quán)利要求16的硬件-可重配置數(shù)字濾波器,其中一種FIR濾波模式包括12拍。
全文摘要
一種硬件-可重配置數(shù)字濾波器適用于提供多種濾波模式。在一種實施方案中,該數(shù)字濾波器包括一個廳于寄存器的邏輯電路、計算電路和模式選擇電路的陣列。通過在邏輯電路和計算電路范圍內(nèi)重新配置數(shù)據(jù)流,模式選擇電路能夠在多種不同的濾波模式之間切換數(shù)字濾波器。每個乘法和加法邏輯電路都有輸出和輸入,這些輸出和輸入用響應(yīng)配置寄存器為功能線性或功能非線性的模式選擇電路的選擇信號有選擇地耦合到沿著Y方向的另一個加法和乘法邏輯電路。在一個更明確的實施方案中濾波模式包括多相位直接濾波、多相位轉(zhuǎn)置濾波和至少一種通用濾波。上述類型的數(shù)字濾波器的明確的示例實施方案用于濾波視頻像素內(nèi)容,例如重新調(diào)整一個水平行的像素。
文檔編號H03H17/02GK1463490SQ02801976
公開日2003年12月24日 申請日期2002年5月28日 優(yōu)先權(quán)日2001年5月31日
發(fā)明者S·杜塔, D·莫爾特 申請人:皇家菲利浦電子有限公司