用于使用并行處理來求解線性方程組的設(shè)備、系統(tǒng)和方法

            文檔序號:2568554閱讀:277來源:國知局
            專利名稱:用于使用并行處理來求解線性方程組的設(shè)備、系統(tǒng)和方法
            技術(shù)領(lǐng)域
            本發(fā)明涉及用于求解線性方程組的迭代方法,其可以用于例如估計(jì)視頻文件的幀之間的動作以轉(zhuǎn)換幀頻。

            背景技術(shù)
            視頻輸入文件可以具有一特定的幀頻。用于輸出(例如播放)該文件的設(shè)備可以具有一個不同的幀頻。例如一個50Hz的視頻文件可以被輸入到一個以100Hz的幀頻播放視頻的電視。當(dāng)輸入文件的幀頻與輸出文件的幀頻不同時,需要使得幀頻一致。
            已經(jīng)開發(fā)了幀頻轉(zhuǎn)換算法來改變幀的顯示速率。幀頻轉(zhuǎn)換算法可以例如,增加或減少每個時間周期內(nèi)的幀數(shù)目,以相應(yīng)地加快或減慢輸入幀頻,而不改變視頻顯示的總時間或所覺察到的顯示速度。一些基本算法可以簡單地復(fù)制或消除幀。其它的可以使用例如運(yùn)動補(bǔ)償算法在幀間插入動作。
            視頻中的運(yùn)動估計(jì)可以被模型化,例如,通過(偏)微分方程(PDE)。可以對PDE應(yīng)用一個離散方法(例如有限差分)來找到其數(shù)值解。離散化可以生成一個線性方程組,例如一個大型稀疏線性方程組(LSSLE)。每個LSSLE可以描述一對幀中的每個幀之間的改變或運(yùn)動。幀頻轉(zhuǎn)換算法可以使用LSSLE的數(shù)值解,例如,用于生成幀頻轉(zhuǎn)換。LSSLE在科學(xué)和工程的許多領(lǐng)域是已知的,例如電子工程、流體動力學(xué)、計(jì)算機(jī)視覺/圖形、光流估計(jì)、超分辨率和圖像降噪。
            求解該LSSLE可能需要密集計(jì)算。例如,求解LSSLE以對一組幀的幀頻進(jìn)行轉(zhuǎn)換可能花費(fèi)比這些幀的播放時間更久的時間。當(dāng)播放器在等待轉(zhuǎn)換后的幀時,可能在播放速率上有延遲。為了補(bǔ)償這個延遲,一個幀頻轉(zhuǎn)換算法通過生成更少的幀和/或生成具有降級的運(yùn)動估計(jì)的幀,會降低視頻質(zhì)量。這會導(dǎo)致更多的“跳躍”視頻。



            本申請公開的主題在說明書的結(jié)尾部分被特別地指出和清楚地聲明。然而,本發(fā)明的實(shí)施例,涉及組織結(jié)構(gòu)和操作方法,以及它的目標(biāo)、特征和益處,可以通過參考下面的詳細(xì)說明并與附圖一起閱讀來更好地理解,其中 圖1是根據(jù)本發(fā)明的一個實(shí)施例的系統(tǒng)的示意圖; 圖2是根據(jù)本發(fā)明的一個實(shí)施例的處理器流水線的示意圖; 圖3是根據(jù)本發(fā)明的一個實(shí)施例的項(xiàng)重排的示意圖,其中,將具有初始順序的向量x重排為具有新的順序的向量x’; 圖4A和4B顯示根據(jù)本發(fā)明的一個實(shí)施例的,分別表示具有初始順序的向量x和具有新的順序的向量x’的矩陣;以及 圖5是根據(jù)本發(fā)明的一個實(shí)施例的方法的流程圖。
            可以理解,為了描述地簡單和清楚,圖中示出的元件不必精確繪制或按比例繪制。例如,為了清楚,一些元件的尺寸可以相對于其它元件進(jìn)行放大,或者將多個物理部件包括在一個功能塊或元件中。此外,基于合適的考慮,參考標(biāo)記可以在附圖之間重復(fù)使用,以指示對應(yīng)的或類似的元件。另外,在附圖中描述的一些塊可以被組合為單個功能。

            具體實(shí)施例方式 在下面的詳細(xì)描述中,闡明了許多具體細(xì)節(jié)以便透徹理解本發(fā)明的實(shí)施例。然而本領(lǐng)域技術(shù)人員應(yīng)該理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下被實(shí)施。在其它例子中,公知的方法、過程、部件和電路未詳細(xì)說明,以免使得該描述模糊不清。
            如果沒有具體說明,那么明顯從下面的討論可以理解,在整個說明書中使用的術(shù)語(例如“處理”、“計(jì)算”、“決定”等)是指計(jì)算機(jī)、計(jì)算系統(tǒng)或類似的電子計(jì)算設(shè)備的動作和/或處理過程,其控制和/或轉(zhuǎn)換表示為計(jì)算系統(tǒng)的寄存器和/或存儲器中的物理量(例如電子,量子)的數(shù)據(jù),將它們轉(zhuǎn)換為其它類似地表示為計(jì)算系統(tǒng)的存儲器、寄存器或其它此類信息存儲、傳輸或顯示設(shè)備中的物理量的數(shù)據(jù)。另外,在本說明書全文中可以使用術(shù)語“多個”來描述兩個或更多的部件、設(shè)備、要素、參數(shù)等。
            本發(fā)明的實(shí)施例可以在各種應(yīng)用中使用。盡管本發(fā)明在這方面不受限制,本文公開的電路和技術(shù)可以用于許多裝置,例如個人電腦(PC)、圖像或視頻重放設(shè)備、數(shù)字視頻光盤(DVD)播放器、無線設(shè)備或無線臺、視頻或數(shù)字游戲設(shè)備或系統(tǒng)、圖像采集系統(tǒng)、處理系統(tǒng)、可視化或顯示系統(tǒng)、數(shù)字顯示系統(tǒng)、通信系統(tǒng)等。
            本發(fā)明的實(shí)施例可以用于例如以第一幀頻輸入視頻并以第二幀頻輸出視頻的系統(tǒng)。播放時間或察覺到的播放時間可以保持相同,但每個時間單元內(nèi)顯示的幀的數(shù)目可以改變。本發(fā)明的實(shí)施例可以從第一幀頻轉(zhuǎn)換到第二幀頻。幀頻轉(zhuǎn)換可以包括插入中間幀,例如,通過求解LSSLE。例如,本發(fā)明的實(shí)施例可以運(yùn)轉(zhuǎn)在例如一個計(jì)算機(jī)系統(tǒng)上,以執(zhí)行打包指令,如圖1所示。
            參考圖1,其示意性地描述了根據(jù)本發(fā)明的一個實(shí)施例的計(jì)算機(jī)系統(tǒng)100。計(jì)算機(jī)系統(tǒng)100是可以結(jié)合本發(fā)明實(shí)施例使用的一種計(jì)算機(jī)系統(tǒng)的例子。未示出的不同配置的其它類型的計(jì)算機(jī)系統(tǒng)也可以結(jié)合本發(fā)明的實(shí)施例使用。計(jì)算機(jī)系統(tǒng)100可以包括一個或多個總線101和/或點(diǎn)對點(diǎn)互連,或其它內(nèi)部通信硬件和軟件,來傳輸信息;計(jì)算機(jī)系統(tǒng)100還包括耦合到總線101或點(diǎn)對點(diǎn)互連的、用于處理信息的處理器109。處理器109可以具有單核、多核或?qū)ΨQ多處理結(jié)構(gòu)。
            處理器109可以是例如中央處理單元(CPU)或具有任何合適體系結(jié)構(gòu)的多個處理器。在一個實(shí)施例中,該體系結(jié)構(gòu)可以包括流SIMD擴(kuò)展(SSE)(例如,SSE4.2或其它SSE4指令集,如在2007年4月公布的“

            SSE4Programming Reference”中所描述的),其是一個單指令多數(shù)據(jù)(SIMD)指令集擴(kuò)展。該SSE體系結(jié)構(gòu)可以在多個(例如4個)數(shù)據(jù)點(diǎn)上并行地執(zhí)行打包指令。在另一實(shí)施例中,SSE體系結(jié)構(gòu)的

            高級矢量擴(kuò)展(AVX)(例如,在2008年3月公布的“

            Advanced Vector Extension ProgrammingReference”中所描述的),可以用于在其它數(shù)目(例如8或16個)的數(shù)據(jù)點(diǎn)上并行執(zhí)行打包指令。處理器109可以具有復(fù)雜指令集計(jì)算機(jī)體系結(jié)構(gòu)或精簡指令集計(jì)算機(jī)體系結(jié)構(gòu)。
            處理器109可以包括執(zhí)行單元130、寄存器堆150、高速緩存層次結(jié)構(gòu)160、解碼器165和內(nèi)部總線170。該寄存器堆150可以包括包含了多個結(jié)構(gòu)寄存器的單個寄存器堆或包括多個寄存器堆,該多個寄存器堆中的每個包括多個結(jié)構(gòu)寄存器。其它寄存器也可以使用。
            計(jì)算機(jī)系統(tǒng)100可以在耦合到總線101的主存儲器104中包括隨機(jī)存取存儲器(RAM)、動態(tài)RAM(DRAM)或其它動態(tài)存儲元件,用于存儲處理器109執(zhí)行的信息和指令。主存儲器104可以用于在處理器109執(zhí)行指令期間存儲臨時變量或其它中間信息。計(jì)算機(jī)系統(tǒng)100可以包括耦合到總線101的只讀存儲器(ROM)106或其它靜態(tài)存儲元件,來存儲用于處理器109的靜態(tài)信息和指令。
            數(shù)據(jù)存儲設(shè)備107,例如磁盤或光盤及對應(yīng)的盤驅(qū)動器,可以耦合到總線101。計(jì)算機(jī)系統(tǒng)100可以通過總線101耦合到用于向計(jì)算機(jī)系統(tǒng)100的用戶顯示信息的顯示設(shè)備121。顯示設(shè)備121可以包括幀緩沖器、專用圖形繪制設(shè)備、陰極射線管(CRT)或平板顯示器,但本發(fā)明并不限于此。字母數(shù)字輸入設(shè)備122,例如包括字母數(shù)字和其它鍵的鍵盤,可以被耦合到總線101用于向處理器109傳送信息和命令選擇。還可以包括光標(biāo)控制器123,其包括鼠標(biāo)、軌跡球、筆、觸摸屏或光標(biāo)方向鍵,用于向處理器109傳送方向信息和命令選擇,并用于控制顯示設(shè)備121上的光標(biāo)移動。該計(jì)算機(jī)系統(tǒng)100可以被耦合到錄音和重放設(shè)備125。錄音可以使用例如耦合到麥克風(fēng)的音頻數(shù)字轉(zhuǎn)換器來實(shí)現(xiàn),聲音重放可以使用例如耦合到數(shù)模(D/A)轉(zhuǎn)換器的用于重放數(shù)字聲音的耳機(jī)或揚(yáng)聲器來實(shí)現(xiàn),但本發(fā)明并不限于此。
            計(jì)算機(jī)系統(tǒng)100可以用作計(jì)算機(jī)網(wǎng)絡(luò)中的終端,其中計(jì)算機(jī)系統(tǒng)100是計(jì)算機(jī)網(wǎng)絡(luò)的計(jì)算機(jī)子系統(tǒng),但本發(fā)明并不限于此。計(jì)算機(jī)系統(tǒng)100可以進(jìn)一步包括視頻數(shù)字化設(shè)備126。視頻數(shù)字化設(shè)備126能用于捕捉視頻圖像,其可以被傳送到耦合到計(jì)算機(jī)網(wǎng)絡(luò)的其它計(jì)算機(jī)系統(tǒng)。
            在一個實(shí)施例中,處理器109可以支持與以下指令集兼容的指令集x86和/或x87指令集,由例如

            CoreTM2Duo處理器這樣的微處理器使用的指令集,其由位于加州圣克拉拉的英特爾公司制造。因此,在一個實(shí)施例中,處理器109支持英特爾體系結(jié)構(gòu)(IA.TM.)中支持的所有操作,其由位于加州圣克拉拉的英特爾公司定義。參見2005年4月出版的“Microprocessors,IA-32

            Architecture Software Developer′s Manual”(卷3“System Programming Guide”)。因此,處理器109除支持其它操作外還可以支持現(xiàn)有的x86和/或x87操作。本發(fā)明的實(shí)施例可以使用或被并入其它指令集。
            該執(zhí)行單元130可以用于執(zhí)行處理器109接收到的指令。除了識別可在通用處理器中實(shí)現(xiàn)的指令外,執(zhí)行單元130可以識別在例如SIMD中的指令、打包指令或其它指令,例如用于在打包數(shù)據(jù)格式上執(zhí)行操作的打包指令集140。在一個實(shí)施例中,該打包指令集140可以包括用于支持打包和/或標(biāo)量運(yùn)算的指令或浮點(diǎn)指令,例如,打包加運(yùn)算、打包減運(yùn)算、打包乘運(yùn)算、打包移位操作、打包比較運(yùn)算、乘加運(yùn)算、乘減運(yùn)算、計(jì)數(shù)操作以及一組打包邏輯操作,但本發(fā)明并不限于此。一個實(shí)施例的一組打包數(shù)據(jù)邏輯操作可以包括例如ANDPS、ORPS、XORPS和ANDNPS,但本發(fā)明并不限于此。一個實(shí)施例的一組打包算術(shù)操作可以包括例如ADDPS、SUBPS、MULPS、DIVPS、RCPPS、SQRTPS、MAXPS、MINPS和RSQRTPS,但本發(fā)明并不限于此。一個實(shí)施例的一組打包數(shù)據(jù)移動操作可以包括例如打包的MOVPS、MOVAPS、MOVUPS、MOVLPS、MOVHPS、MOVLHPS和MOVHLPS,但本發(fā)明并不限于此。盡管描述的一個實(shí)施例中的打包指令集140包括這些指令,可選的實(shí)施例可以包括這些指令的子集或超集。
            這些指令提供了在使用打包數(shù)據(jù)的多媒體應(yīng)用中使用的許多算法需要的運(yùn)算的執(zhí)行。因而,這些算法可以被編寫來打包必要的數(shù)據(jù)并在打包數(shù)據(jù)上執(zhí)行必要的操作,而不需要將打包數(shù)據(jù)進(jìn)行拆分以便每次在一個數(shù)據(jù)元素上執(zhí)行一個或多個運(yùn)算。執(zhí)行單元130可以使用例如內(nèi)部總線170被耦合到寄存器堆150。其它類型的總線或數(shù)據(jù)傳輸系統(tǒng),例如點(diǎn)對點(diǎn)系統(tǒng),也可以使用。寄存器堆150代表處理器109上用于存儲信息的存儲區(qū)域,該信息包括數(shù)據(jù)。另外,執(zhí)行單元130可以耦合到高速緩存層次結(jié)構(gòu)160和解碼器165。該高速緩存層次結(jié)構(gòu)160用于緩存來自于例如主存儲器104的數(shù)據(jù)和控制信號。解碼器165用于將處理器109收到的指令解碼為控制信號和微碼入口點(diǎn)。響應(yīng)于這些控制信號和微碼入口點(diǎn),執(zhí)行單元130執(zhí)行合適的操作。例如,如果收到了一條加法指令,解碼器165就使執(zhí)行單元130執(zhí)行所需的加法;如果收到了一條減法指令,解碼器165就使執(zhí)行單元130執(zhí)行需要的減法。因此,盡管解碼器165和執(zhí)行單元130的各種指令執(zhí)行由一系列“if/then”語句表示,一個實(shí)施例中的指令執(zhí)行不需要這些“if/then”語句的連續(xù)處理。
            寄存器堆150可以用于存儲信息,包括控制和狀態(tài)信息、標(biāo)量數(shù)據(jù)、整數(shù)數(shù)據(jù)、打包整數(shù)數(shù)據(jù)以及打包浮點(diǎn)數(shù)據(jù)。在一個實(shí)施例中,寄存器堆150可以包括耦合到內(nèi)部總線170的存儲器寄存器、控制和狀態(tài)寄存器、標(biāo)量整數(shù)寄存器、標(biāo)量浮點(diǎn)寄存器、打包單精度浮點(diǎn)寄存器、打包整數(shù)寄存器以及指令指針寄存器,但是本發(fā)明并不限于此。
            在一個實(shí)施例中,標(biāo)量整數(shù)寄存器是32位寄存器,打包單精度浮點(diǎn)寄存器是128位寄存器,打包整數(shù)寄存器是64位寄存器,但是本發(fā)明并不限于此。SSE指令集可以使用例如稱為xmm0到xmm7的8個128位寄存器。另外的8個稱為xmm8到xmm15的128位寄存器可以用于SSE指令集。例如,xmm0可以為向量b保存4個項(xiàng),xmm1至xmm4可以為向量x的4個數(shù)據(jù)點(diǎn)中的每一個保存4個項(xiàng),xmm5至xmm8中的每一個可以保存矩陣A的4個對應(yīng)系數(shù)項(xiàng)。SSE指令集可以通過同時乘矩陣A的系數(shù)項(xiàng)而并行處理向量x的多個(例如4個)數(shù)據(jù)點(diǎn)。例如,8個xmm寄存器(例如xmm0-xmm7)可以被使用(例如在32位平臺)和/或16個xmm寄存器(例如xmm0-xmm15)可以被使用(例如在64位平臺)??梢允褂昧硗獾?2位控制/狀態(tài)寄存器,例如MXCSR。每個寄存器可以將四個32位單精度浮點(diǎn)數(shù)打包在一起。整數(shù)SIMD操作可以用8個64位MMX寄存器執(zhí)行??梢允褂闷渌噶罴图拇嫫鞔笮???梢允褂糜糜诓⑿械貓?zhí)行8個數(shù)據(jù)點(diǎn)的另一個指令集(例如SSE AVX指令集)。該指令集可以使用例如12個256位寄存器,其可以被稱為例如ymm0到y(tǒng)mm10以及ERR_YMM。更大的(例如256位)寄存器可以使得例如ymm0能夠?yàn)橄蛄縝保存8個項(xiàng),使得ymm1至ymm4能夠?yàn)橄蛄縳的8個數(shù)據(jù)點(diǎn)中的每一個保存8個項(xiàng),使得ymm4至ymm7中的每一個能夠保存矩陣A的8個對應(yīng)系數(shù)項(xiàng)。例如,可以使用12個ymm寄存器(例如ymm0到y(tǒng)mm10以及ERR_YMM)。也可以使用其它寄存器、數(shù)目、大小和類型。
            在一個實(shí)施例中,打包整數(shù)寄存器化名到與標(biāo)量浮點(diǎn)寄存器相同的存儲空間上。單獨(dú)的寄存器被用于打包的浮點(diǎn)數(shù)據(jù)。在使用寄存器堆150的寄存器時,處理器109在任何給定的時間將這些寄存器視為堆棧訪問浮點(diǎn)寄存器或非堆棧訪問打包整數(shù)寄存器。在該實(shí)施例中,包括一種機(jī)制來允許處理器109的操作在作為堆棧訪問浮點(diǎn)寄存器的寄存器和作為非堆棧訪問打包整數(shù)寄存器的寄存器之間進(jìn)行切換。在另一這樣的實(shí)施例中,處理器109可以同時工作在非棧參考浮點(diǎn)寄存器和打包數(shù)據(jù)寄存器上。另外,在可選實(shí)施例中,這些相同的寄存器可以用于存儲標(biāo)量整數(shù)數(shù)據(jù)。
            可選的實(shí)施例可以包含不同的寄存器組。例如,可選的實(shí)施例可以包括用于打包整數(shù)寄存器和標(biāo)量數(shù)據(jù)寄存器的單獨(dú)的寄存器??蛇x的實(shí)施例可以包括第一寄存器組,每個用于存儲控制和狀態(tài)信息,以及第二寄存器組,每個能夠存儲標(biāo)量整數(shù)、打包整數(shù)以及打包浮點(diǎn)數(shù)據(jù)。
            此外,盡管描述了特定類型的處理器和指令集體系結(jié)構(gòu),本發(fā)明的實(shí)施例可以使用其它類型的處理器、體系結(jié)構(gòu)和指令集工作。
            寄存器堆150的寄存器可以被實(shí)現(xiàn)為包括不同數(shù)目和不同大小的寄存器。例如,在一個實(shí)施例中,整數(shù)寄存器可以實(shí)現(xiàn)為存儲32位,而其它寄存器被實(shí)現(xiàn)為存儲128位,其中所有128位被用來存儲浮點(diǎn)數(shù)據(jù),而僅僅64位被用于打包數(shù)據(jù)。在可選實(shí)施例中,每個整數(shù)寄存器包含32或64位。
            本發(fā)明的實(shí)施例可以包括執(zhí)行單元130,其通過處理器109執(zhí)行一個或多個打包指令集140中的指令(例如,用于并行執(zhí)行4、8和/或16個數(shù)據(jù)點(diǎn))。指令集140可以用于對一個或多個方程求解,例如LSSLE。LSSLE的解可以用于例如幀頻轉(zhuǎn)換,以將輸入文件的幀頻改變?yōu)榕c輸出文件、存儲設(shè)備、存儲格式或顯示設(shè)備的幀頻匹配。輸入文件可以經(jīng)由總線101從輸入設(shè)備存儲和/或接收,例如主存儲器104、ROM 106、數(shù)據(jù)存儲器107、錄音和重放設(shè)備125和/或輸入設(shè)備122。輸出文件可以被輸出設(shè)備使用或廣播,例如錄音和重放設(shè)備125或顯示設(shè)備121。
            參考圖2,其示意性地描述了根據(jù)本發(fā)明實(shí)施例的處理器流水線200。處理器流水線200可以包括雙重數(shù)據(jù)流水線,其包括U流水線202和V流水線204。在其它實(shí)施例中,處理器流水線200可以包括一條單獨(dú)的流水線,或多于兩條流水線。使用SIMD指令,處理器流水線200可以使用每條數(shù)據(jù)流水線并行地處理多個(例如4個、8個和/或16個)數(shù)據(jù)點(diǎn)(例如,線性方程組的向量解的元素)。在解碼任何給定指令時(例如,用于處理多個數(shù)據(jù)點(diǎn)),其后的兩條指令可以被檢查,如果可能,它們被發(fā)出以使得第一條指令可以在U流水線202中執(zhí)行而第二條指令在V流水線204中執(zhí)行。如果不能將兩條指令配對,那么下一條指令可以被發(fā)送到U流水線202,并且沒有指令被發(fā)送到V流水線204(反之亦然)。當(dāng)指令在U流水線202和V流水線204中執(zhí)行時,它們的行為與它們被順序執(zhí)行時是相同的。處理器109(圖1)的微結(jié)構(gòu)可以包括以下幾級例如指令預(yù)取210、取指令212、指令解碼、配對和派遣214、地址生成216、操作數(shù)讀取和執(zhí)行218以及寫回220。指令解碼邏輯以每時鐘周期兩條指令的速率進(jìn)行解碼、調(diào)度和發(fā)出指令,在其它實(shí)施例中可以使用不同的速率。
            該LSSLE可以表示為例如矩陣形式(例如,通過Ax=b表示,其中A是nxn矩陣,b和x是nx1向量)。當(dāng)該LSSLE通過離散化(例如PDE的)生成時,矩陣A的維數(shù)依賴于使用的離散點(diǎn)數(shù)目。離散點(diǎn)的數(shù)目可以依賴于a)數(shù)值解法的固有精確度,b)要求的精確度,以及c)用于求解LSSLE的數(shù)字處理的收斂。
            由于PDE微分算子的離散化,表示LSSLE的矩陣A通常是稀疏的(例如,具有大量的0項(xiàng))。例如,應(yīng)用于泊松方程uxx+uyy=f(x,y)的中心差分離散方法,可以生成每行僅僅具有4個非零項(xiàng)的矩陣。PDE描述運(yùn)動估計(jì)可以例如是uxx+uyy+a*u+b*v=f(x,y);vxx+vyy+b*u+c*v=g(x,y)(例如,其中u和v分別是在x和y方向上的運(yùn)動)。應(yīng)用于運(yùn)動估計(jì)PDE的相同離散方法可以為例如 其中N(i)是i的空間臨近。表示該離散化的矩陣LSSLE每行可以僅有6個非零項(xiàng)。
            找到LSSLE的數(shù)值解包括解線性方程,例如Ax=b,其中A是nxn矩陣,b和x是nx1向量。線性方程可以使用各種方法來解,包括因數(shù)分解和迭代方法。然而,當(dāng)解LSSLE時,因數(shù)分解方法比迭代方法需要特別多的計(jì)算工作和時間。因而,迭代方法通常是優(yōu)選的。應(yīng)該意識到,根據(jù)本發(fā)明的實(shí)施例,因數(shù)分解方法和/或因數(shù)分解和迭代方法的組合也可以用于解LSSLE。
            迭代方法可以用于解線性方程Ax=b。矩陣A的項(xiàng)可以用aij表示,其中1≤i,j≤n,x和b的項(xiàng)分別由xr和br表示,其中1≤r≤n。矩陣A可以被編碼來有效率地存儲于例如圖1中的主存儲器104、ROM 106和/或數(shù)據(jù)存儲器107,但也可存儲于其它地方。
            為了描述用術(shù)語“稀疏”和“大”表征的非限制性的實(shí)施例,考慮幀頻轉(zhuǎn)換問題,其被由nxn矩陣A表示的LSSLE定義,其中n等于65536。該矩陣A可以具有65536x65536維,對應(yīng)于4294967296個單精度(例如32位)項(xiàng)(例如,大約17000兆字節(jié))。這種矩陣可以被認(rèn)為是“大”的。當(dāng)矩陣A的行(例如65536行)中的每個具有相當(dāng)少的非零項(xiàng)時(例如6個或其它小數(shù)目的非零項(xiàng)用于運(yùn)動估計(jì)PDE),矩陣A可以被認(rèn)為是“稀疏”的。因此,有效編碼的矩陣A可以具有例如327680個非零項(xiàng)(例如大約1.3兆字節(jié))。也可以使用其它數(shù)目和維數(shù)。
            處理器109(圖1)可以使用迭代方法求解LSSLE,例如,以對解x的初始估計(jì)開始,其表示為x(0),具有用xr(0)表示的項(xiàng)。在每個相繼的迭代(k+1)中,新的解估計(jì)值x(k+1)可以遞歸地從先前的解估計(jì)值x(k)推導(dǎo)出。當(dāng)觀察到估計(jì)值的收斂時,該迭代過程可以結(jié)束。例如,當(dāng)度量例如(x(k+1)-x(k))的L2范數(shù)變得小于某個預(yù)定的閾值時,便可以觀察到收斂。例如,L2范數(shù)可以定義為其中n可以是向量x的長度。可以使用其它收斂的度量和/或結(jié)束處理的方式。
            用于求解LSSLE的一種迭代方法是雅可比(Jacobi)方法。在雅可比方法中,解估計(jì)值xi(k+1)可以被遞歸地定義,例如,通過如下的方程(1) 在雅可比方法中,nxn矩陣A可以乘以nx1解估計(jì)值向量x(k)來生成新的nx1解估計(jì)值向量x(k+1)。該乘法過程典型地用每個新的解估計(jì)值向量重復(fù),直到觀察到新和舊估計(jì)值的收斂。例如,當(dāng)L2_NORM(x(k+1)_x(k))<ε,對于一些預(yù)定的較小的ε>0成立時,會發(fā)生收斂。該收斂解估計(jì)值向量可以是LSSLE的解向量。因此,使用雅可比方法求解LSSLE的計(jì)算開銷可以是“迭代次數(shù)*n2(γ)”,其中“迭代次數(shù)”是進(jìn)行迭代的次數(shù),γ是雅可比方法的乘和加的計(jì)算開銷。盡管雅可比方法可以用于求解LSSLE,但該方法一般需要相對大量的迭代次數(shù)以獲得具有期望精確度的收斂(例如,對于非常小的ε>0)。
            其它方法,例如高斯-塞得爾方法(GS)和它的變形,逐次超松馳(SOR),被發(fā)展來求解LSSLE,其與雅可比方法相比使用相對少的迭代,同時具有相同的精度。
            該GS方法部分遵循雅可比方法的處理,其迭代地用nx1解估計(jì)值向量x(k)乘以nxn矩陣A,直到獲得估計(jì)值的收斂。然而,該GS方法與雅可比方法的不同之處在于解估計(jì)值向量如何被定義。該GS方法使用最近計(jì)算的向量的項(xiàng)或坐標(biāo)值遞歸地定義解估計(jì)值向量x(k)。例如xi(k+1)可以依據(jù)xj(k+1)(j=1,2,...(i-1))和xj(k)(j=i,i+1,...,n)來定義。一般地,與雅可比方法和其它類似方法相比,這個關(guān)系改進(jìn)了收斂率。該GS方法遞歸地定義估計(jì)值xi(k+1),例如通過如下的方程式(2) 因?yàn)榫仃嘇是稀疏的,具有大部分的零aij值,所以總和



            中的每個一般僅涉及少量的項(xiàng)。
            盡管與雅可比方法相比,該GS和SOR方法一般加快了估計(jì)解值的收斂,但該GS和SOR方法可能導(dǎo)致其它問題。例如,該GS和SOR方法可以使用x的最近計(jì)算的項(xiàng)來更新當(dāng)前的求解估計(jì)值,并可以因此被稱為“連續(xù)的”。例如,在方程式(2)中,xi(k+1)依賴于在同一迭代中計(jì)算的x的值(例如,在j<i時的求和項(xiàng)中)。因此,xi(k+1)的值依賴于在向量x中它的鄰接項(xiàng)(例如,xi-1(k+1)),其在同一(例如k+1)迭代期間被計(jì)算。在GS方法中的這種依賴關(guān)系使得不能并行計(jì)算向量x的元素,這極大地限制了求解LSSLE的速度。例如,為了生成向量x中的項(xiàng)(例如xi(k+1)),應(yīng)用一般會進(jìn)行等待,直到結(jié)束生成向量x中的先前的或相鄰的項(xiàng)(例如xi-1(k+1))之后。例如,該GS方法不可以被同時應(yīng)用到x的連續(xù)的項(xiàng)上(例如xi和xi+1)。
            本發(fā)明的實(shí)施例可以包括按照與向量中坐標(biāo)元素的排列順序不同的順序,通過相同向量的其它項(xiàng)(例如,在當(dāng)前迭代k中計(jì)算的),迭代地或遞歸地定義x的每個有序的坐標(biāo)元素或項(xiàng)xi(k)。該其它項(xiàng)可以是在向量順序中的非鄰接項(xiàng)xi(k)。因此,可以按照與向量中坐標(biāo)元素的排列順序不同的順序來更新x中的每個項(xiàng)xi(k)的值。根據(jù)GS方法(例如,定義在方程式(2)中),項(xiàng)xi(k)獨(dú)立于其它非鄰接項(xiàng)。因此,項(xiàng)xi(k)和它的其它非鄰接項(xiàng)被并行地同時更新。因此,根據(jù)本發(fā)明的實(shí)施例,更新項(xiàng)(例如使用GS方法)不需要等待向量中連續(xù)排列的或鄰接的項(xiàng)的更新。
            本發(fā)明的實(shí)施例提供了方法,用于重排向量x的項(xiàng)的順序,以生成新的向量x’,以使得對于x的每個項(xiàng),在初始順序中的初始鄰接項(xiàng)被移動到新排序中的不同的非鄰接位置。因此,初始的連續(xù)項(xiàng)(例如向量x的xi和xi+1)在向量x’中被分離(例如,現(xiàn)在處于非鄰接位置)。因?yàn)樵贕S方法中(例如根據(jù)方程式(2))求解向量的每個坐標(biāo)項(xiàng)依賴于它的鄰接項(xiàng),那么通過移動初始鄰接項(xiàng)到非鄰接位置,在新向量x’中的項(xiàng)不再依賴于目前的鄰接項(xiàng)。因此,對于新向量的兩個或更多個鄰接項(xiàng)中的每一個,例如向量x’的項(xiàng)(例如x’i(k+1))和新的鄰接項(xiàng)(例如x’i-1(k+1)),可以通過使用遞歸地定義它們的相應(yīng)的移動后的非鄰接項(xiàng)更新其遞歸定義來同時或并行地求解。
            例如,常規(guī)的GS方法(例如根據(jù)方程式(2))可以應(yīng)用于向量x中的項(xiàng)(例如x4)。該結(jié)果一般依賴于x的最近計(jì)算的項(xiàng)(例如x3),因此必需等待前面鄰接項(xiàng)的處理。重排算法可以用于分離初始鄰接的項(xiàng)(例如x3,x4,x5)。在一個實(shí)施例中,在x中初始鄰接項(xiàng)(例如x4)的那些項(xiàng)(例如x3和x4)在x’中被重排為非鄰接項(xiàng)。在新向量x’中的項(xiàng)(例如x4)可以具有其不依賴(例如根據(jù)方程式(2))的新的鄰接值(例如重排的向量x’中的序列x1,x4,x8中的x1和x8)。因此,GS方法(例如由方程式(2)定義的)可以同時應(yīng)用于x’中的新的鄰接項(xiàng)(例如x1,x4,x8)。x’中每個重排的鄰接項(xiàng)(例如x1,x4,x8)可以依賴于x’的最近計(jì)算的項(xiàng)(例如分別為x0,x3,x7)進(jìn)行求解(例如根據(jù)方程式(2))。因?yàn)橹匦屡帕辛隧?xiàng),所以x’的這些最近計(jì)算的項(xiàng)(例如x0,x3,x7)不再與依賴它們的項(xiàng)(例如分別為x1,x4,x8)相鄰。因此,為了求解每一鄰接項(xiàng)(例如x1,x4,x8),該求解方法不必等待其它鄰接項(xiàng)的解。
            在一個實(shí)施例中(例如圖3所示),向量x被轉(zhuǎn)換成對應(yīng)的第一網(wǎng)格或矩陣(例如圖3中的矩陣310),其可以被稱為映射矩陣。該第一網(wǎng)格或矩陣的元素被重排為對應(yīng)于新向量x’的第二網(wǎng)格或矩陣(例如圖3中的矩陣340)。該重排可以被執(zhí)行,以使得對于第一網(wǎng)格或矩陣的每個項(xiàng),在初始順序中的初始鄰接項(xiàng)被移動到不同的非鄰接位置。
            在一個實(shí)施例中,對于向量到映射矩陣的映射方式和映射矩陣到重排后的映射矩陣的重新排列的方式,處理向量元素的順序可以不同,其中映射矩陣的鄰接元素在重排后的映射矩陣中是非鄰接的。
            對于具有第一順序的元素的向量x和具有第二順序的元素的向量x’,本領(lǐng)域的技術(shù)人員可以理解,在向量x’的連續(xù)元素上的操作等同于根據(jù)第二順序在向量x的元素上的操作。該向量x可以在不使用或不引用鄰接元素的情況下被重新排序。例如,重排項(xiàng)可以等同于定義非平凡圖或?qū)?xiàng)的引用。例如,以非連續(xù)或交替順序操作或計(jì)算向量項(xiàng)可以等同于重新排列。例如,項(xiàng)自身不必移動或重新排列。因此,在一些實(shí)施例中,向量的元素可以按照不同于向量順序的順序無序地操作,其按照與元素出現(xiàn)在向量中的順序不同的順序進(jìn)行操作。元素的組可以在同時被操作。
            參考圖3,其示意性地示出了從具有初始順序的向量x到具有新順序的向量x’的項(xiàng)的重排。數(shù)據(jù)結(jié)構(gòu)或矩陣310可以表示具有初始順序的向量x。例如,向量x的項(xiàng)可以充滿矩陣310的坐標(biāo),行接行(如圖所示),列接列,或使用其它順序。矩陣310中的項(xiàng)300(例如x10或向量x的第10項(xiàng))可以具有8個鄰接項(xiàng),例如,包括4個正對的項(xiàng)320(例如與項(xiàng)300相鄰且位于相同行或相同列上)和4個對角項(xiàng)330(例如與項(xiàng)300相鄰但是位于不同的行和列上)?;蛘?,除了正對和對角項(xiàng)320和330外,其它項(xiàng)可以被認(rèn)為是相鄰的。
            數(shù)據(jù)結(jié)構(gòu)或矩陣340可以表示或?qū)?yīng)于具有重排順序的向量x’。根據(jù)該重排順序,矩陣340中的項(xiàng)300(例如對應(yīng)于矩陣310中的第10項(xiàng))可以與初始鄰接項(xiàng)分離。例如,以矩陣310的初始順序排列的項(xiàng)(例如第6、9、11和14項(xiàng)和/或第5、7、13和15項(xiàng))可以在矩陣340的新順序中與項(xiàng)300不再相鄰。初始順序的鄰接項(xiàng)可以在重排順序中從項(xiàng)300移開或隔開一段距離(例如,由參數(shù)S定義,本文參照重排方程式(3)進(jìn)行描述)。矩陣340中的項(xiàng)300可以具有新的鄰接項(xiàng),例如,與正對項(xiàng)320和/或?qū)琼?xiàng)330不同的正對項(xiàng)350和對角項(xiàng)360。
            例如,一旦向量已經(jīng)在矩陣340中被重排,就使得每個項(xiàng)300被從初始鄰接項(xiàng)(例如正對項(xiàng)320和/或?qū)琼?xiàng)330)分離,那么GS方法可以被并行地應(yīng)用到重排向量x’的新鄰接項(xiàng)(例如正對項(xiàng)350和/或?qū)琼?xiàng)360)。例如,為了求解方程式Ax’=b的LSSLE,nxn矩陣A可以乘以重排后的nx1向量x’(例如,或者乘表示向量x’的nxm矩陣340)。因此,求解LSSLE的計(jì)算步驟可以類似于雅可比方法的步驟(例如,使用矩陣乘法同時處理向量的多個項(xiàng)),而解的收斂率類似于GS方法的收斂率(例如,基于最近的計(jì)算的解值)。因此,雅可比方法和GS方法各自的優(yōu)勢均被實(shí)現(xiàn)??梢允褂闷渌蛄?、矩陣或數(shù)據(jù)結(jié)構(gòu)類型。可以使用其它重排方案。
            可以理解,每個項(xiàng)可以具有其它數(shù)目的鄰接項(xiàng)或其它鄰接項(xiàng)定義。例如,排列在矩陣310和340對角上的項(xiàng)可以具有2個正對項(xiàng)320和1個對角項(xiàng)330。排列在矩陣310和340邊緣上(且非對角)的項(xiàng)可以具有3個正對項(xiàng)320和2個對角項(xiàng)330。在另一實(shí)施例中,不需要使用向量的矩陣表示。取而代之,初始的和重排后的向量x和x’本身可被使用,矩陣310和340可以被認(rèn)為是一維的(例如,等同于向量x和x’本身)。在這個例子中,對于1xn向量,位于向量邊緣的項(xiàng)(例如x0和xn-1)可以具有1個鄰接項(xiàng),而剩余所有其它項(xiàng)(例如x1和xn-2)可以具有2個鄰接項(xiàng)。
            可以理解,盡管描述了重排或移動項(xiàng),但是本發(fā)明的實(shí)施例包括重排或移動項(xiàng)的派生物。例如,表示重排后的向量的矩陣可以被布置為簡化行階梯形矩陣、正規(guī)矩陣、簡化或拆分為上三角矩陣、下三角矩陣、對角矩陣和/或其它變形。重排的或移動的項(xiàng)可以是源自初始項(xiàng)的項(xiàng)(例如,不是復(fù)制)。
            從初始順序到重排順序的向量中的項(xiàng)的移動可以在圖3中用箭頭表示。注意該移動是數(shù)學(xué)抽象,其可以由映射、算法或方程式(例如,本文描述的重排方程式(3))來定義。在另一實(shí)施例中,重排項(xiàng)可以等同于定義交替映射或?qū)?xiàng)的引用。例如,不必移動或重排項(xiàng)本身。例如,決定以什么順序操作或計(jì)算向量的項(xiàng)可以等同于重新排列。
            操作元素的順序可以由處理器109(圖1)確定,由執(zhí)行單元130(圖1)執(zhí)行,和/或被存儲為命令或一組指令(例如在圖1的高速緩存層次結(jié)構(gòu)160、主存儲器104、ROM 106、數(shù)據(jù)存儲設(shè)備或上述組合中)?;蛘?,向量元素的重新排列或元素被處理的順序可以是一組被存儲和取出用于執(zhí)行的指令所固有的。例如,處理過程可以被預(yù)置來首先操作某些項(xiàng)(例如,項(xiàng)的組),然后其它項(xiàng),依此類推,其中上述順序與向量中元素排列的順序并不對應(yīng)。例如,第一組的多個(例如4或8個)相互不連續(xù)的項(xiàng)可以被打包進(jìn)第一指令,然后第二組的多個(例如4或8個)相互不連續(xù)的項(xiàng)可以被打包進(jìn)第二指令,依此類推。
            算法可以被應(yīng)用于向量x來重排項(xiàng),以形成新的向量x’。例如,算法可以按如下方式(例如,以SSE變量示范)進(jìn)行。向量x可以被存儲為具有R行C列的矩陣310。用于將R*C向量x重排為新的或重排后的向量x’,(其具有項(xiàng)x’(j),其中0≤j≤R*C-1,)的重排方程可以例如
            參數(shù)S可以是初始向量x的項(xiàng)x(j)和x(j+1)之間的距離(例如,在x’中)。參數(shù)S的選擇可以影響處理器109(圖1)(例如SIMD)流水線的效率和吞吐量,并可以被選擇來優(yōu)化這些特征。例如,S的參數(shù)值可以是8。例如,對于足夠大的矩陣310,參數(shù)S的值為4可以是足夠的來填充系統(tǒng)100(圖1)的流水線以達(dá)到占滿吞吐量。其它值也可以被使用。
            本領(lǐng)域技術(shù)人員可以理解,不是必須使用向量的矩陣表示。作為替代,可以使用向量本身。
            參考圖4A和4B,其分別示出了表示具有初始順序的向量x的矩陣400和表示具有新順序的向量x’的矩陣410。可以根據(jù)本文描述的重排方程執(zhí)行項(xiàng)的重排。在該例子中,參數(shù)S為3。
            通過在新向量x’中重排項(xiàng),每個項(xiàng)可以具有獨(dú)立于它的鄰接項(xiàng),因此隨后可以并行處理。在一個實(shí)施例中,對于項(xiàng)xi,在向量x中初始鄰接于xi且在重排后的向量x’中不鄰接于xi的項(xiàng)的數(shù)目是可以與項(xiàng)xi并行處理的項(xiàng)的數(shù)目(例如,使用GS方法)。
            在一個實(shí)施例中,并行處理算法和/或硬件可以用于并行地處理鄰接項(xiàng)。例如,處理器109(圖1)可以并行處理重排后的向量x’的兩個或更多鄰接項(xiàng),例如,使用SIMD操作。
            并行處理算法可以用于通過將nxn矩陣A乘以重排的nx1向量x’,來求解定義為Ax=b的LSSLE。例如,一個實(shí)施例可以使用SSE指令集140(圖1)來并行執(zhí)行4個數(shù)據(jù)點(diǎn),另一實(shí)施例可以使用AVX指令集140(圖1)來并行執(zhí)行8個數(shù)據(jù)點(diǎn)??梢允褂闷渌线m的打包、SIMD或并行處理指令集或方法。例如,可以使用指令集140(圖1)來并行地執(zhí)行16個數(shù)據(jù)點(diǎn)。在一個實(shí)施例中的向量x’可以被重新排列,以使得對于每個項(xiàng),x的至少4個初始鄰接項(xiàng)在x’中是非鄰接的,以并行地執(zhí)行4個獨(dú)立的數(shù)據(jù)點(diǎn)。在另一個實(shí)施例中的向量x’可以被重新排列,以使得對于每個項(xiàng),x的至少8個初始鄰接項(xiàng)在x’中是非鄰接的,以便并行地執(zhí)行8個獨(dú)立的數(shù)據(jù)點(diǎn)。
            本文使用偽代碼描述實(shí)施例。可以使用其它編程代碼、步驟、排序或步驟、編程語言、指令集類型和/或最小數(shù)目的非鄰接項(xiàng)。
            下列的偽代碼描述了實(shí)施例,其通過使用多個(例如4個)鄰接值(例如,保存在xmm1-xmm4中的4×4=16個項(xiàng))來使用SSE指令并行地處理重排后的向量x’的多個(例如4個)數(shù)據(jù)點(diǎn)中的每一個。向量x’可以具有一順序,其中每個項(xiàng)的多個(例如4個)鄰接值(例如,保存在xmm1-xmm4中的數(shù)據(jù)點(diǎn))是相互獨(dú)立的。該“內(nèi)核”,KERNEL-SSE,可以描述并行處理向量x’的多個(例如4個)獨(dú)立項(xiàng)。該內(nèi)核可以被調(diào)用n/4次,以執(zhí)行“向量與矩陣”的乘法,例如,根據(jù)方程Ax’=b。可以使用對應(yīng)于數(shù)據(jù)點(diǎn)(例如,保存在xmm5-xmm8中的4×4=16個項(xiàng))的矩陣A的系數(shù)項(xiàng)。該內(nèi)核可以用來解泊松方程(例如,其中矩陣的每行可以有四個非零項(xiàng))。在其它實(shí)施例中,可以并行處理數(shù)量不是4個的項(xiàng)。
            偽代碼可以例如以如下方式處理 KERNEL-SSE ERR_XMM may hold the the L2norm((x(k+1)-x(k))2)which may indicate the convergence of x. ERR_XMM may be initially set to 0,and the value thereof may be updated, for example,when KERNEL is invoked. xmm0 may hold 4 entries ofb vector(e.g.,where Ax=b). xmm1-xmm4 may hold 4×4=16 entries of the current value of the estimated solution vector x.These values may be the neighbors of estimated value of x,for example,calculated by PDE discretization. xmm5-xmm8 may hold 4×4=16 entries of the matrix A(e.g.,the coefficient values of A). xmm9 may hold 4 entries of the newly computed approximation for x at output. ERR_XMM may be updated. NotationFor each j=0,1,2,... xmmj may hold a plurality(e.g.,4 or 16)of entries.These 4 entries of xmmj may be distinguished by the following notationxmmj[3],xmmj[2],xmmj[1],xmmj
            . The KERNEL may compute the following xmm10=xmm9 xmm9=xmm1*xmm5+xmm2*xmm6+xmm3*xmm7+xmm4*xmm8+xmm0 ERR_XMM=(xmm10[3]-xmm9[3])2+(xmm10[2]-xmm9[2])2+(xmm10[1]- xmm9[1])2+(xmm 10
            -xmm9
            )2 Pseudo-code SSE 1.Load xmm1,xmm2,xmm3,xmm4//load values of“neighbors”of x 2.Load xmm5,xmm6,xmm7,xmm8 //load matrix coefficients 3.Load xmm0//load b values 4.Load xmm9//load current value of x 5.MOVPS xmm10,xmm9//store old value ofx 6.MULPS xmm1,xmm5 //packed multiplications 7.MULPS xmm2,xmm6 //packed multiplications 8.MULPS xmm3,xmm7 //packed multiplications 9.MULPS xmm4,xmm8 //packed multiplications 10.ADDPS xmm1,xmm2//packed addition 11.ADDPS xmm3,xmm4//packed addition 12.ADDPS xmm1,xmm3//packed addition 13.ADDPS xmm1,xmm0//packed addition 14.SUBPS xmm10,xmm9 //L2norm calculation(subtraction) 15.MULPS xmm10,xmm10 //L2norm calculation(squaring) 16.ADDPS ERR_XMM,xmm10//L2norm calculation(updating xmm9) 17.Store xmm1 當(dāng)然這些指令只是作為例子提供。本發(fā)明的實(shí)施例可以使用其它具體形式的指令。在KERNEL-SSE被調(diào)用n/4次后,對于當(dāng)前的迭代,向量x’的所有項(xiàng)都已經(jīng)計(jì)算了,且ERR_XMM保留與上次迭代的差的L2范數(shù)。如果L2范數(shù)值小于預(yù)先計(jì)算的值或閾值,則處理可以停止。在最近的迭代中計(jì)算的x’的值可以被用作最終結(jié)果?;蛘撸梢允褂脤?yīng)于x’的最近迭代值的x的值(例如,通過“解重排”確定或通過使用反向重排方程來將x’反向映射到x來確定)作為最終結(jié)果。
            向量重排可以應(yīng)用于使用其他步驟、處理和/或方法來解方程的系統(tǒng)中。
            一個實(shí)施例的每次迭代或KERNEL-SSE的計(jì)算開銷可以匯總為例如10次加載,1次存儲,5次MULPS和6次ADDPS。
            可以使用類似的內(nèi)核來求解運(yùn)動估計(jì)方程,但是一般需要并行處理向量的8個項(xiàng)(例如,足夠快地找到解以生成“平滑質(zhì)量視頻”)。執(zhí)行相應(yīng)的運(yùn)動估計(jì)內(nèi)核(例如,對于向量中相同數(shù)目的項(xiàng))的計(jì)算開銷可以匯總為例如11次加載,1次存儲,6次MULPS和7次ADDPS。
            下列的偽代碼描述了一實(shí)施例,其通過使用多個(例如8個)鄰接值(例如,保存在ymm1-ymm4中的8×8=64項(xiàng))來使用(例如AVX)指令并行地處理重排后的向量x’的多個(例如8個)數(shù)據(jù)點(diǎn)中的每一個。向量x’可以具有一順序,其中每個項(xiàng)的多個(例如8個)鄰接值(例如,保存在ymm1-ymm4中的數(shù)據(jù)點(diǎn))是相互獨(dú)立的。該“內(nèi)核”,KERNEL-AVX,可以描述并行處理向量x’的多個(例如8個)獨(dú)立的項(xiàng)。該內(nèi)核可以被調(diào)用n=8次以執(zhí)行“矩陣與向量”的乘法,例如,根據(jù)方程Ax’=b??梢允褂脤?yīng)于數(shù)據(jù)點(diǎn)(例如,保存在ymm5-ymm8中的8×8=64項(xiàng))的矩陣A的系數(shù)項(xiàng)。
            該偽代碼可以以如下方式處理 KERNEL-AVX ERR_XMM may hold the L2norm((x(k+1)-x(k))2),which may indicate the convergence of x. ERR_XMM may be initially set to 0,and the value thereof may be updated, for example,when KERNEL is invoked. ymm0 may hold 8 entries of the b vector(e.g.,where Ax=b). ymm1-ymm4 may hold 8×8=64 entries ofthe current value of the estimated solution vector x.These values may be the neighbors of estimated value of x,for example,calculated by PDE discretization. ymm5-ymm8 may hold 8×8=64 entries ofthe matrix A(e.g.,the coefficient values). ymm9 may hold 8 entries of the value of the solution x at the input. ERR_YMM may be updated. NotationFor each j=0,1,2,...,ymmj may hold a plurality(e.g.,8 or 64)of entries.The 8 entries of ymmj may be distinguished by the following notationymmj[7],ymmj[6],ymmj[5],ymmj[4],ymmj[3],ymmj[2], ymmj[1],ymmj
            . The KERNEL may compute the following ymm10=y(tǒng)mm9 ymm9=y(tǒng)mm1*ymm5+ymm2*ymm6+ymm3*ymm7+ymm4*ymm8+ymm0 ERR_YMM=(ymm10[7]-ymm9[7])2+(ymm10[6]-ymm9[6])2+(ymm10[5]- ymm9[5])2+(ymm10[4]-ymm9[4])2+(ymm10[3]-ymm9[3])2+(ymm10[2]-y mm9[2])2+(ymm10[1]-ymm9[1])2+(ymm10
            -ymm9
            )2; Pseudo-code for the instruction set for processing 8 data points in parallel 1.Load ymm1-ymm4//load current value of x neighbors 2.Load ymm5-ymm8//load matrix coefficients 3.Load ymm0 //Load b values 4.Load ymm9 //load current value of x 5.ymm10=y(tǒng)mm9 6.MULPS ymm1,ymm1,ymm5//packed multiplications 7.MULPS ymm2,ymm2,ymm6//packed multiplications 8.MULPS ymm3,ymm3,ymm7//packed multiplications 9.MULPS ymm4,ymm4,ymm8//packed multiplications 10.ADDPS ymm1,ymm1,ymm2 //packed addition 11.ADDPS ymm3,ymm3,ymm4 //packed addition 12.ADDPS ymm1,ymm1,ymm0//packed addition 13.ADDPS ymm1,ymm1,ymm3//packed addition 14.SUBPS ymm10,ymm10,ymm9 //L2norm calculation(subtraction) 15.MULPS ymm10,ymm10,ymm10 //L2norm calculation(squaring) 16.ADDPS ERR_YMM,ERR_YMM,ymm10 //L2norm calculation (update ymm10) 17.Store ymm9 在KERNEL-AVX被調(diào)用n/8次后,對于當(dāng)前的迭代,向量x’的所有項(xiàng)都已經(jīng)計(jì)算了,且xmm9可以保存與上次迭代的差的L2范數(shù)。如果L2范數(shù)值小于預(yù)先計(jì)算的值或閾值,則處理可以停止,并且在最近的迭代中計(jì)算的x’的值(例如,或?qū)?yīng)于其的x的值)可以被用作最終結(jié)果。
            一個實(shí)施例的每次迭代或KERNEL-AVX的計(jì)算開銷可以匯總為例如10次加載,1次存儲,5次MULPS和6次ADDPS。
            通過使用用于并行處理8個數(shù)據(jù)點(diǎn)的指令集140(圖1)來代替SSE指令集140(圖1)(例如,并行處理4個數(shù)據(jù)點(diǎn)),處理器109(圖1)可以使用同樣數(shù)目的指令(例如,以及延遲)處理大約兩倍的數(shù)據(jù)。
            本發(fā)明的實(shí)施例可以用于求解LSSLE以估計(jì)運(yùn)動,以便轉(zhuǎn)換幀頻。例如,考慮一視頻播放器或計(jì)算機(jī),其在刷新率為例如每秒60幀(60fps)的監(jiān)視器或顯示屏上播放或輸出初始頻率為例如每秒24幀的視頻文件。為了轉(zhuǎn)換文件以在所述刷新率進(jìn)行播放,以使得在相同的流逝時間內(nèi),設(shè)備以第一速率輸出,顯示屏以第二速率輸出,幀轉(zhuǎn)換應(yīng)用程序(例如,運(yùn)動估計(jì)器)可以生成另外的fps(例如,48fps)。例如,對于每個一秒的時間周期,24幀進(jìn)入根據(jù)本發(fā)明的實(shí)施例的處理器過程并輸出60幀。例如,因?yàn)樾聨械囊恍┦桥f幀的拷貝,所以可以生成少于60的額外fps。例如,如果每個幀具有n2個像素,其中n=256,那么該應(yīng)用程序可以平均每秒生成48個LSSLE的解。在一個實(shí)施例中,LSSLE可以安排為矩陣形式(例如,Ax=b)。
            在常規(guī)的GS方法中,可以通過一次一項(xiàng)或依次用向量x中的每一項(xiàng)乘矩陣A來生成LSSLE的每個解。本發(fā)明的實(shí)施例可以通過并行地或同時地用向量x’的兩個或多個(例如獨(dú)立的)項(xiàng)乘矩陣A來生成LSSLE的每個解。
            每個LSSLE的解可以被生成,直到獲得了解(例如x或x’)的收斂。例如,如果在GS方法的10次迭代內(nèi)獲得了收斂,則該應(yīng)用程序會執(zhí)行10次“矩陣與向量”的乘法,其每秒需要10*6n2=3932160次乘法和10*4n2=2621440次加法(例如,如果矩陣A具有6個非零項(xiàng)且每一幀具有n2=2562個像素)。幀轉(zhuǎn)換應(yīng)用程序會具有另外的計(jì)算開銷,例如,準(zhǔn)備矩陣A(例如,通過對角元素劃分每個矩陣)。根據(jù)本發(fā)明的實(shí)施例,通過并行求解多個(例如,4或8個)數(shù)據(jù)點(diǎn),可以比使用常規(guī)方法更快地生成LSSLE的解。與常規(guī)方法相比,根據(jù)本發(fā)明實(shí)施例的播放器操作可以播放更“平滑”的視頻,盡管其它的或不同的益處也可以獲得。
            本發(fā)明的實(shí)施例在求解LSSLE上相比于其它常規(guī)方法具有優(yōu)勢,例如本領(lǐng)域所知的“紅-黑”GS方法、“zig-zag掃描”方法以及“斑馬線松弛”方法。例如,紅-黑方法使用的迭代次數(shù)一般是標(biāo)準(zhǔn)GS方法的2-3倍。另外,該紅-黑方法一般在每次迭代之前和/或之后執(zhí)行打包和/或解包處理,因此,不能輕易地被集成到光流或多重網(wǎng)格結(jié)構(gòu)中。例如,zig-zag掃描方法,類似于紅-黑方法,一般在每次迭代之前和/或之后執(zhí)行打包和/或解包處理,因此會涉及大量的開銷并且不易實(shí)現(xiàn)。zig-zag掃描方法一般不適于多標(biāo)度結(jié)構(gòu)。例如,斑馬線松弛方法,類似于紅-黑方法,一般使用的迭代次數(shù)是GS方法的2-3倍。
            相反,本發(fā)明的實(shí)施例可以使用與GS方法相同次數(shù)的迭代,因此是前面提到的常規(guī)方法的迭代次數(shù)的一半。本發(fā)明的實(shí)施例不必實(shí)現(xiàn)打包和/或解包處理,例如,在每次迭代之前和/或之后。因此,本發(fā)明的實(shí)施例可以被輕易地集成到光流或多重網(wǎng)格或多標(biāo)度結(jié)構(gòu)中。本發(fā)明的實(shí)施例可以使用顯著減少的預(yù)處理和/或處理后工作或開銷(例如,與zig-zag掃描方法相比)。例如,本發(fā)明的實(shí)施例可以為多標(biāo)度和/或多重網(wǎng)格結(jié)構(gòu)使用單個預(yù)處理步驟。相比標(biāo)準(zhǔn)GS方法,使用并行地處理4或8個數(shù)據(jù)點(diǎn)的指令集的本發(fā)明的實(shí)施例求解方程的速度分別是3.5和7倍。
            也可以實(shí)現(xiàn)其它的或不同的益處。
            盡管本文描述了雅可比和GS方法,本發(fā)明的實(shí)施例可以與任何迭代方法一同使用。迭代方法是通過從初始的猜想和/或估計(jì)開始,連續(xù)尋找解的近似值來解決問題(例如方程或方程組)的方法。例如,牛頓方法、不動點(diǎn)方法、定常迭代法,例如本文描述的雅可比和GS方法或它們的變形、Krylov子空間算法,例如共軛梯度方法(CG)、廣義最小殘量法(GMRES)以及雙共軛梯度方法(BiCG)。其它方法也可以使用。
            參考圖5,其是根據(jù)本發(fā)明實(shí)施例的方法的流程圖。該方法實(shí)施例可以被例如圖1中的計(jì)算系統(tǒng)100或其它合適系統(tǒng)使用或?qū)崿F(xiàn)。
            在操作500中,系統(tǒng)(例如,圖1的系統(tǒng)100)可以從輸入設(shè)備(例如,圖1中的輸入設(shè)備122)接收具有幀頻的視頻輸入文件,其不同于向輸出設(shè)備(例如,圖1中的顯示設(shè)備121)輸出視頻文件的幀頻。
            在操作505,執(zhí)行單元(例如,圖1中的執(zhí)行單元130)可以開始求解由方程式Ax=b定義的線性方程組(例如,LSSLE)。該線性方程組可以定義用于將視頻文件從輸入幀頻轉(zhuǎn)換到輸出幀頻的中間幀。
            在操作510,處理器(例如,圖1中的處理器109)可以生成表示線性方程組的系數(shù)的矩陣A,表示該線性方程組的解的第一估計(jì)值的向量x,表示該線性方程組的標(biāo)量值的向量b。該向量x可以包括按順序排列的多個元素(例如,x1,x2,x3,x4,...) 在操作515,處理器可以用向量x乘矩陣A,以使得向量x中的元素可以按照不同于這些元素在向量中的排列順序的順序(例如,x1,x9,x17,x25,...)進(jìn)行相乘。連續(xù)的被乘的項(xiàng)是獨(dú)立的或與鄰接元素分離。例如,根據(jù)GS方法,x1獨(dú)立于x9,x17和x25。因此,向量的多個獨(dú)立元素可以被并行地相乘。在一個實(shí)施例中,該處理器可以使用SIMD指令并行地乘多個連續(xù)元素。
            在一個實(shí)施例中,處理器可以實(shí)際重排向量中元素的排列順序,以生成不同的順序(例如,x1,x9,x17,x25,...)。在一個實(shí)施例中,向量的元素可以以矩陣形式被重新排列(例如,圖3中從矩陣310到矩陣340)。在另一實(shí)施例中,處理器可以僅僅無序地計(jì)算向量元素。
            在操作520,處理器可以生成線性方程組的解的第二向量估計(jì)值,其中該第二向量估計(jì)值是操作515中相乘的結(jié)果。
            在操作525中,處理器可以確定或度量第一和第二向量估計(jì)值之間的差。當(dāng)該第一和第二向量估計(jì)值的差小于預(yù)定量時,處理可以前進(jìn)到操作530。否則該處理可以進(jìn)入操作515,并用第二向量估計(jì)值取代第一向量估計(jì)值。
            在操作530,處理器可以設(shè)置LSSLE的解。線性方程組的解可以被設(shè)置為第二向量估計(jì)值。或者,線性方程組的解可以被設(shè)置為第一向量估計(jì)值?;蛘?,線性方程組的解可以被設(shè)置為第一和第二向量估計(jì)值的平均值。
            在操作535,處理器可以使用LSSLE的解生成插入幀,從而將至少一段視頻文件從輸入幀頻轉(zhuǎn)換到輸出幀頻。在一個實(shí)施例中,在每對已知幀之間的每個插入幀可以由單獨(dú)的LSSLE描述。在其它實(shí)施例中,多個插入幀可以由相同LSSLE描述。處理過程可以重復(fù)操作505-535,直到每個插入幀已經(jīng)使用表示它的LSSLE被生成。一旦生成了用于將至少一段視頻文件從輸入幀頻轉(zhuǎn)換到輸出幀頻的每個插入幀,處理可以進(jìn)入操作540。
            在操作540,輸出設(shè)備(例如,圖1中的顯示設(shè)備121,例如監(jiān)視器)可以以合適的輸出幀頻輸出該視頻文件。
            在操作545,存儲器單元(例如,圖1中的主存儲器104、ROM 106、數(shù)據(jù)存儲設(shè)備107,例如DRAM)可以以該輸出幀頻存儲視頻文件。存儲器單元可以存儲矩陣A乘以向量x的結(jié)果(例如,在操作515中的)。
            可以使用其它操作或操作序列。
            本發(fā)明的實(shí)施例可以包括制品,例如計(jì)算機(jī)或處理器可讀介質(zhì),或計(jì)算機(jī)或處理器存儲介質(zhì),例如存儲器、磁盤驅(qū)動器或USB閃存,用于編碼、包含或存儲指令,該指令被處理器或控制器執(zhí)行時,執(zhí)行本文公開的方法。
            描述的實(shí)施例使用方程求解方法以便于視頻解釋。然而,其它實(shí)施例可以在其它環(huán)境中使用上述求解方法,例如電子工程、流體動力學(xué)、其它計(jì)算機(jī)視覺/圖形系統(tǒng),例如光流估計(jì)、超分辨率和圖像降噪。
            盡管使用有限數(shù)目的實(shí)施例描述了本發(fā)明,然而應(yīng)該知道,可以構(gòu)造本發(fā)明的許多變形、修改以及其它應(yīng)用。本發(fā)明的實(shí)施例可以包括用于執(zhí)行本文操作的其它裝置。這些裝置可以集成已討論的要素,或可以包括替代部件來執(zhí)行相同的目的。本領(lǐng)域的技術(shù)人員應(yīng)該知道,附加的權(quán)利要求旨在涵蓋落入本發(fā)明實(shí)質(zhì)精神范圍內(nèi)的所有變形或改變。
            權(quán)利要求
            1、一種方法,包括
            用一向量乘一矩陣,其中所述矩陣表示一大型稀疏線性方程組,該大型稀疏線性方程組用于估計(jì)視頻文件的幀之間的運(yùn)動以轉(zhuǎn)換幀頻,所述向量是所述線性方程組的解的第一估計(jì)值,其中,所述向量包括按照一順序排列的多個元素,并且其中,按照與所述元素在所述向量中的排列順序不同的順序用所述向量的元素乘所述矩陣,并且其中,所述向量中的多個元素被并行地相乘;
            生成所述線性方程組的解的第二向量估計(jì)值,其中,所述第二向量估計(jì)值是所述乘法的乘積;以及
            當(dāng)所述第一和第二向量估計(jì)值的差小于預(yù)定的量時,設(shè)置所述線性方程組的解。
            2、如權(quán)利要求1所述的方法,其中,通過使用單指令多數(shù)據(jù)指令集的處理器來乘所述多個元素。
            3、如權(quán)利要求1所述的方法,包括重排所述向量的有序的元素,以生成與所述元素的排列順序不同的順序。
            4、如權(quán)利要求1所述的方法,包括當(dāng)將視頻文件從輸入幀頻轉(zhuǎn)換到輸出幀頻時,使用所述線性方程組的解生成內(nèi)插入的圖像幀。
            5、如權(quán)利要求4所述的方法,包括以顯示器的輸出幀頻在所述顯示器上顯示所述視頻文件。
            6、如權(quán)利要求1所述的方法,其中,與所述元素在所述向量中的排列順序不同的順序?qū)?yīng)于所述向量到一映射矩陣的映射以及所述映射矩陣到一重排后的映射矩陣的重排,其中,所述映射矩陣的鄰接元素在所述重排后的映射矩陣中是不鄰接的。
            7、一種系統(tǒng),包括
            執(zhí)行單元,用于執(zhí)行處理以進(jìn)行如下操作用一向量乘一矩陣,其中,所述矩陣表示一大型稀疏線性方程組,該大型稀疏線性方程組用于估計(jì)視頻文件的幀之間的運(yùn)動以轉(zhuǎn)換幀頻,所述向量是所述線性方程組的解的第一估計(jì)值,其中,所述向量包括按照一順序排列的多個元素,并且其中,按照與所述元素在所述向量中的排列順序不同的順序用所述向量的元素乘所述矩陣,并且其中,所述向量中的多個元素被并行地相乘;生成所述線性方程組的解的第二向量估計(jì)值,其中,所述第二向量估計(jì)值是所述乘法的乘積;并且當(dāng)所述第一和第二向量估計(jì)值的差小于預(yù)定的量時,設(shè)置所述線性方程組的解;以及
            動態(tài)隨機(jī)存取存儲器。
            8、如權(quán)利要求7所述的系統(tǒng),其中,所述執(zhí)行單元使用單指令多數(shù)據(jù)指令集來執(zhí)行處理,以并行地乘所述多個元素。
            9、如權(quán)利要求7所述的系統(tǒng),其中,當(dāng)將視頻文件從輸入幀頻轉(zhuǎn)換到輸出幀頻時,所述處理器使用所述線性方程組的解生成插入的圖像幀。
            10、如權(quán)利要求9所述的系統(tǒng),包括一顯示器,以按照所述顯示器的輸出幀頻顯示所述視頻文件。
            全文摘要
            一種用于用向量乘矩陣的方法、裝置和系統(tǒng),例如,視頻插入(其它應(yīng)用是可預(yù)期的)。該矩陣可以表示大型稀疏線性方程組。該大型稀疏線性方程組可以用于估計(jì)視頻文件的幀之間的運(yùn)動以轉(zhuǎn)換幀頻。向量可以是該線性方程組的解的第一估計(jì)值。可以按照與所述元素在所述向量中的排列順序不同的順序用所述向量的元素乘所述矩陣??梢圆⑿械爻讼蛄恐械亩鄠€元素。線性方程組的解的第二向量估計(jì)值可以是乘法的積。例如當(dāng)?shù)谝缓偷诙蛄抗烙?jì)值的差小于預(yù)定的量時,可以設(shè)置線性方程組的解。其它的實(shí)施例被描述和主張權(quán)利。
            文檔編號G09G5/00GK101572771SQ200910137010
            公開日2009年11月4日 申請日期2009年4月27日 優(yōu)先權(quán)日2008年4月25日
            發(fā)明者A·米亞斯科夫斯基, S·格倫 申請人:英特爾公司
            網(wǎng)友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品