專利名稱:本地宏塊信息緩沖器的制作方法
本地宏塊信息緩沖器本申請是申請?zhí)枮?005800^959. 0、申請日為2005年12月15日、發(fā)明名稱為“本
地宏塊信息緩沖器”的中國專利申請的分案申請。
背景技術(shù):
媒體播放器可以將運動圖像輸出到顯示設(shè)備。例如,媒體播放器可以獲得本地存儲的圖像信息或者從媒體服務(wù)器接收圖像信息流(例如,內(nèi)容提供商可以通過電纜或者衛(wèi)星網(wǎng)絡(luò)將包括高清晰度圖像幀的流傳輸?shù)诫娨?、機頂盒或者數(shù)字視頻錄像機)。一些情況下,對圖像信息進行編碼,以減少表示圖像所用的數(shù)據(jù)量。例如,圖像可以被分成更小的圖像部分,例如宏塊,從而使得對于一個圖像部分編碼的信息不必對于另一圖像部分重復(fù) (例如,因為相鄰圖像部分可能經(jīng)常有類似的顏色、亮度、和/或運動特性)。因此,在對特定圖像部分進行解碼時,媒體播放器中的解碼引擎可以本地存儲和訪問關(guān)于多個相鄰圖像部分的信息。這種方案可能需要很大的本地存儲空間量,否則就難于實現(xiàn)。
圖1是媒體系統(tǒng)的框圖;圖2示出了被分割為宏塊的顯示;圖3是其中宏塊信息存儲于外部存儲單元和本地緩沖器中的系統(tǒng)的框圖;圖4是示出根據(jù)一些實施例的方法的流程圖;圖5是根據(jù)一些實施例的,其中宏塊信息存儲在外部存儲單元和本地緩沖器中的系統(tǒng)300的框圖;圖6是示出根據(jù)一些實施例的預(yù)取等待時間(pre-fetch latency)的時序框圖7是根據(jù)一些實施例的,其中宏塊自適應(yīng)幀/場編碼信息存儲在外部存儲單元和本地緩沖器中的系統(tǒng)的框圖;圖8示出了根據(jù)一些實施例的宏塊、宏塊分區(qū)和子宏塊;以及圖9是根據(jù)一些實施例的系統(tǒng)的框圖。
具體實施例方式媒體播放器可以接收圖像信息,解碼該信息,并向顯示設(shè)備輸出信號。例如,數(shù)字視頻錄像機(DVR)可以獲得本地存儲的圖像信息,或者,機頂盒可以從遠(yuǎn)程設(shè)備接收圖像信息流(例如,內(nèi)容提供商可以通過電纜或者衛(wèi)星網(wǎng)絡(luò)將包含高清晰度圖像幀的流傳輸?shù)綑C頂盒)。圖1是媒體系統(tǒng)100的框圖,包括媒體服務(wù)器100,該系統(tǒng)包括通過通信網(wǎng)絡(luò)130 給遠(yuǎn)程媒體服務(wù)器120提供圖像信息的媒體服務(wù)器110。在發(fā)射機116將數(shù)據(jù)作為圖像信息流發(fā)射之前,編碼器114可以減少用于表示圖像內(nèi)容112的數(shù)據(jù)的量。如這里所用的,可以根據(jù)多個不同協(xié)議中的任何一種,對信息進行編碼和/或解碼。例如,可以根據(jù)國際電信聯(lián)盟-電信標(biāo)準(zhǔn)化部門(ITU-T)推薦的題為"Advanced Video Coding for Generic Audiovisual Services (用于通用音視步頁
4服務(wù)的先進視頻編碼)"O004)的H.沈4,或者國際標(biāo)準(zhǔn)化組織(ISO)/國際工程聯(lián)合會 (IEC)運動圖像專家組(MPEG)的題為"Advanced Video Coding (Part 10)(先進視頻編碼(第10部分))"O004)的標(biāo)準(zhǔn),來處理圖像信息。作為其它的例子,可以根據(jù)ISO/ IEC 的編號為 14496、題為〃 MPEG-4 Information Technology-Coding of Audio-Visual Objects (MPEG-4信息技術(shù)-音頻視頻對象編碼)"Q001)的文檔,或者由IS0/IEC的編號為 13818-1、題為"Information Technology-Generic Coding of Moving Pictures and Associated Audio ^formation(信息技術(shù)-運動圖像及其相關(guān)音頻信息的通用編碼)“Q000)的文檔所定義的MPEG2協(xié)議,來處理圖像信息。作為其它的例子,可以根據(jù)Microsoft Windows Media Video 9 (MSWMV9)信息或運動圖像和電視工程師協(xié)會(SMPTE)視頻編解碼器1 (VC-I)信息,來處理圖像信息。接收到的圖像流可以包含與圖像的多個部分相關(guān)的信息(例如參數(shù)值),并且與那些部分相關(guān)的信息可以存儲在輸出引擎1 或解碼器外部的存儲單元122中。需要注意,針對一個圖像部分所編碼的信息可以對另一個圖像部分再次使用。因此,輸出引擎1 可以將關(guān)于多個相鄰部分的信息從外部存儲單元122傳送到基于塊的本地參數(shù)緩沖器或高速緩沖存儲器126中。然后,輸出引擎IM可以從本地緩沖器1 訪問這些信息,以重建或解碼每個圖像部分。根據(jù)一些實施例,本地緩沖器124與輸出引擎IM形成在同一管芯 (die)上。例如,考慮到H. 264圖像信息。如圖2所示,顯示圖像200可以被分割成多個“宏塊”210組成的陣列。每個宏塊可表示一個16x16個圖像樣本或像素的組。而且,該陣列可以包含行,每行有例如120個宏塊210。輸出引擎IM可以從頂部行開始,在宏塊210的多個行上,從左至右對宏塊210進行解碼。當(dāng)完成一行后,輸出引擎1 可以開始對下一行的第一宏塊210進行解碼。需要注意,可能已經(jīng)使用關(guān)于相鄰宏塊的信息對關(guān)于一個宏塊210的信息進行編碼(例如,因為多個相鄰宏塊210可能經(jīng)常會有相似的特性)。因此,當(dāng)對特定的宏塊210 進行解碼和/或解壓縮時,關(guān)于該宏塊210的信息可以使用來自一個或多個相鄰塊的預(yù)測值推導(dǎo)出來。在一些情況下,從單個相鄰塊的參數(shù)中推導(dǎo)出預(yù)測參數(shù),而在另一些情況下則從與多個相鄰塊相關(guān)的參數(shù)推導(dǎo)出來。具體而言,考慮圖2所示的宏塊“*”。為了對宏塊*進行解碼,輸出引擎IM可以使用先前為相鄰宏塊A、B、C、和/或D確定的參數(shù)值來為宏塊*確定預(yù)測參數(shù)值??梢栽趫D像信息流中接收到預(yù)測參數(shù)值和實際參數(shù)值之間的差異,并且輸出引擎1 可以使用預(yù)測參數(shù)值和此差異來產(chǎn)生實際的參數(shù)值。然后,可使用實際參數(shù)值產(chǎn)生表示原始圖像內(nèi)容 112的輸出(也可在為后面的相鄰宏塊確定實際參數(shù)值時使用)。為了有效地解碼宏塊210,輸出引擎IM可以將關(guān)于正在進行解碼的宏塊和一個或多個相鄰宏塊的信息從外部存儲單元122傳送到本地緩沖器126。例如,圖3是系統(tǒng)300 的框圖,其中宏塊信息存儲在外部存儲單元310和本地緩沖器320中。圖3中每個方塊可以表示例如包含特定宏塊的參考數(shù)據(jù)或參數(shù)的宏塊緩沖器。在一些情況下,可以將至少相當(dāng)于一行的宏塊信息(如圖3陰影區(qū)域所示)從外部存儲單元310傳送到本地緩沖器320。 因此,輸出引擎可以使用本地存儲的、與宏塊A、D、B、和/或C相關(guān)的信息來解碼宏塊*??捎么朔椒ㄌ幚淼男畔⒌睦影╔方向運動矢量、Y方向運動矢量、幀內(nèi)預(yù)測模式數(shù)據(jù)、和/或參考幀索引列表。在宏塊*被解碼之后,輸出引擎可以開始解碼宏塊*右邊的宏塊(而宏塊*現(xiàn)在將成為宏塊A,宏塊B將成為宏塊D,等等)。這種方案可能需要大量的片上存儲空間(on-die storage space),否則就難于實現(xiàn)。例如,考慮含有1920x1080個圖像樣本的高分辨率圖像。如果每個宏塊為一個16x16 個圖像樣本的組,則一行宏塊的數(shù)量為1920/16 = 120。這樣,本地存儲器可能需要存儲與 120個宏塊以及當(dāng)前被解碼的宏塊、總共為121個宏塊相關(guān)的信息。假定每個宏塊與256比特的信息相關(guān),則本地緩沖器需要存儲121x256比特,或約31千比特(Kbits)數(shù)據(jù)。在一些情況下,例如當(dāng)輸出引擎1 與片上系統(tǒng)(SoC)設(shè)計相關(guān)時,難于實現(xiàn)在本地存儲這樣數(shù)量的信息。圖4為示出根據(jù)一些實施例的方法的流程圖。該方法可以與例如圖1的媒體播放器120相關(guān)。這里描述的流程圖不一定意味著動作的固定順序,可以以任何切合實際的順序執(zhí)行實施例。注意,這里描述的任何方法可以由硬件、軟件(包括微代碼)、固件或這些手段的任意組合來執(zhí)行。例如,存儲介質(zhì)可以在其上存儲指令,當(dāng)機器執(zhí)行該指令時,引起根據(jù)這里描述的任何實施例的執(zhí)行。在402,表示圖像的多行宏塊存儲在外部存儲單元中。該外部存儲單元可以包含, 例如媒體播放器的雙倍數(shù)據(jù)速率(DDR)同步動態(tài)隨機存取存儲器(SDRAM)單元。然后,在404,將一組宏塊從外部存儲單元傳送到本地緩沖器,并且該宏塊組可以包含少于一行的宏塊。本地緩沖器可以是例如與輸出引擎相關(guān)聯(lián)的片上緩沖器。例如,圖 5為系統(tǒng)500的框圖,其中根據(jù)一些實施例,宏塊信息存儲在外部存儲單元510和本地緩沖器520中。在此例子中,宏塊信息可以與圖像自適應(yīng)幀/場(PAFF)H. 264編碼相關(guān)。具體而言,外部存儲單元510存儲與多行運動圖像宏塊相關(guān)的信息。本地緩沖器 520可以設(shè)置在解碼器中,并且存儲少于相當(dāng)于一行的信息。在圖5所示例子中,本地緩沖器520存儲關(guān)于下面所示的參數(shù)(i)當(dāng)前正在解碼的宏塊O、(ii)構(gòu)建當(dāng)前宏塊所需的相鄰塊(八』、。、和1))、和(iii)四個附加的宏塊。再次參考圖4,然后,在406,基于本地緩沖器中的信息對當(dāng)前宏塊*進行解碼,以產(chǎn)生圖像信號。本地緩沖器520可以是,例如循環(huán)緩沖器(circular buffer),而緩沖器管理器可以安排新的信息取代舊的信息(例如,在不再需要舊的信息后)。例如,在宏塊*被解碼之后,將不再需要宏塊A和D (而在構(gòu)建下一宏塊期間,宏塊B將變?yōu)楹陦KD,宏塊*將變?yōu)楹陦KA,并且宏塊C將變?yōu)楹陦KB)。需要注意,當(dāng)宏塊*位于一行的末尾附近時,可以在本地緩沖器520中存儲從下一行開始處的附加宏塊。本地緩沖器中存儲的附加宏塊的數(shù)量(例如,除宏塊*外,當(dāng)前正在使用的宏塊A、 B、C、和D)可以取決于與外部存儲單元510相關(guān)的等待時間。例如,圖6是示出根據(jù)一些實施例的預(yù)取等待時間的時序框圖600。具體而言,在啟動從外部存儲單元610預(yù)取附加宏塊的時刻和完成該預(yù)取的時刻之間存在等待時間(例如,而且該信息在本地緩沖器620中可用)。需要注意,在操作期間實際的預(yù)取等待時間可以變化(例如,由于帶寬或其它因素), 并且可以基于例如最大預(yù)期等待時間來選取值L??纱鎯υ诒镜鼐彌_器620中的附加宏塊的數(shù)量可以基于L和對每個宏塊進行解碼所需的時間。例如,如果在L期間可以解碼四個宏塊,則可以將四個附加宏塊存儲在本地緩沖器620中。這樣,在將要對當(dāng)前宏塊進行解碼時,在本地存儲器620中可以存在四個附加宏塊。此時,可以啟動新宏塊的新預(yù)取。到本地緩沖器620中的當(dāng)前宏塊被解碼的時刻,該新的宏塊將會可用(并且可以啟動另一預(yù)取)。根據(jù)另一實施例,可以預(yù)取批量宏塊以確保在本地存儲器620中至少有合適數(shù)量的附加宏塊可用。再次考慮有1920x1080個圖像樣本、每個宏塊為一個16x16個圖像樣本的組(例如,每行有120個宏塊)的高分辨率圖像。此外,假定在預(yù)取等待時間L期間可解碼4個宏塊。這樣,本地存儲器620可以存儲當(dāng)前被解碼宏塊、構(gòu)建當(dāng)前宏塊所需的四個相鄰宏塊、 以及四個附加宏塊(總共九個宏塊的)的參數(shù)。如果再次假定每個宏塊與256個比特信息相關(guān),則本地緩沖器620將需要存儲9x256比特或約為2. 3千比特的數(shù)據(jù)(與對于圖3所描述的31千比特相比)。雖然關(guān)于PAFF幀已經(jīng)描述了一些實施例,但是注意,這些實施例可以與宏塊自適應(yīng)幀/場(MBAFF)編碼實施方案相關(guān),該實施方案中可處理多對垂直相鄰的宏塊。例如,圖 7是系統(tǒng)700的框圖,其中根據(jù)一些實施例將MBAFF編碼信息存儲在外部存儲單元710和本地緩沖器720中。虛線將可以同時構(gòu)建的多對垂直相鄰宏塊分開。需要注意,與PAFF實施方案(例如,圖5所示)相比,可以在本地緩沖器720中存儲兩倍的信息。此外,雖然關(guān)于宏塊描述了一些實施例,但是實施例也可與其它類型的圖像部分相關(guān)。例如,圖8示出了顯示800。在此情況下,顯示800的基本上類似的部分(例如,背景區(qū)域)可以作為多個宏塊810進行編碼。然而,包含更多詳細(xì)圖像信息的其它部分可以進一步被分割成宏塊分區(qū)820和子宏塊830。此外,隨著圖像改變,顯示800可以以不同方式分割。根據(jù)一些實施例,本地存儲器中的信息可以與宏塊、宏塊分區(qū)、和/或子宏塊相關(guān)。 如這里所用的,術(shù)語“宏塊”可以指任意的圖像部分,包括有標(biāo)準(zhǔn)H. 264宏塊、宏塊分區(qū)、子宏塊和/或由另一標(biāo)準(zhǔn)定義的部分。圖9是根據(jù)一些實施例的系統(tǒng)900的框圖。該系統(tǒng)900可以與例如數(shù)字顯示設(shè)備, 電視機(如高清晰電視(HDTV)單元)、DVR、游戲控制臺、個人計算機(PC)或膝上型電腦、 和/或機頂盒(例如,電纜或衛(wèi)星解碼器)相關(guān)。系統(tǒng)900包含數(shù)字存儲設(shè)備910,諸如DDR SDRAM器件,以及與H. 264解碼器930 相關(guān)聯(lián)的緩沖器920,H. 264解碼器930可以根據(jù)這里所描述的任意實施例來工作。例如, 數(shù)據(jù)存儲設(shè)備910可以存儲與多行運動圖像宏塊相關(guān)的信息。緩沖器920和H. 264解碼器 930可以包含集成電路(IC),而緩沖器920可以存儲從數(shù)據(jù)存儲設(shè)備910接收的一組宏塊的信息,其中該宏塊組包含少于一行的宏塊。然后,該H. 264解碼器930可以根據(jù)緩沖器920 中的信息(包含與相鄰宏塊相關(guān)的參數(shù)),產(chǎn)生圖像信號。根據(jù)一些實施例,輸出端H.沈4 解碼器930產(chǎn)生通過數(shù)字輸出940提供給顯示設(shè)備(圖9中沒有示出)的信息。此外,該系統(tǒng)900還可以包括輸入接口(圖9中沒有示出),以接收與下列中至少一個相關(guān)的信號 (i)H. 264 信息、(ii)MPEG 2 信息、或(iii)MPEG 4 信息。以下闡述各種附加的實施例。這里并不是構(gòu)成要所有可行實施例的定義,且本領(lǐng)域技術(shù)人員將理解許多其它的實施例也是可行的。此外,雖然為清楚起見簡短描述以下實施例,但本領(lǐng)域技術(shù)人員可以理解,如果需要,將怎樣對上面的描述做出任何改變以適應(yīng)這些及其它實施例和應(yīng)用。例如,雖然描述了單個輸出引擎或解碼器,但是實施例可以與多個輸出引擎或解碼器相關(guān)聯(lián)(而且可提供多個或共享本地緩沖器)。此外,雖然這里使用了特定圖像處理協(xié)議和網(wǎng)絡(luò)作為例子(例如,H. 264和 MPEG4),但可以結(jié)合任何其它類型的圖像處理協(xié)議或網(wǎng)絡(luò),諸如數(shù)字地面電視廣播(DTTB) 和社區(qū)接入電視(CATV)系統(tǒng)來使用實施例。這里所描述的若干實施例僅為闡述之目的。本領(lǐng)域技術(shù)人員通過這些描述可知, 也可以實現(xiàn)其它實施例,所述其他實施例的修改或改變僅由權(quán)利要求所限定。
權(quán)利要求
1.一種用于解碼宏塊的方法,包括在存儲單元中存儲表示圖像的一行或多行宏塊信息;將與一組宏塊相關(guān)的信息從所述存儲單元傳送至緩沖器,所述宏塊組包含少于一行的宏塊,所述宏塊組包括(i)要解碼的當(dāng)前宏塊、(ii)解碼當(dāng)前宏塊所需使用的相鄰宏塊以及(iii)附加宏塊,其中所述附加宏塊的數(shù)量至少部分地基于與所述存儲單元相關(guān)的等待時間,并且其中,附加宏塊的數(shù)量是零或更多;以及基于所述緩沖器中的信息對宏塊進行解碼,以產(chǎn)生圖像信號。
2.如權(quán)利要求1所述的方法,其中,所述解碼是基于與正在被解碼的宏塊相關(guān)的信息以及與至少一個相鄰宏塊相關(guān)的信息的。
3.如權(quán)利要求1所述的方法,其中,所述緩沖器包含循環(huán)片上緩沖器。
4.如權(quán)利要求1所述的方法,其中,所述存儲單元包含雙倍數(shù)據(jù)速率同步動態(tài)隨機存取存儲單元。
5.如權(quán)利要求1所述的方法,其中,所述組中的宏塊數(shù)量與所述存儲單元的等待時間相關(guān)。
6.如權(quán)利要求1所述的方法,其中,所述多行宏塊與下列至少一個相關(guān)(i)圖像自適應(yīng)幀/場編碼或(ii)宏塊自適應(yīng)幀/場編碼。
7.如權(quán)利要求1所述的方法,其中,所述宏塊與下列至少一個相關(guān)(i)H.264信息、 (ii)運動圖像專家組2信息、(iii)運動圖像專家組4信息、(iv)Microsoft Windows Media Video 9信息、或(ν)運動圖像和電視工程師協(xié)會視頻編解碼器1信息。
8.如權(quán)利要求1所述的方法,其中,所述解碼由下列至少一個執(zhí)行(i)數(shù)字顯示設(shè)備、 (ii)電視機、(iii)數(shù)字視頻錄像機、(iv)游戲設(shè)備、(ν)個人計算機、或(vi)機頂盒。
9.如權(quán)利要求1所述的方法,其中,所述存儲器包括外部存儲器。
10.一種用于解碼圖像的裝置,包括用于在存儲單元中存儲表示圖像的多行宏塊信息的模塊;用于將與一組宏塊相關(guān)的信息從所述存儲單元傳送至緩沖器的模塊,所述宏塊組包含少于一行的宏塊,所述宏塊組包括(i)要解碼的當(dāng)前宏塊、(ii)解碼當(dāng)前宏塊所需使用的相鄰宏塊以及(iii)附加宏塊,其中所述附加宏塊的數(shù)量至少部分地基于與所述存儲單元相關(guān)的等待時間,并且其中,附加宏塊的數(shù)量是零或更多;以及用于基于所述緩沖器中的信息對宏塊進行解碼以產(chǎn)生圖像信號的模塊。
11.如權(quán)利要求10所述的裝置,其中,所述解碼是基于與正在被解碼的宏塊相關(guān)的信息以及與至少一個相鄰宏塊相關(guān)的信息的。
12.如權(quán)利要求10所述的裝置,其中,所述緩沖器包含循環(huán)片上緩沖器。
13.如權(quán)利要求10所述的裝置,其中,所述存儲單元包含雙倍數(shù)據(jù)速率同步動態(tài)隨機存取存儲單元。
14.如權(quán)利要求10所述的裝置,其中,所述組中的宏塊數(shù)量與所述存儲單元的等待時間相關(guān)。
15.如權(quán)利要求10所述的裝置,其中,所述多行宏塊與下列至少一個相關(guān)(i)圖像自適應(yīng)幀/場編碼、或(ii)宏塊自適應(yīng)幀/場編碼。
16.如權(quán)利要求10所述的裝置,其中,所述宏塊與下列至少一個相關(guān)(i)H.264信息、(ii)運動圖像專家組2信息、(iii)運動圖像專家組4信息、(iv)Microsoft Windows Media Video 9信息、或(ν)運動圖像和電視工程師協(xié)會視頻編解碼器1信息。
17.如權(quán)利要求10所述的裝置,其中,所述解碼由下列至少一個執(zhí)行(i)數(shù)字顯示設(shè)備、( )電視機、(iii)數(shù)字視頻錄像機、(iv)游戲設(shè)備、(ν)個人計算機、或(vi)機頂盒。
18.如權(quán)利要求10所述的裝置,其中,所述存儲器包括外部存儲器。
全文摘要
根據(jù)一些實施例,外部存儲單元存儲表示圖像的多行宏塊??蓪ㄉ儆谝恍泻陦K的一組宏塊從外部存儲單元傳送至本地緩沖器。然后可基于本地緩沖器中的信息對宏塊進行解碼,以產(chǎn)生圖像信號。
文檔編號H04N7/26GK102438139SQ201110304589
公開日2012年5月2日 申請日期2005年12月15日 優(yōu)先權(quán)日2004年12月16日
發(fā)明者M·哈克, R·薩克塞納 申請人:英特爾公司