專利名稱:用于視頻解碼的硬件運(yùn)動補(bǔ)償?shù)闹谱鞣椒?br>
用于視頻解碼的硬件運(yùn)動補(bǔ)償
背景技術(shù):
國際標(biāo)準(zhǔn)化組織和國際電工技術(shù)委員會的運(yùn)動圖像專家組(MPEG)已 經(jīng)研發(fā)了 MPEG-2標(biāo)準(zhǔn),其能夠以約3-15Mbps的比特率編碼標(biāo)準(zhǔn)清晰度電 視,以約15-30Mbps的比特率編碼高清晰度電視。此外,作為在其前身 MPEG-1基礎(chǔ)上的提高,MPEG-2增加了多聲道環(huán)繞聲的音頻編碼。
與其近似的電視對等物相比,MPEG-2編碼借助于在傳輸視頻/音頻信 號之前,在編碼器端從視頻/音頻信號中去除冗余信息,來以更低的比特率 工作。隨后在解碼器端,可以將該冗余信息添加回去。MPEG-2比特率減小 方案依賴于具體的時間冗余度以及精神性視覺冗余度,以在觀眾基本上沒 有覺察的情況下,減小視頻/音頻信號的比特率。時間冗余度可以指代并非 是獨(dú)立的、而是與在同一視頻幀內(nèi)的以及在多個視頻幀之間的相鄰像素相 關(guān)的像素值。精神性視覺冗余度可以指代對于在觀眾眼睛的視野邊緣和視 頻拍攝變換周圍處的細(xì)節(jié)、觀眾眼睛的限制。
圖1示出了媒體處理系統(tǒng)的一個實(shí)施例。 圖2示出了媒體處理子系統(tǒng)的一個實(shí)施例。 圖3示出了硬件運(yùn)動補(bǔ)償驅(qū)動器的一個實(shí)施例。 圖4示出了硬件運(yùn)動補(bǔ)償驅(qū)動器的一個實(shí)施例。 圖5示出了邏輯流程的一個實(shí)施例。
具體實(shí)施例方式
描述了用于硬件運(yùn)動補(bǔ)償(HWMC)的直接宏塊驅(qū)動器及其方法的各個 實(shí)施例。例如, 一個實(shí)施例包括HWMC圖形顯示設(shè)備驅(qū)動器及其操作的方 法。更具體而言, 一個實(shí)施例通過直接產(chǎn)生宏塊指令并將其存儲在專用緩 沖器中,來緩解在顯示設(shè)備驅(qū)動器中的宏塊數(shù)據(jù)分析的瓶頸。例如, 一個實(shí)施例包括與用于全部其它HWMC指令的DMA指令執(zhí)行緩沖器相分離 的、獨(dú)立的用于宏塊指令的DMA指令執(zhí)行緩沖器。宏塊指令的生成以及與 其它HWMC指令的分離,還允許更好的利用專用圖形處理單元(GPU),來 分擔(dān)通用中央處理單元(CPU)的圖形顯示設(shè)備驅(qū)動器的處理器工作負(fù)擔(dān)。
圖l示出了系統(tǒng)的一個實(shí)施例。圖1示出了媒體處理系統(tǒng)100的框圖。 例如,在一個實(shí)施例中,媒體處理系統(tǒng)100可以包括多個節(jié)點(diǎn)。按照給定 的一組設(shè)計參數(shù)或性能約束所期望的,節(jié)點(diǎn)可以包括用于在媒體處理系統(tǒng) 100中處理和/或傳輸信息的任何物理或邏輯實(shí)體,并可以實(shí)現(xiàn)為硬件、軟 件或其任何組合。盡管圖1是以特定拓?fù)浣Y(jié)構(gòu)中有限數(shù)量的節(jié)點(diǎn)來示出的, 但可以理解,媒體處理系統(tǒng)100可以包括按照對于給定實(shí)現(xiàn)所預(yù)期的、在 任何類型的拓?fù)浣Y(jié)構(gòu)中的更多或更少的節(jié)點(diǎn)。實(shí)施例不限于該范圍。
在各種實(shí)施例中,節(jié)點(diǎn)可以包括或被實(shí)現(xiàn)為計算機(jī)系統(tǒng)、計算機(jī)子 系統(tǒng)、計算機(jī)、應(yīng)用設(shè)備、工作站、終端、服務(wù)器、個人計算機(jī)(PC)、膝上 型電腦、超便攜膝上型電腦、手持計算機(jī)、個人數(shù)字助理(PDA)、電視、數(shù) 字電視、機(jī)頂盒(STB)、電話、移動電話、蜂窩電話、手持設(shè)備、無線接入 點(diǎn)、基站(BS)、用戶站點(diǎn)(SS)、移動用戶中心(MSC)、無線網(wǎng)絡(luò)控制器(RNC)、' 微處理器、諸如專用集成電路(ASIC)之類的集成電路、可編程邏輯器件 (PLD)、諸如通用處理器,數(shù)字信號處理器(DSP)和/或網(wǎng)絡(luò)處理器之類的處
理器、接口、輸入/輸出(i/o)設(shè)備(例如鍵盤、鼠標(biāo)、顯示器、打印機(jī))、路
由器、集線器、網(wǎng)關(guān)、橋接器、交換機(jī)、電路、邏輯門、寄存器、半導(dǎo)體 器件、芯片、晶體管,或任何其它器件、機(jī)器、工具、器材、部件、或者 其組合。實(shí)施例不限于該范圍。
在各種實(shí)施例中,節(jié)點(diǎn)可以包括或被實(shí)現(xiàn)為軟件、軟件模塊、應(yīng)用程 序、程序、子程序、指令集、計算碼、詞語、值、符號、或者其組合。可 以根據(jù)用于命令處理器執(zhí)行特定功能的預(yù)先定義的計算機(jī)語言、方式或語 法來實(shí)現(xiàn)節(jié)點(diǎn)。計算機(jī)語言的實(shí)例可以包括C、 C++、 Java、 BASIC、 Perl、 Matlab、 Pascal、 Visual BASIC、匯編語言、機(jī)器碼、用于處理器的微代碼 等等。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理系統(tǒng)100可以根據(jù)一個或多個協(xié)議來傳輸、
管理或處理信息。協(xié)議可以包括用于管理在節(jié)點(diǎn)之間的通信的一組預(yù)先定義的規(guī)則或指令。協(xié)議可以由標(biāo)準(zhǔn)化組織頒布的一個或多個標(biāo)準(zhǔn)來定義, 標(biāo)準(zhǔn)化組織例如為國際電信聯(lián)盟(ITU)、國際標(biāo)準(zhǔn)化組織(ISO)、國際電工 技術(shù)委員會(IEC)、電氣和電子工程師學(xué)會(IEEE)、互聯(lián)網(wǎng)工程任務(wù)組(IETF)、 運(yùn)動圖像專家組(MPEG)、等等。例如,所述實(shí)施例可以被布置為按照用于 媒體處理的標(biāo)準(zhǔn)來運(yùn)行,所述用于媒體處理的標(biāo)準(zhǔn)例如為國家電視系統(tǒng) 委員會(NTSC)標(biāo)準(zhǔn)、逐行倒相制式(PAL)標(biāo)準(zhǔn)、MPEG-1標(biāo)準(zhǔn)、MPEG-2標(biāo) 準(zhǔn)、MPEG-4標(biāo)準(zhǔn)、地面數(shù)字視頻廣播(DVB-T)廣播標(biāo)準(zhǔn)、ITU/IEC H.263 標(biāo)準(zhǔn),其是用于低比特率通信的視頻編碼,2000年11月公布的ITU-T推薦 的H,263v3、和/或汀1;/正(11264標(biāo)準(zhǔn),其是用于超低比特率通信的視頻編 碼,2003年5月公布的ITU-T推薦的H.264、等等。實(shí)施例不限于該范圍。 在各種實(shí)施例中,媒體處理系統(tǒng)100的節(jié)點(diǎn)可以被布置為傳輸、管理 或處理不同類型的信息,例如媒體信息和控制信息。媒體信息的實(shí)例通常 可以包括表示對于用戶有意義的內(nèi)容的任何數(shù)據(jù),例如語音信息、視頻信 息、音頻信息、圖像信息、文本信息、數(shù)字信息、字母數(shù)字符號、圖形、 等等。控制信息可以指的是表示對于自動化系統(tǒng)有意義的命令、指令或控 制字的任何數(shù)據(jù)。例如,控制信息可以用于通過系統(tǒng)發(fā)送媒體信息,以創(chuàng) 建在設(shè)備之間的連接、命令節(jié)點(diǎn)以預(yù)定方式處理媒體信息、等等。實(shí)施例 不限于該范圍。
在不同實(shí)施例中,媒體處理系統(tǒng)100可以實(shí)現(xiàn)為有線通信系統(tǒng)、無線 通信系統(tǒng)、或二者的組合。盡管媒體處理系統(tǒng)100可以被示出為使用作為 實(shí)例的某種特定通信介質(zhì),但可以理解,在此論述的原理和技術(shù)可以用任 何類型的通信介質(zhì)及其相關(guān)技術(shù)來實(shí)現(xiàn)。實(shí)施例不限于該范圍。
例如,當(dāng)實(shí)現(xiàn)為有線系統(tǒng)時,媒體處理系統(tǒng)100可以包括被布置為通 過一種或多種有線通信介質(zhì)傳輸信息的一個或多個節(jié)點(diǎn)。有線通信介質(zhì)的 實(shí)例可以包括電線、電纜、印刷電路板(PCB)、底板、交換結(jié)構(gòu)(switch fabric)、半導(dǎo)體材料、雙絞線、同軸電纜、光纖、等等。有線通信介質(zhì)可以
用輸入/輸出(i/o)適配器連接到節(jié)點(diǎn)。i/o適配器可以被布置為以任何適合的
技術(shù)運(yùn)行,以便用期望的一組通信協(xié)議、服務(wù)或操作過程來控制在節(jié)點(diǎn)之 間的信息信號。1/0適配器還可以包括適當(dāng)?shù)奈锢磉B接器,以將i/o適配器 與相應(yīng)的通信介質(zhì)相連接。1/0適配器的實(shí)例可以包括網(wǎng)絡(luò)接口、網(wǎng)絡(luò)接口卡(NIC)、磁盤控制器、視頻控制器、音頻控制器、等等。實(shí)施例不限于 該范圍。
例如,當(dāng)實(shí)現(xiàn)為無線系統(tǒng)時,媒體處理系統(tǒng)100可以包括被布置為通 過一個或多個類型的無線通信介質(zhì)傳輸信息的一個或多個無線節(jié)點(diǎn)。無線 通信介質(zhì)的實(shí)例可以包括無線頻譜的多個部分,例如通常的RP頻譜,尤其 是超高頻(UHF)頻譜。無線節(jié)點(diǎn)可以包括適于通過指定的無線頻譜傳輸信息 信號的部件和接口,例如一個或多個天線、無線發(fā)射器/接收器("收發(fā)器")、 放大器、濾波器、控制邏輯、天線、等等。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理系統(tǒng)100可以包括一個或多個媒體源節(jié)點(diǎn) 102-l-n。媒體源節(jié)點(diǎn)102-l-n可以包括能夠向媒體處理節(jié)點(diǎn)106發(fā)出或傳遞 媒體信息和域控制信息的任何媒體源。更具體的,媒體源節(jié)點(diǎn)102-l-n可 以包括能夠向媒體處理節(jié)點(diǎn)106發(fā)出或傳遞數(shù)字音頻和/或視頻(AV)信號的 任何媒體源。媒體源節(jié)點(diǎn)102-l-n的實(shí)例可以包括能夠存儲和/或傳遞媒體 信息的任何硬件或軟件元件,例如數(shù)字多用途光盤(DVD)設(shè)備、家用錄像系 統(tǒng)(VHS)設(shè)備、數(shù)字VHS設(shè)備、個人錄像機(jī)、計算機(jī)、游戲控制臺、光盤 (CD)播放器、計算機(jī)可讀或機(jī)器可讀存儲器、數(shù)碼相機(jī)、便攜式攝像機(jī)、 視頻監(jiān)視系統(tǒng)、電話會議系統(tǒng)、電話系統(tǒng)、醫(yī)學(xué)和測量儀器、掃描器系統(tǒng)、 復(fù)印機(jī)系統(tǒng)等。媒體源節(jié)點(diǎn)102-l-n的其它實(shí)例可以包括媒體發(fā)布系統(tǒng),用 于向媒體處理節(jié)點(diǎn)106提供廣播或流式的模擬或數(shù)字AV信號。媒體發(fā)布系 統(tǒng)的實(shí)例可以包括例如無線(OTA)廣播系統(tǒng)、地面有線電視系統(tǒng)(CATV)、 衛(wèi)星廣播系統(tǒng)、等等。值得注意的是,媒體源節(jié)點(diǎn)102-l-n可以在媒體處理 節(jié)點(diǎn)106的內(nèi)部或外部,這取決于給定的實(shí)現(xiàn)。實(shí)施例不限于該范圍。
在各種實(shí)施例中,從媒體源節(jié)點(diǎn)102-l-n所接收的輸入的視頻信號可以 具有固有的格式,有時指的是視覺分辨率格式。視覺分辨率格式的實(shí)例包 括數(shù)字電視(DTV)格式、高清晰度電視(HDTV)、逐行掃描格式、計算機(jī) 顯示格式、等等。例如,可以用范圍在每幀480可見行到每幀1080可見行 之間的垂直分辨率格式和范圍在每行640可見像素到每行1920可見像素之 間的水平分辨率格式來對媒體信息進(jìn)行編碼。例如,在一個實(shí)施例中,媒 體信息可以被編碼為HDTV視頻信號,具有720逐行掃描(720p)的視覺分 辨率格式,其指的是1280個水平像素和720個垂直像素(1280X720),或者1080隔行掃描(1080i),其指的是1920個水平像素和1080個垂直像素。 在另一個實(shí)例中,媒體信息可以具有與不同計算機(jī)顯示格式相對應(yīng)的視覺 分辨率格式,例如視頻圖形陣列(VGA)格式分辨率(640X480)、擴(kuò)展圖形陣 列(XGA)格式分辨率(1024X768)、超級XGA(SXGA)格式分辨率(1280X 1024)、超高XGA(UXGA)格式分辨率(1600X1200)等。實(shí)施例不限于該范 圍。
在不同實(shí)施例中,媒體處理系統(tǒng)IOO可以包括媒體處理節(jié)點(diǎn)106,通過 一個或多個通信介質(zhì)104-l-m連接到媒體源節(jié)點(diǎn)102-l-n。媒體處理節(jié)點(diǎn)106 可以包括如前所述的任何節(jié)點(diǎn),其被布置為處理從媒體源節(jié)點(diǎn)102-l-n所接 收的媒體信息。在各種實(shí)施例中,媒體處理節(jié)點(diǎn)106可以包括或被實(shí)現(xiàn)為 一個或多個媒體處理設(shè)備,其包括處理系統(tǒng)、處理子系統(tǒng)、處理器、計 算機(jī)、器件、編碼器、解碼器、編碼器/解碼器(CODEC)、濾波器件(例如圖 形縮放器件、解塊濾波器件)、變換器件、娛樂系統(tǒng)、顯示器或任何其它處 理結(jié)構(gòu)。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理節(jié)點(diǎn)106可以包括媒體處理子系統(tǒng)108。媒 體處理子系統(tǒng)108可以包括處理器、存儲器以及應(yīng)用硬件和/或軟件,其 被布置為處理從媒體源節(jié)點(diǎn)102-l-n所接收的媒體信息。例如,媒體處理子 系統(tǒng)108可以被布置為處理MPEG-2壓縮的音頻和/或視頻信號,并執(zhí)行如 以下詳述的其它媒體處理操作。媒體處理子系統(tǒng)108可以向顯示器110輸 出處理過的媒體信息。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理節(jié)點(diǎn)106可以包括顯示器110。顯示器IIO 可以是能夠顯示從媒體源節(jié)點(diǎn)102-l-n所接收的媒體信息的任何顯示器。顯 示器110可以以給定格式分辨率顯示媒體信息。例如,顯示器110可以在 具有VGA格式分辨率、XGA格式分辨率、SXGA格式分辨率、UXGA格 式分辨率等的顯示器上顯示媒體信息。例如,在另一實(shí)施例中,媒體信息 可以被編碼為HDTV視頻信號,具有720逐行掃描(720p)的視覺分辨率格 式,其指的是720個垂直像素和1280個水平像素(720X 1280)。在再另一個 實(shí)施例中,媒體信息可以被編碼為HDTV視頻信號,具有1080隔行掃描 (1080i)的視覺分辨率格式,其指的是1080個垂直像素和1920個水平像素 (1080X 1920)。顯示器的類型和格式分辨率可以根據(jù)給定的一組設(shè)計或性能約束而變化,并且實(shí)施例不限于該范圍。
在通常的操作中,媒體處理節(jié)點(diǎn)106可以從一個或多個媒體源節(jié)點(diǎn) 102-l-n接收媒體信息。例如,媒體處理節(jié)點(diǎn)106可以從被實(shí)現(xiàn)為DVD播 放器的媒體源節(jié)點(diǎn)102-1接收媒體信息,該DVD播放器與媒體處理節(jié)點(diǎn)106 集成在一起。媒體處理子系統(tǒng)108可以從DVD播放器得到媒體信息,將媒 體信息由視覺分辨率格式轉(zhuǎn)換為顯示器110的顯示分辨率格式,并用顯示 器110再現(xiàn)媒體信息。
在各種實(shí)施例中,媒體處理節(jié)點(diǎn)106可以被布置為從一個或多個媒體 源節(jié)點(diǎn)102-l-n接收輸入圖像。輸入圖像可以包括從一個或多個視頻圖像導(dǎo) 出或與之相關(guān)的任何數(shù)據(jù)或媒體信息。在各種實(shí)施例中,輸入圖像可以包 括以下一種或多種圖像數(shù)據(jù)、視頻數(shù)據(jù)、視頻序列、畫面組、畫面、圖 像、區(qū)域、對象、幀、切片、宏塊、塊、像素、信號、等等。分配給像素 的值可以包括實(shí)數(shù)和/或整數(shù)。
在不同實(shí)施例中,媒體處理節(jié)點(diǎn)106可以被布置為用作用于MPEG-2 壓縮的音頻和/或視頻(AV)信號的圖形顯示設(shè)備驅(qū)動器。更具體的, 一個實(shí)
施例的媒體處理節(jié)點(diǎn)可以通過直接產(chǎn)生宏塊指令并將其存儲在專用緩沖器 中,來緩解基于硬件的運(yùn)動補(bǔ)償幀間預(yù)測(HWMC)圖形顯示設(shè)備驅(qū)動器的宏 塊數(shù)據(jù)分析瓶頸。例如, 一個實(shí)施例包括與用于全部其它HWMC指令的 DMA指令執(zhí)行緩沖器相分離的、獨(dú)立的用于宏塊指令的DMA指令執(zhí)行緩 沖器。宏塊指令的生成以及與其它HWMC指令的分離,還允許更好的利用 專用圖形處理單元(GPU),來分擔(dān)圖形顯示設(shè)備驅(qū)動器的處理器工作負(fù)擔(dān)。 例如,在一個實(shí)施例中,媒體處理節(jié)點(diǎn)106的媒體處理子系統(tǒng)108可 以被布置為包括與用于全部其它HWMC指令的DMA指令執(zhí)行緩沖器相分 離的、獨(dú)立的用于宏塊指令的DMA指令執(zhí)行緩沖器。宏塊指令的生成以及 與其它HWMC指令的分離還允許更多的利用GPU,來分擔(dān)圖形顯示設(shè)備 驅(qū)動器處理器工作量。媒體處理子系統(tǒng)108可以利用一個或多個預(yù)定義或 預(yù)定的數(shù)學(xué)函數(shù)來控制HWMC指令(例如,產(chǎn)生、通路、序列化和/或緩沖) 和輸出(例如到顯示器110),以改進(jìn)媒體處理系統(tǒng)100的性能。可以參考圖 2來更詳細(xì)說明總體上的媒體處理系統(tǒng)100,具體而言是媒體處理子系統(tǒng) 108。圖2示出了媒體處理子系統(tǒng)108的一個實(shí)施例。圖2示出了媒體處理 子系統(tǒng)108的框圖,其適用于參考圖1所述的媒體處理節(jié)點(diǎn)106。然而實(shí)施 例不限于圖2中給定的實(shí)例。
如圖2所示,媒體處理子系統(tǒng)108可以包括多個元件。按照給定的一 組設(shè)計或性能約束所期望的, 一個或多個元件可以用一個或多個電路、部 件、寄存器、處理器、軟件子程序、模塊或其任何組合來實(shí)現(xiàn)。盡管作為 實(shí)例,圖2示出了采用特定拓?fù)浣Y(jié)構(gòu)的有限數(shù)量的元件,但可以理解,按 照給定實(shí)現(xiàn)所期望的,在媒體處理子系統(tǒng)108中可以使用采用任何適合拓 撲結(jié)構(gòu)的更多或更少的元件。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理子系統(tǒng)108可以包括處理器202。處理器 202可以用任何處理器或邏輯器件來實(shí)現(xiàn),例如復(fù)雜指令集計算機(jī)(CISC) 微處理器、精簡指令集計算(RISC)微處理器、超長指令字(VLIW)微處理器、 實(shí)現(xiàn)多個指令集的組合的處理器、或其它處理器器件。例如,在一個實(shí)施 例中,處理器202可以實(shí)現(xiàn)為通用處理器,例如由加利福尼亞Santa Clara的 InteKO)公司所生產(chǎn)的處理器。處理器202還可以實(shí)現(xiàn)為專用處理器,例如控 制器、微控制器、嵌入式處理器、數(shù)字信號處理器(DSP)、網(wǎng)絡(luò)處理器、媒 體處理器、輸入/輸出(I/0)處理器、介質(zhì)訪問控制(MAC)處理器、無線基帶 處理器、現(xiàn)場可編程門陣列(FPGA)、可編程邏輯器件(PLD)等。實(shí)施例不限 于該范圍。
在一個實(shí)施例中,媒體處理子系統(tǒng)108可以包括耦合到處理器202上 的存儲器204。按照給定實(shí)現(xiàn)所期望的,存儲器204可以經(jīng)由通信總線214 或通過在處理器202與存儲器204之間的專用通信總線耦合到處理器202。 存儲器204可以采用能夠存儲數(shù)據(jù)的任何機(jī)器可讀或計算機(jī)可讀介質(zhì)來實(shí) 現(xiàn),其包括易失性和非易失性存儲器。例如存儲器204可以包括只讀存 儲器(ROM)、隨機(jī)存取存儲器(RAM)、動態(tài)RAM(DRAM)、雙倍數(shù)據(jù)速率 DRAM(DDRAM)、同步DRAM(SDRAM)、靜態(tài)RAM(SRAM)、可編程ROM (PROM)、可擦除可編程ROM(EPROM)、電可擦除可編程ROM(EEPROM)、 快擦式存儲器(flash memory)、聚合物存儲器,例如鐵電聚合物存儲器、雙 向存儲器(ovonic memory)、相變或鐵電存儲器、硅-氧化物-氮化物-氧化物-硅(SONOS)存儲器、磁或光卡,或適于存儲信息的任何其它類型的介質(zhì)。值得注意的是,存儲器204的某些部分或者全部可以與處理器202包含在 同一集成電路中,或者可替換地,存儲器204的某些部分或者全部可以置 于在處理器202的集成電路外部的集成電路或其它介質(zhì)上,例如硬盤驅(qū)動 器。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理子系統(tǒng)108可以包括收發(fā)器206。收發(fā)器 206可以是被布置為按照所期望的無線協(xié)議運(yùn)行的任何無線發(fā)射器和/或接 收器。適合的無線協(xié)議的實(shí)例可以包括各種無線局域網(wǎng)(WLAN)協(xié)議,包括 IEEE 802.xx系列協(xié)議,例如IEEE 802.11a/b/g/n、正EE 802.16、 IEEE 802.20 等等。無線協(xié)議的其它實(shí)例可以包括各種無線廣域網(wǎng)(WWAN)協(xié)議,例如, 采用通用分組無線業(yè)務(wù)(GPRS)的全球移動通信系統(tǒng)(GSM)蜂窩無線電話系 統(tǒng)協(xié)議、采用lxRTT的碼分多址(CDMA)蜂窩無線電話通信系統(tǒng)、全球增 強(qiáng)型數(shù)據(jù)提升率(EDGE)系統(tǒng)、等等。無線協(xié)議的其他實(shí)例可以包括無線個 域網(wǎng)(PAN)協(xié)議,例如紅外協(xié)議,其是來自藍(lán)牙技術(shù)聯(lián)盟(SIG)的協(xié)議系列的 一種協(xié)議,該協(xié)議系列包括藍(lán)牙規(guī)范版本vl.O、 vl.l、 v1.2、 v2.0、具有增 強(qiáng)型數(shù)據(jù)速率(EDR)的v2.0,以及一個或多個藍(lán)牙協(xié)議子集(Bluetooth profile)(在此共同稱為"藍(lán)牙規(guī)范")、等等。其它適合的協(xié)議可以包括超 寬帶(UWB)、數(shù)字辦公室(DO)、數(shù)字家庭、可信平臺模塊(TPM)、 ZigBee、 及其它協(xié)議。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理子系統(tǒng)108可以包括一個或多個模塊。按
照給定的一組設(shè)計或性能約束所期望的,所述模塊可以包括或?qū)崿F(xiàn)為一個 或多個系統(tǒng)、子系統(tǒng)、處理器、器件、機(jī)器、工具、部件、電路、寄存器、 應(yīng)用程序、程序、子程序、或者其任何組合。實(shí)施例不限于該范圍。
例如,在一個實(shí)施例中,媒體處理子系統(tǒng)108可以包括HWMC模塊 208。 HWMC模塊208可以根據(jù)預(yù)定數(shù)學(xué)函數(shù)或算法,用于為GPU協(xié)調(diào)指 令的產(chǎn)生、通路、序列化和/或緩沖,來處理如上介紹的MPEG-2壓縮的AV 信號。例如,預(yù)定數(shù)學(xué)函數(shù)或算法可以存儲在任何適合的存儲設(shè)備中,例 如存儲器204、大容量存儲裝置210、以硬件實(shí)現(xiàn)的查詢表(LUT)216、等等。 可以理解,HWMC模塊208可以實(shí)現(xiàn)為由處理器202執(zhí)行的軟件、專用硬 件,或二者的組合。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理子系統(tǒng)108可以包括大容量存儲設(shè)備210。大容量存儲設(shè)備210的實(shí)例可以包括硬盤、軟盤、光盤只讀存儲器 (CD-ROM)、可記錄光盤(CD-R)、可重寫光盤(CD-RW)、光盤、磁介質(zhì)、磁 光介質(zhì)、可移動存儲卡或盤片、各類DVD設(shè)備、磁帶設(shè)備、盒式磁帶設(shè)備、 等等。實(shí)施例不限于該范圍。
在各種實(shí)施例中,媒體處理子系統(tǒng)108可以包括一個或多個I/O適配器 212。1/0適配器212的實(shí)例可以包括:通用串行總線(USB)端口/適配器、IEEE 1394火線端口/適配器、等等。實(shí)施例不限于該范圍。
在通常操作中,媒體處理子系統(tǒng)108可以從一個或多個媒體源節(jié)點(diǎn) 102-l-n接收媒體信息。例如,媒體源節(jié)點(diǎn)102-1可以包括連接到處理器202 上的DVD設(shè)備??商鎿Q地,媒體源102-2可以包括存儲器204,其存儲數(shù) 字AV文件,例如以運(yùn)動圖像專家組(MPEG)編碼的AV文件。HWMC模塊 208可以用于從大容量存儲設(shè)備216和/或存儲器204接收媒體信息,處理 媒體信息(例如通過處理器202),并在存儲器204、處理器202的高速緩存 或其組合上存儲或緩沖媒體信息。參考由圖3和4及圖5的邏輯流程所示 的HWMC驅(qū)動器,可以理解HWMC模塊208的操作。
圖3示出了HWMC驅(qū)動器300。通常,對于MPEG-2 AV信號而言, 當(dāng)前畫面可以基于幀內(nèi)離散余弦變換(DCT)編碼系數(shù)和運(yùn)動補(bǔ)償幀間預(yù)測, 從先前畫面轉(zhuǎn)換得到。運(yùn)動補(bǔ)償幀間預(yù)測是逐個像素的渲染處理,其耗費(fèi) 時間和處理器資源。例如,在MPEG-2視頻編解碼處理中,運(yùn)動補(bǔ)償幀間 預(yù)測可能占用約30%的總處理工作負(fù)擔(dān)。
HWMC驅(qū)動器300可以包括或有權(quán)訪問GPU 350。 GPU例如是由加利 福尼亞Santa Clara的Intel⑧公司生產(chǎn)的圖形芯片組的一部分,其可以具有 基于硬件的運(yùn)動補(bǔ)償幀間預(yù)測的能力。HWMC是一種可以使GPU 350減小 處理器202的運(yùn)動補(bǔ)償幀間預(yù)測工作負(fù)擔(dān)。這樣,HWMC技術(shù)可以通過與 處理器202并行工作,來提高解碼性能,例如或者是通過增加對于給定處 理器202使用量的每秒幀數(shù),或者是通過減少對于給定每秒幀數(shù)的處理器 202使用量。
對HWMC驅(qū)動器300的輸入包括DCT系數(shù)數(shù)據(jù)陣列和宏塊參數(shù)數(shù)據(jù) 陣列。宏塊參數(shù)由宏塊類型、運(yùn)動類型、運(yùn)動矢量及其它宏塊參數(shù)組合而 成,其全部都對渲染目標(biāo)畫面像素的GPU350有影響。HWMC驅(qū)動器300為AV編解碼器305提供存儲緩沖器,以逐個地寫入宏塊參數(shù)。HWMC驅(qū) 動器300還為視頻編解碼器305提供DCT原始數(shù)據(jù)緩沖器,以寫入DCT 數(shù)據(jù)。例如,DCT數(shù)據(jù)可以包括一個畫面的全部或者一部分,這取決于用 戶想要解碼一部分還是整體。在AV編解碼器305完成將宏塊數(shù)據(jù)和DCT 數(shù)據(jù)存儲在緩沖器中之后,可以向GPU 350發(fā)出請求來開始HWMC處理。 這樣,例如,處理器202被釋放來解碼下一畫面或處理其它工作。
對于HWMC驅(qū)動器300而言,重要的是,注意在DCT數(shù)據(jù)和宏塊數(shù) 據(jù)之間的區(qū)別。例如,DCT原始數(shù)據(jù)是標(biāo)準(zhǔn),并可以被GPU350直接使用, 而無需考慮HWMC硬件實(shí)現(xiàn)。與此相反,宏塊數(shù)據(jù)包含用于控制運(yùn)動補(bǔ)償 的全部參數(shù),對于它來說,不同的HWMC硬件實(shí)現(xiàn)可能會具有不同的指令。 因此,宏塊數(shù)據(jù)可以被HWMC驅(qū)動器300分析,以產(chǎn)生相對的依賴于硬件 的運(yùn)動補(bǔ)償指令或隨后可以由GPU 350所處理的其它低級別表示。
更具體的,對于HWMC驅(qū)動器300而言,AV編解碼器305將宏塊和 DCT數(shù)據(jù)存儲到由HWMC驅(qū)動器300提供的數(shù)據(jù)緩沖器中。核空間中的 宏塊數(shù)據(jù)緩沖器325可以映射到用戶空間中的宏塊數(shù)據(jù)緩沖器320,并且隨 著其在用戶空間中的運(yùn)行,AV編解碼器305可以由此將宏塊數(shù)據(jù)存儲到用 戶空間中的宏塊數(shù)據(jù)緩沖器320中,以避免存儲器復(fù)制。如所指出的,與 DCT數(shù)據(jù)不同,宏塊數(shù)據(jù)由HWMC驅(qū)動器300在獨(dú)立于平臺的結(jié)構(gòu)中定 義。因此,HWMC驅(qū)動器300通過從宏塊數(shù)據(jù)緩沖器325讀取每一個宏塊 數(shù)據(jù),可以分析宏塊參數(shù),來為GPU 350產(chǎn)生硬件宏塊指令335(例如,在 指令生成器330中)。例如,硬件宏塊指令335可以包括運(yùn)動矢量和其它運(yùn) 動補(bǔ)償參數(shù)。指令生成器330還產(chǎn)生其它HWMC指令340,其可以包括例 如與硬件結(jié)構(gòu)、HWMC狀態(tài)管理、幀設(shè)置和緩沖器管理相關(guān)的指令。隨后, 將硬件宏塊指令335及其它HWMC指令340寫入到GPU直接存儲器存取 (DMA)指令執(zhí)行緩沖器,用于GPU350讀取和執(zhí)行。
例如,對于1080i HD畫面(隔行掃描的1920X1080視覺分辨率格式) 而言,宏塊數(shù)據(jù)的大小約為200千字節(jié)。如所指出的,視頻編解碼器305 將宏塊數(shù)據(jù)存儲到宏塊數(shù)據(jù)緩沖器325中,其映射到用戶空間中的宏塊數(shù) 據(jù)緩沖器320中。隨后,HWMC驅(qū)動器300分析來自宏塊數(shù)據(jù)緩沖器325 的宏塊數(shù)據(jù),指令生成器330在GPU DMA指令執(zhí)行緩沖器345中產(chǎn)生用于由GPU 350執(zhí)行的指令(例如,硬件宏塊指令335和其它HWDMC指令 340)生成。然而,借助于指令生成器330的硬件宏塊指令335產(chǎn)生,會占用 高達(dá)約95%的用于HWMC驅(qū)動器300的處理器202使用量。這樣,硬件宏 塊指令335的產(chǎn)生會是HWMC驅(qū)動器300的性能阻礙特征或"瓶頸"。
此外,對于HWMC驅(qū)動器300而言,不能對用戶直接共享GPUDMA 指令執(zhí)行緩沖器345,因?yàn)镠WMC驅(qū)動器300的處理可能會被其它圖形操 作打斷。在此情況下,如果DMA指令執(zhí)行緩沖器345被鎖定,則其它圖形 操作會被阻礙,這就有可能損害媒體處理系統(tǒng)IOO或其子系統(tǒng)。
圖4示出了一個實(shí)施例的HWMC驅(qū)動器400。如相對于圖3所指出的, 借助于指令生成器330的硬件宏塊指令335產(chǎn)生,會是HWMC驅(qū)動器300 的性能阻礙特征或"瓶頸"。HWMC驅(qū)動器400包括用于緩解HWMC驅(qū)動 器300的宏塊數(shù)據(jù)分析和宏塊指令335產(chǎn)生的瓶頸的各種特征。
例如,HWMC驅(qū)動器400包括獨(dú)立的GPUDMA指令緩沖器,用于獨(dú) 立于GPU DMA指令執(zhí)行緩沖器345的宏塊指令420。因此,用于宏塊指 令420的GPU DMA指令緩沖器存儲硬件宏塊指令335,而GPU DMA指 令執(zhí)行緩沖器345存儲其它HWMC指令340。此外,用于宏塊指令420的 GPU DMA指令緩沖器可以映射到用戶空間中,作為宏塊數(shù)據(jù)緩沖器320。
在一個實(shí)施例中,GPU350能夠進(jìn)行硬件指令批量緩沖器執(zhí)行。因此, GPU 350可以執(zhí)行存儲在GPU DMA指令執(zhí)行緩沖器345中的其它HWMC 指令340,跳轉(zhuǎn)到存儲在用于宏塊指令420的GPU DMA指令緩沖器中的硬 件宏塊指令335,并批量執(zhí)行它們,隨后當(dāng)完成時返回到其它HWMC指令 340。
此外,HWMC驅(qū)動器400包括從AV編解碼器305到HWMC用戶庫 315的添加宏塊410的函數(shù)調(diào)用,用于HWMC用戶庫315接受AV編解碼 器305的關(guān)于宏塊數(shù)據(jù)/參數(shù)的輸入。在一個實(shí)施例中,HWMC用戶庫315 可以在不使用指令生成器330的情況下,直接產(chǎn)生硬件宏塊指令335。隨后, 可以將硬件宏塊指令335可以在用戶空間中的宏塊數(shù)據(jù)緩沖器320與用于 宏塊指令420的GPUDMA指令執(zhí)行緩沖器之間進(jìn)行映射。這樣,HWMC 驅(qū)動器400可以緩解HWMC驅(qū)動器300的瓶頸(例如,指令生成器330產(chǎn) 生硬件宏塊指令335及其它HWMC指令340)。換句話說,當(dāng)HWMC驅(qū)動器400在HWMC用戶庫315中產(chǎn)生硬件宏塊指令335并將其存儲到用于宏 塊指令420的GPU DMA指令執(zhí)行緩沖器中時,HWMC驅(qū)動器400可以僅 配置GPU 350按照批量緩沖器指令執(zhí)行來執(zhí)行硬件宏塊指令335。隨后, 例如像函數(shù)調(diào)用, 一旦GPU 350按照批量緩沖器指令執(zhí)行而執(zhí)行了硬件宏 塊指令335,則其可以返回到存儲在GPU DMA指令執(zhí)行緩沖器345中的其 他HWMC指令340。
另外,與用戶對宏塊數(shù)據(jù)緩沖器325進(jìn)行寫入相比,借助于添加宏塊 410的函數(shù)調(diào)用將宏塊指令335映射到用戶空間(例如,到宏塊數(shù)據(jù)緩沖器 320),還可以提供更為便利和對用戶友好的接口。此外,由于實(shí)施例的 HWMC用戶庫315可以提供應(yīng)用程序編程接口(API),因此AV編解碼器305 可以更容易地從軟件運(yùn)動補(bǔ)償變?yōu)橛布\(yùn)動補(bǔ)償。再進(jìn)一步,與其它HWMC 指令340相比,硬件宏塊指令335是更面向數(shù)據(jù)的。結(jié)果,與HWMC驅(qū)動 器300的方案相比,產(chǎn)生硬件宏塊指令335的HWMC用戶庫315可以更易 于調(diào)試和維護(hù)。最后,如果希望的話,產(chǎn)生硬件宏塊指令335的HWMC用 戶庫315可以使硬件宏塊指令335的格式對用戶公開,而無需公開HWMC 驅(qū)動器400的更多細(xì)節(jié)。
在一個實(shí)施例中,與HWMC驅(qū)動器300相比,HWMC驅(qū)動器400展 示了性能提高。例如,對于MPEG-2 1080i AV流而言,如在Intel GMCH 82854 SunsetValley開發(fā)部門所測試的,HWMC驅(qū)動器400展示了超過50%的性 能提高。更具體的,與HWMC驅(qū)動器300相比,在不增加例如處理器202 上的負(fù)擔(dān)的情況下,與每秒15幀相比,實(shí)施例的HWMC驅(qū)動器400具有 每秒24幀的能力。
圖5示出了一個實(shí)施例的邏輯流程。例如, 一旦AV編解碼器305接收 到宏塊和DCT數(shù)據(jù),則在510中,利用一個函數(shù)調(diào)用將該宏塊數(shù)據(jù)添加到 HWMC用戶庫315中。在520中,HWMC用戶庫315產(chǎn)生硬件宏塊指令 335,在530中,將該硬件宏塊指令335存儲到宏塊數(shù)據(jù)緩沖器320中。此 后,在540中,將存儲在宏塊數(shù)據(jù)緩沖器320中的硬件宏塊指令335映射 到用于宏塊指令420的GPU DMA指令執(zhí)行緩沖器,GPU可以在550中從 該緩沖器執(zhí)行硬件宏塊指令335。
在此已闡明了許多具體細(xì)節(jié),以提供對各個實(shí)施例的全面理解。然而,本領(lǐng)域技術(shù)人員會理解,在沒有這些具體細(xì)節(jié)的情況下也能夠?qū)嵺`各個實(shí) 施例。在其它例子中,沒有詳細(xì)描述公知的操作、部件和電路,以便不會 混淆對實(shí)施例的理解??梢岳斫獾氖?,在此公開的具體結(jié)構(gòu)和功能細(xì)節(jié)可 以是代表性的,并非必然限制實(shí)施例的范圍。
還值得注意的是,對"一個實(shí)施例"或"實(shí)施例"的提及意思是指聯(lián) 系該實(shí)施例所描述的特定特征、結(jié)構(gòu)或特性包括在至少一個實(shí)施例中。短 語"在一個實(shí)施例中"在說明書中不同位置的出現(xiàn)并非必然全部指的是同 一實(shí)施例。
一些實(shí)施例可以采用可根據(jù)任何數(shù)量的因素而改變的結(jié)構(gòu)來實(shí)現(xiàn),所 述因素例如期望的計算速率、功率等級、耐熱性、處理周期預(yù)算、輸入 數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲器資源、數(shù)據(jù)總線速度、以及其它性能約 束。例如,實(shí)施例可以用由通用或?qū)S锰幚砥魉鶊?zhí)行的軟件來實(shí)現(xiàn)。在另 一個實(shí)例中,實(shí)施例可以實(shí)現(xiàn)為專用硬件。在再另一個實(shí)例中,實(shí)施例可 以以編程的通用計算機(jī)部件和定制的硬件部件的任何組合來實(shí)現(xiàn)。實(shí)施例 不限于該范圍。
可以用一個或多個硬件元件來實(shí)現(xiàn)各種實(shí)施例。通常,硬件元件可以 指的是任何被布置為執(zhí)行特定操作的硬件結(jié)構(gòu)。例如,在一個實(shí)施例中, 硬件元件可以包括在襯底上制造的任何模擬或數(shù)字電氣或電子元件??梢?用基于硅的集成電路(IC)技術(shù)來執(zhí)行該制造,例如諸如互補(bǔ)金屬氧化物半導(dǎo)
體(CMOS)、雙極和雙極CMOS(BiCMOS)之類的技術(shù)。硬件元件的實(shí)例可 以包括處理器、微處理器、電路、電路元件(例如晶體管、電阻器、電容 器、電感器等)、集成電路、專用集成電斷ASIC)、可編程邏輯器件(PLD)、 數(shù)字信號處理器(DSP)、現(xiàn)場可編程門陣列(FPGA)、邏輯門、寄存器、半導(dǎo) 體器件、芯片、微芯片、芯片組等。實(shí)施例不限于該范圍。
可以用一個或多個軟件元件來實(shí)現(xiàn)各種實(shí)施例。通常,軟件元件可以 指的是被布置為執(zhí)行特定操作的任何軟件結(jié)構(gòu)。例如,在一個實(shí)施例中, 軟件元件可以包括適于由硬件元件(例如處理器)執(zhí)行的程序指令和/或數(shù) 據(jù)。程序指令可以包括對于命令的組織列表,其中,命令包括以預(yù)定語法 排列的字、數(shù)值或符號,當(dāng)其被執(zhí)行時,可以使處理器執(zhí)行一組相應(yīng)的操
作。軟件可以用編程語言來編寫或編碼。編程語言的實(shí)例可以包括C、C++、BASIC、 Perl、 Matlab、 Visual BASIC、 JAVA、 ActiveX、匯編語言、機(jī)器碼 等??梢杂萌魏晤愋偷挠嬎銠C(jī)可讀介質(zhì)或機(jī)器可讀介質(zhì)來存儲軟件。而且, 軟件可以作為源代碼或目標(biāo)代碼而存儲在介質(zhì)上。軟件還可以作為壓縮的
和/或加密的數(shù)據(jù)而存儲在介質(zhì)上。軟件的實(shí)例可以包括任何軟件部件、 程序、應(yīng)用、計算機(jī)程序、應(yīng)用程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟 件、中間件、固件、軟件模塊、例程、子程序、函數(shù)、方法、過程、軟件
接口、應(yīng)用程序編程接口(API)、指令集、計算碼、計算機(jī)代碼、代碼段、
計算機(jī)代碼段、字、數(shù)值、符號、或其任何組合。實(shí)施例不限于該范圍。
可以用"耦合"和"連接"連同它們的派生詞來描述一些實(shí)施例。應(yīng) 理解的是,這些術(shù)語不是意圖作為彼此的同義詞的。例如, 一些實(shí)施例可 以用術(shù)語"連接"來描述,以指明兩個或更多的元件彼此直接物理或電氣 接觸。在另一個實(shí)例中, 一些實(shí)施例可以用術(shù)語"耦合"來描述,以指明 兩個或更多的元件是直接物理或電氣接觸的。然而,術(shù)語"耦合"還可以 意味著兩個或更多的元件彼此沒有直接接觸,但仍共同操作或彼此相互作 用。實(shí)施例不限于該范圍。
例如, 一些實(shí)施例可以用機(jī)器可讀介質(zhì)或產(chǎn)品來實(shí)現(xiàn),所述機(jī)器可讀 介質(zhì)或產(chǎn)品可以存儲一個指令或一組指令,所述一個指令或一組指令如果 由機(jī)器執(zhí)行,可以使得機(jī)器執(zhí)行根據(jù)這些實(shí)施例的方法和/或操作。這種機(jī) 器可以包括例如任何適合的處理平臺、計算平臺、計算設(shè)備、處理設(shè)備、 計算系統(tǒng)、處理系統(tǒng)、計算機(jī)、處理器等等,并可以用硬件和/或軟件的任 意合適組合來實(shí)現(xiàn)。所述機(jī)器可讀介質(zhì)或產(chǎn)品可以包括例如任何適宜類型 的存儲器單元、存儲器設(shè)備、存儲器產(chǎn)品、存儲器介質(zhì)、存儲設(shè)備、存儲 產(chǎn)品、存儲介質(zhì)和/或存儲單元,例如存儲器、可移動或不可移動介質(zhì)、可 擦除或不可擦除介質(zhì)、可寫入或可再寫入介質(zhì)、數(shù)字或模擬介質(zhì)、硬盤、
軟盤、光盤只讀存儲器(CD-ROM)、可記錄光盤(CD-R)、可重寫光盤 (CD-RW)、光盤,磁介質(zhì),磁光介質(zhì),可移動存儲卡或盤,各種數(shù)字多用 途光盤(DVD)、磁帶、盒式磁帶、等等。所述指令可以包括任何適宜類型的 代碼,例如源代碼、己編譯的代碼、已解釋的代碼、可執(zhí)行代碼、靜態(tài)代 碼、動態(tài)代碼、等等。所述指令可以用任何適合的高級、低級、面向?qū)ο?的、可視化(visual)、編譯的和/或解釋的編程語言來實(shí)現(xiàn),例如C、 C++、Java、 BASIC、 Perl、 Matlab、 Pascal、 Visual BASIC、匯編語言、機(jī)器代碼 等。實(shí)施例不限于該范圍。
除非特別表明不同意思,可以理解的是,諸如"處理"、"計算"、"運(yùn) 算","判斷"等之類的術(shù)語指的是計算機(jī)或計算系統(tǒng),或類似的電子計算 設(shè)備的動作和/或處理,所述計算機(jī)或計算系統(tǒng),或類似的電子計算設(shè)備將 被表示為在計算系統(tǒng)的寄存器和/或存儲器內(nèi)的物理量(例如電子的)的數(shù) 據(jù),處理和/或變換為被類似地表示為在計算系統(tǒng)的存儲器、寄存器或其它 這種信息存儲、傳輸或顯示設(shè)備內(nèi)的物理量的其它數(shù)據(jù)。實(shí)施例不限于該 范圍。
盡管己經(jīng)如在此所述的說明了實(shí)施例的特定特征,但本領(lǐng)域技術(shù)人員 會想到許多變型、替換、變化及等價物。因此應(yīng)理解所附權(quán)利要求意圖覆 蓋在實(shí)施例的真實(shí)精神內(nèi)的全部這種變型和變化。
權(quán)利要求
1、一種設(shè)備,包括媒體處理節(jié)點(diǎn),用于為圖形處理單元產(chǎn)生用于宏塊指令的直接存儲器存取指令執(zhí)行緩沖器和用于其它硬件運(yùn)動補(bǔ)償指令的直接存儲器存取指令執(zhí)行緩沖器。
2、 如權(quán)利要求1所述的設(shè)備,所述媒體處理節(jié)點(diǎn)包括硬件運(yùn)動補(bǔ)償模 塊,所述硬件運(yùn)動補(bǔ)償模塊將宏塊數(shù)據(jù)添加到硬件運(yùn)動補(bǔ)償用戶庫中,并 且借助于所述硬件運(yùn)動補(bǔ)償用戶庫為所述圖形處理單元產(chǎn)生硬件宏塊指 令。
3、 如權(quán)利要求2所述的設(shè)備,所述硬件運(yùn)動補(bǔ)償模塊還將用于所述圖 形處理單元的所述硬件宏塊指令存儲到宏塊數(shù)據(jù)緩沖器中,并將所述宏塊 數(shù)據(jù)緩沖器中用于所述圖形處理單元的所述硬件宏塊指令映射到所述的用 于所述圖形處理單元的宏塊指令的直接存儲器存取指令執(zhí)行緩沖器。
4、 如權(quán)利要求3所述的設(shè)備,所述硬件運(yùn)動補(bǔ)償模塊還借助于所述圖 形處理單元,執(zhí)行從所述的用于所述圖形處理單元的宏塊指令的直接存儲 器存取指令執(zhí)行緩沖器而來的所述硬件宏塊指令。
5、 如權(quán)利要求4所述的設(shè)備,所述硬件運(yùn)動補(bǔ)償模塊還借助于所述圖 形處理單元,執(zhí)行從所述的用于所述圖形處理單元的其它硬件運(yùn)動補(bǔ)償指 令的直接存儲器存取指令執(zhí)行緩沖器而來的另 一硬件運(yùn)動補(bǔ)償指令。
6、 一種系統(tǒng),包括 通信介質(zhì);以及媒體處理節(jié)點(diǎn),用于為圖形處理單元產(chǎn)生用于宏塊指令的直接存儲器 存取指令執(zhí)行緩沖器和用于其它硬件運(yùn)動補(bǔ)償指令的直接存儲器存取指令 執(zhí)行緩沖器。
7、 如權(quán)利要求6所述的系統(tǒng),所述媒體處理節(jié)點(diǎn)包括硬件運(yùn)動補(bǔ)償模 塊,所述硬件運(yùn)動補(bǔ)償模塊將宏塊數(shù)據(jù)添加到硬件運(yùn)動補(bǔ)償用戶庫中,并 借助于所述硬件運(yùn)動補(bǔ)償用戶庫為所述圖形處理單元產(chǎn)生硬件宏塊指令。
8、 如權(quán)利要求7所述的系統(tǒng),所述硬件運(yùn)動補(bǔ)償模塊還將用于所述圖 形處理單元的所述硬件宏塊指令存儲到宏塊數(shù)據(jù)緩沖器中,并將所述宏塊 數(shù)據(jù)緩沖器中用于所述圖形處理單元的所述硬件宏塊指令映射到所述的用 于所述圖形處理單元的宏塊指令的直接存儲器存取指令執(zhí)行緩沖器。
9、 如權(quán)利要求8所述的系統(tǒng),所述硬件運(yùn)動補(bǔ)償模塊還借助于所述圖 形處理單元執(zhí)行從所述的用于所述圖形處理單元的宏塊指令的直接存儲器 存取指令執(zhí)行緩沖器而來的所述硬件宏塊指令。
10、 如權(quán)利要求9所述的系統(tǒng),所述硬件運(yùn)動補(bǔ)償模塊還借助于所述 圖形處理單元執(zhí)行從所述的用于所述圖形處理單元的其它硬件運(yùn)動補(bǔ)償指 令的直接存儲器存取指令執(zhí)行緩沖器而來的另一硬件運(yùn)動補(bǔ)償指令。
11、 一種方法,包括將宏塊數(shù)據(jù)添加到硬件運(yùn)動補(bǔ)償用戶庫;并且借助于所述硬件運(yùn)動補(bǔ) 償用戶庫為圖形處理單元產(chǎn)生硬件宏塊指令。
12、 如權(quán)利要求11所述的方法,還包括將用于所述圖形處理單元的所 述硬件宏塊指令存儲到宏塊數(shù)據(jù)緩沖器中。
13、 如權(quán)利要求12所述的方法,還包括將所述宏塊數(shù)據(jù)緩沖器中用于 所述圖形處理單元的所述硬件宏塊指令映射到圖形處理單元直接存儲器存 取指令執(zhí)行緩沖器。
14、 如權(quán)利要求13所述的方法,還包括借助于所述圖形處理單元,執(zhí) 行來自所述圖形處理單元直接存儲器存取指令執(zhí)行緩沖器的所述硬件宏塊指令。
15、 如權(quán)利要求14所述的方法,還包括借助于所述圖形處理單元執(zhí)行 來自另一圖形處理單元直接存儲器存取指令執(zhí)行緩沖器的另一硬件運(yùn)動補(bǔ) 償指令。
16、 一種產(chǎn)品,包括機(jī)器可讀存儲介質(zhì),其包含指令,如果執(zhí)行所述 指令,使系統(tǒng)能夠?qū)⒑陦K數(shù)據(jù)添加到硬件運(yùn)動補(bǔ)償用戶庫,并借助于所述 硬件運(yùn)動補(bǔ)償用戶庫為圖形處理單元產(chǎn)生硬件宏塊指令。
17、 如權(quán)利要求16所述的產(chǎn)品,還包括指令,如果執(zhí)行所述指令,則 使所述系統(tǒng)能夠?qū)⒂糜谒鰣D形處理單元的所述硬件宏塊指令存儲到宏塊 數(shù)據(jù)緩沖器中。
18、 如權(quán)利要求17所述的產(chǎn)品,還包括指令,如果執(zhí)行所述指令,則 使所述系統(tǒng)能夠?qū)⑺龊陦K數(shù)據(jù)緩沖器中用于所述圖形處理單元的所述硬 件宏塊指令映射到圖形處理單元直接存儲器存取指令執(zhí)行緩沖器。
19、 如權(quán)利要求18所述的產(chǎn)品,還包括指令,如果執(zhí)行所述指令,則 使所述系統(tǒng)能夠借助于所述圖形處理單元執(zhí)行來自所述圖形處理單元直接 存儲器存取指令執(zhí)行緩沖器的所述硬件宏塊指令。
20、 如權(quán)利要求19所述的產(chǎn)品,還包括指令,如果執(zhí)行所述指令,則 使所述系統(tǒng)能夠借助于所述圖形處理單元執(zhí)行來自另一 圖形處理單元直接 存儲器存取指令執(zhí)行緩沖器的另一硬件運(yùn)動補(bǔ)償指令。
全文摘要
描述了一種用于高性能硬件運(yùn)動補(bǔ)償?shù)闹苯雍陦K模式技術(shù)。一個實(shí)施例包括硬件運(yùn)動補(bǔ)償圖形顯示設(shè)備驅(qū)動器。更具體的,一個實(shí)施例借助于直接產(chǎn)生宏塊指令并將其存儲在專用緩沖器中,緩解了顯示設(shè)備驅(qū)動器中的宏塊數(shù)據(jù)分析瓶頸。例如,一個實(shí)施例包括與用于全部其它硬件運(yùn)動補(bǔ)償指令的直接存儲器存取指令執(zhí)行緩沖器相分離的、獨(dú)立的用于宏塊指令的直接存儲器存取指令執(zhí)行緩沖器。描述了其它實(shí)施例并要求其權(quán)利。
文檔編號H04N7/36GK101310538SQ200680042704
公開日2008年11月19日 申請日期2006年12月14日 優(yōu)先權(quán)日2005年12月30日
發(fā)明者Q·宋, W·劉, X·唐 申請人:英特爾公司