專利名稱:具有塊可訪問緩沖存儲(chǔ)器的圖像處理電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種圖像處理電路和處理圖像的方法。
技術(shù)背景公知的是,提供一種具有緩沖存儲(chǔ)器的圖像處理系統(tǒng)以提供到來自較大圖像的像素位置的矩形窗的存儲(chǔ)像素值的快速訪問。諸如DCT (離散余弦變換)的計(jì)算、二維濾波和像素的臨近塊的匹配等流行的 圖像處理任務(wù)需要重復(fù)執(zhí)行同一操作,每次應(yīng)用到像素位置的不同窗 的像素值。對(duì)于每次操作的執(zhí)行,相應(yīng)窗的像素值被保留在緩沖存儲(chǔ) 器中,因此能夠作為操作的一部分來迅速訪問這些像素值。在執(zhí)行下一次操作之前,更新緩沖存儲(chǔ)器的內(nèi)容。典型地,使用 滑動(dòng)窗,該滑動(dòng)窗基于從操作的一個(gè)執(zhí)行到另一個(gè)執(zhí)行的預(yù)定水平距 離進(jìn)行移動(dòng)。在這種情況下,通常只最新加載圖像最右列的像素值以 代替最左列的像素值。為了支持這種部分代替,優(yōu)選在緩沖存儲(chǔ)器中使用某種形式的循 環(huán)尋址。例如,這能夠利用某種形式的相對(duì)窗X—Y地址循環(huán)地址到 存儲(chǔ)器地址的轉(zhuǎn)譯來實(shí)現(xiàn)。因此,對(duì)于水平移動(dòng)的窗,相同的存儲(chǔ)器 地址是通過連續(xù)減少X的值來轉(zhuǎn)譯的X—Y地址。當(dāng)X值已經(jīng)減少到 窗之外時(shí),加載新的像素值用于存儲(chǔ)器地址,并且將X值增加窗大小。當(dāng)然,能夠使用其它方案來支持部分代替。作為選擇,能夠?qū)⑴f 的像素值移動(dòng)到不同窗的每次執(zhí)行操作之間的移位的存儲(chǔ)器位置,而 將新的像素值加載到空出的存儲(chǔ)器位置。S卩,對(duì)于圖像的相應(yīng)線有效 地使用移位寄存器。在這種情況下,能夠使用將X—Y地址到存儲(chǔ)器 位置的固定轉(zhuǎn)譯用于尋址移位寄存器中的位置。有利的,圖像處理的緩沖存儲(chǔ)器提供了到多個(gè)像素值的并行訪問,例如并行訪問窗中像素位置的水平線的像素值。這樣,能夠使用并行 處理器電路,每個(gè)處理器電路用于與其它處理電路并行地處理相應(yīng)像 素位置或像素位置組的一個(gè)或多個(gè)像素值。典型的,依賴于必須執(zhí)行的操作來選擇緩沖存儲(chǔ)器的大小和結(jié)構(gòu)。如果操作需要X和Y方向上16X 16像素位置的像素值塊,則典型使 用256 (16X 16)存儲(chǔ)器位置的緩沖存儲(chǔ)器,并且優(yōu)選地,操作的X 一Y地址分別包含用于相對(duì)于窗對(duì)X和Y位置進(jìn)行尋址的兩個(gè)4位部分。但是,不是所有的處理任務(wù)都需要同樣大小窗的像素值。 一些操 作需要8X8像素位置的窗的數(shù)據(jù);其它則需要16X16像素位置的窗 的數(shù)據(jù)或者9X9或17X17像素位置等。對(duì)于快速處理,希望緩沖存 儲(chǔ)器具有足夠的位置來存儲(chǔ)最大所需窗的所有像素值。在這種情況下,當(dāng)執(zhí)行需要較小窗的操作時(shí),只使用部分像素值。 當(dāng)緩沖存儲(chǔ)器支持像素位置線的并行訪問像素值時(shí),只使用部分并行 訪問能力。當(dāng)提供與最大可能的窗大小相對(duì)應(yīng)的多個(gè)并行處理器電路 時(shí),只使用這些處理器電路的一部分。發(fā)明內(nèi)容其中,本發(fā)明的目的在于增加圖像處理系統(tǒng)中的處理資源的使用 率,該圖像處理系統(tǒng)提供到用于存儲(chǔ)像素位置的至少二維窗的像素值 的緩沖存儲(chǔ)器中多個(gè)存儲(chǔ)器位置的并行訪問。本發(fā)明提供了一種根據(jù)權(quán)利要求1所述的圖像處理電路。本發(fā)明 提供了在訪問緩沖存儲(chǔ)器期間使用不同尺寸的塊。在此將使用術(shù)語 "塊"來指在像素位置窗中像素位置的集合。典型地,并行訪問塊的 位置的像素值。針對(duì)緩沖存儲(chǔ)器的相應(yīng)功能行提供相應(yīng)移位電路,以 改變?cè)L問端口,通過該訪問端口能夠彼此獨(dú)立地訪問行的像素值。依 賴于指示了被訪問塊的尺寸的模式信號(hào),來選擇不同行的移位量。由電路使用的移位量具有滿足以下條件的值能夠并行訪問存儲(chǔ)在不同行中的塊的像素位置的相應(yīng)線的像素值。因此,例如如果使用具有N/m 像素寬度的塊并且N個(gè)訪問端口是可用的,則當(dāng)將到不同行的像素值的訪問相對(duì)彼此移位N/m整數(shù)倍時(shí),能夠并行訪問N個(gè)像素。優(yōu)選地,功能行被實(shí)現(xiàn)為集成電路上存儲(chǔ)器矩陣中的幾何行,但是本發(fā)明并不 限于也是幾何行的功能行。優(yōu)選地,通過實(shí)現(xiàn)緩沖存儲(chǔ)器的功能行來實(shí)現(xiàn)移位,每個(gè)緩沖存 儲(chǔ)器為環(huán)形移位寄存器,沿著移位寄存器來傳送像素值以通過不同的訪問端口來實(shí)現(xiàn)訪問??梢允褂煤?jiǎn)單串聯(lián)的寄存器鏈(chain)。可選 擇地,可以在移位寄存器中的寄存器之間使用復(fù)用器來提供可選擇的 移位步長(zhǎng),以加速移位。在另一個(gè)實(shí)施例中,可以使用非環(huán)形移位寄 存器,但是在這種情況下,典型地需要更大的移位寄存器,其寬于窗 的行,以保持將像素值移位到"不可見"。將使用不限于實(shí)施例的示例來描述本發(fā)明的這些和其它目的以及 有利的方面。
圖1示出了圖像處理電路;圖2a — b演示了像素位置和像素的并行輸出之間的關(guān)系;圖3示出了緩沖存儲(chǔ)器;圖3a示出了移位控制部分;圖3b示出了列尋址部分; 圖4示出了移位寄存器; 圖5示出了緩沖存儲(chǔ)器; 圖6示出了另一個(gè)移位控制部分;圖7a—b示出了圖像線(line)的部分(fraction)存儲(chǔ)。
具體實(shí)施方式
圖1示出了圖像處理電路,包括主存儲(chǔ)器10、存儲(chǔ)器接口 12、緩 沖存儲(chǔ)器14、尋址電路15、多個(gè)處理電路16和控制電路18。緩沖存 儲(chǔ)器14通過接口 12連接到主存儲(chǔ)器10。緩沖存儲(chǔ)器14具有連接到 相應(yīng)一個(gè)處理電路16的并行數(shù)據(jù)訪問端口 17。控制電路18具有連接 到處理電路16的指令輸出、連接到尋址電路15的地址/控制輸出以及連接到接口 12的控制輸出。尋址電路15具有連接到緩沖存儲(chǔ)器14的輸出。盡管示出了三個(gè)訪問端口 17和處理電路16,但是應(yīng)該理解,可 以并行提供諸如8個(gè)或16個(gè)的任何數(shù)目的訪問端口 17和處理電路16。在實(shí)施例中,控制電路包括用于存儲(chǔ)程序指令的指令存儲(chǔ)器、以 及程序計(jì)數(shù)器來尋址這些指令。這些指令包括包含命令部分和地址部 分的指令。在這個(gè)實(shí)施例中,控制電路被設(shè)置成將所發(fā)出指令的地址 部分送入尋址電路15,將該指令的命令部分送入到處理電路16。此外, 程序計(jì)數(shù)器連接到接口電路12,用于在指令循環(huán)的預(yù)定位置來觸發(fā)在 主存儲(chǔ)器IO和緩沖存儲(chǔ)器14之間的傳送。在這個(gè)實(shí)施例中,處理電 路16為SIMD處理電路,被設(shè)置成接收來自控制電路18的相同指令。 但是應(yīng)該理解的是,本發(fā)明不限于該實(shí)施例??梢允褂闷渌问絹硐?尋址電路15提供地址并控制處理電路的操作。此外,盡管示出每個(gè)處 理電路16連接到一個(gè)訪問端口 17,但是應(yīng)該理解,在另一個(gè)實(shí)施例 中,每個(gè)處理電路16可以連接到多個(gè)訪問端口,例如,連接到其臨近 端口,或者甚至連接到與其臨近端口相鄰的端口等。當(dāng)訪問端口為讀 端口時(shí),這允許在每個(gè)處理電路16執(zhí)行更復(fù)雜的操作。在另一個(gè)實(shí)施 例中,處理電路16的組可以由相應(yīng)較大的處理電路來代替,其每個(gè)具 有連接到多個(gè)訪問端口 17的輸入,以執(zhí)行更復(fù)雜的操作。在操作中,控制電路18對(duì)處理電路16提供指令,對(duì)尋址電路15 提供相對(duì)窗地址和模式信號(hào)。典型地,控制電路為所有處理電路16 至多提供一個(gè)相對(duì)窗地址到地址的像素值。尋址電路15將每個(gè)相對(duì)窗 地址和模式信號(hào)的組合轉(zhuǎn)譯為用于緩沖存儲(chǔ)器14的控制信號(hào)。緩沖存儲(chǔ)器14可以被設(shè)置成支持從處理電路16讀和寫,或者只 讀或只寫。當(dāng)讀和寫均可以時(shí),控制電路也與相對(duì)窗地址相關(guān)地發(fā)送 讀/寫控制信號(hào)到尋址電路15。將以讀操作為例來進(jìn)行討論。響應(yīng)于 用于讀操作的地址,緩沖存儲(chǔ)器14從自身檢索用于多個(gè)像素位置的像 素值,并在端口 17處并行輸出這些像素值。緩沖存儲(chǔ)器14和尋址電路15支持己從主存儲(chǔ)器14加載的像素值 的像素位置和這些像素值在讀操作期間將被并行輸出的組合之間的關(guān)系進(jìn)行控制。圖2a — b演示了像素位置和在第一和第二操作模式期間分別并行輸出的像素值的組合之間的關(guān)系,例如,具有四個(gè)訪問端口 17處理電 路16。在第一模式中,并行輸出四個(gè)連續(xù)像素位置(四個(gè)X地址)的 一個(gè)線段(一個(gè)Y地址)的像素值。在這第一模式中,來自控制電路 18的相對(duì)窗地址與諸如線段最左邊的像素位置的相對(duì)窗XY地址相對(duì) 應(yīng)。在第二模式中,并行輸出每個(gè)兩像素位置(兩X地址)的兩個(gè)連 續(xù)的線段(兩個(gè)Y地址)的像素值。在這個(gè)第二模式中,來自控制電 路18的相對(duì)窗地址與諸如上層的線段最左邊的像素位置的相對(duì)窗XY 地址相對(duì)應(yīng)。例如,第一模式可以用于處理四像素位置寬的塊的像素值。在該 模式中,在執(zhí)行指令期間,每個(gè)處理電路16沿著塊中的線段并行訪問 相應(yīng)像素位置的像素值。例如,第二模式可以用于處理兩個(gè)像素位置 寬的塊的像素值。在這種模式中,在執(zhí)行指令期間,處理電路16被分 為各為兩個(gè)處理電路16的兩組。在執(zhí)行結(jié)果為控制電路18將相對(duì)窗 地址應(yīng)用于尋址電路的指令期間,兩個(gè)處理電路16的第一組訪問第一 線段的像素值。在執(zhí)行同樣的指令并具有同樣的應(yīng)用相對(duì)窗地址的結(jié) 果期間,處理電路16的第二組訪問第二線段的像素值。因而,所有的 處理電路16可以用于這兩種塊寬度(both block )。如果沿塊寬度方 向的像素位置的數(shù)目小于訪問端口 17和處理電路16的數(shù)目,則不必 留下使用部分訪問端口 17和處理電路16而不使用。圖3演示了緩沖存儲(chǔ)器14和尋址電路15的實(shí)施例。作為示例, 示出了具有像素值4X4存儲(chǔ)空間的小型緩沖存儲(chǔ)器14,但是應(yīng)該理 解,實(shí)際上可以使用較大的緩沖存儲(chǔ)器。在這個(gè)實(shí)施例中,緩沖存儲(chǔ) 器14包括多個(gè)環(huán)形移位寄存器電路30。提供復(fù)用電路32,并被組織 為各與各自的訪問端口相對(duì)應(yīng)的組。復(fù)用電路32的每個(gè)組連接在各自 移位寄存器30的輸出和其相應(yīng)的訪問端口 17之間。尋址電路15具有用于接收X、 Y地址的輸入X、 Y和用于接收模 式信號(hào)的輸入M。尋址電路15具有連接到各自的環(huán)形移位寄存器30 的移位控制輸入的獨(dú)立控制輸出。此外,尋址電路15具有連接到各自的訪問端口 17的復(fù)用電路的獨(dú)立控制輸出。尋址電路15被設(shè)置成依賴于來自模式信號(hào)輸入M的模式信號(hào)而使移位寄存器30移位,因此,不同移位寄存器中的移位可以互相不同。模式信號(hào)指示從中需要像素值的塊的寬度w?;谝莆坏娜我夤s數(shù)C加上W的相應(yīng)整數(shù)倍并modN,對(duì)連續(xù)移位寄存器30的像素值進(jìn) 行移位,其中N是存儲(chǔ)在每個(gè)移位寄存器30中的像素值的數(shù)目(存 儲(chǔ)在緩沖存儲(chǔ)器中的窗的寬度)。在一個(gè)實(shí)施例中 第i行的移位二C + PW modulo N移位的公約數(shù)C對(duì)所有移位寄存器30是相同的,例如,可以為0 , C = 0。因此,對(duì)于4X4的緩沖存儲(chǔ)器、N=4的示例和指示塊寬度W =2的模式信號(hào),連續(xù)移位寄存器30中的像素值可選擇地按0和2位 置來移位。圖3a演示了尋址電路15的移位控制部分的實(shí)施例,包括査找表 電路34,該查找表電路34具有接收模式信號(hào)"M"的輸入和用于緩 沖存儲(chǔ)器14(未示出)的相應(yīng)列的移位控制信號(hào)的輸出。査找表(LUT) 電路34可以實(shí)施為存儲(chǔ)器,該存儲(chǔ)器將模式信號(hào)M用作地址,并例 如根據(jù)前述的關(guān)系,在用于相應(yīng)模式信號(hào)值的地址處存儲(chǔ)控制信號(hào)集。 可選擇地,可以使用產(chǎn)生同樣的輸入一輸出關(guān)系的邏輯電路,或者使 用運(yùn)算電路來執(zhí)行控制信號(hào)的運(yùn)算。復(fù)用電路32可以實(shí)施為將所選的移位寄存器30的輸出連接到訪 問端口 17的開關(guān)。尋址電路15被設(shè)置成使用來自地址信號(hào)輸入X、 Y的相對(duì)窗XY地址信號(hào),來產(chǎn)生用于復(fù)用電路32的控制信號(hào)。產(chǎn)生 控制信號(hào),以便將包含來自所選塊的像素的復(fù)用電路的輸出連接到訪 問端口 17。對(duì)于每個(gè)訪問端口 17,選擇一個(gè)復(fù)用電路32。因?yàn)榫彌_ 存儲(chǔ)器的多個(gè)列己經(jīng)相互移位,所以可以這樣做。對(duì)于緩沖存儲(chǔ)器的 每個(gè)相關(guān)的列,輸出用于那些列的移位寄存器30的W個(gè)輸出。例如,在實(shí)施例中,第i行按PWmodN來移位,如果相對(duì)窗地 址為X、Y,則尋址電路15在緩沖存儲(chǔ)器14的第Y行從列號(hào)X+Y*W modN幵始來選擇W列,如果需要?jiǎng)t自動(dòng)歸為第0列。如果W小于 N,尋址電路15也在第Y+l行從列號(hào)X+ (Y+l) 4WmodN開始來選擇W列,如果需要?jiǎng)t自動(dòng)歸為第0列。優(yōu)選地,如果可能,尋址電 路在W位置從列號(hào)X十(Y+j) * !110(1>^開始選擇甚至更多行第Y+j行,j二0, 1,...,如果需要?jiǎng)t自動(dòng)歸為第O歹U。在這種情況下, j的值應(yīng)該滿足j二0,…,jmax.P其中j郵/W小于或等于N。圖3b演示了用于為不同列產(chǎn)生地址的列尋址部分。提供了查找表 (LUT)電路36來針對(duì)連續(xù)的訪問端口 17輸出所需的地址偏移。模 式信號(hào)M、 X地址和(部分的)Y地址用作査找表電路36的輸入。 査找表電路被設(shè)置成根據(jù)模式信號(hào)和相對(duì)窗X、 Y地址值,為相應(yīng)列 產(chǎn)生偏移值。加法器電路38被設(shè)置成將Y地址與査找表電路36的輸 出相加??梢岳斫鈱ぶ冯娐?5的很多種實(shí)現(xiàn)均可以實(shí)現(xiàn)尋址。加法器 電路38可以與查找表電路36和/或解碼電路集成來產(chǎn)生各個(gè)復(fù)用電路 的選擇信號(hào)。在另一個(gè)實(shí)施例中,為每個(gè)訪問端口 17提供運(yùn)算電路來 計(jì)算應(yīng)該連接到該訪問端口 17的緩沖存儲(chǔ)器的行。在上面給出示例的實(shí)施例中,列尋址部分有效地計(jì)算整數(shù)行地址 Y+j,其滿足條件P=X+k+(Y+j)*W modulo N其中,P為端口號(hào),在0和W-l之間的k沿塊中的行計(jì)數(shù)不同的像素值,以及j在0和jm^,之間。因此,對(duì)于兩個(gè)像素位置寬度塊W^2的4X4緩沖存儲(chǔ)器14(N二4) 的示例,如果相對(duì)窗XY地址為X4, Y=2,則尋址電路15將控制第 二行的復(fù)用電路32,以將該行的移位寄存器30連接到第0和第l訪 問端口 (對(duì)于k^0和l, P分別為0和1,對(duì)應(yīng)于j:0)。此外,尋址電 路15將控制第3行的復(fù)用電路32,以將該行的移位寄存器30連接到 第2和第3訪問端口 (對(duì)于1^0和1, P分別為2和3,對(duì)應(yīng)于j-l)。在該實(shí)施例中,尋址電路15僅依賴于塊的寬度W來控制每列中 的移位量。這使地址運(yùn)算變復(fù)雜。此外,其具有訪問端口依賴于塊的 X和Y地址的效果,該訪問端口向該塊的左上像素位置提供到像素值 的訪問。將這種像素位置輸出到訪問端口 17中的第X+YfW端口。在 另一實(shí)施例中,移位電路(未示出)連接在訪問端口 17和復(fù)用電路 32之間,以使像素值在X+Y+W位置上循環(huán)移位,以便預(yù)定訪問端口17向相對(duì)塊左上角的預(yù)定像素位置提供到像素值的訪問。因此,處理 電路16能夠適于該像素值。在可選擇的實(shí)施例中,通過將移位寄存器的移位量調(diào)整為Y地址和/或X地址,消除了對(duì)Y地址的依賴。例如,LUT電路34可以具有 用于Y地址信號(hào)和/或X地址信號(hào)的輸入來實(shí)現(xiàn)這種目的。在該情況 下,尋址電路15可以被設(shè)置成使第i移位寄存器30中的像素值移位 (i-Y) *W-XmodN,其中X和Y是用于尋址緩沖存儲(chǔ)器14的、塊 的左上像素位置的相對(duì)窗X和Y地址。因此,在訪問端口 17,相應(yīng) 于在已尋址塊中預(yù)定像素位置的像素位置與預(yù)定的訪問端口相應(yīng)。在 該情況下,這不需要其它移位電路來在訪問端口 17進(jìn)行實(shí)現(xiàn)。在可選 擇的實(shí)施例中,尋址電路可以根據(jù)(i-Y) fWmodN來控制第i移位 寄存器30的移位。在這種情況下,能夠由Y地址加上Y地址的獨(dú)立 偏移來確定列的地址。在另一實(shí)施例中,或者加上XmodN,從而實(shí) 現(xiàn)了訪問端口 17僅依賴于塊中的Y位置。在一個(gè)實(shí)施例中,尋址電路15計(jì)算解碼的選擇信號(hào)并將不同的選 擇信號(hào)輸出到各個(gè)復(fù)用電路32,以提供訪問端口的開/關(guān)控制。可選 擇地,尋址電路15可以向公用列的復(fù)用電路32提供解碼的地址信號(hào), 在該情況下復(fù)用電路32也應(yīng)該被設(shè)置成進(jìn)行解碼??梢酝ㄟ^使每個(gè)移位寄存器30能夠?qū)?shù)據(jù)移位控制的移位循環(huán) 數(shù),來控制移位。在一個(gè)實(shí)施例中,尋址電路使第i移位寄存器30能 夠進(jìn)行i*W mod N個(gè)移位循環(huán)。圖4示出了用于緩沖存儲(chǔ)器14的行的可選擇的移位寄存器電路。 移位寄存器電路40包括插入在寄存器42之間的寄存器和復(fù)用器44 的環(huán)形序列。每個(gè)復(fù)用器44具有第一輸入,所述第一輸入連接到前一 個(gè)寄存器42的輸出以及沿著該序列進(jìn)一步后退預(yù)定數(shù)目的位置的寄 存器42的輸出。尋址電路15 (未示出)控制復(fù)用器44和寄存器42。 移位步長(zhǎng)復(fù)用器44能夠選擇寄存器40中一個(gè)位置的移位,或者基于 單個(gè)移位循環(huán)中的多個(gè)位置進(jìn)行選擇。因此,能夠通過控制用于所選 擇的移位寄存器40的復(fù)用器44,將像素值從預(yù)定位置數(shù)沿該序列向 后傳輸,以減少實(shí)現(xiàn)大量移位所需的移位循環(huán)數(shù)。應(yīng)該理解的是,能夠通過使用復(fù)用電路44來實(shí)現(xiàn)進(jìn)一步減少移位循環(huán)數(shù),沿著寄存器42的環(huán)形序列,所述復(fù)用電路具有以相應(yīng)預(yù)定距 離連接到寄存器42的輸出的多個(gè)可選擇輸入。在最極端的形式中,每 個(gè)復(fù)用器44具有可選擇輸入,所述可選擇輸入連接到可以從其移位像 素值的每個(gè)寄存器42的輸出。在該情況下,尋址電路35控制緩沖存 儲(chǔ)器的每行中的復(fù)用器44,以將像素值沿著循環(huán)序列從相距所需距離 的寄存器42進(jìn)行傳送(例如,從距離"W, i為緩沖存儲(chǔ)器14中移位 寄存器40的行號(hào))。因此,單一的移位循環(huán)對(duì)于沿每個(gè)移位寄存器40 移位數(shù)據(jù)是足夠的。在另一個(gè)實(shí)施例中,只允許受限的移位量(例如, 根據(jù)不同的塊大小),并且對(duì)于所有這些移位量提供了復(fù)用器44的可 選擇的輸入,但是對(duì)于其它移位量則沒有提供。在實(shí)施例中,控制電路18被設(shè)置成向每個(gè)訪問操作提供新的模式 控制信號(hào)。在這種情況下,優(yōu)選地,由控制電路處理的每個(gè)訪問指令 包含控制電路提供給尋址電路15的模式控制信號(hào)值的字段。在可選擇 的實(shí)施例中,可以針對(duì)多個(gè)訪問操作來設(shè)置模式控制信號(hào),例如直到 設(shè)置了新的模式控制信號(hào)值。在該情況下,分離的指令可以用于針對(duì) 隨后的訪問指令來設(shè)置模式信號(hào)值。優(yōu)選地,在該可選擇的實(shí)施例中, 響應(yīng)設(shè)置新的模式控制信號(hào)值的指令,移位寄存器30(或40)中的像 素值被移位。在兩個(gè)實(shí)施例中,在執(zhí)行同樣的任務(wù)期間能夠執(zhí)行使用不同的塊 大小和/或形狀的不同類型處理,而無需重載入緩沖存儲(chǔ)器來適應(yīng)不同 的塊大小。圖5示出了一個(gè)實(shí)施例,其中連接到由尋址電路15控制的移位電 路52 (例如桶式移位器)的寄存器50組代替了移位寄存器30或40。 移位電路52的輸出通過與復(fù)用電路32類似的復(fù)用電路54 (未詳細(xì)示 出)連接到訪問端口 17。在操作中,圖5的緩沖存儲(chǔ)器14利用移位電路52中的電路切換 執(zhí)行行相關(guān)移位(row dependent shifting),即,無需將數(shù)據(jù)從移位寄 存器鏈(chain)中的一個(gè)寄存器傳送到另一個(gè)。這可以提高訪問的速 度,但是它需要比使用移位寄存器時(shí)更復(fù)雜的對(duì)更小型電路的訪問。在一個(gè)實(shí)施例中,對(duì)于每個(gè)訪問操作,尋址電路15使移位寄存器30 (或40)將像素值移位訪問操作所需的移位量,在訪問操作之后又以相同的量進(jìn)行。圖6示出了尋址電路15的移位控制部分的實(shí)施例,其中僅在訪問 操作之前移位像素值。在該實(shí)施例中,寄存器60被提供用于存儲(chǔ)最后 使用的模式控制信號(hào)和用于輸出移位控制信號(hào)的LUT電路34 (或具 有同樣輸入輸出功能的任何其它電路),如果存在,所述LUT電路34 與現(xiàn)有移位量(由舊的模式控制信號(hào)值指示)與新的訪問操作所需的 新的移位量之差相對(duì)應(yīng)。在已經(jīng)控制了移位之后,更新所存儲(chǔ)的模式 控制信號(hào)值。因此,移位操作的次數(shù)能夠最小化,這可以節(jié)省功率和 時(shí)間。當(dāng)移位量也依賴于X和/或Y地址時(shí),優(yōu)選地將X和/或Y地址 也存儲(chǔ)在寄存器60并被提供給LUT電路34。在另一個(gè)實(shí)施例中,尋址電路35被設(shè)置成禁用沒有被尋址的移位 寄存器中的移位。如果該實(shí)施例與使用差分移位的實(shí)施例進(jìn)行組合, 則優(yōu)選提供寄存器來代表相應(yīng)列的之前移位量,并且針對(duì)該之前移位 量,依賴于移位的變化來控制移位。接口電路12支持在主存儲(chǔ)器10和緩沖存儲(chǔ)器10之間像素值的傳 送??梢允褂萌魏螜C(jī)制來控制傳送。在一個(gè)實(shí)施例中,傳送被鏈接到 處理電路16的操作循環(huán)中。在該實(shí)施例中,控制電路最初將信號(hào)發(fā)送 到接口電路12,該信號(hào)觸發(fā)接口電路12從主存儲(chǔ)器IO將像素位置的 窗的像素值加載到緩沖存儲(chǔ)器中。下一個(gè)控制電路18啟動(dòng)處理循環(huán), 在該操作循環(huán)期間當(dāng)完成訪問時(shí),控制電路18發(fā)送信號(hào)到接口電路 12,該信號(hào)觸發(fā)接口電路12從主存儲(chǔ)器10將像素位置的窗的另外一 列像素值加載到緩沖存儲(chǔ)器中。在這種情況下,緩沖存儲(chǔ)器14的移位 機(jī)制可以用于實(shí)現(xiàn)能夠在預(yù)定寄存器中寫入新的像素值。應(yīng)該注意的 是,這對(duì)于所有行僅需要同樣的移位量,在操作期間模式不依賴于移盡管在一個(gè)實(shí)施例中,接口電路12被設(shè)置成僅從主存儲(chǔ)器10將 像素值傳送到緩沖存儲(chǔ)器14,在可選擇的實(shí)施例中,接口電路12可 以被設(shè)置成僅將像素值從緩沖存儲(chǔ)器14傳送到主存儲(chǔ)器10 (在處理之后),或者在處理之前將像素值從主存儲(chǔ)器10傳送到緩沖存儲(chǔ)器14,并在處理之后從緩沖存儲(chǔ)器14傳回主存儲(chǔ)器10。應(yīng)該注意的是,可以使用在主存儲(chǔ)器10和緩沖存儲(chǔ)器14之間其 它形式的傳送。代替將傳送鏈接到操作循環(huán)(例如由程序計(jì)數(shù)器值來 觸發(fā)),響應(yīng)顯式傳送指令來傳送,或者作為尋址的結(jié)果,使用外部緩 沖存儲(chǔ)器。盡管本發(fā)明已經(jīng)描述了其中控制電路18利用相對(duì)窗X Y地址來 對(duì)像素值進(jìn)行尋址的實(shí)施例,可選擇的實(shí)施例可以使用絕對(duì)(相對(duì)于 圖像)XY地址。在該可選擇的實(shí)施例中,可以提供轉(zhuǎn)譯電路來將絕 對(duì)地址轉(zhuǎn)換為相對(duì)窗XY地址,假定窗的XY地址存儲(chǔ)在緩沖存儲(chǔ)器 中??蛇x擇地,可以從絕對(duì)地址來直接計(jì)算緩沖存儲(chǔ)器中的內(nèi)部地址 (可選是移位量)。己經(jīng)利用其中圖像線(image line)與緩沖存儲(chǔ)器14的行之間存 在一對(duì)一對(duì)應(yīng)關(guān)系的示例來描述本發(fā)明。然而,可替換地,多于一個(gè) 圖像線的像素值可以存儲(chǔ)在一行中,或者一個(gè)圖像線的像素值可以分 布式存儲(chǔ)在緩沖存儲(chǔ)器14的多個(gè)行中。優(yōu)選地,在這種情況下,來自 存儲(chǔ)在緩沖存儲(chǔ)器14中圖像線的像素位置的數(shù)目是行中存儲(chǔ)器位置 數(shù)目的整數(shù)倍,或者相反地, 一行中存儲(chǔ)器位置的數(shù)目是來自存儲(chǔ)在 緩沖存儲(chǔ)器14中圖像線的像素位置的整數(shù)倍。在另一個(gè)實(shí)施例中,電 路不限于這些整數(shù)倍。圖7a-b示出了其中緩沖存儲(chǔ)器具有6個(gè)訪問端口和6個(gè)存儲(chǔ)器位 置的行的示例的圖像線的部分存儲(chǔ)。圖中示出了與緩沖存儲(chǔ)器14中的 存儲(chǔ)器位置的行(移位寄存器30或40)和列(訪問端口 17)對(duì)應(yīng)的 行和列的矩陣。圖像中像素位置的線段的像素值存儲(chǔ)在存儲(chǔ)器位置中。 存儲(chǔ)線段中最左端像素位置的像素值的存儲(chǔ)器位置由圓圈來指示。在 部分存儲(chǔ)的情況下,如圖所示,這些存儲(chǔ)器位置沒有在同一列中。圖 中還指出了矩形框的線段的像素值的位置。圖7a演示了具有十字、三 角和方形的像素位置的4X2塊的像素值的存儲(chǔ)位置。類似地,圖7b 演示了像素位置的3X6塊的像素值的存儲(chǔ)位置?,F(xiàn)在,當(dāng)必須訪問所選擇大小的塊時(shí),將模式信號(hào)提供給尋址電路15以指示所選擇塊的大小。在這個(gè)實(shí)施例中,尋址電路還接收關(guān)于 存儲(chǔ)在存儲(chǔ)器中的線段的長(zhǎng)度的信息,或者關(guān)于線段開始的存儲(chǔ)器位置之間的偏移信息。此外,提供了塊的X, Y地址。尋址電路15控制 移位量并進(jìn)行尋址以允許在不同訪問端口 17處輸出不同線段的像素 值。為此,尋址電路15根據(jù)模式信號(hào)和所存儲(chǔ)線段的長(zhǎng)度來控制移位 量并進(jìn)行尋址。圖中分別通過十字和三角指示了將要在訪問端口 17并行訪問的 相應(yīng)圖像線的像素值。如圖7a中的示例所示,并行輸出來自塊中一個(gè) 線的4個(gè)像素值并訪問下一線的兩個(gè)像素值。如圖7b中的示例所示, 并行輸出來自塊中一條線的3個(gè)像素值以及下一線的3個(gè)像素。與所存儲(chǔ)像素位置的數(shù)目等于緩沖存儲(chǔ)器14的每行的存儲(chǔ)器位 置的情況相比較,這種類型訪問的移位量和尋址更為復(fù)雜。在圖7a 的情況下,例如,尋址電路15可以使用0和2的移位量。由尋址電路 15針對(duì)前兩個(gè)訪問端口產(chǎn)生的行地址對(duì)第二行進(jìn)行尋址,用于第三個(gè) 到第六個(gè)訪問端口的地址對(duì)第一行進(jìn)行尋址。在圖7b的情況下,例如, 尋址電路15可以對(duì)前兩行和第三行使用2、 l和l的移位量。由尋址 電路15針對(duì)前3個(gè)訪問端口產(chǎn)生的行地址對(duì)第一行進(jìn)行尋址,用于接 下來的兩個(gè)訪問端口的地址對(duì)第二行進(jìn)行尋址,用于最后的訪問端口 的地址對(duì)第三行進(jìn)行尋址。正如所理解的那樣,與圖像線在緩沖存儲(chǔ)器14的每行中同一位置 開始的示例相比,這種情況下的尋址模式更不規(guī)則。但是,對(duì)于任何 給定的塊大小、塊地址和緩沖存儲(chǔ)器14中圖像線段的線段長(zhǎng)度的配 置,選擇允許并行訪問來自多個(gè)線的像素值的移位量和地址的組合是 簡(jiǎn)單的。本領(lǐng)域的普通技術(shù)人員可以選擇這種易受約束的移位量的組 合,以便具有將所需的像素位置移位到訪問端口的相互不同組的結(jié)果。 于是,本領(lǐng)域的普通技術(shù)人員能夠提供LUT電路或者便于輸出控制信 號(hào)的任何其它電路,響應(yīng)關(guān)于塊大小、塊地址和線段長(zhǎng)度的信息,該 控制信號(hào)影響移位量和地址的所選擇的組合。正如所理解的那樣,這 種技術(shù)能夠用來支持任何形狀的塊,而不僅僅是矩形塊。盡管已經(jīng)利用特定的實(shí)施例來描述本發(fā)明,應(yīng)該理解的是,本發(fā)明不限于這些實(shí)施例。例如應(yīng)該能夠?qū)崿F(xiàn)使用比4X4像素位置更大的 緩沖存儲(chǔ)器大小。緩沖存儲(chǔ)器14也不限于方形窗的存儲(chǔ)器。此外,盡管已經(jīng)針對(duì)每個(gè)存儲(chǔ)器位置包含一個(gè)像素值的緩沖存儲(chǔ)器14描述了本發(fā)明,應(yīng)該理解的是,可以在每個(gè)位置中存儲(chǔ)多于一個(gè)像素值,例如對(duì)于x方向上連續(xù)的像素位置存儲(chǔ)一組四個(gè)像素值。在這種情況下,優(yōu)選地,該組限定了訪問的基本粒度,針對(duì)組,共同控制到訪問端口 17的傳送,以及在同一訪問端口 17處一起訪問該組的 像素值。當(dāng)然,這將限制尋址和塊大小為粒度的整數(shù)倍,然而在大多 數(shù)應(yīng)用中這對(duì)于圖像處理操作是可接受的。此外,盡管已經(jīng)描述了使用環(huán)形移位寄存器,應(yīng)該理解的是,可 選擇的可以使用非環(huán)形移位寄存器(即當(dāng)這些像素值在右側(cè)被移出時(shí) 寄存器不移位在左側(cè)的像素值,反之亦然)。在這種情況下,非線性移 位寄存器優(yōu)選比窗的行更寬,當(dāng)像素值向左或向右移位時(shí),具有用于 接收來自窗的這些像素值的附加位置,因此,當(dāng)數(shù)據(jù)按照不同模式所 要求的那樣來回移位時(shí),來自窗的像素值沒有丟失。應(yīng)該理解的是, 當(dāng)環(huán)形移位寄存器可用時(shí),能夠使用更小的移位寄存器。在這種情況 下,也可以出現(xiàn)塊的分裂呈現(xiàn)(split presentation )。尋址電路15可以實(shí)現(xiàn)為處理電路的一部分,或者作為代替各個(gè)處 理電路集合的較大處理電路的一部分。這樣,可以利用這種處理電路 中的指令來控制塊選擇和尋址??蛇x擇地,尋址電路15能夠與緩沖存 儲(chǔ)器14集成在一起。此外,控制電路18的部分功能可以集成在緩沖 存儲(chǔ)器14中和/或與尋址電路15集成在一起,例如當(dāng)必須從主存儲(chǔ)器 10根據(jù)地址使用和/或來自處理電路16的關(guān)于將來尋址的信息來取新 的數(shù)據(jù)時(shí),進(jìn)行檢測(cè)。盡管本發(fā)明已經(jīng)描述了主要用于其中訪問涉及從緩沖池存儲(chǔ)器 14讀取像素值的實(shí)施例,應(yīng)該理解的是,可選擇地,本發(fā)明可以應(yīng)用 于只寫或讀寫或只讀。這僅僅影響在訪問端口 17和在移位寄存器30、 40的寄存器或寄存器50之間支持的信號(hào)流的方向。在寫復(fù)用電路32、 54功能上嚴(yán)格作為解復(fù)用電路的情況下,如果使用切換連接來實(shí)現(xiàn)這 些復(fù)用電路,則沒有區(qū)別。
權(quán)利要求
1.一種圖像處理電路,具有用于存儲(chǔ)在圖像中二維可移動(dòng)窗的像素位置的像素值的緩沖存儲(chǔ)器(14),所述緩沖存儲(chǔ)器(14)包括存儲(chǔ)器電路(30)的多個(gè)功能行,用于存儲(chǔ)來自該窗的像素值; 多個(gè)訪問端口(17),每個(gè)用于提供對(duì)來自相應(yīng)行中像素值的相應(yīng)組的可尋址像素值的訪問;移位電路(32),每個(gè)用于相應(yīng)行,并被設(shè)置成移位從相應(yīng)行到組的像素值的分配;尋址電路(15),包括輸入,用于接收像素位置的二維塊的地址和指示該塊的尺寸的模式信號(hào),尋址電路(15)被設(shè)置成依賴于由模式信號(hào)所指示的尺寸,控制移位電路(32)來設(shè)置相應(yīng)行的相應(yīng)移位量,移位量滿足這樣的條件存儲(chǔ)在不同行中的塊的像素位置的相應(yīng)線的像素值被分配到互不重疊的組。
2. 根據(jù)權(quán)利要求1所述的圖像處理電路,其中移位電路(32)和 每個(gè)行的像素值存儲(chǔ)器電路(30)形成相應(yīng)的移位寄存器電路。
3. 根據(jù)權(quán)利要求2所述的圖像處理電路,其中尋址電路被設(shè)置成 在訪問之前和之后,分別根據(jù)移位寄存器中的移位量進(jìn)行來回移位。
4. 根據(jù)權(quán)利要求2所述的圖像處理電路,其中尋址電路(15)包 括存儲(chǔ)單元(60),用于代表行最后使用的移位量,尋址電路被設(shè)置成 執(zhí)行差分移位,通過移位寄存器根據(jù)與連續(xù)訪問次數(shù)之間的差相對(duì)應(yīng) 的距離來移位像素值。
5. 根據(jù)權(quán)利要求2所述的圖像處理電路,其中移位寄存器電路(40) 包括復(fù)用器(44),每個(gè)復(fù)用器具有連接到相應(yīng)存儲(chǔ)器電路(42)的輸 出和從所述相應(yīng)存儲(chǔ)器電路沿著移位寄存器電路(40)以各自距離連 接到存儲(chǔ)器電路(42)的輸出的輸入,尋址電路(15)連接到復(fù)用器 電路(44)以依賴于行的移位量控制輸入選擇。
6. 根據(jù)權(quán)利要求2所述的圖像處理電路,其中對(duì)于每行,移位電 路(32)連接在存儲(chǔ)器電路(30)和訪問端口 (17)之間,并被設(shè)置 成將存儲(chǔ)器電路(30)之間的多個(gè)移位連接提供給訪問端口 (17)。
7. 根據(jù)權(quán)利要求2所述的圖像處理電路,其中移位寄存器是環(huán)形 移位寄存器,每個(gè)被設(shè)置成將來自相應(yīng)行的像素值的分配環(huán)形移位到 所述組。
8. 根據(jù)權(quán)利要求1所述的圖像處理電路,其中尋址電路被設(shè)置成 針對(duì)相應(yīng)組產(chǎn)生相應(yīng)行地址,并依賴于模式信號(hào)來選擇來自組的可尋 址像素值的行,對(duì)于所述組,通過訪問端口 (17)提供到所述組的訪問,所述地址滿足這樣的條件對(duì)于不重疊的組分別尋址不同的行。
9. 根據(jù)權(quán)利要求1所述的圖像處理電路,包括主存儲(chǔ)器(10)和 連接在主存儲(chǔ)器(10)與緩沖存儲(chǔ)器(14)之間的接口電路(12),并 被設(shè)置成在主存儲(chǔ)器(10)和緩沖存儲(chǔ)器(14)之間傳送該窗的像素值。
10. 根據(jù)權(quán)利要求1所述的圖像處理電路,包括多個(gè)并行像素值處 理電路(16),每個(gè)并行像素值處理電路連接到相應(yīng)訪問端口 (17)或 訪問端口 (17)的相應(yīng)子集。
11. 根據(jù)權(quán)利要求IO所述的圖像處理電路,其中像素值處理電路 (16)被編程為對(duì)于互不相同尺寸的塊,訪問來自該窗的相同像素位置的像素值,并傳送指示訪問之間的塊的尺寸的模式信號(hào)。
12. —種處理圖像中像素位置的像素值的方法,使用用于存儲(chǔ)圖像 中二維窗的像素位置的像素值的緩沖存儲(chǔ)器(14),所述緩沖存儲(chǔ)器(14)包括用于并行訪問像素值的多個(gè)訪問端口(17),每個(gè)訪問端口 提供到來自緩沖存儲(chǔ)器(14)中相應(yīng)功能行的像素值的相應(yīng)組的可尋 址像素值的訪問,所述方法包括發(fā)送信號(hào)到緩沖存儲(chǔ)器(14),以指示要并行訪問的像素值的像素 位置塊的尺寸;對(duì)于相應(yīng)行,將來自相應(yīng)行的像素值的分配的相應(yīng)移位量設(shè)置到組 中,所述分配依賴于所指示的尺寸,所述分配滿足這樣的條件根據(jù) 移位量,存儲(chǔ)在不同行中的塊的像素位置的相應(yīng)線的像素值被分配到 互不重疊的組;通過訪問端口 (17)并行訪問相應(yīng)線的像素值。
13. 根據(jù)權(quán)利要求12所述的方法,其中功能行各包括各自的移位寄存器(40),具有相應(yīng)像素值的存儲(chǔ)器位置(42),所述方法包括通 過移位寄存器(40)對(duì)像素值進(jìn)行移位以實(shí)現(xiàn)所述移位量。
全文摘要
一種圖像處理電路具有緩沖存儲(chǔ)器(14),用于存儲(chǔ)在圖像中二維可移動(dòng)窗的像素位置的像素值。緩沖存儲(chǔ)器(14)包括用于存儲(chǔ)來自所述窗的像素值的存儲(chǔ)器電路(30)的多個(gè)功能行。設(shè)置了多個(gè)訪問端口(17),每個(gè)用于提供對(duì)來自相應(yīng)行中像素值的相應(yīng)組的可尋址像素值的訪問。在存儲(chǔ)器電路(30)和訪問端口之間設(shè)置移位電路(32),或者其作為所述存儲(chǔ)器電路(3)裝置的一部分。每個(gè)移位電路被設(shè)置用于相應(yīng)行并被設(shè)置成移位從相應(yīng)行到組的像素值的分配。尋址電路(15)具有輸入,用于接收像素位置的二維塊的地址和指示塊的尺寸的模式信號(hào)。依賴于由模式信號(hào)所指示的尺寸,尋址電路(15)控制移位電路(32)來設(shè)置用于相應(yīng)行的相應(yīng)移位量。尋址電路將移位量設(shè)置為數(shù)值,從而存儲(chǔ)在不同行中的塊的像素位置的相應(yīng)線的像素值被分配到互不重疊的組。這樣能夠并行訪問塊的像素值。
文檔編號(hào)G06T1/60GK101218604SQ200680025132
公開日2008年7月9日 申請(qǐng)日期2006年5月4日 優(yōu)先權(quán)日2005年5月10日
發(fā)明者卡洛斯·A·阿爾巴平托, 拉馬納坦·塞托拉曼 申請(qǐng)人:Nxp股份有限公司