專利名稱:用于處理視頻數(shù)據(jù)的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于處理^L頻凄t據(jù)的i殳備和方法。特別地,在解碼 視頻數(shù)據(jù)的情況下可以執(zhí)行該處理。
背景技術(shù):
對于現(xiàn)今的一見頻標(biāo)準(zhǔn),例如,MPEG2、 AVS、 VC-1以及H264, 解碼過程主要包括四個階l史熵或比特流解碼、反變換和反量化 (inverse transform and inverse quantization)、 運動補償、以及去塊效 應(yīng)濾波(de-blocking filter )(除MPEG2之外)。為了支持高分辨率 的HD視頻,需要高性能解碼處理。所有當(dāng)前的視頻標(biāo)準(zhǔn)使用宏塊 (MBs),特別是作為亮度處理單元的16x16 <象素的MBs。 MB可 以被分為16個4x4像素子塊。對應(yīng)的顏色或色度數(shù)據(jù)單元(Cb和 Cr)是可以^皮分為16個2x2^f象素塊的8x8^f象素^:。
期望具有可以處理所有當(dāng)前標(biāo)準(zhǔn)的解碼器芯片。傳統(tǒng)方法是向 一個芯片輸入單獨的解碼核心。然而,該芯片的門數(shù)將是高的盡 管用于不同標(biāo)準(zhǔn)的功能塊相似,但是處理細(xì)節(jié)不同。因此,通常平 行執(zhí)行用于不同標(biāo)準(zhǔn)的功能塊。此外,存在可編程結(jié)構(gòu),在其中通 過軟件程序執(zhí)行實際的一見頻處理,或者在其中通過分離處理核心控 制用于視頻處理的功能塊。通常在共享數(shù)據(jù)總線上,這需要大量的 功能塊和處理核心之間的控制信息。
5通常, 一個4妄一個地處理MBs,即,在前一個MB完成后,新 的MB處理開始,并且每個處理塊每次處J里一個MB。這在圖1中 描述。用于MB的熵解碼E包括解碼非殘余(non-residual) 10a以 及解石馬殘余i吾法元素(residual syntax element) 10b。然后,10c才丸 行反變換和反量化ITIQ。在下一步運動補償MC中,lOd計算預(yù)測 凄t據(jù)以及l(fā)Oe再生圖l象數(shù)據(jù)。單個塊同時工作,但是全部在相同的 MB上。當(dāng)每塊從前一塊已經(jīng)具有足夠的輸入數(shù)據(jù)時,其開始工作。 每個MB處理的持續(xù)時間是從解碼第一 MB級語法到為最后的子塊 獲得再生數(shù)據(jù)的循環(huán)次數(shù)c10。對于下一 MB執(zhí)行相同步驟lla-lle, 其中,在再生當(dāng)前MB的最后一步10e完成之后扭j亍解碼的第一步 lla。
發(fā)明內(nèi)容
為了減少多標(biāo)準(zhǔn)一見頻解碼芯片的門,期望可以支持幾種^L頻 標(biāo)準(zhǔn)的解石馬的同一體系結(jié)構(gòu)。此外,已知的^L頻處理系統(tǒng)遭遇了由 于連同共享數(shù)據(jù)總線、共享存儲器以及集中控制單元的集中組織處 理階^殳縮減了處理性能而產(chǎn)生的瓶頸。本發(fā)明才是供通用的、才莫塊化 的以及分散的處理流,其能夠進行才艮據(jù)多個編碼標(biāo)準(zhǔn)的一見頻lt據(jù)的 高性能處理。此外,單個功能塊可以用于多個編碼4各式和標(biāo)準(zhǔn)。
每個不同的一見頻標(biāo)準(zhǔn)具有它特定的特性。為了支持所有的一見頻 標(biāo)準(zhǔn),本發(fā)明提出的體系結(jié)構(gòu)使用硬件和固件(即,在正常操作期 間不#皮<奮改并且適于與特定石更件相互作用的軟件)的組合以滿足不 同應(yīng)用的要求。固件執(zhí)行不同的視頻標(biāo)準(zhǔn)算法,而硬件提供適合于 執(zhí)行的模塊化的平臺。那意味著可以增加一些固件編碼以支持特定 的 一見頻標(biāo)準(zhǔn),并且可以移除一些固4牛編石馬以不支持特定的纟見頻標(biāo) 準(zhǔn)。因此,可以使隨后的解碼器適應(yīng)新的標(biāo)準(zhǔn)。硬件和固件之間的 接口為指令集。
6根據(jù)本發(fā)明的一方面,硬件體系結(jié)構(gòu)包括常規(guī)RISC處理器和 嵌入RISC處理器結(jié)構(gòu)的可再編程一見頻處理功能塊的元件。那意p未 著,例如,— 見頻處理功能塊為塊間通信4吏用相同的信道作為常夫見 RISC處理塊,例如,運算邏輯單元(ALU)、取指令單元、排隊單 元等。原則上,視頻解碼功能塊是專用RISC處理器內(nèi)的子單元。 RISC是處理器設(shè)計原理,其使用花費大約與對應(yīng)的復(fù)雜指令集計 算機(CISC)上的更復(fù)雜的指令集相同的時間執(zhí)行的精簡指令集。
在本發(fā)明的一個實施例中,該體系結(jié)構(gòu)的單個功能塊可以再編 程以遵照新的才各式和標(biāo)準(zhǔn)。
才艮據(jù)本發(fā)明的一方面,適于所有當(dāng)前的^L頻標(biāo)準(zhǔn)的多標(biāo)準(zhǔn)解碼 器4吏用用于亮度的4x4像素塊和用于色度(Cb和Cr)的2x2 <象素 塊作為最小處理單元。盡管在一些視頻標(biāo)準(zhǔn)中沒有使用這個尺寸的 塊,但是同樣可以支持用于那些包括MPEG2的視頻標(biāo)準(zhǔn)的最小處 理單元。
才艮據(jù)本發(fā)明的一方面,以分散方式控制功能塊。
根據(jù)本發(fā)明的一方面,用于解碼視頻數(shù)據(jù)的設(shè)備至少包括用 于提供解碼指令的裝置、用于接收解碼指令和接收結(jié)果數(shù)據(jù)以及用 于提供指令總線上的指令的排隊單元、運算邏輯單元(ALU)和通 過指令總線接收指令以及向排隊單元提供數(shù)據(jù)的數(shù)據(jù)緩存單元、運 動補償單元、用于4丸4亍反變換(即,反DCT)和反量化的ITIQ單 元、熵解碼單元、以及過濾單元,其中,運動補償單元、ITIQ單元、 熵解碼單元和過濾單元通過指令總線接收指令,并且向排隊單元提 供數(shù)據(jù)。
在所附權(quán)利要求、下列描述和附圖中公開了本發(fā)明的有利實施例。
參照在下面示出的附圖描述本發(fā)明的典型實施例,
圖1常規(guī)-現(xiàn)頻凄史據(jù)處理流;
圖2流水線(pipelined)— 見頻凄丈據(jù)處理流;
圖3指令執(zhí)-f亍的流水線;
圖4圖^f象內(nèi)宏塊的位置;
圖5嵌入RISC處理器中的包括視頻處理模塊的體系結(jié)構(gòu);以
及
圖6運動補償^t塊的詳圖。
具體實施例方式
本發(fā)明使用專用體系結(jié)構(gòu)和對應(yīng)的指令集。指令集可以分為兩 部分,即,類似于常規(guī)RISC (精簡指令集計算機)指令的宏指令, 以及專用于視頻解碼的專用指令。宏指令主要用于控制解碼過程, 以及專用指令主要用于在解碼過程期間處理計算。典型地,指令為 32位寬。
在SDRAMs中存儲指令和將被處理的視頻數(shù)據(jù)。根據(jù)本發(fā)明的 體系結(jié)構(gòu)使用用于指令處理的流水線。如圖3所示,任意指令執(zhí)行 可以^皮分為下列5個階段
取指令(fetch):從SDRAM取指令;
解碼將指令格式翻譯為內(nèi)部格式;發(fā)布指令(issue):向功能模塊發(fā)布指令;
執(zhí)行執(zhí)行用于功能模塊的指令;
返回返回纟丸^f于結(jié)果。
例如,在一個階^殳cl中,以取第一指令il開始。然后在下一階4殳 c2中,將它翻譯為內(nèi)部格式,同時取下一指令i2。在這個階段中, 在流水線中存儲取得的第一指令il。在下一階段c3中,當(dāng)前兩個 指令il、 i2在流水線中時,新指令i3開始。
圖2示出根據(jù)本發(fā)明一方面的一般的流水線視頻數(shù)據(jù)處理流。 為了更快的存耳又,向^f象素緩沖區(qū)拷貝當(dāng)前處理的像素凄t據(jù)。在熵解 碼階,殳E中,通過首先解碼非殘余^t據(jù)20a然后解碼殘余凄t據(jù) 20b(其需要已解碼的非殘余數(shù)據(jù))來處理輸入數(shù)據(jù)。當(dāng)解碼數(shù)據(jù)被輸 出殘余數(shù)據(jù)解碼過禾呈20b時,它們相繼傳(通過排隊單元,這里未 示出)至下一步20c反變換和反量化ITIQ。在該實例中,熵解碼階 段E在它已經(jīng)處理它的數(shù)據(jù)20b之后以及在它開始處理新數(shù)據(jù)21a 之前等4寺一定時間,以防止由于i者如運動4M嘗MC的壽交l曼的單元而 產(chǎn)生緩沖區(qū)溢出。
至少專用視頻功能模塊可以保持平行處理兩個或更多的MBs。 如果4又支持平4亍的兩個MBs,那么相關(guān)才莫塊中用于存4諸MVs和殘 余數(shù)據(jù)的緩沖區(qū)存儲用于這兩個MBs的MVs和殘余數(shù)據(jù)。如果在 模塊內(nèi)可得到額外的緩沖區(qū)空間,那么可以支持三個或更多的MBs 的同時處理。
在下面,描述才艮據(jù)本發(fā)明的石更件體系結(jié)構(gòu)。對應(yīng)于圖3的流水 線階段,該體系結(jié)構(gòu)可以包括5個部分指令獲取部分、指令解碼部分、指令發(fā)布部分、指令執(zhí)行部分以及結(jié)果返回部分。在圖5中 示出該體系結(jié)構(gòu)。
指令獲取部分包括指令緩存接口模塊51、指令緩存模塊52以 及包括程序計數(shù)器PC的實際取指令模塊53。指令解碼部分包括解 碼模塊54,以及指令發(fā)布部分包括排隊模塊55。指令執(zhí)行部分包 括數(shù)據(jù)緩存^^莫塊57、數(shù)據(jù)緩存接口一莫塊58、 ALU一莫塊59、運動補 償模塊510、運動補償接口模塊511、反變換/反量化(ITIQ)模塊 512、熵解石馬才莫塊513、熵解石馬4妄口才莫塊514、去塊^丈應(yīng)過濾才莫塊515、 過濾接口模塊516和結(jié)果仲裁模塊56。在執(zhí)行下一處理步驟之前, 結(jié)果仲裁模塊56發(fā)送中間結(jié)果,即,來自執(zhí)行部分的其它塊的結(jié) 果,至排隊階段(queue stage) 55。
輸入數(shù)據(jù)來自SDRAM經(jīng)由"訪問SDRAM總線",以及最后 結(jié)果被返回至使用相同總線的相同的SDRAM。為了返回數(shù)據(jù),同 樣可以是獨立總線。結(jié)果返回部分包括訪問總線仲裁才莫塊517。
在下面,描述提及的功能模塊。
指令緩存模塊52主要負(fù)責(zé)在這個體系結(jié)構(gòu)中提供指令。由于 該模塊在內(nèi)部SRAM中存儲指令,所以通過該模塊比直接通過外部 SDRAM可以更快存取指令。通過取指令才莫塊53內(nèi)的程序計凄t器 PC確定下一指令。如果存耳又發(fā)生,即,如果在指令緩存52的SRAM 中緩存確定的指令,那么指令緩存模塊52發(fā)回指令數(shù)據(jù)。如果存 取未發(fā)生,這意味著在指令緩存的SRAM中不存在期望的指令,于 是向指令緩存接口模塊51發(fā)布用于從SDRAM獲得對應(yīng)指令的命 令。在從指令緩存接口模塊51獲得指令后,將指令數(shù)據(jù)提供給指 令緩存模塊52。
10取指令模塊53負(fù)責(zé)根據(jù)程序執(zhí)行的過程確定PC值。將PC值 發(fā)送至指令緩存模塊52。如果遇到跳轉(zhuǎn)指令或分支指令,那么取指 令模塊53中的PC值因此改變;否則,通過定義的增量,它將被自 動增力口。
解碼模塊54解碼指令,即,它將外部格式轉(zhuǎn)換為內(nèi)部指令格 式。外部格式取決于固件,而通過將接收指令的功能模塊使用內(nèi)部 格式。
在通過解碼模塊54被解碼為內(nèi)部格式后,指令被發(fā)送至排隊 才莫塊55,在其中,這些指令原則上以FIFO的方式(先進先出)存 儲在操作隊列(operation queue) 550中等待被發(fā)布至功能模塊。排 隊才莫塊55還包括通用寄存器551和專用寄存器552。當(dāng)對應(yīng)的功能 模塊對于處在隊列中第一位的指令空閑時,并且所有用于該指令的 相關(guān)的源寄存器的值已準(zhǔn)備好,于是隨著從通用寄存器551和專用 寄存器552讀取數(shù)據(jù),指令被放在發(fā)布指令總線IB上。然而,發(fā) 布指令總線IB上的一些指令可能不需要提供更多的數(shù)據(jù)。通用寄 存器551在例如32位寬的通用數(shù)據(jù)總線GDB上提供數(shù)據(jù),以及專 用數(shù)據(jù)寄存器在例如128位寬的專用數(shù)據(jù)總線SDB上纟是供數(shù)據(jù)。 同時,每個功能模塊監(jiān)控公共的發(fā)布指令總線IB,并且接收指向它 的指令。指令可以是常規(guī)RISC處理器指令,并且在常規(guī)RISC處 理器中時可以;陂尋址,例如,通過指令內(nèi)的i也址部分。在各個功能 模塊中執(zhí)行之后,結(jié)果經(jīng)由中間結(jié)果總線IRB被發(fā)回至排隊模塊 55,并且排隊模塊更新它的目的寄存器。
因此,排隊才莫塊55在某種程度上可以作為該體系結(jié)構(gòu)的控制 中心。盡管處理比在常規(guī)視頻解碼系統(tǒng)中更分散,但是排隊模塊控 制指令流。
ii有利地,控制解碼處理的RISC處理器元件,例如,排隊才莫塊, 直接包含在解碼處理中,使得對于向功能模塊的新數(shù)據(jù)和指令的分 派僅需要模塊間的少量通信。
數(shù)據(jù)緩存才莫塊57包括SRAM以能夠比直4妻通過外部SDRAM 更快地存取圖像數(shù)據(jù)。該模塊主要負(fù)責(zé)執(zhí)行數(shù)據(jù)加載和存儲操作。 當(dāng)它從發(fā)布指令總線IB獲取用于訪問數(shù)據(jù)緩存的指令時,它根據(jù) 指令的數(shù)據(jù)計算訪問地址。對于每個數(shù)據(jù)存取,它首先沖企查數(shù)據(jù)是 否存在于它的SRAM中。如果存儲操作的存取發(fā)生,那么更新數(shù)據(jù) 緩存模塊57的SRAM中的數(shù)據(jù)。如果加載操作的存取發(fā)生,那么 讀取^數(shù)據(jù)并且發(fā)送至中間結(jié)果總線IRB。
如果存取未發(fā)生,這意味著期望的數(shù)據(jù)不存在于數(shù)據(jù)緩存才莫塊 57的SRAM中,則向數(shù)據(jù)緩存接口模塊58發(fā)布用于獲得對應(yīng)數(shù)據(jù) 的命令,其向SDRAM發(fā)送請求信號以獲得必需的數(shù)據(jù)。在數(shù)據(jù)緩 存接口—莫塊58 ,人SDRAM獲得lt據(jù)后,更新lt據(jù)至^:據(jù)纟爰存 SRAM,并且發(fā)送至中間結(jié)果總線IRB。
熵解碼才莫塊513是解碼過程的起點,其,人編碼比特流獲得全部 用于再生圖像的元素。根據(jù)利用的視頻標(biāo)準(zhǔn),包括例如樣史分運動矢 量(mvd)、參考指H殘余凄t據(jù)等,它乂人比特流解碼i吾法元素。該 模塊根據(jù)mvb執(zhí)行含運動矢量計算的各種計算,根據(jù) pred—mode—flag 和 intra—luma_pred—mode i十算幀內(nèi)才莫式 (intra-mode ),并且計算用于解碼i吾法元素的鄰近4言息。
熵才莫塊可以才艮據(jù)地址,人外部SDRAM自動讀取將纟皮解碼的比特 流,程序員可以將該地址嵌入指令內(nèi)。熵才莫塊513連同熵接口才莫塊 514 —起工作以/人SDRAM獲得比特流。如果熵才莫塊因為當(dāng)前沒有 比特流數(shù)據(jù)處理而空閑,那么它可以向熵接口模塊514發(fā)送要求數(shù)
12據(jù)的請求。熵接口才莫塊向熵才莫塊513發(fā)回請求^t據(jù),或者如果它沒 有數(shù)據(jù)提供,那么它可以向SDRAM發(fā)送要求凝:據(jù)的請求。
運動補償(MC)才莫塊510包括兩部分或子才莫塊(在圖5中未 示出)用于幀內(nèi)預(yù)測的幀內(nèi)MC和用于幀間預(yù)測的幀間MC。對于 幀內(nèi)預(yù)測,熵模塊從以前壓縮的比特流解碼的預(yù)測模式和殘余數(shù)據(jù) 被發(fā)送至幀內(nèi)MC子模塊。幀內(nèi)MC子模塊被指令調(diào)用,計算當(dāng)前 4x4塊的預(yù)測,增加預(yù)測和殘余數(shù)據(jù),并且因此為塊得到運動補償 (再生)數(shù)據(jù)。
幀間MC子模塊執(zhí)行幀間運動補償。當(dāng)解碼時,這部分需要基 于子模塊(用于亮度的4x4塊,用于Cb和Cr色度的2x2塊)的運 動矢量和參考指數(shù)(refidx)查找到適當(dāng)?shù)恼麛?shù)樣本。于是,部分預(yù) 測樣本源自內(nèi)插。
MC接口模塊511為幀間MC子模塊中的幀間預(yù)測提供參考數(shù) 據(jù)。如果當(dāng)前請求的用于幀間MC子模塊的參考數(shù)據(jù)在MC接口模 塊511的緩沖區(qū)中不可得到,那么MC接口模塊511向SDRAM發(fā) 送請求以獲得那些數(shù)據(jù)。在請求的數(shù)據(jù)返回至MC接口模塊后,將 其存儲在緩沖區(qū)中并且發(fā)送至MC才莫塊510。
反變換和反量化(ITIQ )模塊512負(fù)責(zé)殘余數(shù)據(jù)的4x4像素子 塊上的逆掃描(reverse scanning )、反變才奐和反量4匕才喿作。它經(jīng)由中 間結(jié)果總線IRB返回它的結(jié)果至排隊模塊55。通過各個指令提供 由ITIQ模塊請求的數(shù)據(jù)。
過濾模塊515應(yīng)用于用于減少塊失真的每個解碼宏才莫塊(MB )。 過濾器使塊邊緣變平滑,從而改善解碼幀的外觀。過濾才莫塊515可 以處理MB (不是mbaff)或MB對(mbaff)的過濾處理。它通過 指令接收用于過濾的當(dāng)前MB的請求數(shù)據(jù),例如MVs、"非零"信
13息、幀或域標(biāo)志、〗象素數(shù)據(jù)等。對于mbaff才莫式的情況,它從過濾 接口模塊516讀取其它MB的那些數(shù)據(jù)。
過濾接口模塊516用于存儲和提供鄰近的MVs和鄰近4x4子 塊的像素凄t據(jù),并且用于向SDRAM存儲循環(huán)過濾和最終處理的凄欠 據(jù)。如果直接向SDRAM存儲鄰近的信息和和過濾的數(shù)據(jù),處理將 非常慢。因此,向過濾接口模塊516內(nèi)的緩沖區(qū)存儲這些數(shù)據(jù),然 后例如當(dāng)緩沖區(qū)滿時,利用突發(fā)寫入功能向SDRAM中存儲。因此, SDRAM的效率被顯著提高。原則上也可以使用從SDRAM到接口 模塊的突發(fā)寫入操作。
幾個功能4莫塊返回需要進一步處理并且發(fā)回排隊才莫塊的中間 結(jié)果。在該實例中,這些才莫塊是運算邏輯單元(ALU) 59、數(shù)據(jù)緩 存57、熵模塊513、 ITIQ 512、以及MC塊510。由于排隊模塊每 次只能接收一個結(jié)果,所以結(jié)果總線仲裁模塊56每次選擇一個結(jié) 果,并且經(jīng)由中間結(jié)果總線IRB傳送至排隊才莫塊55。結(jié)果總線仲 裁模塊可以具有內(nèi)部緩沖區(qū)以在等待中間結(jié)果總線IRB時存儲從 功能模塊接收的結(jié)果。
存在需要訪問外部SDRAM的幾個模塊,例如,指令緩存接口 51、數(shù)據(jù)緩存接口 58、MC接口 511、熵接口 514以及過濾接口 516。 不能同時滿足從所有這些模塊到SDRAM的請求。因此,訪問總線 仲裁模塊517每次根據(jù)用于不同接口模塊的預(yù)定優(yōu)先級選擇請求起 作用的一個總線。
在下面,描述根據(jù)前述階段的解碼過程。首先,取指令模塊53 根據(jù)取指令模塊中的程序計數(shù)器從指令緩存模塊52取指令。其次, 經(jīng)由指令解碼模塊54發(fā)送指令至指令排隊模塊55。第三,根據(jù)各 個需求操作,向相關(guān)功能模塊發(fā)布指令排隊模塊55中的指令。在 第四階段中,功能模塊根據(jù)指令執(zhí)行它的處理。第五,經(jīng)由中間結(jié)果總線IRB返回操作結(jié)果至指令排隊模塊55中的寄存器文件551、 552。當(dāng)執(zhí)行指令時,如果請求數(shù)據(jù)丟失,功能模塊可以發(fā)送請求 信號至它們各個相關(guān)的接口模塊。
一見頻解碼特定功能才莫塊,例如熵解碼器513、 ITIQ 512、運動 補償510以及去塊效應(yīng)過濾器515,可以依靠特定應(yīng)用而配置為4丸 行解碼各個編碼格式所需要的實際操作。該配置可以基于固件或軟
件。例如,運動補償塊可以執(zhí)行用于才艮據(jù)MPEG-4視頻標(biāo)準(zhǔn)解碼的 特定操作,以及根據(jù)AVC標(biāo)準(zhǔn)的其它操作。
無論哪一種視頻標(biāo)準(zhǔn)支持這種體系結(jié)構(gòu),解碼過程都通過一直 使用相同的定義指令集的程序控制。此外,由程序、輸入比特流、 輸出解碼結(jié)果以及在程序4丸行期間產(chǎn)生的臨時凄t據(jù)共享SRAM存 儲空間。在解碼前,通過相關(guān)硬件向SDRAM自動輸入比特流的某 些部分。在SDRAM中逐漸自動地連續(xù)存儲比特流的新的部分。在 解碼過程期間,解碼器逐漸使用比特流。同時,向SDRAM存儲由 解碼體系結(jié)構(gòu)計算的作為圖l象數(shù)據(jù)的再生數(shù)據(jù)。然而,處理的不同
階賴 使用SDEAM的各自的區(qū)域。
當(dāng)用于顯示或其它目的需要SDRAM中的再生數(shù)據(jù)時,通過硬 件電路自動輸出那些數(shù)據(jù)。如果那些數(shù)據(jù)用于解碼更多的圖像,它 們保持在SDRAM中。否則,SDRAM中的相關(guān)空間-故新的圖像數(shù)
據(jù)蓋寫。
在解碼過程中,熵才莫塊513和熵*接口才莫塊514根據(jù)熵接口才莫塊 514中的對應(yīng)地址/人確定的SDRAM空間自動讀取比特流。通過硬_ 件增加地址,其中,在達到SDRAM中的比特流地址空間的最大地 址之后,地址將在最小地址繼續(xù)。去塊效應(yīng)過濾才莫塊515和過濾才妄 口才莫塊516根據(jù)由程序提供的對應(yīng)地址自動向確定的SDRAM空間 存儲解碼結(jié)果。在這種體系結(jié)構(gòu)中,通過固件控制的解碼過程可以#1分為三
步
第一步是解碼圖像或條帶級的參數(shù)如果圖像或條帶級的參數(shù) (例如,QP、加權(quán)預(yù)測參數(shù)、圖像尺寸、條帶類型等)用于解碼其 它語法元素,那么它們將存儲在所謂的全局寄存器中。全局寄存器 與功能模塊連接,并且控制指令執(zhí)行。
第二步是解;馬MB級上的i吾法元素 一個4^一個;l也解碼這些元 素。像圖像或條帶級參數(shù),如果它們將控制其它功能模塊,那么向 全局寄存器存儲這些元素(例如,宏塊類型、幀或域標(biāo)志)。這個 體系結(jié)構(gòu)允許熵模塊、ITIQ模塊、MC模塊以及過濾模塊在不同的 MBs上平行工作。
第三步是在后解碼在解碼所有的宏塊元素后,固件計算整個 圖像中下一個MB的位置。對于圖像的最后的MB,固件將做DBP 緩沖管理,然后繼續(xù)解碼下一個圖4象。
對于包括MPEG2、 H.264、 AVS和VC-1的所有當(dāng)前的—見頻標(biāo) 準(zhǔn),基本處理單元是MB。假設(shè)圖像尺寸是MxN,如圖4中示出的 定義整個圖l象中的MB的位置。
每個功能模塊內(nèi)的執(zhí)行是相似的。以MC模塊510為例,比照 圖5,該執(zhí)行可以被分為下列步驟。
第一,在排隊模塊55中從解碼模塊接收的、并且如果必要在 操作隊列550中排隊的指令(以內(nèi)部格式,即,解碼的)被發(fā)送至 運動補償,莫塊510。指令帶來一些ft據(jù),例如運動矢量和/或殘余凄史 據(jù)。這些數(shù)據(jù)可以在內(nèi)部緩沖區(qū)MCBUF中存儲。
16第二,在獲得指令和相關(guān)數(shù)據(jù)后,MC模塊510開始執(zhí)行指令。 在執(zhí)行期間,如果請求數(shù)據(jù)在MC模塊510的內(nèi)部緩沖區(qū)MCBUF 內(nèi)是可得到的(例如從前一個MB),那么將立即使用那些數(shù)據(jù)。如 果參考數(shù)據(jù)丟失,MC模塊發(fā)送請求信號至MC接口模塊511。如 果MC接口模塊511在它的內(nèi)部緩沖區(qū)中找到那些數(shù)據(jù),于是它返 回這些數(shù)據(jù)至MC才莫塊510。否則,MC接口才莫塊511發(fā)送請求至 連4妄至外部SDRAM的訪問總線仲裁才莫塊517。訪問總線仲裁器517 乂人所有的"l妾口才莫塊獲得請求,并且選擇一個以訪問SDRAM以及獲 得數(shù)據(jù)。
第三,如果請求數(shù)據(jù)從SDRAM返回,那么它們在MC接口才莫 塊511中存儲,并且返回至MC模塊510。
第四,在它的計算之后,發(fā)送運動補償結(jié)果至結(jié)果仲裁模塊56, 結(jié)果仲裁模塊從功能模塊得到所有的結(jié)果,并且在其它之后選擇一 個用于返回至排隊模塊55。
第五,執(zhí)行之后的結(jié)果數(shù)據(jù)被寫回至排隊模塊55中的寄存器 551、 552,并且更新排隊才莫塊55的寄存器551、 552中的值。
對于那些不具有相關(guān)接口才莫塊的才莫塊,例如ALU 59或ITIQ 512,該^VfiM又具有3個步驟,即上述描述的第一、第四和第五步驟。
本發(fā)明的優(yōu)點是減少了處理塊的空閑時間。這導(dǎo)致了提高的效 能,即以類似的性能減少了能量消耗,或以類似的能量消耗增加了 性能。
本發(fā)明防止了由于已知的多標(biāo)準(zhǔn)一見頻解碼器的集中組織處理 而產(chǎn)生的瓶頸。用于解碼視頻數(shù)據(jù)的改良設(shè)備包括RISC處理器的通用元件,包括指令^是供單元、排隊單元和ALU、以及特殊—見頻處理模塊,其中,視頻處理模塊嵌入RISC處理器中,使得它們也可以通過指令總線接收指令,并且象通用RISC處理器元件一樣向排隊單元提供數(shù)據(jù)。特殊視頻處理模塊包括MC單元、用于執(zhí)行IDCT和反向量的裝置、熵解碼單元和過濾單元。
本發(fā)明對于視頻解碼產(chǎn)品,特別是對于以模塊方式執(zhí)行的HD分辨率解石馬器,同時在石更4?;驇靑^f牛上,例如用于H.264、 VC-1、
MPEG-2、 AVC等的多標(biāo)準(zhǔn)解碼器,是有利的。
權(quán)利要求
1. 用于解碼視頻數(shù)據(jù)的設(shè)備,包括-用于提供解碼指令的裝置(51、52、53、54);-排隊單元(55),用于接收所述解碼指令和接收結(jié)果數(shù)據(jù)(IRB),并且用于將指令提供至指令總線(IB)上;-運算邏輯單元(59)和數(shù)據(jù)緩存單元(57),通過所述指令總線(IB)接收指令,并且向所述排隊單元(55)提供(IRB)數(shù)據(jù);-運動補償單元(510);-ITIQ裝置(512),用于執(zhí)行反變換和反量化;-熵解碼單元(513);以及-過濾單元(515),其中,所述運動補償單元(510)、所述ITIQ裝置(512)、所述熵解碼單元(513)和所述過濾單元(515)通過所述指令總線(IB)接收指令,并且向所述排隊單元(55)提供(IRB)數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述運動補償單元(510 )、 所述ITIQ裝置(512 )、所述熵解碼單元(513 )和所述過濾單 元(515)可以同時處理兩個或更多宏塊的教3居。
3. 根據(jù)權(quán)利要求1或2所述的設(shè)備,其中,所述運動補償單元(510 )、所述ITIQ裝置(512 )、所述熵解碼單元(513 )和所 述過濾單元(515)中的每一個都可以同時處理不同尺寸的朝L 頻數(shù)據(jù)塊。
4. 根據(jù)權(quán)利要求1-3中的一項所述的設(shè)備,其中,所述排隊單元(55)包括用于指令的#:作隊列(550)和至少兩個數(shù)據(jù)隊列 (551、 552),其中,所述兩個凄史據(jù)隊列(551、 552)具有不同的寬度。
5. 根據(jù)權(quán)利要求1-4中的一項所述的設(shè)備,其中,所述運動補償 單元(510)、所述ITIQ裝置(512)、所述熵解碼單元(513) 和所述過濾單元(515)中的每一個都具有用于^r測其具有空 閑處理能力的裝置,并基于所述檢測向所述排隊單元(55)請 求新指令。
6. 根據(jù)權(quán)利要求1-5中的一項所述的設(shè)備,進一步包括結(jié)果仲 裁模塊(56),用于向所述排隊模塊(55)提供所述結(jié)果數(shù)據(jù)(IRB),其中,所述結(jié)果仲裁模塊從所述數(shù)據(jù)緩存單元(57)、 所述運算邏輯單元(59 )、所述運動補償單元(510 )、所述ITIQ 裝置(512)、所述熵解碼單元(513)和所述過濾單元(515) 接收數(shù)據(jù),并且其中,所述結(jié)果仲裁模塊包括用于每次選擇一 個所述結(jié)果的裝置。
7. 根據(jù)權(quán)利要求1-6中的一項所述的設(shè)備,其中,視頻處理單元 為用于亮度數(shù)據(jù)的4x4像素塊和用于色度lt據(jù)的2d象素塊。
8. 根據(jù)權(quán)利要求1-7中的一項所述的設(shè)備,其中,所述過濾模塊(515)為去塊效應(yīng)濾波器,所述去塊效應(yīng)濾波器具有用于過 濾單個宏塊的第 一模式和用于過濾宏塊對的第二模式,所述設(shè) 備進一步包括過濾接口模塊(516),其中,對于所述第二模 式,從所述過濾接口模塊(516)讀取第二宏塊的宏塊數(shù)據(jù)。
9. 根據(jù)權(quán)利要求1-8中的一項所述的設(shè)備,進一步包括總線仲 裁模塊(517),用于連接至外部存儲器,所述總線仲裁模塊(517 )具有用于根據(jù)預(yù)定優(yōu)先級從不同接口模塊選擇多個總 線請求之一的裝置。
10. 根據(jù)權(quán)利要求1-9中的一項所述的設(shè)備,其中,所述熵解碼單 元(513)、所述ITIQ裝置(512)、所述運動補償單元(510) 和所述過濾單元(515)可以為固件,配置為執(zhí)行它們各自的 適于不同視頻編碼格式的操作。
全文摘要
視頻解碼包括非常相似的用于不同標(biāo)準(zhǔn)的處理步驟。該處理可以在分離的模塊中獨立平行地工作。已知的多標(biāo)準(zhǔn)視頻解碼器遭受了由于集中組織處理而產(chǎn)生的瓶頸。用于解碼視頻數(shù)據(jù)的改良設(shè)備包括通用元件RISC處理器,其包括指令提供單元(51,52,53,54)、排隊單元(55)和ALU(59),以及專用視頻處理模塊,其中在RISC處理器中嵌入視頻處理模塊,使得它們像通用RISC處理器元件一樣,同樣通過指令總線(IB)接收指令,并且將(IRB)數(shù)據(jù)提供給排隊單元(55)。專用視頻處理模塊包括運動補償單元(510)、用于執(zhí)行IDCT和反量化的裝置(512)、熵解碼單元(513)以及過濾單元(515)。
文檔編號H04N5/00GK101513067SQ200680055930
公開日2009年8月19日 申請日期2006年9月25日 優(yōu)先權(quán)日2006年9月25日
發(fā)明者劉華平, 王識霖, 苑澤生 申請人:湯姆遜許可公司