用于媒體處理加速器的采集方法和裝置制造方法
【專利摘要】描述了裝置、系統(tǒng)和方法,包括將高速緩沖存儲器線至少劃分為最高有效部分和次最高有效部分,將高速緩沖存儲器線內(nèi)容存儲在寄存器陣列中,以使得每一個高速緩沖存儲器線的最高有效部分存儲在寄存器陣列的第一行中且每一個高速緩沖存儲器線的次最高有效部分存儲在寄存器陣列的第二行中。第一行的第一寄存器部分的內(nèi)容可以提供給桶形移位器,其中,可以對齊該內(nèi)容且隨后將該內(nèi)容存儲在緩沖器中。
【專利說明】用于媒體處理加速器的采集方法和裝置
【背景技術(shù)】
[0001]視頻面通常以區(qū)塊格式存儲在存儲器中,以改進(jìn)存儲器控制器效率。視頻處理算法經(jīng)常需要訪問這些視頻面內(nèi)任意位置處的任意矩形尺寸的感興趣的2D區(qū)域(R0I)。這些任意位置可以是未對齊的高速緩沖存儲器,且可以跨越幾個非相鄰的高速緩沖存儲器線和/或區(qū)塊(tile)。為了從這樣的位置采集像素,傳統(tǒng)方式可以從存儲器過量提取像素數(shù)據(jù)的幾個高速緩沖存儲器線,隨后執(zhí)行交叉混合(swizzling)、掩碼和縮減操作,使得采集過程具有挑戰(zhàn)性。
[0002]高能效的媒體處理通常由可編程向量或標(biāo)量架構(gòu)來進(jìn)行,或者由固定的功能邏輯來進(jìn)行。在傳統(tǒng)的向量實(shí)施方式中,可以使用向量采集指令來采集ROI的像素值,這通常包括:從一個高速緩沖存儲器線收集像素值的行中的某些值,遮蔽任何無效值,在緩沖器或存儲器中存儲值,從下一個高速緩沖存儲器線收集該行的附加的像素值,并重復(fù)這個過程直到采集到像素值的完整的水平的行為止。結(jié)果,為了滿足區(qū)塊格式,典型的向量采集過程通常需要使用不同的蒙版(mask)來多次重發(fā)相同的高速緩沖存儲器線。
【專利附圖】
【附圖說明】
[0003]在附圖中通過示例而非限制的方式例示了本文中所描述的材料。為了例示的簡單和清楚,附圖中例示的元件不一定是按照比例繪制的。例如,為了清楚,可以相對于其他元件而放大某些元件的尺寸。此外,在認(rèn)為適當(dāng)?shù)那闆r下,在附圖中重復(fù)了附圖標(biāo)記,以表示相應(yīng)的或類似的元件。在附圖中:
[0004]圖1是示例性系統(tǒng)的示意圖;
[0005]圖2例示了示例性的過程;
[0006]圖3例示了示例性的區(qū)塊存儲器格式;
[0007]圖4例示了示例性的區(qū)塊存儲器格式;
[0008]圖5、6和7例不了不同環(huán)境下圖1的不例性系統(tǒng);
[0009]圖8例示了圖2的示例性過程的附加部分;
[0010]圖9例示了溢出條件下圖1的示例性系統(tǒng);以及
[0011]圖10是全部根據(jù)本公開內(nèi)容的至少某些實(shí)施方式而布置的示例性系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0012]現(xiàn)在參考附圖來說明一個或多個實(shí)施例。盡管論述了特定的結(jié)構(gòu)和布置,但應(yīng)理解,這僅是出于說明性目的而作出的。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)認(rèn)識到,在不脫離本說明書的精神和范圍的情況下,可以使用其他結(jié)構(gòu)和布置。對于本領(lǐng)域技術(shù)人員而言,本文中所描述的技術(shù)和/或布置也可以用于除了本文中所描述的以外的各種其他系統(tǒng)和應(yīng)用是顯而易見的。
[0013]盡管以下說明闡述了可以在例如這種芯片上系統(tǒng)(SoC)架構(gòu)的架構(gòu)中出現(xiàn)的多個實(shí)施方式,但本文所述的技術(shù)和/或布置的實(shí)施方式不局限于特定的架構(gòu)和/或計算系統(tǒng),可以由用于類似目的的任意架構(gòu)和/或計算系統(tǒng)來實(shí)現(xiàn)。例如,采用例如多個集成電路(IC)芯片和/或封裝的多種架構(gòu),和/或多種計算設(shè)備,和/或諸如機(jī)頂盒、智能電話之類的多種消費(fèi)電子(CE)設(shè)備,可以實(shí)現(xiàn)本文所述的技術(shù)和/或布置。此外,盡管以下說明可以闡明多個特定細(xì)節(jié),例如系統(tǒng)部件的邏輯實(shí)施方式、類型和相互關(guān)系,邏輯劃分/集成選擇等,但可以實(shí)施所要求保護(hù)的主題而不需要這樣的特定細(xì)節(jié)。在其他情況下,例如,可以不詳細(xì)示出諸如控制結(jié)構(gòu)和完整軟件指令序列之類的一些材料,從而不模糊本文中所公開的材料。
[0014]本文中所公開的材料可以在硬件、固件、軟件或其任意組合中實(shí)現(xiàn)。本文中所公開的材料也可以實(shí)現(xiàn)為存儲在機(jī)器可讀介質(zhì)上的指令,其可以由一個或多個處理器讀取并執(zhí)行。機(jī)器可讀介質(zhì)可以包括用于以機(jī)器(例如計算設(shè)備)可讀的形式存儲或發(fā)送信息的任意介質(zhì)和/或機(jī)制。例如,機(jī)器可讀介質(zhì)可以包括:只讀存儲器(ROM);隨機(jī)存取存儲器(RAM);磁盤存儲介質(zhì);光存儲介質(zhì);閃存設(shè)備;電、光、聲或其他形式傳播的信號(例如,載波、紅外信號、數(shù)字信號等),及其他的介質(zhì)。
[0015]說明書中引用的“一個實(shí)施例”、“一實(shí)施例”、“一示例性實(shí)施例”等表示所述的實(shí)施方式可以包括特定的特征、結(jié)構(gòu)或特性,但是不需要每個實(shí)施方式都包括特定的特征、結(jié)構(gòu)或特點(diǎn)。而且,這樣的短語不一定指代相同的實(shí)施方式。此外,當(dāng)結(jié)合一實(shí)施方式來描述特定的特征、結(jié)構(gòu)或特點(diǎn)時,應(yīng)當(dāng)指出,這些特征、結(jié)構(gòu)或特點(diǎn)在其他相關(guān)實(shí)施方式中起作用是在本領(lǐng)域技術(shù)人員的知識范圍內(nèi)的,而無論本文中是否明確地說明。
[0016]圖1例示了根據(jù)本公開內(nèi)容的采集引擎100的示例性實(shí)施方式。在多個實(shí)施方式中,采集引擎100可以構(gòu)成媒體處理加速器的至少一部分。采集引擎100包括寄存器陣列102、桶形移位器104、兩個采集寄存器緩沖器(GRB)106和108和多路復(fù)用器(MUX)llO。寄存器陣列102包括具有多個寄存器存儲位置或部分122的多個俄羅斯方塊寄存器(tetrisregister) 112、114、116、118和120。在多個實(shí)施方式中,根據(jù)本公開內(nèi)容的俄羅斯方塊寄存器可以是任意臨時存儲邏輯,例如被配置為字節(jié)標(biāo)記的或使能的處理器寄存器邏輯。
[0017]根據(jù)本公開內(nèi)容,采集引擎100可以用于從存儲在諸如高速緩沖存儲器(例如LI高速緩沖存儲器)之類的存儲器中的視頻面的感興趣的區(qū)域(ROI)采集視頻數(shù)據(jù)。在多個實(shí)施方式中,ROI可以包括任意類型的視頻數(shù)據(jù),例如像素強(qiáng)度值等。在多個實(shí)施方式中,弓I擎100可以被配置為存儲從高速緩沖存儲器(未示出)接收的多個高速緩沖存儲器線(CL)的內(nèi)容,從而跨過陣列102的俄羅斯方塊寄存器112-120中的相對應(yīng)的一個的部分122來存儲每個高速緩沖存儲器線(例如CL1、CL2等)。在多個實(shí)施方式中,俄羅斯方塊寄存器的第一部分可以構(gòu)成陣列102的第一行124,而俄羅斯方塊寄存器的第二部分可以構(gòu)成陣列的第二行126,如此類推。
[0018]根據(jù)本公開內(nèi)容,高速緩沖存儲器線內(nèi)容可以存儲在陣列102中,以使得每個CL的內(nèi)容的不同部分存儲在俄羅斯方塊寄存器中的相對應(yīng)的一個的不同部分中。例如,在多個實(shí)施方式中,CLl的最高有效部分可以存儲在俄羅斯方塊寄存器112的第一部分128中,而CL2的最高有效部分可以存儲在俄羅斯方塊寄存器114的第一部分130中,如此類推。CLl的次最高有效部分可以存儲在俄羅斯方塊寄存器112的第二部分132中,而CL2的次最高有效部分可以存儲在俄羅斯方塊寄存器114的第二部分134中,如此類推。[0019]根據(jù)本公開內(nèi)容,陣列102的行的數(shù)量可以與待處理的高速緩沖存儲器線中的八進(jìn)制字(OW)的數(shù)量相匹配,而陣列102的列的數(shù)量(及因此所采用的俄羅斯方塊寄存器的數(shù)量)可以與高速緩沖存儲器線OW加一的數(shù)量相匹配。在圖1的示例中,引擎100可以配置為采集64字節(jié)的高速緩沖存儲器線,以使得每個俄羅斯方塊寄存器都包括四個部分122以存儲相對應(yīng)的高速緩沖存儲器線的四個16字節(jié)OW部分,并且因此陣列102包括四行。例如,CLl的最高有效OW可以存儲在俄羅斯方塊寄存器112的部分128中,而CLl的次最高有效OW可以存儲在寄存器112的部分132中,如此類推。如以下將更詳細(xì)解釋的那樣,為了容納并處理未對齊的和/或溢出的高速緩沖存儲器線內(nèi)容,根據(jù)本公開內(nèi)容的采集引擎可以包括比存儲高速緩沖存儲器線OW所需的俄羅斯方塊寄存器的數(shù)量至少多一個的俄羅斯方塊寄存器。例如,為了處理具有四個OW的64字節(jié)高速緩沖存儲器線,陣列102包括五個俄羅斯方塊寄存器112-120,以使得陣列102的每一行都在寬度上橫跨總共80字節(jié)。
[0020]桶形移位器104可以接收寄存器102的任意一行的內(nèi)容。例如,桶形移位器104可以是64字節(jié)桶形移位器,被配置為接收與在陣列102中存儲的五個高速緩沖存儲器線中的最高有效部分相對應(yīng)的行124的內(nèi)容。在多個實(shí)施方式中,如下將更詳細(xì)解釋的那樣,桶形移位器104可以通過例如左移寄存器部分122的內(nèi)容來對齊它們,隨后可以將對齊的內(nèi)容提供給GRB106或GRB108。例如,桶形移位器104可以以連續(xù)往復(fù)(successiveiteration)的方式接收行124的部分122的內(nèi)容,對齊那些內(nèi)容并將經(jīng)對齊的內(nèi)容提供給GRB106。例如,桶形移位器104可以接收寄存器部分128的內(nèi)容,可以對齊那些內(nèi)容,并且隨后將經(jīng)對齊的數(shù)據(jù)提供給GRB106。桶形移位器104可以隨后接收寄存器部分130的內(nèi)容,可以對齊那些內(nèi)容并隨后將經(jīng)對齊的數(shù)據(jù)提供給GRB106,以相鄰于與寄存器部分128相對應(yīng)的經(jīng)對齊的數(shù)據(jù)而臨時存儲,如此類推,直至行124的內(nèi)容與GRB106對齊并存儲于GRB106中,以生成像素數(shù)據(jù)的對齊行。
[0021]當(dāng)引擎100如剛才所描述那樣處理行124的內(nèi)容時,引擎100還可以以類似的方式進(jìn)行行126的內(nèi)容的處理,直至行126的內(nèi)容與RGB108對齊并存儲于RGB108中,以生成像素值的第二對齊行。在多個實(shí)施方式中,如下更詳細(xì)解釋的那樣,GRB106和GRB108可以使用MUXllO以往復(fù)方式將像素數(shù)據(jù)的對齊行提供給2D寄存器文件(未示出),以將GRB106和GRB108的內(nèi)容交替地提供給寄存器文件(RF)。
[0022]在多個實(shí)施方式中,采集引擎100可以在一個或多個集成電路(IC)中實(shí)現(xiàn),所述集成電路例如是芯片上系統(tǒng)(SoC)和消費(fèi)電子(CE)媒體處理系統(tǒng)的附加1C。例如,引擎100可以由被配置為處理視頻數(shù)據(jù)的任意設(shè)備來實(shí)現(xiàn),所述設(shè)備例如是但不限于專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號處理器(DSP)等。如上所述,盡管引擎100包括適合于處理64字節(jié)高速緩沖存儲器線的五個俄羅斯方塊寄存器112-120,但根據(jù)本公開內(nèi)容的采集引擎可以包括取決于高速緩沖存儲器線和/或被處理的ROI的尺寸的任意數(shù)量的俄羅斯方塊寄存器。
[0023]圖2例示了根據(jù)本公開內(nèi)容的多個實(shí)施方式的用于實(shí)現(xiàn)采集操作的示例性過程200的流程圖。過程200可以包括如由圖2的塊201、202、204、206、208、210和212中的一個或多個塊所示的一個或多個操作、功能或動作。通過非限制性示例的方式,本文中將參考圖1的示例性采集引擎100來描述過程200。過程200可以在塊201處開始,其中開始對視頻面的ROI的采集處理。例如,過程200可以在塊201處開始,其中開始對64x64的ROI的采集處理(例如,ROI橫跨64行,每一行都具有64字節(jié)的像素值)。
[0024]在塊202處,可以接收第一高速緩沖存儲器線(CL),其中,所述CL對應(yīng)于在ROI中所包含的數(shù)據(jù)的第一 CL。在塊204處,可以將CL劃分為最高有效部分、次最高有效部分等。例如,如果在塊202處接收64字節(jié)CL,則可以將CL劃分為四個16字節(jié)OW部分。隨后可以將CL部分載入寄存器陣列中,以便將最高有效部分存儲在陣列的第一行的第一位置中,次最高有效部分存儲在陣列的第二行的第一位置中,如此類推。例如,由陣列102接收的64字節(jié)CL (CLl)可以劃分為四個0W,并載入第一俄羅斯方塊寄存器112的寄存器部分122中,以便將最高有效OW存儲在部分128中,次最高有效OW存儲在部分132中,如此類推。
[0025]在塊208處,做出關(guān)于是否要針對ROI獲得附加的數(shù)據(jù)的高速緩沖存儲器線的確定。如果要獲得附加的CL,則過程200可以環(huán)回(loop back)并針對ROI中下一個CL進(jìn)行塊202-206。例如,可以由陣列102接收下一個64字節(jié)CL (CL2),劃分為四個OW并載入第二俄羅斯方塊寄存器114的寄存器部分122中,以便將最高有效OW存儲在部分130中,次最高有效OW存儲在部分134中,如此類推。以此方式,過程200可以通過塊202-206的連續(xù)往復(fù)而繼續(xù)循環(huán),直至ROI的一個或多個附加的CL載入陣列102中。例如,繼續(xù)以上的示例,直到可以由陣列102接收ROI的另外三個CL (例如,CL3、CL4和CL5),以類似的方式劃分為四個OW并載入剩余俄羅斯方塊寄存器116、118和120的寄存器部分122中。
[0026]圖3和4例示了根據(jù)本公開內(nèi)容的多個實(shí)施方式的、在區(qū)塊存儲器中用于存儲視頻面的示例性區(qū)塊_y格式。在圖3中,存儲器的4KB個區(qū)塊300可以包括八(8)列乘以16字節(jié)寬存儲位置的三十二(32)行。在區(qū)塊-y格式中,區(qū)塊300可以將64字節(jié)CL302的四個OW存儲為區(qū)塊300的列的第一部分。以此方式,區(qū)塊300可以存儲數(shù)據(jù)的六十四(64)個高速緩沖存儲器線。在圖4中,示出區(qū)塊300跨諸如高速緩沖存儲器之類的存儲器的區(qū)域400的一部分。參考過程200和引擎100,用以加載ROI的CL的塊202-206的連續(xù)往復(fù)可以包括連續(xù)地將區(qū)塊300的高速緩沖存儲器線402-410載入陣列102中。
[0027]返回到圖2的論述,當(dāng)已經(jīng)將ROI的一個或多個CL載入到寄存器陣列中時,過程200可以在塊210處繼續(xù),其中,針對陣列的第一行的每一個連續(xù)部分,將該部分載入到桶形移位器中,如有必要,對齊該部分的內(nèi)容。例如,塊210可以包括將行124的第一部分128的內(nèi)容載入到移位器104中,隨后左移數(shù)據(jù)以將其GRB106對齊。在一些實(shí)施方式中,如果當(dāng)在塊202-206處將高速緩沖存儲器線載入陣列時已經(jīng)對齊了高速緩沖存儲器線,則塊210可以不包括對齊內(nèi)容。在塊212處,可以將像素值的對齊的第一行提供給第一采集緩沖器。例如,可以從桶形移位器104將行124的對齊的像素值內(nèi)容提供給GRB106。
[0028]例如,圖5例示了根據(jù)本公開內(nèi)容的多個實(shí)施方式的、在針對第一寄存器部分進(jìn)行過程200的塊210和212的環(huán)境500中的引擎100。在環(huán)境500中,如圖所示,已經(jīng)將ROI的五個CL載入到陣列102中,其中ROI的內(nèi)容(由虛線標(biāo)記示出)沒有相對于陣列102對齊。在這個示例中,ROI的第一 CL (例如CLl)載入到第一俄羅斯方塊寄存器112中,以使得俄羅斯方塊寄存器112的每一個部分122都包括無效部分502。根據(jù)本公開內(nèi)容,當(dāng)針對行124的第一寄存器部分128進(jìn)行塊210時,將部分128的內(nèi)容載入到移位器104中并左移,以使得當(dāng)在塊210處將內(nèi)容提供給GRB106時,數(shù)據(jù)如圖所示地與GRB106對齊。
[0029]繼續(xù)該示例,圖6示出了根據(jù)本公開內(nèi)容的多個實(shí)施方式的、在針對下一個寄存器部分進(jìn)行過程200的塊210和212的環(huán)境600中的引擎100。在環(huán)境600中,通過將俄羅斯方塊寄存器114的部分130的內(nèi)容載入到移位器104中,左移數(shù)據(jù)并隨后將對齊的數(shù)據(jù)提供給GRB106來為行124的下一個部分130進(jìn)行塊210和212,以使得該數(shù)據(jù)如圖所示地相鄰于來自部分128的對齊的數(shù)據(jù)而被存儲。以該方式,在塊210和212結(jié)束處,行124的完全對齊的內(nèi)容可以存儲在GRB106中,如圖7所示,其中,在根據(jù)本公開內(nèi)容的多個實(shí)施方式的、針對第一寄存器行124完成過程200的塊210和212的環(huán)境700中例示了引擎100。
[0030]返回到圖2的論述,當(dāng)在塊212處已經(jīng)將第一行的對齊的內(nèi)容載入到第一采集緩沖器中時,過程200可以繼續(xù)進(jìn)行寄存器陣列的任意附加的行的處理。圖8示出了根據(jù)本公開內(nèi)容的多個實(shí)施方式的用于實(shí)現(xiàn)采集操作的示例性過程200的附加部分的流程圖。過程200的附加部分可以包括如圖8的塊215、214、216、218、220、和222中的一個或多個塊所例示的一個或多個操作、功能或動作。通過非限制性示例的方式,本文中還將參考圖1的示例性采集引擎100來描述過程200的附加的塊。過程200可以在圖8的塊214處繼續(xù)。
[0031]在塊214處,可以將陣列的第二行的部分的內(nèi)容連續(xù)地載入到桶形移位器中,并且如有必要,可以對齊該內(nèi)容。在塊215處,可以將經(jīng)對齊的寄存器部分的內(nèi)容并入第二采集緩沖器中。例如,塊214和塊215可以包括:將第二行126的第一部分132的內(nèi)容載入到移位器104中,左移數(shù)據(jù),將經(jīng)對齊的數(shù)據(jù)載入到GRB108中,將第二行126的第二部分134的內(nèi)容載入到移位器104中,左移數(shù)據(jù),將經(jīng)對齊的數(shù)據(jù)載入到的GRB108中鄰近來自部分132的經(jīng)對齊數(shù)據(jù),如此類推,直至處理了第二行的全部部分。因此,在這個示例中,在塊214和塊215結(jié)束處,寄存器陣列102的第二行126的經(jīng)對齊的內(nèi)容可以被載入到GRB108中。
[0032]當(dāng)塊214和/或塊215進(jìn)行時,可以在塊216處將第一行的經(jīng)對齊的內(nèi)容從第一寄存器緩沖器提供給2D寄存器文件。例如,塊216可以包括:使用MUXllO來將存儲在GRB106中的經(jīng)對齊的第一行數(shù)據(jù)提供給RF,其中,所述數(shù)據(jù)可以在RF中存儲為第一行數(shù)據(jù)。在塊218處,可以將第二行的經(jīng)對齊的內(nèi)容從第二寄存器緩沖器提供給RF。例如,塊218可以包括:使用MUXllO來將存儲在GRB108中的經(jīng)對齊的第二行數(shù)據(jù)提供給RF,其中,所述數(shù)據(jù)可以在RF中存儲為第二行數(shù)據(jù)。
[0033]過程200可以在塊220處繼續(xù),其中,以類似于以上針對寄存器陣列的前兩行所描述的方式來處理寄存器陣列的附加的行。因此,例如,塊220可以引起陣列102的三個剩余行的經(jīng)對齊內(nèi)容在RF中被存儲為接下來的三行數(shù)據(jù),并可以完成陣列的這些行的處理。在塊222處,可以作出有關(guān)于是否應(yīng)進(jìn)行針對ROI采集更多的高速緩沖存儲器線的確定。例如,如果過程200的第一次往復(fù)(iteration)已引起了采集64x64的ROI的四行,貝U可以針對ROI接下來的四行繼續(xù)進(jìn)行采集操作。如果將針對ROI繼續(xù)采集操作,則過程200可以返回到圖2,并可以在塊201處開始針對ROI的一個或多個附加的高速緩沖存儲器線進(jìn)行第二次過程200。否則,如果采集操作不繼續(xù),則過程200可以結(jié)束。
[0034]盡管示例性過程200的實(shí)施方式如圖2和8所示可以包括以例示的順序進(jìn)行所示的全部塊,但是本公開內(nèi)容不限于此,并且在多個示例中,過程200的實(shí)施方式可以包括僅進(jìn)行所示的全部塊的一子集和/或以不同于所示的順序進(jìn)行。例如,在多個實(shí)施方式中,可以在塊214和215的任意一個或兩者的之前、期間和/或之后進(jìn)行圖8的塊216。另外,可以針對寄存器陣列的不同填充階段來進(jìn)行根據(jù)本公開內(nèi)容的采集處理,以使得如果在任一時間,寄存器陣列的一行或多行為空的話,則可以在如本文所述地處理保持有ROI的像素值的陣列行的同時,用來自高速緩沖存儲器的ROI像素值來加載那些行。
[0035]另外,可以響應(yīng)于由一個或多個計算機(jī)程序產(chǎn)品提供的指令來進(jìn)行圖2和圖8的處理和/或塊中的任意一個或多個。這種程序產(chǎn)品可以包括提供指令的信號承載介質(zhì),在由例如一個或多個處理器核心執(zhí)行所述指令時,可以提供本文所描述的功能。可以在任意形式的計算機(jī)可讀介質(zhì)中提供計算機(jī)程序產(chǎn)品。因此,例如,包括一個或多個處理器核心的處理器可以響應(yīng)于由計算機(jī)可讀介質(zhì)傳送到處理器的指令來進(jìn)行圖2和8中所示的一個或多個塊。
[0036]此外,盡管本文中已經(jīng)在針對在高速緩沖存儲器中以區(qū)塊_y格式存儲的視頻面的64x64的ROI來采集64字節(jié)的高速緩沖存儲器線的示例性采集引擎100的環(huán)境中描述了過程200,但是本公開內(nèi)容不限于高速緩沖存儲器線的具體尺寸、ROI的尺寸或形狀、和/或具體的區(qū)塊存儲器格式。例如,為了針對具有大于64字節(jié)寬度的ROI實(shí)現(xiàn)采集處理,可以將一個或多個附加的俄羅斯方塊寄存器添加到寄存器陣列中。另外,對于較小寬度的R0I,例如32x64的ROI,陣列的前兩行可以在被寫出到RF之前收集到采集緩沖器中。此外,諸如區(qū)塊-X之類的其他區(qū)塊存儲器格式可以根據(jù)本公開內(nèi)容而進(jìn)行采集處理。
[0037]在多個實(shí)施方式中,一個或多個處理器核心可以針對ROI的任意尺寸和/或形狀以及針對ROI數(shù)據(jù)相對于引擎100的任何對齊使用引擎100來進(jìn)行過程200數(shù)據(jù)。在如此進(jìn)行時,處理器吞吐量可以取決于ROI的尺寸、形狀和/或?qū)R。例如,在非限制性實(shí)例中,如果待采集的ROI在X方向上伸展(例如,在區(qū)塊_y格式中作為一行像素值)并完全對齊,則可以在兩個循環(huán)中處理一個高速緩沖存儲器線。在這種環(huán)境下,吞吐量會受到高速緩沖存儲器寬度的限制。另一方面,如果ROI在Y方向上伸展(例如,在區(qū)塊-y格式中作為一列像素值)并完全對齊,則可以在64個循環(huán)中處理一個高速緩沖存儲器線。在另一個非限制性示例中,對于完全未對齊的17x17的ROI,可以在12個循環(huán)中處理一個高速緩沖存儲器線。在最后的非限制性示例中,可以在50個循環(huán)中采集對齊的24x24的ROI的像素值,然而如果24x24的ROI完全未對齊,則可能用81個循環(huán)來采集全部像素值。
[0038]在多個實(shí)施方式中,可以在溢出條件下進(jìn)行根據(jù)本公開內(nèi)容的采集過程。例如,參考示例性采集引擎100,在一些實(shí)施方式中,ROI可以超過桶形移位器104和GRB106及GRB108的寬度。圖9例示了在根據(jù)本公開內(nèi)容的多個實(shí)施方式的在溢出條件下進(jìn)行過程200的環(huán)境900中的引擎100。如圖9所示,在以第一行的大部分填充GRB106之后,可以將從第一行剩余的溢出數(shù)據(jù)902放置到GRB108中??梢砸灶愃频姆绞嚼^續(xù)剩余行的處理。
[0039]圖10例示了根據(jù)本公開內(nèi)容的示例性系統(tǒng)1000。系統(tǒng)1000可以用于執(zhí)行本文中所論述的多種功能的某些或全部,并可以包括根據(jù)本公開內(nèi)容的多個實(shí)施方式能夠進(jìn)行采集處理的任何設(shè)備或設(shè)備的集合。例如,系統(tǒng)1000可以包括諸如臺式機(jī)、移動或平板計算機(jī)、智能電話、機(jī)頂盒等之類的計算平臺或設(shè)備的選擇的部件,但是本公開內(nèi)容不限于此。
在一些實(shí)施方式中,系統(tǒng)1000可以是基于用于CE設(shè)備的InteP architecture (IA)的計算
平臺或SoC。本領(lǐng)域技術(shù)人員易于理解,在不脫離本公開內(nèi)容的范圍的情況下,本文所描述的實(shí)施方式可以應(yīng)用于替換的處理系統(tǒng)。
[0040]系統(tǒng)1000包括具有一個或多個處理器核心1004的處理器1002。處理器核心1004可以是能夠至少部分地執(zhí)行軟件和/或處理數(shù)據(jù)信號的任意類型的處理器邏輯。在多個示例中,處理器核心1004可以包括CISC處理器核心、RISC微處理器核心、VLIff微處理器核心、和/或?qū)崿F(xiàn)指令集的任何組合的任意數(shù)量的處理器核心,或者諸如數(shù)字信號處理器或微控制器之類的任何其他處理器設(shè)備。在多個實(shí)施方式中,一個或多個處理器核心1004可以根據(jù)本公開內(nèi)容實(shí)現(xiàn)采集引擎和/或進(jìn)行采集處理。
[0041]處理器1002還包括解碼器1006,其可以用于將由例如顯示處理器1008和/或圖形處理器1010接收的指令解碼為控制信號和/或微碼入口點(diǎn)。盡管在系統(tǒng)1000中例示為與核心1004不同的部件,但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,一個或多個核心1004可以實(shí)現(xiàn)解碼器1006、顯示處理器1008和/或圖形處理器1010。響應(yīng)于控制信號和/或微碼入口點(diǎn),顯示處理器1008和/或圖形處理器1010可以執(zhí)行相對應(yīng)的操作。
[0042]處理核心1004、解碼器1006、顯示處理器1008和/或圖形處理器1010可以通過系統(tǒng)互連1016彼此和/或與多個其他系統(tǒng)設(shè)備可通信地和/或可操作地耦合,所述其他系統(tǒng)設(shè)備可以包括但不限于,例如,存儲器控制器1014、音頻控制器1018和/或外圍設(shè)備1020。外圍設(shè)備1020可以包括,例如,通用串行總線(USB)主機(jī)端口、外圍設(shè)備互連(PCI)Express端口、串行外圍接口(SPI)、擴(kuò)展總線、和/或其他外圍設(shè)備。盡管圖10將存儲器控制器1014例示為由互連1016耦合到解碼器1006和處理器1008及1010,但在多個實(shí)施方式中,存儲器控制器1014可以直接耦合到解碼器1006、顯示處理器1008和/或圖形處理器 1010。
[0043]在一些實(shí)施方式中,系統(tǒng)1000可以經(jīng)由I/O總線(未示出)與圖10中未示出的多個I/o設(shè)備通信。這樣的I/O設(shè)備可以包括但不限于,例如,通用異步接收器/發(fā)射器(UART)設(shè)備、USB設(shè)備、I/O擴(kuò)展接口或其他I/O設(shè)備。在多個實(shí)施方式中,系統(tǒng)1000可以表示用于進(jìn)行移動、網(wǎng)絡(luò)和/或無線通信的系統(tǒng)的至少部分。
[0044]系統(tǒng)1000可以進(jìn)一步包括存儲器1012。存儲器1012可以是一個或多個分離的存儲器部件,例如動態(tài)隨機(jī)存取存儲器(DRAM)設(shè)備、靜態(tài)隨機(jī)存取存儲器(SRAM)設(shè)備、閃存設(shè)備、或其他存儲器設(shè)備。存儲器1012可以存儲由數(shù)據(jù)信號表示的指令和/或數(shù)據(jù),其可以由處理器1002執(zhí)行。在一些實(shí)施方式中,存儲器1012可以包括系統(tǒng)存儲器部分和顯示存儲器部分。在多個實(shí)施方式中,存儲器1012可以存儲視頻數(shù)據(jù),例如包括像素值的視頻數(shù)據(jù)的幀,所述像素值可以在多個接合點(diǎn)被存儲為由引擎100采集的和/或由過程200處理的高速緩沖存儲器線。
[0045]盡管圖10例示了在處理器1002以外的存儲器1012,但在多個實(shí)施方式中,處理器1002包括諸如LI高速緩沖存儲器之類的內(nèi)部高速緩沖存儲器1024的一個或多個實(shí)例。根據(jù)本公開內(nèi)容,高速緩沖存儲器1024可以以區(qū)塊-y格式布置的高速緩沖存儲器線的形式存儲諸如像素值之類的視頻數(shù)據(jù)。處理器核心1004可以訪問存儲在高速緩沖存儲器1024中的數(shù)據(jù),以實(shí)現(xiàn)本文中所描述的采集功能。此外,高速緩沖存儲器1024可以提供2D寄存器文件,其存儲引擎100和過程200的經(jīng)對齊的數(shù)據(jù)輸出。在多個實(shí)施方式中,高速緩沖存儲器1024可以從存儲器1012接收諸如像素值之類的視頻數(shù)據(jù)。
[0046]以上所描述的系統(tǒng)以及如本文中所描述的那樣由系統(tǒng)執(zhí)行的處理可以在硬件、固件或軟件或者其任意組合中實(shí)現(xiàn)。另外,本文中所公開的任何一個或多個特征可以在包括分立的和集成的電路邏輯、專用集成電路(ASIC)邏輯和微控制器的硬件、軟件、固件及其組合中實(shí)現(xiàn),并可以實(shí)現(xiàn)為特定域集成電路封裝的部分、或集成電路封裝的組合。本文中所使用的術(shù)語軟件指代計算機(jī)程序產(chǎn)品,其包括具有存儲于其中的計算機(jī)程序邏輯的計算機(jī)可讀介質(zhì),以使得計算機(jī)系統(tǒng)執(zhí)行本文中所公開的一個或多個特征和/或特征的組合。
[0047]盡管已經(jīng)參考多個實(shí)施方式描述了本文中所闡述的某些特征,但是該描述并非旨在以限制性意義來解釋。因此,對于本發(fā)明所屬領(lǐng)域技術(shù)人員顯而易見的本文中所描述的實(shí)施方式的多種變型以及其他實(shí)施方式也視為在本公開內(nèi)容的精神和范圍內(nèi)。
【權(quán)利要求】
1.一種用于采集像素值的裝置,包括: 多個俄羅斯方塊寄存器,所述多個俄羅斯方塊寄存器被布置為寄存器陣列,每一個俄羅斯方塊寄存器都至少包括第一寄存器部分和第二寄存器部分,其中,所述寄存器陣列的第一行包括每一個俄羅斯方塊寄存器的所述第一寄存器部分,所述寄存器陣列用以存儲像素值的多個高速緩沖存儲器線,以使得所述寄存器陣列的所述第一行存儲每一個高速緩沖存儲器線的最聞有效部分; 桶形移位器,其用以從所述寄存器陣列的所述第一行接收所述多個高速緩沖存儲器線的所述最高有效部分作為第一行像素值,所述桶形移位器用以對齊所述第一行像素值;以及 第一緩沖器,其用以從所述桶形移位器接收經(jīng)對齊的第一行像素值。
2.根據(jù)權(quán)利要求1所述的裝置,其中,所述寄存器陣列的第二行包括每一個俄羅斯方塊寄存器的所述第二寄存器部分,所述寄存器陣列用以存儲像素值的所述多個高速緩沖存儲器線,以使得所述寄存器陣列的第二行存儲每一個所述高速緩沖存儲器線的次最高有效部分,所述桶形移位器用以從所述寄存器陣列的所述第二行接收所述多個高速緩沖存儲器線的次最高有效部分作為第二行像素值,所述桶形移位器用以對齊所述第二行像素值,所述裝置進(jìn)一步包括: 第二緩沖器,其用以從所述桶形移位器接收經(jīng)對齊的第二行像素值。
3.根據(jù)權(quán)利要求1所述的裝置,進(jìn)一步包括: 多路復(fù)用器,其耦合到所述第一緩沖器和所述第二緩沖器;以及 寄存器文件,其耦合到所述多路復(fù)用器,其中,所述多路復(fù)用器被配置為將所述經(jīng)對齊的第一行像素值或所述經(jīng)對齊的第二行像素值提供給所述寄存器文件,其中,所述寄存器文件被配置為相鄰于所述經(jīng)對齊的`第一行像素值而存儲所述經(jīng)對齊的第二行像素值。
4.根據(jù)權(quán)利要求1所述的裝置,其中,每一個高速緩沖存儲器線的所述最高有效部分都包括區(qū)塊_y格式的像素數(shù)據(jù)的行。
5.根據(jù)權(quán)利要求1所述的裝置,其中,每一個高速緩沖存儲器線都包括64字節(jié)的像素值,其中,所述多個俄羅斯方塊寄存器至少包括五個俄羅斯方塊寄存器,其中,每一個俄羅斯方塊寄存器都被配置為存儲64字節(jié)的像素值,并且其中,所述第一寄存器部分和所述第二寄存器部分都被配置為存儲16字節(jié)的像素值。
6.根據(jù)權(quán)利要求1所述的裝置,其中,為了對齊所述第一行像素值,所述桶形移位器被配置為左移所述第一行像素值。
7.一種計算機(jī)實(shí)施的方法,包括: 接收多個高速緩沖存儲器線; 將每一個聞速緩沖存儲器線至少劃分為最聞有效部分和次最聞有效部分; 將所述多個高速緩沖存儲器線的內(nèi)容存儲在寄存器陣列中,以使得每一個高速緩沖存儲器線的所述最高有效部分被存儲在所述寄存器陣列的第一行中,所述第一行包括第一多個寄存器部分; 將所述第一多個寄存器部分的第一寄存器部分的內(nèi)容提供給桶形移位器; 對齊所述第一多個寄存器部分的所述第一寄存器部分的內(nèi)容;以及 將所述第一多個寄存器部分的所述第一寄存器部分的經(jīng)對齊的內(nèi)容存儲在第一緩沖器中。
8.根據(jù)權(quán)利要求7所述的方法,其中,將所述多個高速緩沖存儲器線的內(nèi)容存儲在所述寄存器陣列中包括:將所述多個高速緩沖存儲器線的內(nèi)容存儲在所述寄存器陣列中,以使得每一個高速緩沖存儲器線的次最高有效部分被存儲在所述寄存器陣列的第二行中,所述第二行包括第二多個寄存器部分,所述方法進(jìn)一步包括: 將所述第二多個寄存器部分的第一寄存器部分的內(nèi)容提供給桶形移位器; 對齊所述第二多個寄存器部分的所述第一寄存器部分的內(nèi)容;以及 將所述第二多個寄存器部分的所述第一寄存器部分的經(jīng)對齊的內(nèi)容存儲在第二緩沖器中。
9.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括: 在將所述第二多個寄存器部分的所述第一寄存器部分的經(jīng)對齊的內(nèi)容提供給寄存器文件之前,將所述第一多個寄存器部分的所述第一寄存器部分的經(jīng)對齊的內(nèi)容提供給所述寄存器文件。
10.根據(jù)權(quán)利要求7所述的方法,其中,所述寄存器陣列包括多個俄羅斯方塊寄存器。
11.根據(jù)權(quán)利要求10所述的方法,其中,布置所述多個俄羅斯方塊寄存器,以使得每一個俄羅斯方塊寄存器的第一部分都存儲所述多個高速緩沖存儲器線中的相對應(yīng)一個的所述最聞有效部分。
12.根據(jù)權(quán)利要求7所述的方法,其中,對齊所述第一多個寄存器部分的所述第一寄存器部分的內(nèi)容包括:左移所述第一多個寄存器部分的所述第一寄存器部分的內(nèi)容?!?br>
13.一種用于采集像素值的系統(tǒng),包括: 高速緩沖存儲器,其用以存儲像素值的多個高速緩沖存儲器線; 采集引擎,其耦合到所述高速緩沖存儲器;以及 附加的存儲器,其耦合到所述采集引擎,其中,在所述附加的存儲器中的指令配置所述采集引擎以從所述高速緩沖存儲器接收所述多個高速緩沖存儲器線,所述采集引擎包括: 多個俄羅斯方塊寄存器,所述多個俄羅斯方塊寄存器被布置為寄存器陣列,每一個俄羅斯方塊寄存器都至少包括第一寄存器部分和第二寄存器部分,其中,所述寄存器陣列的第一行包括每一個俄羅斯方塊寄存器的所述第一寄存器部分,所述寄存器陣列用以存儲所述多個高速緩沖存儲器線,以使得所述寄存器陣列的所述第一行存儲每一個高速緩沖存儲器線的最聞有效部分; 桶形移位器,其用以從所述寄存器陣列的所述第一行接收所述多個高速緩沖存儲器線的所述最高有效部分作為第一行像素值,所述桶形移位器用以對齊所述第一行像素值;以及 第一緩沖器,其用以從所述桶形移位器接收經(jīng)對齊的第一行像素值。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述寄存器陣列的第二行包括每一個俄羅斯方塊寄存器的所述第二寄存器部分,所述寄存器陣列用以存儲所述多個高速緩沖存儲器線,以使得所述寄存器陣列的所述第二行存儲每一個所述高速緩沖存儲器線的次最高有效部分,所述桶形移位器用以從所述寄存器陣列的所述第二行接收所述多個高速緩沖存儲器線的次最高有效部分作為第二行像素值,所述桶形移位器對齊所述第二行像素值,所述采集引擎進(jìn)一步包括:第二緩沖器,其用以從所述桶形移位器接收經(jīng)對齊的第二行像素值。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),進(jìn)一步地,所述采集引擎還包括: 多路復(fù)用器,其耦合到所述第一緩沖器和所述第二緩沖器;以及 寄存器文件,其耦合到所述多路復(fù)用器,其中,所述多路復(fù)用器被配置為將所述經(jīng)對齊的第一行像素值或所述經(jīng)對齊的第二行像素值提供給所述寄存器文件,其中,所述寄存器文件被配置為相鄰于所述經(jīng)對齊的第一行像素值而存儲所述經(jīng)對齊的第二行像素值。
16.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述高速緩沖存儲器被配置為以區(qū)塊-y格式存儲高速緩沖存儲器線。
17.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,每一個高速緩沖存儲器線都包括64字節(jié)的像素值,其中,所述多個俄羅斯方塊寄存器包括至少五個俄羅斯方塊寄存器,其中,每一個俄羅斯方塊寄存器都被配置為存儲64字節(jié)的像素值,并且其中,所述第一寄存器部分和第二寄存器部分都被配置為存儲16字節(jié)的像素值。
18.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,為了對齊所述第一行像素值,所述桶形移位器被配置為左移所述第一行像素值。
19.根據(jù)權(quán)利要求13所述的系統(tǒng),所述附加的存儲器用以存儲視頻數(shù)據(jù),并用以將所述視頻數(shù)據(jù)的一部分提 供給所述高速緩沖存儲器,以便存儲為所述多個高速緩沖存儲器線。
【文檔編號】G06F12/08GK103718244SQ201280036339
【公開日】2014年4月9日 申請日期:2012年7月23日 優(yōu)先權(quán)日:2011年7月25日
【發(fā)明者】K·瓦伊蒂亞納坦, B·G·雷迪 申請人:英特爾公司