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