两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

使用蝶形處理器對離散余弦變換編碼和計算的設備和方法

文檔序號:6357188閱讀:225來源:國知局
專利名稱:使用蝶形處理器對離散余弦變換編碼和計算的設備和方法
背景技術
發(fā)明領域本申請要求2001年5月16日提出的美國臨時專利申請第60/291,467號的優(yōu)先權利益,這里通過完整的引用將該專利加入于此。本發(fā)明涉及數(shù)字信號處理。尤其,本發(fā)明涉及一種設備和方法,用于確定經(jīng)編碼的數(shù)據(jù)塊的變換。
現(xiàn)有技術的描述在數(shù)字信號處理的一般學科中,數(shù)字圖片處理具有突出的位置。人類視覺感覺的重要性已經(jīng)在本技術領域和數(shù)字圖片處理的科學中鼓動了極大的興趣和進步。在發(fā)送和接收視頻信號的領域中,諸如那些用于放映影片或電影的那些領域中,正在對圖像壓縮技術作出各種改進。許多當前的和建議的視頻系統(tǒng)都使用數(shù)字編碼技術。這個領域的一些方面包括圖像編碼、圖像恢復以及圖像特征選擇。圖像編碼表示嘗試以有效的方式發(fā)送數(shù)字通信信道的圖片,使之使用盡可能少的比特數(shù)以使所需要的帶寬最小,同時使失真維持在某個范圍內。圖像恢復表示努力再現(xiàn)目標的真實圖像。在通信信道上發(fā)送的經(jīng)編碼的圖像可能由于各種因素而失真。降級的根源可能起因于從目標產(chǎn)生原始圖像。特征選擇是指對圖片的某些屬性的選擇。這些屬性在識別、分類和在更寬背景中的判決中可能需要。
諸如在數(shù)字電影中的那些視頻的數(shù)字編碼是從改進的圖像壓縮技術得益的一個領域。一般可以把數(shù)字圖像壓縮分成兩類無損方法和有損方法。無損圖像被恢復不會喪失任何信息。有損方法涉及根據(jù)壓縮比、壓縮算法質量以及算法的實施,某些信息喪失而不可恢復。一般,考慮有損壓縮方法以得到成本有效的數(shù)字電影方法所要求的壓縮比。為了達到數(shù)字電影質量水平,壓縮方法應該提供視覺上無損的性能水平。如此,雖然作為壓縮過程的結果存在數(shù)學上的信息損失,但是由這個損失產(chǎn)生的圖像失真對于正常觀看條件下的觀看者應該是覺察不到的。
已經(jīng)為其它應用發(fā)展了現(xiàn)有的數(shù)字圖像壓縮技術,即,用于電視系統(tǒng)。這種技術已經(jīng)使設計對于指定的應用適當?shù)卣壑?,但是不符合電影呈現(xiàn)所要求的質量要求。
數(shù)字電影壓縮技術應該提供看電影者以前已經(jīng)經(jīng)歷的視覺質量。理想地,數(shù)字電影的視覺質量應該嘗試超過高質量的發(fā)行復制片(print film)。同時,壓縮技術應該具有實用的高的編碼效率。如這里所定義,編碼效率是指符合某個定性水平的壓縮圖像質量所需要的比特率。此外,系統(tǒng)和編碼技術應該具有內在的靈活性以適應不同的格式,并且應該是成本有效的,即,小的尺寸和有效的解碼器和編碼器處理。
能夠提供顯著的壓縮水平同時保留所要求的質量水平的一種壓縮技術是利用被編碼的離散余弦變換(DCT)系數(shù)數(shù)據(jù)的自適應大小的塊以及子塊。雖然作為一種數(shù)字壓縮方法的DCT技術正得到廣泛的接受,但是有效的硬件實施是有困難的。
發(fā)明概要本發(fā)明提供自適應塊大小的DCT編碼數(shù)據(jù)的硬件實施。一種設備,用于確定經(jīng)編碼數(shù)據(jù)的塊的變換,經(jīng)編碼數(shù)據(jù)的塊包括多個數(shù)據(jù)元素。配置輸入寄存器以接收預定數(shù)量的數(shù)據(jù)元素。把至少一個蝶形處理器耦合到輸入寄存器,并配置成對所選擇的一對數(shù)據(jù)元素上執(zhí)行至少一種數(shù)學運算,以產(chǎn)生經(jīng)處理的數(shù)據(jù)元素的輸出。把至少一個中間寄存器耦合到蝶形處理器,并配置成臨時存儲經(jīng)處理的數(shù)據(jù)。把反饋回路耦合到中間寄存器和蝶形處理器,如果啟用的話,配置成把經(jīng)處理的數(shù)據(jù)元素的第一部分傳遞到合適的蝶形處理器以執(zhí)行附加的數(shù)學運算,如果禁用的話,配置成把經(jīng)處理的數(shù)據(jù)元素的第二部分傳遞到至少一個保持寄存器。
因此,一個實施例的一個方面是提供一種處理器,所述處理器有效地執(zhí)行離散余弦變換(DCT)和離散四元樹變換(DQT)技術。
一個實施例的另一個方面是提供一種處理器,所述處理器有效地執(zhí)行離散余弦反變換(IDCT)和離散四元樹反變換(IDQT)技術。
一個實施例的另一個方面是實施一種處理器,所述處理器的靈活性在于可以重新配置相同的硬件元件以計算在相同變換網(wǎng)格網(wǎng)格(trellis)中的不同數(shù)學運算。
一個實施例的另一個方面是提供一種圖像處理器,所述圖像處理器保持高質量圖像同時使圖像失真最小。
一個實施例的另一個方面是并行地處理經(jīng)編碼數(shù)據(jù)的各部分。
一個實施例的另一個方面是在單個時鐘周期中處理讀、寫和蝶形操作。
一個實施例的另一個方面是提供和實施一個控制序列發(fā)生器,所述控制序列發(fā)生器具有可變性,以控制數(shù)據(jù)的不同塊大小以及保持實時處理所需要的速度。
一個實施例的另一個方面是實施一種處理器,使得把處理器配置成在可變的塊大小上操作。
附圖簡述從下面結合附圖的詳細描述中,對本發(fā)明的方面、特性、目的和優(yōu)點將更為明了,在所有的附圖中,用相同的標記作相應的識別,其中

圖1a和1b是數(shù)據(jù)塊的列和行處理的方框圖;圖2a是方框圖,說明通過編碼過程的數(shù)據(jù)流;圖2b是方框圖,說明通過解碼過程的數(shù)據(jù)流;圖2c是方框圖,說明涉及在基于方差的塊大小分配中的處理步驟;圖3是方框圖,說明實施本發(fā)明的一種設備,用于計算諸如離散余弦變換(DCT)和離散量化變換(DQT)之類的變換;圖4說明通過圖3的設備實施的DCT網(wǎng)格結構;圖5說明通過圖3的設備實施的IDCT網(wǎng)格結構;圖6說明具有輸入和輸出多路復用器的單個蝶形處理器;圖7說明寫入多路復用器的方框圖;圖8示出蝶形處理器的方框圖;圖9a說明圖8的蝶形處理器可以執(zhí)行的否定操作配置;圖9b說明圖8的蝶形處理器可以執(zhí)行的累加操作配置;圖9c說明圖8的蝶形處理器可以執(zhí)行的蝶形DCT操作配置;圖9d說明圖8的蝶形處理器可以執(zhí)行的蝶形IDCT操作配置;圖9e說明圖8的蝶形處理器可以執(zhí)行的累加寄存器操作配置;圖9f說明圖8的蝶形處理器可以執(zhí)行的DQT/IDQT操作配置;圖10說明流程圖,示出實施本發(fā)明的一種過程,用于計算諸如離散余弦變換(DCT)和離散量化變換(DQT)之類的變換;圖11a說明示例塊大小分配;圖11b說明對于圖11a的塊大小分配的對應的四元樹分解;以及圖11c說明對于圖11a的塊大小分配的對應的PQR數(shù)據(jù)。
較佳實施例的詳述為了便于數(shù)字信號的數(shù)字發(fā)送和享受到相應的利益,一般需要使用某些形式的信號壓縮。為了在所產(chǎn)生的圖像中得到高分辨率,保持圖像的高質量也是很重要的。此外,對于小型硬件實施,希望計算效率,這在許多應用中是很重要的。
因此,諸如傅里葉變換、小波以及離散余弦變換(DCT)之類的空間頻域技術一般滿足上述準則。DCT具有能量緊縮能力,以及在信號的去相關中趨近統(tǒng)計的最優(yōu)化變換。開發(fā)有效實施DCT的各種算法進一步對它的主流可應用性作出了貢獻。這些算法的減少和計算復雜性以及它的遞歸結構導致更簡化的硬件方案。DCT一般是正交的和可分開的。DCT是正交的這個事實暗示在變換下保留了信號的能量或信息;即,映射到DCT域。DCT是可分開的這個事實暗示可以通過一系列一維DCT來實施多維DCT。因此,可以對于一維DCT開發(fā)較快的算法,并且直接擴展到多維變換。
在DCT中,把一個象素塊變換成頻域中的系數(shù)的相同大小的塊?;旧?,變換把一個象素塊表示為正交基圖像的線性組合。系數(shù)的量值表示象素塊和基圖像的相似程度。
一般,要在數(shù)字域中處理的圖像包括分成大小為N×N的非重疊塊的陣列的象素數(shù)據(jù)。在每個塊上可以執(zhí)行兩維DCT。通過下列關系式定義兩維DCTX(k,l)=α(k)β(l)NΣm=0N-1Σn=0N-1x(m,n)cos[(2m+1)πk2N]cos[(2n+1)πl2N].0≤k,l≤N-1]]>其中 以及x(m,n)是在N×M塊中的象素位置(m,n),以及X(k,l)是對應的DCT系數(shù)。
由于象素值是非負的,所以DCT分量X(0,0)始終是正的,并且通常具有最多能量。事實上,對于一般圖像,分量X(0,0)周圍集中了大多數(shù)變換能量。這個能量緊縮特性使DCT技術成為如此吸引人的一種壓縮方法。
已經(jīng)觀察到,大多數(shù)自然圖像是由平坦的變化相當慢的區(qū)域和諸如目標邊界和高對比度紋理之類的快變化區(qū)域構成的。對比度自適應編碼方案通過把更多位分配給快變化區(qū)域和較少位分配給較少變化區(qū)域而利用了這種因素的優(yōu)點。在已轉讓給本發(fā)明的受讓人、并在此引用作為參考的、題為“Adaptive BlockSize Image Compression Method and System”的美國專利第5,021,891號中、在已轉讓給本發(fā)明的受讓人、并在此引用作為參考的、題為“Adaptive BlockSize Image Compression Method and System”的美國專利第5,107,345號中揭示了這種技術。此外,在題為“Adaptive Block Size Image CompressionMethod and System”的美國專利第5,452,104號中揭示了結合差分四元樹變換技術的ABSDCT技術的使用,該專利也已轉讓給本發(fā)明的受讓人,并在此引用作為參考。在這些專利中描述的系統(tǒng)使用所謂的“幀內”編碼,其中對圖像數(shù)據(jù)的每個幀進行編碼而不管任何其它幀的內容。使用ABSDCT技術,可以大大地降低可得到的數(shù)據(jù)速率而圖像質量沒有可察覺的降級。
使用ABSDCT,一般把視頻信號分段成為用于處理的幀和象素的塊。DCT操作符是把按時間取樣的信號變換成相同信號的頻率表示的一種方法。通過變換成頻率表示,已經(jīng)示出DCT技術允許很高的壓縮程度,因為可以設計成利用圖像的頻率分布特征優(yōu)點的量化器。在一個較佳實施例中,把一個16×16 DCT施加于第一排序,把四個8×8 DCT施加于第二排序,把16個4×4 DCT施加于第三排序,以及把64個2×2 DCT施加于第四排序。
為了圖像處理的目的,對分割成不重疊塊的陣列的象素數(shù)據(jù)執(zhí)行DCT操作。注意,雖然這里以N×N的大小來討論塊的大小,但是預見可以使用各種各樣的塊大小。例如,可以使用N×M塊大小,其中N和M兩者都是整數(shù),M可以大于或小于N。另一個重要方面是可以把塊分割成至少一個層次的子塊,諸如N/ixN/i、N/ixN/j、N/ixM/j以及等等,其中i和j是整數(shù)。此外,這里討論的示例塊大小是DCT系數(shù)的相應的塊和子塊的16×16象素塊??梢赃M一步預見,可以使用諸如偶整數(shù)或奇整數(shù)之類的各種其它整數(shù),例如,9×9。
可以把彩色信號從RGB空間變換到YC1C2空間,其中Y是輝度分量,或亮度分量,而C1和C2是色度分量或彩色分量。因為眼睛對于彩色的空間靈敏度較低,許多系統(tǒng)在水平和垂直方向上通過一個為四的因子對C1和C1分量進行子取樣。然而,子取樣不是必需的。已知為4∶4∶4格式的全分辨率圖像在諸如稱之為覆蓋數(shù)字攝像機之類的某些應用中可以是極有用的或是必需的。兩種可能的YC1C2表示為YIQ表示和YUV表示,兩者都是本技術領域中眾知的。使用已知為YCbCr的、YUV表示的一種變型也是可能的。
圖1a和1b示出經(jīng)編碼數(shù)據(jù)100和120的N×N塊的列和行處理。可以執(zhí)行N維變換作為N個一維變換的級聯(lián)。例如,執(zhí)行2×2 DCT作為兩個一維DCT處理的級聯(lián),首先在每個列上操作,然后在每個行上操作。首先處理第一列m(124),接著處理列m+1(108),接著列m+2(112),依次類推直到列n(116)。在處理列之后,處理行120,如在圖1b中所示。首先處理行m(124),接著處理行m+1(128),接著行m+2(132),依次類推直到行n(136)。
相似地,另一個例子可以是需要IDCT處理的8×8數(shù)據(jù)塊??梢园?×8塊分解成四個兩維IDCT。然后可以用相對于圖1a和1b描述的兩維DCT方式的相同方式來處理每個兩維IDCT。
圖2a說明編碼過程期間的經(jīng)編碼數(shù)據(jù)流的方框圖250。在編碼過程中,把經(jīng)編碼數(shù)據(jù)從象素域變換到頻域。圖2b說明通過解碼過程的經(jīng)編碼數(shù)據(jù)流的方框圖254。在解碼過程中,把經(jīng)編碼數(shù)據(jù)從頻域變換到象素域。如在編碼過程250中所示,首先執(zhí)行經(jīng)編碼數(shù)據(jù)的塊大小分配(BAS)(258)。在實施例的一個方面,處理Y、Cb和Cr分量中的每一個而無需子取樣。因此,把16×16象素塊的輸入提供給塊大小分配單元258,它執(zhí)行塊大小分配,準備用于視頻壓縮。
塊大小分配單元258根據(jù)塊中圖像的感知特征來確定塊的分解。塊大小分配根據(jù)16×16塊中的活動性按四元樹方式把每個16×16塊子分割為較小的塊。塊大小分配單元258產(chǎn)生稱之為PQR數(shù)據(jù)的四元樹數(shù)據(jù),它的長度可以在1和21比特之間。因此,如果塊大小分配確定要分割16×16塊,則設置PQR數(shù)據(jù)的R比特,接著是對應于四個經(jīng)分割的8×8塊的Q數(shù)據(jù)的四個附加的比特。如果塊大小分配確定要對任何8×8塊進行子分割,則對于每個經(jīng)子分割的8×8塊添加P數(shù)據(jù)的四個附加比特。
把數(shù)據(jù)分割成諸如2×2、4×4、8×8和16×16之類的塊大小。然后編碼數(shù)據(jù)處理器執(zhí)行經(jīng)編碼數(shù)據(jù)(262)的變換(DCT/DQT),如相對于圖3所描述。在完成DCT/DQT過程262之后,在經(jīng)編碼數(shù)據(jù)上執(zhí)行量化過程(QB)266。這完成了經(jīng)編碼數(shù)據(jù)從象素域到頻域的變換。
在一個實施例中,使用頻率加權掩碼(FWM)以及量化標度因子使DCT系數(shù)量化。FWM是與輸入DCT系數(shù)的塊的維數(shù)相同的頻率權重的一個列表。頻率權重把不同的權重施加于不同的DCT系數(shù)。設計權重來突出具有人類視覺系統(tǒng)更敏感的頻率內容的輸入取樣,并且使具有視覺系統(tǒng)不敏感的頻率內容的取樣不突出。還可以根據(jù)諸如觀看距離之類的因素來設計權重。
從圖像的測量統(tǒng)計值或理論統(tǒng)計值來設計哈夫曼碼。已經(jīng)觀察到,大多數(shù)自然圖像是由單調的或變化相當慢的區(qū)域和諸如目標邊界和高對比度紋理之類的快變化區(qū)域構成的。具有諸如DCT之類的頻域變換的哈夫曼編碼器通過把更多位分配給快變化區(qū)域和把較少位分配給單調區(qū)域而利用這些特征。一般,哈夫曼編碼器使用查找表對游程長度和非零值進行編碼。
根據(jù)經(jīng)驗數(shù)據(jù)來選擇權重。在國際標準組織,1994年的“Digitalcompression and encoding of continuous-tone still image-part 1Requirements and guidelines”,ISO/IEC JTCT CD10918中,揭示了用于設計8×8 DCT系數(shù)的加權掩碼的一種方法,這里引用該文作為參考。一般,設計兩個FWM,一個用于亮度分量,而一個用于色度分量。通過抽選得到用于塊大小2×2、4×4的FWM表格,以及通過對于8×8塊的內插得到16×16。標度因子控制經(jīng)量化的系數(shù)的質量和比特率。
因此,根據(jù)關系式量化每個DCT系數(shù) 其中DCT(i,j)是輸入DCT系數(shù),fwm(i,j)是頻率加權掩碼,q是標度因子以及DCTq(i,j)是經(jīng)量化的系數(shù)。注意,根據(jù)DCT系數(shù)的符號,使在括號內的第一項向上或向下舍入(round up and down)。還使用合適的加權掩碼使DQT系數(shù)量化。然而,可以使用多個表格或掩碼,并施加于Y、Cb和Cr分量中的每一個。
把經(jīng)量化的系數(shù)提供給之字形掃描串行器268。串行器268按之字形方式對經(jīng)量化的塊進行掃描,以產(chǎn)生經(jīng)量化的系數(shù)的串行化流??梢赃x擇許多不同的之字形掃描圖案,以及不同于之字形的圖案。一種較佳技術使用8×8塊大小的之字形掃描,雖然可以使用諸如4×4或16×16之類的其它大小。
注意,可以把之字形掃描串行化器268放置在量化器266的前面或后面。凈結果是相同的。
在任何情況中,把經(jīng)量化的系數(shù)流提供給可變長度編碼器269??勺冮L度編碼器269可以使用后面跟著編碼的零游程長度編碼。在所述美國專利申請第5,021,891、5,107,345和5,452,104號以及這里引用作為參考和這里概括的未決的美國專利申請第<000163>號中詳細討論這種技術。游程長度編碼器取得經(jīng)量化的系數(shù),并相對于不連續(xù)系數(shù)標注出連續(xù)系數(shù)的游程。把連續(xù)值稱為游程長度值,并進行編碼。對于不連續(xù)值進行分開編碼。在一個實施例中,連續(xù)系數(shù)是零值,而不連續(xù)系數(shù)是非零值。一般,游程長度是從0到63位,而大小是從1-10的AC值。文件碼的結束添加附加的碼-,因此,存在總數(shù)為641個的可能的碼。
在解碼過程中,把在頻域中的經(jīng)編碼數(shù)據(jù)轉換回象素域??勺冮L度解碼器270產(chǎn)生數(shù)據(jù)的游程長度和大小,并把數(shù)據(jù)提供給反之字形掃描串行器271,它根據(jù)所使用的掃描方案對系數(shù)進行排序。反之字形掃描串行器271接收PQR數(shù)據(jù),以輔助使系數(shù)正確地排序成為復合的系數(shù)塊。把復合塊提供給反量化器272,用于恢復由于頻率加權掩碼的使用而引起的處理。
然后在經(jīng)編碼的數(shù)據(jù)上執(zhí)行指紋機(H20)273。指紋機把一個水印或其它識別符信息放到數(shù)據(jù)上??梢栽谝院髸r間恢復水印,以顯露識別符信息。識別符信息可以包括信息,諸如何處和何時播放材料、以及核準誰來播放這種材料。接在指紋機273之后,開始相對于圖4詳細描述的解碼器數(shù)據(jù)過程274(IDQT/IDCT)。在對數(shù)據(jù)進行解碼之后,把數(shù)據(jù)發(fā)送到幀緩沖器接口(FBI)278。配置FBI使之一次讀出和寫入一幀的未壓縮數(shù)據(jù)。在一個實施例中,F(xiàn)BI具有四幀的容量,雖然設想可以改變存儲容量。
現(xiàn)在參考圖2c,提供示出塊大小分配單元258的操作的詳細說明的流程圖。算法使用塊的方差作為對塊進行子分割的判決中的量度。在步驟202處開始,讀出象素的16×16塊。在步驟204處,計算16×16塊的方差v16。計算方差如下var=1N2Σi=0N-1Σj=0N-1x2i,j-(1N2·Σi=0N-1Σj=0N-1xij)2]]>其中N=16,而xij是在N×N塊中的第i行、第j列中的象素。在步驟206處,首先修改方差門限值T16以提供新的門限值T’16,如果塊的平均值在兩個預定值之間,則塊方差與新的門限值T’16進行比較。
如果方差v16不大于門限值T16,則在步驟208處,寫入16×16塊的開始地址,并把PQR數(shù)據(jù)的R比特設置為0,以表示不子分割16×16塊。然后算法讀出象素的下一個16×16塊。如果方差v16大于門限值T16,則在步驟210處,把PQR數(shù)據(jù)的R比特設置為1,以表示要把16×16塊子分割成四個8×8塊。
順序考慮四個8×8塊,i=1∶4,進行進一步的子分割,如在步驟212中所示。在步驟214中,對于每個8×8塊,計算方差v8i。在步驟216處,首先修改方差門限值T4,以提供新的門限值T’8,如果塊的平均值在兩個預定值之間,則塊方差對照這個新的門限值進行比較。
如果偏差v8i不大于門限值T4,則在步驟218處,寫入8×8塊的開始地址,以及把對應的Q比特,Qi,設置為0。然后處理下一個8×8塊。如果方差v8i大于門限值T4,則在步驟220處,把對應的Q比特,Qi,設置為1,以表示要把8×8塊子分割成四個4×4塊。
順序考慮四個4×4塊,ji=1∶4,進行進一步的子分割,如在步驟222中所示。在步驟224中,對于每個4×4塊,計算方差v4ij。在步驟226處,首先修改方差門限值T4,以提供新的門限值T’4,如果塊的平均值在兩個預定值之間,則塊偏差與這個新的門限值進行比較。
如果方差v4ij不大于門限值T4,則在步驟228處,寫入4×4塊的地址,以及把對應的P比特,Pij,設置為0。然后處理下一個4×4塊。如果方差v4ij大于門限值T4,則在步驟230處,把對應的P比特,Pij,設置為1,以表示要把4×4塊子分割成四個2×2塊。此外,寫入四個2×2塊的地址。
門限值T16、T8和T4可以是預定的常數(shù)。這被稱之為硬判決。另一方面,可以執(zhí)行自適應或軟判決。軟判決根據(jù)2N×2N塊的平均象素值改變方差的門限值,其中N可以是8、4或2。因此,可以使用平均象素值的函數(shù)作為門限值。
為了說明的目的,考慮下面的例子。讓Y分量對于16×16塊、8×8塊和4×4塊的預定的方差門限值分別為50、1100和880。換言之,T16=50、T8=1100和T16=880。讓平均值的范圍為80和100。假定所計算的16×16塊的方差是60。由于60和它的平均值90大于T16,所以把16×16塊子分割成四個8×8子塊。假定所計算的8×8塊的方差是1180、935、980和1210。由于8×8塊中的兩個塊具有超過T8的偏差,所以進一步子分割這兩個塊以產(chǎn)生總共八個4×4塊。最后,假定八個4×4塊的偏差為620、630、610、590、525、930和690,其中前面的四個對應于平均值90、120、110、115。由于第一個4×4塊的平均值落在范圍(80,100)中,所以它的門限值要降低到小于880的T’4=200。所以將子分割這個4×4塊作為第七個4×4塊。在圖11a中示出所產(chǎn)生的塊大小分配。在圖11b中示出對應的四元樹分解。在圖11c中示出這種塊大小分配產(chǎn)生的PQR數(shù)據(jù)。
注意,使用相似的過程來分配彩色分量C1和C2的塊大小。彩色分量是可以水平地抽選的、垂直地抽選的或兩者。此外,注意,雖然已經(jīng)作為其中先估計最大的塊(在本例子中是16×16)的自頂?shù)较碌姆椒▉砻枋鰤K大小分配,但是也可以用自底到上的方法來代替。自底到上的方法先估計最小的塊(在本例子中是2×2)。
把PQR數(shù)據(jù)與所選擇塊的地址一起提供給DCT/DQT單元262。DCT/DQT單元262使用PQR數(shù)據(jù)來執(zhí)行所選擇塊上適當大小的離散余弦變換。只有所選擇塊需要進行DCT處理。還使用DQT來減少DCT的DC系數(shù)中間的冗余。在每個DCT塊的左上角處遇到DC系數(shù)。一般,DC系數(shù)比AC系數(shù)大。大小的差異使之難于設計有效的可變長度編碼器。因此,減少DC系數(shù)中間的冗余是有利的。DQT單元在DC系數(shù)上執(zhí)行兩維DCT,每次取2×2。從4×4塊中的2×2塊開始,在四個DC系數(shù)上執(zhí)行兩維DCT。把這個2×2 DCT稱為四個DC系數(shù)的差分四元樹變換,或DQT。其次,DQT的DC系數(shù)和具有8×8塊的三個相鄰DC系數(shù)一起使用來計算下一個層次的DQT。最后,使用在16×16塊中的四個8×8塊的DC系數(shù)來計算DQT。因此,在16×16塊中,存在一個真實的DC系數(shù),而其余的是對應于DCT和DQT的AC系數(shù)。
在一幀中,獨立地計算每個16×16塊。因此,通過由PQR所確定的,可以按需要改變給定塊所使用的處理算法。
圖3是方框圖,說明DCT/DQT的計算以及經(jīng)編碼數(shù)據(jù)300的一個塊的IDQT/IDCT。如在圖3中示出的編碼模式中,經(jīng)編碼數(shù)據(jù)起初在象素域中。當通過中間步驟處理經(jīng)編碼數(shù)據(jù)時,把經(jīng)編碼數(shù)據(jù)變換到頻域中。在解碼模式中,經(jīng)編碼數(shù)據(jù)起初在頻域中。當通過中間步驟處理經(jīng)編碼數(shù)據(jù)時,把經(jīng)編碼數(shù)據(jù)變換到象素域中。
參考圖3,把經(jīng)編碼數(shù)據(jù)的至少一個M×N塊存儲在轉置RAM304中。轉置RAM304可以包括M×N數(shù)據(jù)的一個或多個塊。在具有兩個經(jīng)編碼數(shù)據(jù)塊的一個實施例中,把一個塊配置成包括當前M×N數(shù)據(jù)塊308,把另一個配置成包括下一個M×N數(shù)據(jù)塊312。如在圖2a中所示從塊大小分配208(在編碼模式中)或如在圖2b中所示從指紋機220(在解碼模式中),把數(shù)據(jù)塊308和312傳遞到轉置RAM304。在一個實施例中,轉置RAM304可以是雙端口RAM,致使轉置RAM接口316處理當前數(shù)據(jù)塊308以及接收來自指紋機220的下一個數(shù)據(jù)塊。轉置RAM接口316控制定時并可以使緩沖存儲器允許從轉置RAM304讀出數(shù)據(jù)塊或把數(shù)據(jù)塊寫入轉置RAM304中。在一個實施例中,轉置RAM304和轉置RAM接口316可以響應從控制序列發(fā)生器324來的一個或多個控制信號。
經(jīng)編碼數(shù)據(jù)進入數(shù)據(jù)處理器328,從轉置RAM304(或通過轉置RAM接口316)到一個或多個輸入寄存器332。在一個實施例中,有16個輸入寄存器332。在一個實施例中,數(shù)據(jù)處理器328首先處理列數(shù)據(jù),接著處理行數(shù)據(jù),如在圖1中所示。另一方面,數(shù)據(jù)處理器328可以先處理有列再處理行,然而,下面的說明假定在處理行數(shù)據(jù)之前處理列數(shù)據(jù)。輸入寄存器332包括16×16塊的單個列編碼的數(shù)據(jù)。數(shù)據(jù)處理器328通過在經(jīng)編碼數(shù)據(jù)上一列一列地執(zhí)行數(shù)學運算而計算變換,并把數(shù)據(jù)寫回轉置RAM304中。在處理數(shù)據(jù)列之后,數(shù)據(jù)處理器328處理經(jīng)編碼數(shù)據(jù)的每個行。在處理經(jīng)編碼數(shù)據(jù)的每個行之后,數(shù)據(jù)處理器328通過輸出寄存器352輸出數(shù)據(jù)。
在一個實施例中,數(shù)據(jù)塊是經(jīng)編碼數(shù)據(jù)的16×16塊,雖然可以設想使用任何大小的數(shù)據(jù)塊,諸如32×32、8×8、4×4或2×2,或它們的組合。因此,當數(shù)據(jù)處理器328正在處理來自轉置RAM304的數(shù)據(jù)塊時(例如,當前的M×N數(shù)據(jù)塊308),轉置RAM接口316接收來自BSA208(編碼模式)或指紋機220(解碼模式)的下一個數(shù)據(jù)塊312。當數(shù)據(jù)處理器328完成當前數(shù)據(jù)塊308的處理時,轉置RAM接口316從轉置RAM304接口讀出下一個數(shù)據(jù)塊312,并把它裝載到數(shù)據(jù)處理器328中。如此,通過轉置RAM接口316和控制序列發(fā)生器324的指揮,從轉置RAM304來的數(shù)據(jù)在當前數(shù)據(jù)塊308和下一個數(shù)據(jù)塊312之間反復轉換。
數(shù)據(jù)處理器328包括輸入寄存器332、在專權蝶形處理器簇336中的至少一個蝶形處理器以及至少一個中間數(shù)據(jù)寄存器340。數(shù)據(jù)處理器328還可以包括保持寄存器334、寫入多路復用器348以及輸出數(shù)據(jù)寄存器352。專用蝶形處理器簇336可以進一步包括第一輸入多路復用器356,而中間數(shù)據(jù)寄存器340進一步包括第二輸入多路復用器360。最好由控制序列發(fā)生器324來控制數(shù)據(jù)處理器328的上述部件。
在操作中,對于給定的數(shù)據(jù)列或行,把輸入寄存器332配置成通過轉置RAM接口316接收來自轉置RAM304的經(jīng)編碼數(shù)據(jù)??刂菩蛄邪l(fā)生器324啟使能輸入寄存器的某些地址,以通過輸入多路復用器356發(fā)送數(shù)據(jù)。通過多路復用器356經(jīng)過選擇而對數(shù)據(jù)輸入再排序,使得選擇適當?shù)木幋a數(shù)據(jù)對來進行數(shù)學運算。通過控制序列發(fā)生器324的控制,輸入多路復用器356把數(shù)據(jù)傳遞到專權蝶形處理器簇336。專權蝶形處理器簇336包括一個或多個蝶形處理器。在一個實施例中,專權蝶形處理器簇336包括四個獨立的蝶形處理器364、368、372和376,而控制序列發(fā)生器324通過輸入多路復用器356按選擇路線把經(jīng)編碼數(shù)據(jù)傳遞到合適的蝶形處理器。
每個獨立的蝶形處理器364、368、372或376能夠執(zhí)行一維變換,諸如DCT、IDCT、DQT和IDQT。一維變換一般包括算術運算,諸如簡單的加法器、減法器或乘法器。在一對數(shù)據(jù)元素上執(zhí)行一維變換之后,把所產(chǎn)生的輸出傳遞到中間數(shù)據(jù)寄存器340。中間數(shù)據(jù)寄存器340可以響應控制序列發(fā)生器324。控制序列發(fā)生器可以是諸如狀態(tài)機、微控制器或可編程處理器之類的裝置。在中間數(shù)據(jù)寄存器340響應控制序列發(fā)生器324的一個實施例中,使用反饋路徑380和通過第一輸入多路復用器356使存儲在中間數(shù)據(jù)寄存器340中的選擇數(shù)據(jù)元素反饋回蝶形處理器以進行再次處理(即,一維變換的另一個部分)這個反饋循環(huán)繼續(xù)直到完成對于經(jīng)編碼數(shù)據(jù)的所有一維變換。當完成數(shù)據(jù)的處理時,把來自中間數(shù)據(jù)寄存器340的數(shù)據(jù)寫入WRBR保持寄存器344。如果正在處理的數(shù)據(jù)是列數(shù)據(jù),則從WRBR保持寄存器344通過寫入多路復用器348寫入數(shù)據(jù),并返回到轉置RAM304進行存儲,這樣就可以開始行處理。對寫入多路復用器348控制,以對經(jīng)處理的列數(shù)據(jù)進行再排序使之回到它的原始排序。如果保持寄存器數(shù)據(jù)是行數(shù)據(jù)(因此,所有列數(shù)據(jù)的處理已完成),則按選擇路線把數(shù)據(jù)傳遞到輸出寄存器352。然后控制序列發(fā)生器324可以控制來自菊花鏈多路復用器和輸出數(shù)據(jù)寄存器352的數(shù)據(jù)的輸出。
圖4說明可以通過圖3的數(shù)據(jù)路徑處理器328在編碼模式中實施的DCT網(wǎng)格結構。相似地,圖5說明可以通過圖3的數(shù)據(jù)路徑處理器328在解碼模式中實施的IDCT網(wǎng)格結構。通過PQR數(shù)據(jù)的指揮和/或根據(jù)所執(zhí)行的計算的類型,控制序列發(fā)生器324可以選擇經(jīng)編碼數(shù)據(jù)元素的不同對,以組合和執(zhí)行部分一維變換的各部分。例如,在圖4的網(wǎng)格結構中,在列404中發(fā)生八種運算。所示的運算如下x(0)+x(7)、x(1)+x(6)、x(3)+x(4)、x(2)+x(5)、x(0)-x(7)、x(1)-x(6)、x(3)-x(4)和x(2)-x(5)。蝶形處理器364、368、372和376(如圖3所示)中的每一個在給定時鐘周期中處理四種運算中的一種。因此,例如,蝶形處理器364計算x(0)+x(7)和x(0)-x(7)的運算,蝶形處理器368計算x(1)+x(6)和x(1)-x(6)的運算,蝶形處理器372計算x(3)+x(4)和x(3)-x(4)的運算以及蝶形處理器376計算x(2)+x(5)和x(2)-x(5)的運算,都在同一個時鐘周期中計算??梢园堰@些運算中的每一個的結果臨時存儲在流水線寄存器中或中間數(shù)據(jù)寄存器340中,然后按選擇路線傳遞到輸入多路復用器360。在說明書中相對于圖9c和9d描述流水線寄存器的操作。
任選地,在下一個時鐘周期中,使用相同的四個蝶形處理器計算剩余的四種乘法運算。因此,蝶形處理器364計算[x(0)-x(7)]*(1/2C116),蝶形處理器368計算[x(1)-x(6)]*(1/2C316),蝶形處理器372計算[x(3)-x(4)]*(1/2C716)以及蝶形處理器376計算[x(2)-x(5)]*(1/2C516)。把這些計算的結果臨時存儲在中間數(shù)據(jù)寄存器340中。當完成計算時,經(jīng)編碼數(shù)據(jù)的排序與原始輸入時的經(jīng)編碼數(shù)據(jù)的排序不同。因此,按需要,在每個反饋回路后,控制序列發(fā)生器324和輸入多路復用器356對經(jīng)編碼數(shù)據(jù)或部分處理過的經(jīng)編碼數(shù)據(jù)進行再排序。
在接著的時鐘周期中,處理對于列408的計算,再次把處理結果存儲在中間數(shù)據(jù)寄存器340中,并通過輸入多路復用器360反饋。再次,對現(xiàn)在已部分處理過的被反饋的經(jīng)編碼數(shù)據(jù)進行再排序,使得把經(jīng)編碼數(shù)據(jù)的各正確部分按選擇路線傳遞到合適的蝶形處理器。因此,蝶形處理器364處理b(0)+b(2)和b(0)-b(2)。相似地,蝶形處理器368計算b(1)+b(3)和b(1)-b(3),蝶形處理器372計算b(4)+b(6)和b(4)-b(6)以及蝶形處理器376計算b(5)+b(7)和b(5)-b(7)。再次把計算結果存儲在中間數(shù)據(jù)寄存器340或流水線寄存器中,并通過輸入多路復用器360按選擇路線傳遞。在下一個時鐘周期中,按相對于列404描述的方式相同方式執(zhí)行乘以1/2C18、1/2C38、1/2C18和1/2C38的乘法。因此,蝶形處理器364計算b(0)-b(2)*1/2C18,蝶形處理器368計算b(1)-b(3)*1/2C38,蝶形處理器372計算b(4)-b(6)*1/2C18,蝶形處理器376計算b(5)-b(7)*1/2C38。
在下一個時鐘周期中,處理對于列412的計算,對于在d(0)到d(7)位置的值進行計算,再次把計算結果存儲在中間數(shù)據(jù)寄存器340中,并反饋到輸入多路復用器360中。因此,每個蝶形處理器計算每個輸入的每個級,使得蝶形處理器364計算d(0)+d(1)和d(0)-d(1)的運算,蝶形處理器368計算d(2)+d(3)和d(2)-d(3)的運算,蝶形處理器372計算d(4)+d(5)和d(4)-d(5)的運算以及蝶形處理器376計算d(6)+d(7)和d(6)-d(7)的運算,都在同一個時鐘周期中計算。在接著的時鐘周期中,按相對于列404和408描述的方式相同的方式執(zhí)行乘以1/2C14的乘法。
列416說明在下一個時鐘周期中通過蝶形處理器計算的下一組數(shù)學運算。如在圖4的例子中所示,在列416中,在這個時鐘周期期間只需要兩種運算即,f(2)和f(3)分量的相加以及f(6)和f(7)分量的相加。因此,蝶形處理器364計算f(2)+f(3),而蝶形處理器368計算f(6)+f(7)。
在接著的時鐘周期中,處理在列420中表示的計算。如此,計算h(4)、h(5)和h(6)的值。因此,蝶形處理器364計算h(4)+h(6),蝶形處理器368計算h(5)+h(8),而蝶形處理器372計算h(5)+h(6)。
可容易地觀察到,圖5說明按相似方式操作的IDCT網(wǎng)格結構,但是與相對于圖4描述的網(wǎng)格結構具有相反的順序。在解碼過程中使用與編碼過程中操作的DCT網(wǎng)格結構對反的IDCT網(wǎng)格結構。蝶形處理器364、368、372和376按相對于圖4描述的方式相似的方式操作,利用了并行處理中效率的優(yōu)點。在編碼和解碼兩種過程中,一個實施例的明顯的優(yōu)點是對于網(wǎng)格結構的每個級再使用相同的硬件。因此,列504中說明的計算所使用的硬件與列508、512、516和520中說明的計算所使用的硬件是相同的。相似地,列404中說明的計算所使用的硬件與列408、412、416和420中說明的計算所使用的硬件是相同的。
一旦計算了表示圖4中網(wǎng)格結構的終點的最終結果,就從中間數(shù)據(jù)寄存器340把數(shù)據(jù)傳遞到保持寄存器344。控制序列發(fā)生器324控制保持寄存器344和輸出數(shù)據(jù)寄存器352。如果數(shù)據(jù)是列數(shù)據(jù),則把數(shù)據(jù)傳遞到寫入多路復用器348并存儲回轉置RAM304。再次,對經(jīng)編碼數(shù)據(jù)進行再排序以反映經(jīng)編碼數(shù)據(jù)的原始序列。如果數(shù)據(jù)是行數(shù)據(jù),則因此而完成了所有的計算,并把數(shù)據(jù)從保持寄存器344傳遞到輸出數(shù)據(jù)寄存器352。
圖6說明具有一個或多個輸入和輸出多路復用器600的單個蝶形處理器的例子。在一個實施例中,把從一個或多個中間數(shù)據(jù)寄存器340輸出的數(shù)據(jù)耦合到輸入多路復用器604的輸入端口(見圖3)。在一個實施例中,把從每個中間數(shù)據(jù)寄存器340輸出的數(shù)據(jù)輸入到蝶形處理器到第一多路復用器608和第二多路復用器612。把從輸入AR寄存器332(見圖3)輸出的數(shù)據(jù)也通過輸入多路復用器604傳遞。特別,把AR寄存器AR(0)和AR(8)的輸出耦合到多路復用器616的輸入端,并把AR(1)、AR(8)和AR(15)的輸出耦合到多路復用器620的輸入端。通過控制序列發(fā)生器324的指揮,多路復用器624和628選擇來自AR或BR寄存器的信號(在圖3中示出)。因此,多路復用器624選擇來自多路復用器608或616的數(shù)據(jù),而多路復用器628選擇來自多路復用器620或多路復用器612的數(shù)據(jù)。因此把多路復用器624和628的輸出耦合到單獨的蝶形處理器532的輸入端。蝶形處理器632計算DCT/IDCT/DQT/IDQT變換的一級,如相對于圖3、4和5所述。把蝶形處理器632的兩個輸出,輸出636和638,的每一個耦合到每個中間數(shù)據(jù)多路復用器642和646的輸入端。然后把數(shù)據(jù)從多路復用器642和646選擇到一組中間寄存器650。在一個實施例中,有16個如此的中間多路復用器和數(shù)據(jù)寄存器。
圖7說明寫入多路復用器的方框圖。如在圖3中所示,把中間數(shù)據(jù)寄存器340的偶數(shù)輸出輸入到多路復用器704,并把中間數(shù)據(jù)寄存器340的奇數(shù)輸出輸入到多路復用器708。如在圖3中所示,通過控制序列發(fā)生器324的控執(zhí),多路復用器704、708、712和716對每個中間寄存器中的數(shù)據(jù)進行再排序,并分別存儲在17比特的寄存器720和724中。然后把經(jīng)再排序的數(shù)據(jù)存儲在轉置RAM304中。
圖8說明每個蝶形處理器800的操作。在一個實施例中,實施四個蝶形處理器。然而,設想可以實施服從定時和大小限制的任何數(shù)目的蝶形處理器。數(shù)據(jù)通過輸入804和808進入蝶形處理器。在一個實施例中,輸入804有時表示DC值,并通過截尾器812傳遞。截尾器812負責1/N函數(shù),如關于下文兩維DCT公式所描述。輸入804的DC值是17比特-單個符號比特加上16個整數(shù)比特。截尾器812從DC值輸入數(shù)據(jù)截去n比特以產(chǎn)生經(jīng)截尾的DC值816,其中如果所處理的數(shù)據(jù)是16×16塊,則n是4比特,如果所處理的數(shù)據(jù)是8×8塊,則n是3比特,如果所處理的數(shù)據(jù)是4×4塊,則n是2比特,以及如果所處理的數(shù)據(jù)是2×2塊,則n是1比特。如果輸入是AC值,則旁路截尾器812,并按選擇路線傳遞到第一選擇器814。然后第一選擇器814從輸入A804選擇經(jīng)截尾的DC值816或AC值。在這個實施例中,不使用分數(shù)比特,雖然設想可以使用分數(shù)比特。
把第一選擇器的輸出816按選擇路線傳遞到延遲820和第二選擇器824。當選擇器輸出值816通過選擇路線傳遞到延遲820時,經(jīng)截尾的DC值在通過選擇路線傳遞到第二選擇器824之前可以保持一個時鐘周期。在一個實施例中,延遲820是寄存器。在第二選擇器824中的數(shù)據(jù)選擇是要在數(shù)據(jù)上執(zhí)行的一種數(shù)學運算類型的函數(shù)。最好從控制序列發(fā)生器通過選擇路線傳遞過來的控制字826觸發(fā)第二選擇器824。如在整個圖8中所示,控制字826提供對于許多部件的控制。再次根據(jù)要執(zhí)行的數(shù)學運算的類型,然后,把數(shù)據(jù)傳遞到加法器832或減法器836。第三選擇器還接收來自延遲820的經(jīng)延遲的輸出值,以及輸入808。再次,在第三選擇器828中的數(shù)據(jù)選擇是要在數(shù)據(jù)上執(zhí)行的數(shù)學運算類型的函數(shù)。
對數(shù)據(jù)進行加或減,然后把數(shù)據(jù)傳遞到第四選擇器840或第五選擇器844,用于從蝶形處理器800輸出。把輸入804也傳遞到第四選擇器840,并把輸入808傳遞到第五選擇器844。在編碼模式中,可以按選擇路線把數(shù)據(jù)傳遞到第六選擇器848。在一個實施例中,在編碼模式中,在通過選擇路線傳遞到第六選擇器848之前,通過編碼延遲852而使數(shù)據(jù)按選擇路線傳遞。
第二輸入,輸入808,通過第三選擇器828和第六選擇器848傳遞。如果第六選擇器848選擇輸入808,則使數(shù)據(jù)通過選擇路線傳遞到乘法器856,輸入808在那里乘上標量860。具有標量860的乘法過程對數(shù)據(jù)定標以產(chǎn)生經(jīng)定標的輸出864。在一個實施例中,然后把經(jīng)定標的輸出864通過選擇路線傳遞到格式化器868。格式化器868使數(shù)據(jù)從24比特格式(一個符號比特、16個整數(shù)比特和7個分數(shù)比特)舍入和飽和(saturate)成為17比特格式。因此,相對于長度的20位,經(jīng)格式化的定標輸出872是17比特。如此處理的數(shù)據(jù)允許當計算時保持精確度,但是使用較少位來表示相同的數(shù)據(jù),這依次節(jié)約了硬件空間。通過延遲876把經(jīng)格式化的定標輸出872通過選擇路線傳遞到第三選擇器828和第五選擇器844,用于進一步處理。
圖9a-9f說明每個蝶形處理器能夠執(zhí)行的各種數(shù)學運算。圖9a說明蝶形處理器900可能執(zhí)行的NO(非)運算。給出兩個輸入,輸入A(902)和輸入B(904),簡單地把每個輸入傳遞到輸出C(906)和輸出D(908)。因此,在NO運算中,C=A和D=B。
圖9b說明蝶形處理器910執(zhí)行的累加運算。給出兩個輸入,輸入A(912)和輸入B(914),輸出C(916)表示和A+B。通過加法器913組合輸入A(912)和輸入B(914)。輸出D(918)表示輸入B(914)的通過。因此,在累加運算中,C=A+B和D=B。
圖9c說明蝶形處理器920執(zhí)行的蝶形DCT運算。給出兩個輸入,輸入A(922)和輸入B(924),輸出C(926)表示輸入A(922)和輸入B(924)的和,致使C=A+B。由加法器923組合輸入922和輸入924。輸出D(928)表示輸入A(922)和輸入B(924)的減法器并被乘以系數(shù)CF(930),致使D=CF×(A-B)。減法器925從輸入922減去輸入924,然后通過乘法器927作乘法。任選地,可以使用流水線寄存器932和934來臨時存儲中間產(chǎn)物直到下一個時鐘周期。
圖9d說明蝶形處理器936執(zhí)行的蝶形IDCT運算。給出兩個輸入,輸入A(938)和輸入B(940),輸出C(942)表示輸入A(938)和輸入B(940)乘以系數(shù)CF(943)的和,致使輸出C=A+(B×CF)。通過乘法器945使輸入B(940)乘以系數(shù)CF(943),然后通過加法器947加到輸入A(938)上。相似地,輸出D(944)表示輸入A(938)和輸入B(940)乘以系數(shù)CF(943)的差,致使D=A-(B×CF)。乘法器945使輸入B(940)乘以系數(shù)CF(943),然后通過減法器949從輸入A(938)中減去。任選地,可以使用流水線寄存器946和948來存儲在下一個時鐘周期中要計算的中間產(chǎn)物。
圖9e說明蝶形處理器950執(zhí)行的累加寄存器運算。給出兩個輸入,輸入A(952)和輸入AREG(954),輸出C(956)表示輸入A和AREG的和,致使C=A+AREG。與輸入值不同,AREG也可以是以前時鐘周期存儲在寄存器951中的一個值。通過加法器953使輸入A(952)和輸入AREG(954)相加。
圖9f說明蝶形處理器958執(zhí)行的DQT/IDQT運算。給出兩個輸入,輸入A(960)和輸入B(962),輸出C(964)表示輸入A和B的和,致使C=A+B。相似地,輸出D(966)表示輸入A和B的差,致使D=A-B。通過加法器963組合輸入A(960)和輸入B(962)。通過減法器965從輸入A(960)減去輸入B(962)。
在圖10中說明計算圖像數(shù)據(jù)1000的變換的過程,并且可以在關于圖3描述的結構中實施。對于諸如DCT、IDCT、DQT和IDQT之類的頻域技術,容易地配置過程。數(shù)據(jù)的列或行起初駐留在轉置RAM1004中,并傳遞到蝶形處理器中的保持寄存器1008中。選擇要組合的數(shù)據(jù)塊的各個數(shù)據(jù)元素1012,以及選擇要在各個數(shù)據(jù)元素上執(zhí)行的數(shù)學運算1016??梢詧?zhí)行關于圖9a-9f描述的數(shù)學運算,并包括非操作1020、累加1024、DCT蝶形1028、IDCT蝶形1032、累加寄存器1036和DQT/IDQT蝶形1040。臨時存儲數(shù)學運算的結果1044。然后根據(jù)是否需要進一步的數(shù)學運算來進行反饋判決1048。在一個實施例中,控制序列發(fā)生器控制反饋判決,如關于圖3所描述。如果反饋數(shù)據(jù)1052,則把數(shù)據(jù)反饋到保持寄存器1008,并重復進行處理。如果不反饋數(shù)據(jù)1056,則把數(shù)據(jù)傳遞到輸出保持寄存器1060。根據(jù)對于數(shù)據(jù)的列或行是否需要另外的數(shù)學運算來進行另一個判決1064。如果需要(1068),則把數(shù)據(jù)的列或行傳遞到保持器1072,然后寫回到轉置RAM1004中。如果不需要(1076),則把數(shù)據(jù)塊傳遞到輸出數(shù)據(jù)寄存器1080。
作為例子,可以用專用集成電路(ASIC)、可編程邏輯器件、分立門或晶體管邏輯、例如,諸如寄存器和FIFO之類的分立硬件部件、執(zhí)行一組固件指令的處理器、任何傳統(tǒng)的可編程軟件和處理器、或任何它們的組合,在硬件或軟件中實施或執(zhí)行與這里揭示的實施例描述相關連的各種示意的邏輯塊、流程圖以及步驟。有利地,處理器可以是微處理器,但是另一方面,處理器可以是任何傳統(tǒng)的處理器、控制器、微控制器或狀態(tài)機。軟件可以駐留在RAM存儲器、快閃存儲器、ROM存儲器、寄存器硬盤、可移動盤、CD-ROM、DVD-ROM或本技術領域中眾知的任何其它形式的存儲媒體中。
提供較佳實施例的上述描述,以使熟悉本領域技術的人員可以制造或使用本發(fā)明。熟悉本領域技術的人員將不費力地明了這些實施例的各種修改,可以把這里所定義的一般原理應用到其它的實施例而不需要用發(fā)明創(chuàng)造。因此,不打算把本發(fā)明限于這里所示出的實施例,而是和這里所揭示的原理和新潁特征符合的最寬廣的范圍相一致。
權利要求
1.確定經(jīng)編碼數(shù)據(jù)的塊的變換的一種設備,所述經(jīng)編碼數(shù)據(jù)的塊包括多個數(shù)據(jù)元素,所述設備包括輸入寄存器,配置成接收預定量的數(shù)據(jù)元素;耦合到所述輸入寄存器的至少一個蝶形處理器,把所述蝶形處理器配置成在所選擇的數(shù)據(jù)元素對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的輸出;耦合到所述蝶形處理器的至少一個中間寄存器,把所述中間寄存器配置成臨時存儲經(jīng)處理的數(shù)據(jù);以及耦合到所述中間寄存器和所述蝶形處理器的反饋回路,其中,如果使能的話,把所述反饋回路配置成把經(jīng)處理的數(shù)據(jù)元素的第一部分傳遞到合適的蝶形處理器以執(zhí)行附加的數(shù)學運算,其中如果禁用的話,則把它配置成把經(jīng)處理數(shù)據(jù)元素的第二部分傳遞到至少一個保持寄存器;其中把所述保持寄存器配置成存儲經(jīng)處理數(shù)據(jù)直到處理了所有第一部分數(shù)據(jù)元素。
2.如權利要求1所述的設備,進一步包括耦合到所述反饋回路和所述中間寄存器的至少一個輸入多路復用器,其特征在于,把每個輸入多路復用器配置成臨時選擇數(shù)據(jù)元素和把數(shù)據(jù)元素傳遞到合適的蝶形處理器。
3.如權利要求1所述的設備,進一步包括耦合到所述蝶形處理器和所述中間寄存器的至少一個輸入多路復用器,其特征在于,把每個輸入多路復用器配置成臨時選擇數(shù)據(jù)元素和把數(shù)據(jù)元素傳遞到合適的中間寄存器。
4.如權利要求1所述的設備,其特征在于,從下述組中選擇所述變換,所述組包括離散余弦變換(DCT)、差分四元樹變換(DQT)、離散余弦反變換(IDCT)以及差分四元樹反變換(IDQT)。
5.如權利要求1所述的設備,其特征在于,可以把經(jīng)編碼數(shù)據(jù)的塊表示成行數(shù)據(jù)和列數(shù)據(jù),并且進一步包括耦合到輸入寄存器的轉置隨機存取存儲器(RAM),其中把所述轉置RAM配置成當正在處理列數(shù)據(jù)時存儲行數(shù)據(jù),以及其中把所述轉置RAM配置成當正在處理行數(shù)據(jù)時存儲列數(shù)據(jù)。
6.如權利要求5所述的設備,其特征在于,把所述轉置RAM配置成存儲經(jīng)編碼數(shù)據(jù)的兩個塊。
7.如權利要求5所述的設備,進一步包括耦合到所述保持寄存器的寫入多路復用器,其特征在于,把所述寫入多路復用器配置成對數(shù)據(jù)元素進行再排序以完成一維變換。
8.如權利要求1所述的設備,其特征在于,所述反饋回路允許再使用相同的部件而不管塊大小。
9.如權利要求1所述的設備,其特征在于,所述反饋回路允許再使用相同的部件而不管變換的類型。
10.如權利要求1所述的設備,其特征在于,所述反饋回路允許再使用相同的部件而不管數(shù)學運算。
11.如權利要求1所述的設備,進一步包括耦合到所述反饋回路的控制序列發(fā)生器,其特征在于,把所述控制序列發(fā)生器配置成使能或禁用所述反饋回路。
12.如權利要求11所述的設備,其特征在于,所述控制序列發(fā)生器把唯一的系數(shù)乘法器提供給所述蝶形處理器。
13.如權利要求12所述的設備,其特征在于,所述唯一的系數(shù)乘法器是基于B.G.Lee的算法。
14.如權利要求11所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定事件使能所述輸入寄存器中的某一些。
15.如權利要求11所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定準則使能啟動所述蝶形處理器中的某一些。
16.如權利要求11所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定準則使能所述中間寄存器中的某一些。
17.如權利要求11所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定準則使能所述輸出寄存器中的某一些。
18.如權利要求1所述的設備,其特征在于,所述數(shù)學運算是來自包括加、乘和減的組。
19.如權利要求1所述的設備,其特征在于,每個所述蝶形處理器執(zhí)行一維變換的一部分。
20.如權利要求1所述的設備,其特征在于,計算所述經(jīng)編碼數(shù)據(jù)的塊的變換作為一系列一維變換被計算。
21.確定經(jīng)編碼數(shù)據(jù)的塊的變換的一種設備,所述經(jīng)編碼數(shù)據(jù)的塊能夠作為行數(shù)據(jù)和列數(shù)據(jù)來表示,每個行和列包括多個數(shù)據(jù)元素,所述設備包括配置成存儲經(jīng)編碼數(shù)據(jù)的塊的轉置隨機存取存儲器(RAM);耦合到所述轉置RAM的至少一個輸入寄存器,把所述輸入寄存器配置成接收來自所述轉置RAM的數(shù)據(jù)的列;耦合到所述輸入寄存器的至少一個蝶形處理器,把所述蝶形處理器配置成在所選擇的來自列數(shù)據(jù)的數(shù)據(jù)元素對上執(zhí)行一維變換的一部分以產(chǎn)生第一階列數(shù)據(jù)的輸出;耦合到所述蝶形處理器的至少一個中間寄存器,把所述中間寄存器配置成臨時存儲第一階列數(shù)據(jù);以及耦合到所述中間寄存器和所述蝶形處理器的反饋回路,其中,如果使能的話,把所述反饋回路配置成把所選擇的第一階列數(shù)據(jù)的數(shù)據(jù)元素傳遞到所述蝶形處理器以執(zhí)行一維變換的附加部分,其中如果禁用的話,則把它配置成把列數(shù)據(jù)傳遞到所述轉置RAM;其中把輸入寄存器配置成接收來自所述轉置RAM的數(shù)據(jù)的行,把蝶形處理器配置成在所選擇來自數(shù)據(jù)的行的數(shù)據(jù)元素對上執(zhí)行一維變換的一部分,以產(chǎn)生第一階行數(shù)據(jù)的輸出,把中間寄存器配置成臨時存儲第一階行數(shù)據(jù),把反饋回路配置成把第一階行數(shù)據(jù)的所選擇的數(shù)據(jù)元素傳遞到蝶形處理器以執(zhí)行一維變換的附加部分,其中如果禁用的話,則把它配置成把行數(shù)據(jù)傳遞到輸出寄存器。
22.如權利要求21所述的設備,其特征在于,根據(jù)在列或行數(shù)據(jù)上完成一維變換而禁用所述反饋回路。
23.如權利要求21所述的設備,進一步包括耦合到所述反饋回路和所述中間寄存器的至少一個輸入多路復用器,其特征在于,把每個輸入多路復用器配置成臨時選擇數(shù)據(jù)元素和把數(shù)據(jù)元素傳遞到合適的蝶形處理器。
24.如權利要求21所述的設備,進一步包括耦合到所述蝶形處理器和所述中間寄存器的至少一個輸出多路復用器,其特征在于,把每個輸出多路復用器配置成臨時選擇數(shù)據(jù)元素和把數(shù)據(jù)元素傳遞到合適的中間寄存器。
25.如權利要求21所述的設備,其特征在于,從下述組中選擇所述變換,所述組包括離散余弦變換(DCT)、差分四元樹變換(DQT)、離散余弦反變換(IDCT)以及差分四元樹反變換(IDQT)。
26.如權利要求21所述的設備,其特征在于,配置所述轉置RAM以存儲所述經(jīng)編碼數(shù)據(jù)的兩個塊。
27.如權利要求21所述的設備,進一步包括耦合到保持寄存器的寫入多路復用器,其特征在于,把所述寫入多路復用器配置成對數(shù)據(jù)元素進行再排序使得完成了一維變換。
28.如權利要求21所述的設備,其特征在于,所述反饋回路允許再使用相同的部件而不管塊大小、變換的類型或數(shù)學運算的類型。
29.如權利要求21所述的設備,進一步包括耦合到所述反饋回路的控制序列發(fā)生器,其特征在于,把所述控制序列發(fā)生器配置成使能或禁用所述反饋回路。
30.如權利要求29所述的設備,其特征在于,所述控制序列發(fā)生器把唯一的系數(shù)乘法器提供給所述蝶形處理器。
31.如權利要求29所述的設備,其特征在于,所述唯一的系數(shù)乘法器是基于B.G.Lee的算法。
32.如權利要求29所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定則使能所述輸入寄存器、所述蝶形處理器、所述中間寄存器或所述輸出寄存器中的某一些。
33.如權利要求21所述的設備,其特征在于,所述數(shù)學運算是來自包括加、乘和減的組。
34.如權利要求21所述的設備,其特征在于,每個所述蝶形處理器執(zhí)行一維變換的一部分。
35.如權利要求21所述的設備,其特征在于,計算所述經(jīng)編碼數(shù)據(jù)的塊的變換作為一系列一維變換被計算。
36.在經(jīng)編碼數(shù)據(jù)的塊上執(zhí)行作為N個一維變換的級聯(lián)的N維變換的一種設備,所述經(jīng)編碼數(shù)據(jù)包括多個數(shù)據(jù)元素,所述設備包括耦合到輸入寄存器的蝶形處理器的簇,把每個蝶形處理器配置成在所選擇的數(shù)據(jù)元素對上執(zhí)行一維變換的一部分,以產(chǎn)生包括多個經(jīng)部分處理的數(shù)據(jù)元素的部分經(jīng)處理的數(shù)據(jù)輸出;耦合到每個蝶形處理器的至少一個中間寄存器,把所述中間寄存器配置成臨時存儲部分經(jīng)處理的數(shù)據(jù);以及耦合到所述中間寄存器和所述蝶形處理器的反饋回路,其中按需要使能反饋回路,以通過選擇路線把所選擇的經(jīng)部分處理的數(shù)據(jù)元素對傳遞到合適的蝶形處理器,以執(zhí)行一維變換的附加部分直到完成一維變換。
37.如權利要求36所述的設備,其特征在于,從下述組中選擇所述變換,所述組包括離散余弦變換(DCT)、差分四元樹變換(DQT)、離散余弦反變換(IDCT)以及差分四元樹反變換(IDQT)。
38.如權利要求36所述的設備,其特征在于,可以把所述經(jīng)編碼數(shù)據(jù)的塊表示為行數(shù)據(jù)和列數(shù)據(jù),并且進一步包括耦合到輸入寄存器的轉置只讀存儲器(RAM),其中配置所述轉置RAM以當正在處理列數(shù)據(jù)時存儲行數(shù)據(jù),其中配置所述轉置RAM以當正在處理行數(shù)據(jù)時存儲列數(shù)據(jù)。
39.如權利要求38所述的設備,其特征在于,配置所述轉置RAM以存儲所述經(jīng)編碼數(shù)據(jù)的兩個塊。
40.如權利要求36所述的設備,其特征在于,所述反饋回路允許再使用相同的部件而不管塊大小、變換的類型或數(shù)學運算的類型。
41.如權利要求36所述的設備,進一步包括耦合到所述反饋回路的控制序列發(fā)生器,其特征在于,把所述控制序列發(fā)生器配置成使能或禁用所述反饋回路。
42.如權利要求41所述的設備,其特征在于,所述控制序列發(fā)生器把唯一的系數(shù)乘法器提供給所述蝶形處理器。
43.如權利要求42所述的設備,其特征在于,所述唯一的系數(shù)乘法器是基于B.G.Lee的算法。
44.如權利要求41所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定準收使能所述輸入寄存器、所述蝶形處理器、所述中間寄存器或所述輸出寄存器中的某一些。
45.確定經(jīng)編碼數(shù)據(jù)的塊的離散余弦反變換的一種設備,所述經(jīng)編碼數(shù)據(jù)的塊包括多個數(shù)據(jù)元素,所述設備包括輸入寄存器,配置成接收預定量的數(shù)據(jù)元素;耦合到所述輸入寄存器的至少一個蝶形處理器,把所述蝶形處理器配置成在所選擇的數(shù)據(jù)元素對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的輸出;耦合到所述蝶形處理器的至少一個中間寄存器,把所述中間寄存器配置成臨時存儲經(jīng)處理的數(shù)據(jù);以及耦合到所述中間寄存器和所述蝶形處理器的反饋回路,其中,如果使能的話,把所述反饋回路配置成把經(jīng)處理數(shù)據(jù)元素的第一部分傳遞到合適的蝶形處理器以執(zhí)行附加的數(shù)學運算,其中如果禁用的話,則把它配置成把經(jīng)處理數(shù)據(jù)元素的第二部分傳遞到至少一個保持寄存器;其中把所述保持寄存器配置成存儲經(jīng)處理數(shù)據(jù)直到處理了所有第一部分數(shù)據(jù)元素。
46.確定經(jīng)編碼數(shù)據(jù)的塊的變換的一種設備,所述經(jīng)編碼數(shù)據(jù)的塊能夠作為行數(shù)據(jù)和列數(shù)據(jù)來表示,每個行和列包括多個數(shù)據(jù)元素,所述設備包括配置成存儲經(jīng)編碼數(shù)據(jù)的塊的轉置隨機存取存儲器(RAM);耦合到所述轉置RAM的至少一個輸入寄存器,把所述輸入寄存器配置成接收來自所述轉置RAM的數(shù)據(jù)的列;耦合到所述輸入寄存器的至少一個蝶形處理器,把所述蝶形處理器配置成在所選擇的來自列數(shù)據(jù)的數(shù)據(jù)元素對上執(zhí)行第一階變換的一部分以產(chǎn)生第一階列數(shù)據(jù)的輸出;耦合到所述蝶形處理器的至少一個中間寄存器,把所述中間寄存器配置成臨時存儲第一階列數(shù)據(jù);以及耦合到所述中間寄存器和所述蝶形處理器的反饋回路,其中,如果使能的話,把所述反饋回路配置成把所選擇的第一階列數(shù)據(jù)的數(shù)據(jù)元素傳遞到所述蝶形處理器以執(zhí)行附加的變換,其中如果禁用的話,則把它配置成把列數(shù)據(jù)傳遞到所述轉置RAM;以及耦合到所述反饋回路的控制序列發(fā)生器,其中把所述控制序列發(fā)生器配置成使能或禁用所述反饋回路,其中把輸入寄存器配置成接收來自所述轉置RAM的數(shù)據(jù)的行,把蝶形處理器配置成在所選擇的來自數(shù)據(jù)的行的數(shù)據(jù)元素對上執(zhí)行第一階變換,以產(chǎn)生第一階行數(shù)據(jù)的輸出,把中間寄存器配置成臨時存儲第一階行數(shù)據(jù),把反饋回路配置成把所選擇的第一階行數(shù)據(jù)的數(shù)據(jù)元素傳遞到蝶形處理器以執(zhí)行附加的變換,其中如果禁用的話,則把它配置成把行數(shù)據(jù)傳遞到輸出寄存器。
47.確定經(jīng)編碼數(shù)據(jù)的塊的變換的一種方法,所述經(jīng)編碼數(shù)據(jù)的塊包括多個數(shù)據(jù)元素,所述方法包括(a)接收預定量的數(shù)據(jù)元素;(b)所選擇的在數(shù)據(jù)元素對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的輸出;(c)作出任何經(jīng)處理的數(shù)據(jù)元素是否需要附加的數(shù)學運算的確定;(d)選擇需要附加數(shù)學運算的經(jīng)處理數(shù)據(jù)元素的第一部分;(e)選擇不需要附加數(shù)學運算的經(jīng)處理數(shù)據(jù)元素的第二部分;(f)在所選擇的經(jīng)處理數(shù)據(jù)元素的第一部分對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的第二輸出;以及(g)存儲經(jīng)處理數(shù)據(jù)元素的第二部分直到處理了數(shù)據(jù)元素的所有第一部分。
48.如權利要求47所述的方法,其特征在于,進一步包括(h)按需要重復步驟(c)、(d)、(e)、(f)和(g)。
49.如權利要求47所述的方法,其特征在于,進一步包括(i)當經(jīng)編碼數(shù)據(jù)的塊的所有數(shù)據(jù)元素不需要附加的數(shù)學運算時,輸出經(jīng)編碼數(shù)據(jù)的塊。
50.如權利要求47所述的方法,其特征在于,從下述組中選擇所述變換,所述組包括離散余弦變換(DCT)、差分四元樹變換(DQT)、離散余弦反變換(IDCT)以及差分四元樹反變換(IDQT)。
51.如權利要求47所述的方法,其特征在于,可以把經(jīng)編碼數(shù)據(jù)的塊表示為行數(shù)據(jù)和列數(shù)據(jù),并且進一步包括當正在處理列數(shù)據(jù)時,存儲行數(shù)據(jù);以及當正在處理行數(shù)據(jù)時,存儲列數(shù)據(jù)。
52.如權利要求47所述的方法,其特征在于,進一步包括在存儲步驟之前對數(shù)據(jù)元素進行再排序,使得以有效的方式執(zhí)行數(shù)據(jù)元素的后續(xù)的傳遞。
53.如權利要求47所述的方法,其特征在于,進一步包括根據(jù)預定準則控制步驟(a)、(b)、(c)、(d)、(e)、(f)、(g)和(h)。
54.如權利要求53所述的方法,其特征在于,進一步包括根據(jù)預定準則把唯一的系數(shù)乘法器提供給某些數(shù)據(jù)元素。
55.如權利要求54所述的設備,其特征在于,所述唯一的系數(shù)乘法器是基于B.G.Lee的算法。
56.如權利要求47所述的方法,其特征在于,所述數(shù)學運算是來自包括加、乘和減的組的。
57.如權利要求47所述的方法,其特征在于,每個所述蝶形處理器執(zhí)行一維變換的一部分。
58.如權利要求47所述的設備,其特征在于,計算所述經(jīng)編碼數(shù)據(jù)的塊的變換作為一系列一維變換而被計算。
59.一種計算機可讀出媒體,包括用于控制計算機系統(tǒng)執(zhí)行一種方法的結構,所述方法包括(a)接收預定量的數(shù)據(jù)元素;(b)所選擇的在數(shù)據(jù)元素對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的輸出;(c)作出任何經(jīng)處理的數(shù)據(jù)元素是否需要附加的數(shù)學運算的確定;(d)選擇需要附加數(shù)學運算的經(jīng)處理數(shù)據(jù)元素的第一部分;(e)選擇不需要附加數(shù)學運算的經(jīng)處理數(shù)據(jù)元素的第二部分;(f)在經(jīng)處理數(shù)據(jù)元素的第一部分的所選擇的對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的第二輸出;以及(g)存儲經(jīng)處理數(shù)據(jù)元素的第二部分直到處理了數(shù)據(jù)元素的所有第一部分。
60.確定經(jīng)編碼數(shù)據(jù)的塊的變換的一種設備,經(jīng)編碼數(shù)據(jù)的塊包括多個數(shù)據(jù)元素,所述設備包括(a)一種裝置,用于接收預定量的數(shù)據(jù)元素;(b)一種裝置,用于在所選擇的數(shù)據(jù)元素對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的輸出;(c)一種裝置,用于作出任何經(jīng)處理的數(shù)據(jù)元素是否需要附加的數(shù)學運算的確定;(d)一種裝置,用于選擇需要附加數(shù)學運算的經(jīng)處理數(shù)據(jù)元素的第一部分;(e)一種裝置,用于選擇不需要附加數(shù)學運算的經(jīng)處理數(shù)據(jù)元素的第二部分;(f)一種裝置,用于在所選擇的經(jīng)處理數(shù)據(jù)元素的第一部分對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的第二輸出;以及(g)一種裝置,用于存儲經(jīng)處理數(shù)據(jù)元素的第二部分直到處理了數(shù)據(jù)元素的所有第一部分。
61.如權利要求47所述的設備,其特征在于,進一步包括(h)一種裝置,用于按需要重復步驟(c)、(d)、(e)、(f)和(g)。
62.如權利要求47所述的設備,其特征在于,進一步包括(i)一種裝置,用于當經(jīng)編碼數(shù)據(jù)的塊的所有數(shù)據(jù)元素不需要附加的數(shù)學運算時,輸出經(jīng)編碼數(shù)據(jù)數(shù)據(jù)的塊。
63.如權利要求47所述的設備,其特征在于,從下述組中選擇所述變換,所述組包括離散余弦變換(DCT)、差分四元樹變換(DQT)、離散余弦反變換(IDCT)以及差分四元樹反變換(IDQT)。
64.如權利要求47所述的設備,其特征在于,可以把經(jīng)編碼數(shù)據(jù)的塊表示為行數(shù)據(jù)和列數(shù)據(jù),并且進一步包括一種裝置,用于當正在處理列數(shù)據(jù)時,存儲行數(shù)據(jù);以及一種裝置,用于當正在處理行數(shù)據(jù)時,存儲列數(shù)據(jù)。
65.如權利要求47所述的設備,其特征在于,進一步包括一種裝置,用于在存儲步驟之前對數(shù)據(jù)元素進行再排序,使得以有效的方式執(zhí)行數(shù)據(jù)元素的后續(xù)的傳遞。
66.如權利要求47所述的設備,其特征在于,進一步包括一種裝置,用于根據(jù)預定準則控制單元(a)、(b)、(c)、(d)、(e)、(f)、(g)和(h)。
67.如權利要求66所述的設備,其特征在于,進一步包括根據(jù)預定準則把唯一的系數(shù)乘法器提供給某些數(shù)據(jù)元素。
68.如權利要求67所述的方設備,其特征在于,所述唯一的系數(shù)乘法器是基于B.G.Lee的算法。
69.如權利要求60所述的設備,其特征在于,所述數(shù)學運算是來自包括加、乘和減的組的。
70.如權利要求60所述的設備,其特征在于,每個所述蝶形處理器執(zhí)行一維變換的一部分。
71.確定經(jīng)編碼數(shù)據(jù)的變換的一種設備,所述經(jīng)編碼數(shù)據(jù)包括象素域中的多個數(shù)據(jù)元素,所述設備包括配置成接收多個數(shù)據(jù)元素和把數(shù)據(jù)元素分組成象素域中的數(shù)據(jù)元素的多個組的塊大小分配器;配置成把數(shù)據(jù)元素從象素域變換到頻域的DCT/DQT變換器,所述變換器進一步包括輸入寄存器,配置成接收所述組的預定量的數(shù)據(jù)元素;耦合到所述輸入寄存器的至少一個蝶形處理器,把所述蝶形處理器配置成在所選擇的數(shù)據(jù)元素對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的輸出;耦合到所述蝶形處理器的至少一個中間寄存器,把所述中間寄存器配置成臨時存儲經(jīng)處理的數(shù)據(jù);以及耦合到所述中間寄存器和所述蝶形處理器的反饋回路,其中,如果使能的話,把所述反饋回路配置成把經(jīng)處理數(shù)據(jù)元素的第一部分傳遞到合適的蝶形處理器以執(zhí)行附加的數(shù)學運算,其中如果禁用的話,則把它配置成把經(jīng)處理數(shù)據(jù)元素的第二部分傳遞到至少一個保持寄存器;其中把所述保持寄存器配置成存儲經(jīng)處理數(shù)據(jù)直到處理了所有第一部分數(shù)據(jù)元素;量化器,配置成對頻域元素進行量化,以突出對于人的視覺系統(tǒng)更敏感的那些元素,并且使對于人的視覺系統(tǒng)較不敏感的那些元素不突出;串行化器,配置成產(chǎn)生頻域元素的串行化流;以及可變長度編碼器,配置成確定連續(xù)頻域元素和不連續(xù)頻域元素。
72.如權利要求71所述的設備,其特征在于,進一步包括耦合所述反饋回路和所述中間寄存器的至少一個輸入多路復用器,其中把每個輸入多路復用器配置成臨時選擇數(shù)據(jù)元素和把數(shù)據(jù)元素傳遞到合適的蝶形處理器。
73.如權利要求71所述的設備,其特征在于,進一步包括耦合所述蝶形處理器和所述中間寄存器的至少一個輸出多路復用器,其中把每個輸出多路復用器配置成臨時選擇數(shù)據(jù)元素和把數(shù)據(jù)元素傳遞到合適的中間寄存器。
74.如權利要求71所述的設備,其特征在于,可以把經(jīng)編碼數(shù)據(jù)的塊表示為行數(shù)據(jù)和列數(shù)據(jù),并且進一步包括耦合到輸入寄存器的轉置隨機存取存儲器(RAM),其中把所述轉置RAM配置成當正在處理列數(shù)據(jù)時,存儲行數(shù)據(jù);以及當正在處理行數(shù)據(jù)時,存儲列數(shù)據(jù)。
75.如權利要求74所述的設備,其特征在于,把所述轉置RAM配置成存儲經(jīng)編碼數(shù)據(jù)的兩個塊。
76.如權利要求74所述的設備,進一步包括耦合到所述保持寄存器的寫入多路復用器,其特征在于,把所述寫入多路復用器配置成對數(shù)據(jù)元素進行再排序以完成一維變換。
77.如權利要求71所述的設備,其特征在于,所述反饋回路允許再使用相同的部件而不管塊大小。
78.如權利要求71所述的設備,其特征在于,進一步包括耦合到所述反饋回路的控制序列發(fā)生器,其特征在于,把所述控制序列發(fā)生器配置成使能或禁用所述反饋回路。
79.如權利要求78所述的設備,其特征在于,所述控制序列發(fā)生器把唯一的系數(shù)乘法器提供給所述蝶形處理器。
80.如權利要求78所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定事件使能所述輸入寄存器中的某一些。
81.如權利要求78所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定準則使能所述蝶形處理器中的某一些。
82.如權利要求78所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定準則使能所述中間寄存器中的某一些。
83.如權利要求78所述的設備,其特征在于,所述控制序列發(fā)生器根據(jù)預定準則使能所述輸出寄存器中的某一些。
84.如權利要求71所述的設備,其特征在于,所述數(shù)學運算是來自包括加、乘和減的組。
85.如權利要求71所述的設備,其特征在于,每個所述蝶形處理器執(zhí)行一維變換的一部分。
86.把經(jīng)編碼數(shù)據(jù)從象素域變換到頻域的一種方法,所述經(jīng)編碼數(shù)據(jù)包括多個數(shù)據(jù)元素,所述方法包括(a)把象素域中的多個數(shù)據(jù)元素分組成多個塊,每個塊包括象素域中的多個數(shù)據(jù)元素;(b)在所選擇的對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理的數(shù)據(jù)元素數(shù)據(jù)元素的輸出;(c)作出任何經(jīng)處理的數(shù)據(jù)元素是否需要附加的數(shù)學運算的確定;(d)選擇需要附加數(shù)學運算的經(jīng)處理數(shù)據(jù)元素的第一部分;(e)選擇不需要附加數(shù)學運算的經(jīng)處理數(shù)據(jù)元素的第二部分;(f)在所選擇的經(jīng)處理數(shù)據(jù)元素的第一部分對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的第二輸出;(g)存儲經(jīng)處理的數(shù)據(jù)元素的第二部分直到處理了數(shù)據(jù)元素的所有第一部分;(h)按需要重復步驟(c)、(d)、(e)、(f)和(g)直到所有數(shù)據(jù)元素不需要附加的數(shù)學運算,并被轉換成頻域元素。(i)對頻域數(shù)據(jù)元素進行量化,以突出于人的視覺系統(tǒng)更敏感的那些元素,并且使對于人的視覺系統(tǒng)較不敏感的那些元素不突出;(j)使經(jīng)量化的頻域元串行化以產(chǎn)生頻域元的串行化流;以及(k)對經(jīng)串行化的頻域元進行編碼,以判定連續(xù)頻域元和不連續(xù)頻域元。
87.如權利要求86所述的方法,其特征在于,可以把經(jīng)編碼數(shù)據(jù)的塊表示為行數(shù)據(jù)和列數(shù)據(jù),并且進一步包括當正在處理列數(shù)據(jù)時,存儲行數(shù)據(jù);以及當正在處理行數(shù)據(jù)時,存儲列數(shù)據(jù)。
88.如權利要求86所述的方法,其特征在于,進一步包括根據(jù)所需要控制信號控制步驟(a)、(b)、(c)、(d)、(e)、(f)、(g)和(h)。
89.如權利要求88所述的方法,其特征在于,進一步包括根據(jù)預定準則把唯一的系數(shù)乘法器提供給某些數(shù)據(jù)元素。
90.如權利要求86所述的方法,其特征在于,每個所述蝶形處理器執(zhí)行一維變換的一部分。
91.如權利要求86所述的方法,其特征在于,計算經(jīng)編碼數(shù)據(jù)的塊的變換作為一系列一維變換被計算。
全文摘要
確定經(jīng)編碼數(shù)據(jù)的塊的變換的一種設備,所述經(jīng)編碼數(shù)據(jù)的塊包括多個數(shù)據(jù)元素。配置輸入寄存器以接收預定量的數(shù)據(jù)元素。把至少一個蝶形處理器耦合到輸入寄存器,并把所述蝶形處理器配置成在所選擇的數(shù)據(jù)元素對上執(zhí)行至少一種數(shù)學運算以產(chǎn)生經(jīng)處理數(shù)據(jù)元素的輸出。把至少一個中間寄存器耦合到所述蝶形處理器,并且配置成臨時存儲經(jīng)處理的數(shù)據(jù)。把反饋回路耦合到中間寄存器和所述蝶形處理器,并且如果使能的話,則把反饋回路配置成把經(jīng)處理數(shù)據(jù)元素的第一部分傳遞到合適的蝶形處理器以執(zhí)行附加的數(shù)學運算,其中如果禁用的話,則把經(jīng)處理的數(shù)據(jù)元素的第二部分傳遞到至少一個保持寄存器。
文檔編號G06F7/00GK1518706SQ02810009
公開日2004年8月4日 申請日期2002年5月15日 優(yōu)先權日2001年5月16日
發(fā)明者J·拉勞卡, C·A·額維尼, J·A·萊文, J 拉勞卡, 萊文, 額維尼 申請人:高通股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
深州市| 监利县| 宾阳县| 濮阳县| 乐业县| 海城市| 伊春市| 屏山县| 无锡市| 朝阳市| 清原| 浪卡子县| 咸宁市| 将乐县| 巴中市| 日喀则市| 永宁县| 上栗县| 六枝特区| 桃江县| 邳州市| 平定县| 堆龙德庆县| 新疆| 澜沧| 罗田县| 承德市| 丁青县| 宽城| 诸暨市| 利津县| 靖远县| 陈巴尔虎旗| 柳林县| 大邑县| 邢台市| 通榆县| 金寨县| 原平市| 南涧| 河曲县|