欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)字媒體流的反向表示的制作方法

文檔序號:7622256閱讀:228來源:國知局
專利名稱:數(shù)字媒體流的反向表示的制作方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及一種數(shù)字多媒體技術(shù)。
背景技術(shù)
隨著處理和存儲技術(shù)的持續(xù)改進,如今許多個人計算系統(tǒng)(例如,個人計算機、機頂盒等)已經(jīng)可以接收、處理并再現(xiàn)多媒體對象。該對象具有多媒體內(nèi)容,包括音頻、圖形和/或視頻內(nèi)容的組合。可以用多種方式中的任意一種將該多媒體內(nèi)容傳送至計算系統(tǒng),例如包括在致密盤只讀存儲器(CD-ROM)、數(shù)字通用盤只讀存儲器(DVD-ROM)、經(jīng)由通信連接的數(shù)據(jù)網(wǎng)絡(luò)(例如,因特網(wǎng))等方式。
由于精確再現(xiàn)這樣的多媒體內(nèi)容所需的數(shù)據(jù)量的原因,通常以編碼、壓縮的形式將數(shù)據(jù)傳送至計算系統(tǒng)。為了再現(xiàn)用于顯示的原始內(nèi)容,必須在顯示該多媒體內(nèi)容之前將其解壓縮和解碼。此處,顯示包括將該多媒體內(nèi)容傳送至顯示器和/或音頻設(shè)備。
已經(jīng)開發(fā)出了多個多媒體標準,出于分配的目的定義了已編碼的多媒體內(nèi)容的格式和含意。例如,由國際標準化組織(ISO)和國際電工委員會(IEC)支持的運動圖像專家組(MPEG),以及由國際電信同盟(ITU)支持的視頻編碼專家組(VCEG)的組織已經(jīng)開發(fā)出了多種多媒體編碼標準(例如,MPEG-1、MPEG-2、MPEG4、H.261、H.263等)。
簡單地說,編碼處理從媒體內(nèi)容中消除了空間和時間的冗余,由此減小了顯示該媒體內(nèi)容所需的數(shù)據(jù)量,并因此降低了用于存儲和/或傳送該媒體內(nèi)容的帶寬負擔。編碼處理的例子包括熵解碼、運動補償預(yù)測、反量化(inversequantization)、逆變換,以及產(chǎn)生預(yù)測的附加逆變換。
相反地,簡單的說,解碼處理通常是編碼處理的逆過程。
再現(xiàn)通常包括另外的數(shù)字—模擬變換的步驟(經(jīng)過濾波)。其產(chǎn)生了接近原始的模擬媒體信號的顯示。
此處,“媒體流”是按照通常可用于此處理的機制被壓縮和編碼的多媒體對象(含有音頻和/或視頻內(nèi)容)。而且,希望該媒體流按照通常可用于此處理的機制被解碼和再現(xiàn)。
在沒有一般性損失的情況下,同樣的技術(shù)可應(yīng)用于任何具有可減小時間或空間冗余的相似結(jié)構(gòu)的媒體流。例如,許多音頻壓縮格式具有跟隨修改數(shù)據(jù)的關(guān)鍵幀(keyframe)以重建接近原始的未壓縮流。
存在許多不同的視頻流數(shù)據(jù)格式。例如,H.263、MPEG-1、MPEG-2、MPEG-4Visual、H.264/AVC和DV格式。
存在許多不同的音頻流數(shù)據(jù)格式。例如,DTS音頻或MLP音頻。
MPEG-2/H.262最主要的數(shù)字視頻壓縮和傳輸格式來自被稱為基于塊的運動補償混合視頻信號編碼器的家族,如由IS/IEC MPEG-X(運動圖像專家組)和ITU-T VCEGH.26X(視頻編碼專家組)標準所代表的。該族的標準用于以數(shù)字壓縮格式編碼音頻—視頻信息(例如,電影、視頻、音樂等)。
為了方便說明,此處一般討論和說明MPEG-2視頻流(也可以是已知的H.262視頻流),因為其具有傳統(tǒng)視頻編碼方法的典型結(jié)構(gòu)。但是,本領(lǐng)域技術(shù)人員應(yīng)當了解和意識到,也可以存在并使用其它這樣的數(shù)字視頻壓縮和傳輸格式。
通??蓪PEG-2格式稱為“正向解碼”格式。圖1的10一般性地示出了MPEG格式的示例性顯示。每個視頻序列由通常被稱為圖像組(或“GOP”)的幀序列構(gòu)成。一個GOP由圖像或幀的序列構(gòu)成。GOP數(shù)據(jù)被壓縮為I-、P-和B-幀的序列,其中·I-幀(即,內(nèi)部幀)是獨立開始圖像(以類似于JPEG圖像格式壓縮的)。I-幀或“關(guān)鍵幀”(例如I-幀12)不參考任何過去或未來的幀而被作為單個圖像編碼。I-幀被認為是MPEG-2中的“參考幀”,因為其內(nèi)容可以用于按照解碼順序針對一個隨后的P-幀或多個隨后的B-幀的解碼處理。
·P-幀(即,前向預(yù)測幀)可以通過圍繞來自先前的I-幀或P-幀的矩形(宏塊)移動,然后(假如由編碼器表示的話)施加稱為剩余的“校正”而被計算。隨后的P-幀(例如P-幀18)相對于過去的參考幀(例如先前的I-幀或P-幀)被編碼。P-幀也可以被視為“δ幀”,它們含有相對于它們的參考幀的變化。P-幀在MPEG-2中也被視為“參考幀”,因為其內(nèi)容可以用于按照解碼順序針對一個隨后的P-幀或多個隨后的B-幀的解碼處理。
·零個或多個B-幀(即,雙向預(yù)測幀,例如幀14和16)由來自于其后跟隨(假如由編碼器表示的話)校正扇區(qū)的相鄰的I-幀或P-幀的矩形組合而形成。幾個B-幀可以位于一對參考幀(或是I-幀或是P-幀)之間。在MPEG-2中,B-幀不被稱為參考幀,因為它們不能用作按照解碼順序解碼隨后幀的參考。
GOP結(jié)構(gòu)旨在幫助在該流中隨機存取。GOP通常是可獨立解碼的單元,其可以是只要由I-幀開始的任何大小。
與MPEG-2格式相關(guān)的一個問題屬于可以以正常播放順序的相反順序重放該數(shù)據(jù)。正向播放數(shù)據(jù)通常不是問題,因為其本身格式是正向解碼的,這意味著通常必須首先解碼I-幀,然后移動到GOP中的其它幀上。但是,以相反順序重放該數(shù)據(jù)更具有挑戰(zhàn)性,因為GOP固有地抵制直接反向解碼。
類似的挑戰(zhàn)也存在于被壓縮為開始扇區(qū)值(即,每音頻信道一個)的音頻數(shù)據(jù),該開始扇區(qū)值跟隨在δ幀后。
DVD通常地,當圖像記錄在例如DVD的光盤上時,其內(nèi)容實際上被分成小的單元,該小單元覆蓋預(yù)先確定的時間周期(通常大約為1/2秒單元或視頻對象基本單元(“VOBUs”))。這種格式的優(yōu)點是在播放視頻時,可以一個接一個的逐步通過視頻單元。如果想跳到任意的視頻片斷,則可以簡單的跳到感興趣的視頻單元,并且該視頻和音頻將被同步。所有流被同步的位置稱為“凈化點”。因此,當視頻和音頻單元被壓縮時,它們被壓縮成一個可以在精確的相同時間再現(xiàn)的單元,即音頻和視頻之間沒有不對稱。
當在MPEG-2背景下討論時,I-幀的所有參考可以是其它數(shù)據(jù)格式的關(guān)鍵幀。當在MPEG-2背景之外討論時,術(shù)語I-幀與關(guān)鍵幀具有相同意思。
典型的媒體流再現(xiàn)系統(tǒng)圖2示出了典型的系統(tǒng)200,其可以從媒體流源(如DVD)再現(xiàn)數(shù)據(jù)。系統(tǒng)200包括與源組件204通信的應(yīng)用程序202,源組件204從DVD 206中讀出數(shù)據(jù)。從DVD中讀出的數(shù)據(jù)包括已經(jīng)被編碼和復用在一起的音頻和視頻數(shù)據(jù)。
當源組件從DVD中讀出數(shù)據(jù)時,其從數(shù)據(jù)包提取時間標記,該時間標記隨后被用于重現(xiàn)時對該數(shù)據(jù)包進行同步和確定時間。然后將該數(shù)據(jù)包提供至信號分離器(或“demux”)208,該信號分離器將數(shù)據(jù)包分成不同的組成部分——音頻、視頻和子圖像包(如果存在的話)。
然后通過信號分離器將該數(shù)據(jù)包提供至相關(guān)的解碼器,例如視頻解碼器210(用于解碼視頻包)、音頻解碼器212(用于解碼音頻包)和子圖像解碼器214(用于解碼子圖像包)。每一個包都具有相關(guān)的時間信息,該時間信息定義了假設(shè)該包的內(nèi)容將被再現(xiàn)的時間。這些包可以是一個GOP(如上關(guān)于MPEG所述的)。
然后解碼器解壓縮它們相關(guān)的包,并將各個數(shù)據(jù)樣本或包(包括數(shù)據(jù)包的時間標記)發(fā)送至適當?shù)脑佻F(xiàn)器,例如視頻再現(xiàn)器216和音頻再現(xiàn)器218。通常每一個這些再現(xiàn)器都具有高速緩存,用于臨時存儲已解碼的數(shù)據(jù)包(或其部分)。通常,高速緩存至少足夠大,以便容納來自其它幀的幀解碼參考數(shù)據(jù)。
系統(tǒng)200通常也包括共用時鐘220,其被各種再現(xiàn)器使用,以確定何時再現(xiàn)一定的數(shù)據(jù)樣本,其中該數(shù)據(jù)樣本的時間標記與共用時鐘所示的時間一致。
反向重放現(xiàn)在假設(shè)用戶通過應(yīng)用程序202指示她希望以相反的順序瀏覽內(nèi)容。這可被稱作“反向重放”,“后退播放”,“倒回”,“后退掃描”,“反向特技播放”或“反向掃描”。
GOP的幀被設(shè)計成通常以相同的方向被解碼和顯示,其在此被稱為“正向”方向。這是與GOP的幀被編碼方向相同的方向。但是,GOP幀通常被編碼的實際特定順序不同于其顯示的實際特定順序。
為了解碼B-幀(例如圖1中的幀14和16),必須已經(jīng)存在先前的I-幀/P-幀和下面的I-幀/P-幀。例如,GOP可以以I1B2B3P4B5P6的順序存在,但是其將以I1P4B2B3P6B5的順序被編碼。注意,P4必須在B2和B3產(chǎn)生之前解碼。P4必須被解碼以產(chǎn)生P6。
因此,簡單的顛倒解碼順序不足以產(chǎn)生GOP的反向重放。在上述的例子中,P6取決于如果出現(xiàn)反向解碼時還沒有被解碼的先前的P4幀。而且,P4取決于如果出現(xiàn)反向解碼時還沒有被解碼的先前的I1幀。此外,B-幀取決于一個或多個在反向解碼時還沒有被解碼的幀。
由此看來,一種用于GOP的“反向重放”的傳統(tǒng)方法包括反向表示GOP中的幀,以使在顯示每個幀之前,解碼當前幀之前的所有幀(或至少所有的參考幀)。例如,對于標記為ABCDE的幀,傳統(tǒng)的方法解碼幀ABCDE,然后顯示幀E。接下來,解碼ABCD,然后顯示幀D。接下來,解碼ABC,然后顯示C,依此類推。
該傳統(tǒng)的方法非常浪費時間并且效率非常低,因為系統(tǒng)重復地解碼一些相同的幀。其對計算的要求非常高,而對存儲器的要求相對較低。
另一種用于GOP的“反向重放”的傳統(tǒng)方法按照正常進行正向解碼,但是臨時存儲GOP的所有已解碼且當前未壓縮的幀。一旦全部的GOP被解碼和存儲,就將已解碼的幀以反向順序發(fā)送到再現(xiàn)器。因此,以反向順序簡單的顯示了存儲的輸出幀。
通過此方法,對計算的要求相對較低,但是對存儲器的要求相對較高。該傳統(tǒng)的方法要求·大量的高速緩存存儲器,以高速存儲GOP的已解碼幀的未壓縮的圖像。即使對于例如DVD的通用格式或標準清晰度的TV,也需要10MB或更大的高速緩存存儲器。更高的HDTV分辨率通常要求50MB的存儲器。
·高速緩存存儲器通常位于解碼器單元可存取的高速存儲器中。隨機矩形提取產(chǎn)生了對高速緩存非常不利的存取圖形。通常,該存儲器需要是昂貴的,并且限制在視頻卡的本地視頻存儲器(VRAM)上。
·由于GOP通常需要使用至少兩個高速緩存的流水線處理,以確保恒定的輸出速度,因此對高速緩存存儲器的要求通常是雙倍的。盡管對于一塊的全部反向解碼速度等于以相同速度正向播放的速度,但是解碼器必須幾乎立即解碼該塊,然后以正常速度反向播放該塊。通過在存儲器中具有全部解碼的GOP,解碼器單元與GOP顯示時間等值的去解碼下一個GOP。
此外,處理過的內(nèi)容(例如解除隔行掃描、縮放、濾波、音頻間距修正等)可以要求額外的計算功耗和臨時的處理高速緩存。
為了繞過反向重放中含有的難點,一些傳統(tǒng)的方法只簡單的解碼并顯示來自每個GOP的關(guān)鍵幀(例如,I-幀)。這使出現(xiàn)在視頻流中的靜態(tài)圖像產(chǎn)生了不均勻的類似放映幻燈片的反向表示。盡管直接,但是該簡單化的方法在視頻流的視頻內(nèi)容模擬反向運動時不優(yōu)美且完全失敗。

發(fā)明內(nèi)容
此處公開了一種實施方式,可以促進已編碼的數(shù)字媒體流的反向表示。
此發(fā)明內(nèi)容本身并不意味著限制本專利申請的范圍。而且,該專利申請的名稱并不意味著限制本專利申請的范圍。為了更好的理解本發(fā)明,請結(jié)合附圖閱讀下面的詳細說明和后附的權(quán)利要求書。本發(fā)明的范圍由權(quán)利要求指出。


所有附圖中使用的相同數(shù)字標志類似的元件和特征。
圖1顯示了可用于按照此處所述實施例的圖像組(GOP)的方塊圖;圖2是按照此處所述實施例的系統(tǒng)圖;圖3是顯示此處所述的方法實施例的流程圖;圖4是顯示此處所述的方法實施例的流程圖;圖5顯示了可用于按照此處所述實施例的復雜的圖像組(GOP)的方塊圖;圖6是顯示此處所述的方法實施例的流程圖;圖7顯示了可采用此處所述實施例的典型環(huán)境;圖8顯示了示例的顯示設(shè)備、電視以及與顯示設(shè)備交互的各種輸入設(shè)備;圖9顯示了圖7和8所示的顯示設(shè)備示例的組件的方塊圖;圖10是計算操作環(huán)境的示例,該計算操作環(huán)境可以(整體或部分地)實施至少一個此處所述的實施例。
具體實施例方式
在下面的說明中,出于說明的目的,闡述了具體的數(shù)字、材料和配置,以便提供對本發(fā)明的整體理解。但是,本領(lǐng)域技術(shù)人員應(yīng)當清楚,可不通過具體的示例性細節(jié)來實施本發(fā)明。在其它例中,為了使本發(fā)明典型實施例的說明清楚,而刪除或簡化了公知的特點,由此更好的解釋了本發(fā)明。此外,為了容易理解,某些方法步驟被作為分開的步驟進行描述;但是,這些分開描述的步驟不應(yīng)當解釋為它們性能所依賴的必要順序。
下面的說明結(jié)合了后附權(quán)利要求書中所引用的元件,闡述了一種或多種反向表示數(shù)字媒體流的典型實施例。為了滿足法定的撰寫說明、授權(quán)和最佳模式的要求,具體化說明了這些實施例。但是,該說明本身并不意味著限制該專利申請的范圍。
發(fā)明人旨在將這些典型實施例作為示例。發(fā)明人并不想要用這些典型實施例限制本發(fā)明所要保護的范圍。而且,發(fā)明人已經(jīng)構(gòu)想,可以結(jié)合其它現(xiàn)存的或未來的技術(shù)以其它方式來體現(xiàn)和實施所要保護的本發(fā)明。
數(shù)字媒體流的反向表示的典型實施例被稱為“典型反向表示器(presenter)”。
介紹可通過媒體流再現(xiàn)系統(tǒng)200、顯示設(shè)備708、和/或類似于圖10中所示的部分計算環(huán)境來實施(整體或部分)此處所述的本所要保護的發(fā)明的一個或多個典型實施例。
典型的反向表示器方便了壓縮的數(shù)字媒體流的反向重放。大多數(shù)的媒體流格式使用含有幀序列的獨立可解碼塊進行壓縮。為了方便,這樣的塊在此被稱為幀塊(BOF)。在MPEG中,圖像組(GOP)即是這樣的BOF的示例。注意,在某些情況下(例如,在MPEG2中的開放GOP),BOF可與相鄰的BOF分享幀(即,交迭)。
此處,“幀”是指媒體數(shù)據(jù)(通常是音頻和/或視頻數(shù)據(jù))的壓縮單元。全部的編碼處理減少了BOF幀的媒體數(shù)據(jù)內(nèi)的時間或空間冗余。當幀被解碼(或未壓縮)時,其媒體數(shù)據(jù)被完全顯示而沒有任何壓縮(由于時間或空間冗余減少)。
每個BOF通常包括至少一個關(guān)鍵幀(例如,I-幀)或參考扇區(qū),其后跟隨幾個δ幀。類似的過程可用于解碼各種媒體流,例如使用類似的結(jié)構(gòu)被壓縮的音頻。
傳統(tǒng)的用于反向重放媒體流的方法通常按照正常的“正向”方向解碼BOF,但是高速緩存全部BOF的所有已解碼和當前未壓縮的幀。一旦全部BOF被解碼和高速緩存,則以反向順序表示已解碼的幀。
此傳統(tǒng)和直接的方法針對大小相對較小的未壓縮幀和長度較短的BOF工作。但是,當未壓縮的幀大小增加時,例如在解碼HDTV圖像的情況下,對臨時存儲器要求變得非常高。
對于具有1/2秒長度BOF的交錯1920×1080像素的圖像,需要超過300MB的存儲器存儲該幀。更壞的情況是,高速緩存的圖像必須位于解碼器的本地存儲器中(而不是主存儲器)。用于將解壓縮的圖像復制到主存儲器所需的存儲器帶寬經(jīng)常超過系統(tǒng)內(nèi)部總線的帶寬。
簡單地添加更多的本地高速緩存存儲器,因為其只是增加組件的成本而并不經(jīng)濟。在某些方面,這種強力解決方案(增加更多的存儲器)將由于成本原因而不可行。
典型的反向表示器通過執(zhí)行更有效的媒體流的BOF反向解碼,促進了流的反向表示的改善。其也平衡了對計算能力和存儲器要求,因此如果存儲器或計算資源有限也仍然可以反向解碼該內(nèi)容。
典型的反向表示器通過圖2的媒體流再現(xiàn)系統(tǒng)200、圖7和9的顯示設(shè)備708、和/或如圖10中所示的部分計算環(huán)境可以實施(整體或部分的)典型的反向表示器。
典型的反向表示器的流解碼功能可出現(xiàn)在解碼單元,該解碼單元具有接受壓縮的視頻和音頻流的多媒體數(shù)據(jù)的有限存儲器。解碼單元包括解碼控制器(例如圖9的控制器940)和硬件解碼器(例如圖2的解碼器210、212和214或圖6的解碼器930)。
解碼器控制器(例如圖9的控制器940)控制解碼處理。其由該解碼器安排要解碼的幀的時間順序。解碼器控制器可以用軟件、硬件或其組合形式執(zhí)行。其可以是顯示設(shè)備708和/或如圖10所示的部分計算環(huán)境上的程序模塊。
解碼器(例如圖2的解碼器210、212和214或圖6的解碼器930)是專用的解壓縮/解碼硬件、執(zhí)行同等操作的軟件組件、或其二者的組合。由于解碼通常是由專用硬件處理,所以解碼(或重新解碼幀)經(jīng)??梢员葘⒈槐硎镜膸匾乃俣雀?。
此處,術(shù)語“幀緩沖器”是指用于存儲一個未壓縮的幀的存儲器存儲位置。在此,“高速緩存”是存儲器存儲。高速緩存可以含有幀緩沖器。
參考和非參考幀“參考幀”是一種具有用作參考以產(chǎn)生從此獨立的幀的數(shù)據(jù)的幀的類型。通常必須在參考幀的數(shù)據(jù)被參考之前解碼該參考幀。關(guān)鍵幀一直是參考幀。但是,依賴于關(guān)鍵幀、但是也具有一個或多個從此獨立的幀的中間幀也被分類為參考幀。在MPEG領(lǐng)域,I-幀和P-幀均被分類為參考幀。
“非參考幀”是一種不含有被其它幀參考的數(shù)據(jù)的幀的類型。除了包含在非參考幀中的數(shù)據(jù)以外,幀中的全部解碼圖像的產(chǎn)生還取決于其解碼的參考幀的數(shù)據(jù)。在MPEG領(lǐng)域,B-幀被分類為非參考幀,因為沒有幀依賴于它們,但是它們依賴于兩個參考幀(I-幀或P-幀)。非參考幀通常被解碼,然后被丟棄,且不需要為了解碼其它幀而被臨時存儲。
典型的反向表示器的方面下面(關(guān)于標題部分“解碼參考幀,但是高速緩存編碼的非參考幀”)所述的典型的反向表示器的方面,關(guān)注相對于參考幀(例如,I-/P-幀)的非參考幀(例如,B-幀)的改進的處理。如此處理,提供了反向重放媒體流的改進的方法。
相反地,下面(關(guān)于標題部分“解碼且高速緩存選擇的參考幀”)所述的典型的反向表示器的另一個方面,關(guān)注于參考幀(例如,I-/P-幀)的改進的處理,以產(chǎn)生用于流的反向重放的改進方法。此方面提供的改進不基于對非參考幀(例如,B-幀)的處理。但是,可一起采用典型的反向表示器的兩個方面。并且實際上希望同時利用這兩個方面,以進一步提高整體的反向重放功能。
解碼參考幀,但是高速緩存編碼的非參考幀典型的反向表示器的這個方面,通過正向解碼BOF的一些或所有的參考幀(例如,I-幀或P-幀),同時高速緩存仍被編碼(因此仍被壓縮)的非參考幀(例如,B-幀),獲得了BOF(例如GOP)的改進的反向重放。
因為典型的反向表示器以反向順序表示了BOF的幀,所以顯示了已經(jīng)解碼的參考幀,但是在顯示該非參考幀之前,其基于它們已經(jīng)解碼的參考幀來解碼高速緩存中的仍被編碼的非參考幀。
I-幀獨立于先前或未來的幀信息而被解碼。P-幀是先前的I-幀或P-幀的正向修改。因為B-幀只依賴于與I-/P-幀相鄰的幀,所以隨后通過交換相鄰幀的幀索引并正向解碼它們,可以向后解碼B-幀。
例如,假設(shè)B-幀中的合成的宏塊MB是來自先前P-幀的宏塊MP1和來自下一個P-幀的宏塊MP2的函數(shù)。如果B-幀被正向解碼,則MB=函數(shù)1(MP1,MP2)。但是,當交換B-幀的索引時,現(xiàn)在的解碼如下MB=函數(shù)2(MP2,MP1),其中函數(shù)2是通過交換其操作數(shù)的函數(shù)1。
因此,可通過顛倒相鄰幀的解碼順序并施加相同的剩余糾正,來產(chǎn)生B-幀的已解碼宏塊。
典型的反向表示器高速緩存壓縮格式的非參考幀(例如B-幀)。當以反向順序表示BOF幀時,高速緩存的已壓縮的非參考幀隨后被解碼。當需要再現(xiàn)非參考幀的數(shù)據(jù)時,解決了對解碼非參考幀的相關(guān)性,優(yōu)于先前技術(shù)。
非參考幀可存儲在主系統(tǒng)存儲器中、可提高存取速度的本地存儲器中(例如VRAM)、或者解碼器單元容易存儲的系統(tǒng)存儲器中(例如AGP存儲器)。此處可將任何一種存儲器一般性地稱為高速緩存。
例如,如果使用IBBPBBPBBPBBI(其中最后一個I與相鄰的BOF共用)的典型的BOF重放結(jié)構(gòu),則反向重放對存儲器的要求大約是傳統(tǒng)方法中高速緩存所有BOF的已解碼幀的所需要的三分之一。在此示例中,典型的反向表示器只高速緩存十幀中的四幀的已解碼版本,而不是全部的十幀。特別地,其高速緩存I-幀和P-幀的已解碼版本。
在此示例中,典型的反向表示器存儲壓縮格式的六個B-幀。三種類型(I-、P-和B-幀)中,B-幀表示最大壓縮類型的幀,因為它們依賴于其它兩種幀。避免B-幀的解壓縮數(shù)據(jù)的臨時存儲表示在高速緩存BOF的所有已解碼幀的傳統(tǒng)方法中對存儲器的要求明顯降低。
對于典型的反向表示器的這個方面,具體地BOF結(jié)構(gòu)是IBBPBBPBBP的典型的BOF結(jié)構(gòu)。這是通用的BOF結(jié)構(gòu),但是本領(lǐng)域技術(shù)人員應(yīng)當了解和意識到,其它的BOF結(jié)構(gòu)也是可能的,還應(yīng)當理解和意識到這個方面如何被應(yīng)用到其它可能的結(jié)構(gòu)中。
用于保持(或有效地“高速緩存”)壓縮格式的非參考幀的其它方式是簡單的將其留在視頻數(shù)據(jù)所到達的無論什么存儲介質(zhì)上。例如,幀可以留在DVD或硬盤驅(qū)動器上,并且在希望時可讀取它們的位置。
典型的反向表示器的方法實施例圖3顯示了用于反向重放包括已解碼參考幀的典型的反向表示器的方法實施例,但是高速緩存編碼的非參考幀。這種方法實施例可以以軟件、硬件或其組合的方式來執(zhí)行。
在圖3的310,典型的反向表示器接收BOF,并且該接收的BOF的指示將被反向表示(即,反向重放)。
在312,典型的反向表示器正向解碼接收到的BOF的參考幀。
在314,典型的反向表示器存儲解碼的BOF的參考幀和仍被編碼的非參考幀。
在316,對于每個非參考幀,交換相鄰幀的幀索引。因此其顛倒了對非參考幀的相關(guān)性。
在圖3的318,典型的反向表示器顯示將被表示的BOF最后的參考幀。
在320,典型的反向表示器產(chǎn)生將被表示的BOF最后的非參考幀?;谄鋵Ω咚倬彺嬷幸呀?jīng)解碼的參考幀的相關(guān)性,解碼該剛產(chǎn)生的非參考幀。
在322,其顯示剛產(chǎn)生的非參考幀,并優(yōu)選的釋放用于存儲該剛產(chǎn)生的非參考幀的幀緩沖器。由于對于顯示或?qū)τ谌魏纹渌鼛倪M一步解碼都不再需要該剛產(chǎn)生的非參考幀,所以為了其它的使用可以釋放保持該剛產(chǎn)生的非參考幀的存儲器。其也有利于下一幀(在相反方向上)。
在324,如果下一個幀是非參考幀,則其重復步驟320和322,以相反順序出現(xiàn)每個非參考幀。如果不是,則進入到步驟326。
在326,如果下一個幀是參考幀,則其確定是否是BOF的最后的幀(在反向方向上,但其也是正向方向上的第一幀)。如果是,則進入到步驟328。如果不是,則下一個幀只是其他的參考幀,過程進行到步驟318。
在圖3的328,典型的反向表示器顯示與此BOF有關(guān)的最后的幀(在反向方向上,但其也是正向方向上的第一幀),該過程結(jié)束。
典型的操作為了按照圖3的方法實施例以反向順序播放BOF,典型的反向表示器接收由I1B2B3P4B5B6PBB9P10構(gòu)成的示例的BOF。其也接收將以反向順序播放該BOF的指示。
典型的反向表示器正向解碼該參考幀,并將它們臨時存儲在高速緩存中。在此示例中,其正向解碼并高速緩存這些參考幀I1P4P7P10。
除了臨時存儲參考的未壓縮版本之外,典型的反向表示器也在高速緩存中存儲壓縮格式的非參考幀,即,B2B3,B5B6和B8B9。其也交換非參考幀的幀索引,以交換它們的幀相關(guān)性。這么處理使得使用相鄰幀的反向解碼順序同時仍施加相同的剩余糾正,而產(chǎn)生B-幀的已解碼宏塊。
典型的反向表示器安排被存儲和解碼的P10用于顯示(例如,再現(xiàn)和顯示)的時間順序。
其基于P7和P10產(chǎn)生B9。該產(chǎn)生是以依賴于P7和P10的B9為基礎(chǔ)的解碼或解壓縮。
其安排該存儲和正被解碼的B9的顯示時間,優(yōu)選的將分配給B9的存儲器返回成自由共享。
由于下一個幀(當反向進行時)是另一個非參考幀(是B8),所以對B8重復上述的兩種動作(B-幀的產(chǎn)生和顯示)。
在B9和B8被解碼和顯示之后,則不再需要P10(因為其已經(jīng)被表示,并且不再被用于相關(guān)性解碼)。因此,可以釋放用于P10的存儲器。
對于下一組(當反向進行時)P4B5B6P7重復上述對組P7B8B9P10操作的動作。
對于下一組(當反向進行時)I1B2B3P4現(xiàn)在重復上述對組P7B8B9P10操作的動作。
最后,典型的反向表示器安排被存儲和解碼的I1的顯示時間。由于I1是最后的幀(反向順序),所以它的顯示完成了由幀I1B2B3P4B5B6P7B8B9P10構(gòu)成的示例BOF的反向重放。
而且,典型的反向表示器通過在每次解碼先前BOF的下一個參考幀時為當前BOF釋放參考幀緩沖器,可以使CPU使用平穩(wěn)。這種方式使得當前一個剛完成就解碼下一個BOF。
選擇的參考幀的解碼和高速緩存此部分所述的典型的反向表示器的另一方面關(guān)注于參考幀(例如,I-/P-幀)的改進處理,以產(chǎn)生用于流的反向重放的改進方法。由這方面提供的改進沒有基于其非參考幀(例如,B-幀)的處理。但是,這個方面可與上述的一個方面組合,以進一步改善整體的反向重放功能。
通過典型的反向表示器的這個方面,其選擇地維持未壓縮的參考幀(例如,I-/P-幀)并重新產(chǎn)生其它幀。通過如此處理,降低了BOF序列的反向重放所需的臨時存儲器(例如高速緩存)的容量。通過此方面,可僅使用高速緩存中提供的少量幀緩沖器來執(zhí)行反向重放。此處,“幀緩沖器”是配置用于存儲一個未壓縮幀的存儲器存儲位置。
盡管精確的策略可根據(jù)BOF序列的精確結(jié)構(gòu)改變,但是為了使論述和說明清楚,在這部分中假設(shè)每個BOF具有單個關(guān)鍵幀(例如,I-幀),并由此幀開始。還假設(shè)關(guān)鍵幀后跟隨其它的參考幀(例如,P-幀)和非參考幀(例如,B-幀)。
為了選擇最好的解碼策略,可通過完全預(yù)先掃描BOF以發(fā)現(xiàn)BOF中幀的數(shù)量來改善這些策略。
對于典型的MPEG-2視頻流,三分之一的幀是I-或P-幀,并且BOF的大小大約是500ms。這映射到15幀,并產(chǎn)生具有5個參考幀的BOF。
存在一些具有多個關(guān)鍵幀(例如,I-幀)的更復雜的BOF結(jié)構(gòu)。當反向重放時,這些結(jié)構(gòu)被解壓縮成BOF子塊,每個子塊具有一個關(guān)鍵幀。此主題更多的論述見下面標題為“延伸至含有B-幀的BOF”的部分。
所采用的具體策略將根據(jù)BOF序列的具體BOF結(jié)構(gòu)(例如,其I-、P-和B-幀位置和順序)而改變,具體的BOF結(jié)構(gòu)是典型的反向表示器的一個主題。由于可根據(jù)局部參考幀生成非參考幀,所以參考幀的相對結(jié)構(gòu)受這方面影響最大。
對于典型的反向表示器的這個方面,可以忽略非參考幀(例如,B-幀)。因此,此方面關(guān)注于參考幀。此處討論的參考幀的具體BOF結(jié)構(gòu)包括單個I-幀,后面跟隨n-1個P-幀。因此,數(shù)量n是BOF結(jié)構(gòu)中參考幀的數(shù)量。
這是公用的BOF結(jié)構(gòu),但是本領(lǐng)域技術(shù)人員應(yīng)當理解和意識到其它的BOF結(jié)構(gòu)也是可能的,還應(yīng)當理解和意識到將如何對其它可能的結(jié)構(gòu)應(yīng)用該方面。
一些BOF結(jié)構(gòu)可以從下一個BOF要求I-幀,以解碼最后的B-幀(例如,MPEG2“開放GOP”)。為了簡化說明而不尚失一般性,當前的BOF的定義傾向于包括下一個BOF的下一個I-幀。結(jié)尾的I-幀在當前的BOF結(jié)束處被稱作“P-幀”。
典型的反向表示器或者確定參考幀的數(shù)量n,或者為其設(shè)定上限。為了確定數(shù)量n,典型的反向表示器可以高速緩存并分析BOF的壓縮格式?;蛘?,其可以使用時間間隔和BOF結(jié)構(gòu)限制來估計參考幀的最大數(shù)量。
對于此論述,m表示可用于臨時存儲已解碼參考幀的幀緩沖器的數(shù)量,而n表示BOF序列中參考幀的數(shù)量。
對于n=1(則只有單個I-幀)的平常情況,只需要一個幀緩沖器。另一個平常情況是n=2。在此情況下,需要兩個幀緩沖器。這兩個平常情況假設(shè)存在一個(對于n=1的例子)或兩個(對于n=2的例子)幀緩沖器的情況。
如果n>2,則至少一個幀緩沖器用于第一個I-幀圖像,而至少一個幀緩沖器用于最后的將被表示的P-幀圖像。其余的幀緩沖器(它們中的1至n-2個)可用于其它將被表示的P-幀圖像。此處,參考的幀“圖像”意味著幀的內(nèi)容被完全解碼(例如,未壓縮的)。
如果n≤m,則存在足夠多的幀緩沖器,以正向解碼所有的參考幀然后以反向順序表示它們。
因此,典型的反向表示器的這個方面在具有多于兩個參考幀(n>2)且?guī)彌_器少于參考幀(m>n)時特別有用。
使用選擇策略(例如此處論述的二元細分或其它的策略),典型的反向表示器在將被表示的參考幀中選擇,以將其解碼并存入幀緩沖器。
如果還沒有解碼和存儲,則正向解碼所有的參考幀需要解碼所選擇的參考幀。當如此解碼時,其臨時存儲解碼的BOF的參考幀,該參考幀在最后的將被表示的參考幀之前。如果已解碼的幀不是一個所選擇的幀,則丟棄該幀并釋放幀緩沖器。
典型的反向表示器將所選擇的幀存入幀緩沖器。其顯示最后一個存儲的將被表示的幀,然后釋放其使用的幀緩沖器。該緩沖器可以返回到空閑緩沖器的可用狀態(tài),用于高速緩存解碼處理中隨后的幀。此觀察資料是提議的算法與二元細分之間的關(guān)鍵區(qū)別。其允許提議的算法明顯降低計算成本。
典型的反向表示器再次使用其選擇策略來選擇沒有被解碼和存儲在幀緩沖器中的另一個參考幀。重復上述的選擇、解碼、存儲和顯示功能,直到其顯示了BOF的所有參考幀。
如此處理,典型的反向表示器可以不止一次的很好的解碼一些參考幀。通常,解碼器具有比其顯示數(shù)據(jù)更快的解碼數(shù)據(jù)的能力。典型的反向表示器的這個方面利用了可用的空閑時間來根據(jù)需要重新產(chǎn)生未壓縮的幀,而不是在其需要之前高速緩存未壓縮的幀。
出于在存儲器資源與計算資源之間尋求平衡的目的,典型的反向表示器在高速緩存與重新產(chǎn)生幀之間做出決定。
典型的反向表示器的方法實施例圖4顯示了典型的反向表示器用于反向重放的方法實施例,典型的反向表示器選擇的解碼和高速緩存參考幀。該方法實施例可以由軟件、硬件或其組合的形式執(zhí)行。
由于此方面關(guān)注于參考幀,所以下面所述的方法實施例忽略對非參考幀的任何操作。但是,下面所述的方法實施例可以與其它的對非參考幀(例如參照圖3所述的一個實施例)操作的實施例組合。
在圖4的410,典型的反向表示器接收BOF并反向表示(即,反向重放)該接收的BOF的指示。
在412,典型的反向表示器確定用于參考幀的數(shù)量n的值,其中n表示BOF中參考幀的實際數(shù)量,或參考幀的上限。為了確定此數(shù)量,典型的反向表示器可以高速緩存并分析BOF的壓縮格式,以識別和計算參考幀。或者,其可以使用時間間隔和BOF結(jié)構(gòu)限制來估計參考幀的最大數(shù)量。
在414,典型的反向表示器確定m的值,其中m表示可用于臨時存儲已解碼的參考幀的幀緩沖器的數(shù)量。其可以通過存儲器跟蹤技術(shù)來實現(xiàn)此確定,存儲器跟蹤技術(shù)跟蹤幀緩沖器的具體數(shù)量以及存儲器系統(tǒng)中可用的存儲器位置。其也可以從這樣的存儲器跟蹤系統(tǒng)中接收此信息。
在416,其確定是否存在多于兩個的參考幀(n>2)并且?guī)彌_器是否少于參考幀(m<n)。如果是,則過程進入到步驟418。否則,在430結(jié)束過程。
在圖4的418,典型的反向表示器選擇BOF的n個參考幀的m(或更小)大小的子集。如果任何的參考幀都已經(jīng)被表示,則該參考幀不包括在該子集中。通常,這種選擇至少包括I-幀和最后將被表示的P-幀(其中“最后的”是以BOF的正向順序看的)。當具有兩個以上的幀緩沖器時,也選擇m-2個額外的P-幀(在I-幀和第一個將被表示的P-幀之間)。
可以采用多種選擇策略。一種策略是使用二元細分法從剩余的參考幀中選擇。根據(jù)參考幀(n)的數(shù)量,典型的反向表示器可配置成采用下面標題為“用于小n的幀緩沖器選擇策略”、“用于中間n的幀緩沖器選擇策略”以及“用于大n的幀緩沖器選擇策略”的子部分所述的兩種選擇策略的一種。
在420,典型的反向表示器正向解碼所有的參考幀需要解碼所有已選擇的參考幀。如果已經(jīng)存儲了對于解碼所選擇的參考幀必須的幀,則不必再解碼它。換言之,如果已選擇的參考幀已經(jīng)被解碼并存儲在幀緩沖器中,則對其不用做任何事情。
當進行此解碼時,臨時存儲BOF的在最后將被表示的參考幀之前的每個已解碼的參考幀。如果已解碼的幀不是所選幀中的一個,則將其放棄,并且釋放其幀緩沖器以便存儲所選參考幀的一個。
將所選幀存儲在幀緩沖器中。在此運行的結(jié)束處,幀緩沖器存儲了所選的參考幀。
在422,顯示存儲在幀緩沖器中的最后將被表示的參考幀(例如,I-/P-幀)。由于這是BOF的反向重放,所以顯示最后將被表示的參考幀的過程產(chǎn)生了BOF的參考幀的反向表示。
此外,在參考幀的表示之間,典型的反向表示器也可以反向表示任何插入的非參考幀(例如,B-幀)。
在424,典型的反向表示器釋放其中存儲了剛被表示的參考幀的幀緩沖器。由于剛被表示的參考幀不再需要用于顯示或用于解碼任何其它幀,所以可以釋放保持它的存儲器用于其它的使用。
在426,如果剛被表示的參考幀是BOF的第一幀(例如,I-幀),則關(guān)于此BOF的過程結(jié)束。否則,過程回到步驟418來重復步驟418至426。通過對幀緩沖器的釋放,向上,在返回到步驟418時可以選擇新的參考幀。
用于小n的幀緩沖器選擇策略盡管選擇用于劃分“小”n、“中間”n、“大”n的臨界值整體上不是任意的,但是臨界值的選擇通常包括試探的階段。其很大程度依賴于典型的反向表示器的實際實施例的計算能力。例如,“小”與“中間”之間的臨界值可以大約是8,而“中間”與“大”之間的臨界值可以大約是500-1000。但是,可以利用此處所述的概念來調(diào)整臨界值,以滿足具體的實施需要。
因此,對于小數(shù)量(n)的參考幀(其中n≤8且m<n),典型的反向表示器的這種幀緩沖器利用下面顯示的表選擇策略??梢栽谏鲜鰣D3的步驟3 18中和周圍的運行中采用這種策略。這些表是通過最佳的小n算法的輸出產(chǎn)生的。
這些表假設(shè)BOF結(jié)構(gòu)是I1P2P3...Pn且I幀的相對解碼成本類似于P幀。
兩個幀緩沖器(m=2)如果只有兩個幀緩沖器(m=2),則典型的反向表示器開始產(chǎn)生第一幀(例如,I1),并遞歸地產(chǎn)生最后將被表示的幀??梢詠G棄I幀,有利于高速緩存后面的P幀以降低第一運行的長度。
下表顯示了對具有n=3至8的每個參考幀執(zhí)行的解碼數(shù)量

表1
三個幀緩沖器(m=3)如果只有三個幀緩沖器(m=3),則典型的反向表示器產(chǎn)生第一幀,大約保持P幀一半,并使用最后兩個幀緩沖器遞歸地產(chǎn)生最后將被表示的幀。將它們存儲在三個幀緩沖器中的兩個。選擇剩余參考幀的一個,并存儲在一個剩余的幀緩沖器中。
通過選擇(用于選擇被存儲的參考幀)、產(chǎn)生和顯示運行的每次遞歸,選擇了新的最后將被表示的幀,并且第一幀與新的最后將被表示的幀之間的新的參考幀被存儲在幀緩沖器中。
下表顯示了對具有n=4至8的每個參考幀執(zhí)行的解碼數(shù)量當m=3時,全部的解碼數(shù)量=2n-3。
典型的BOF結(jié)構(gòu)具有5個參考幀(n=5)。因此,當m=3時,對于典型的BOF結(jié)構(gòu)通常進行8次解碼。
四個幀緩沖器(m=4)如果有四個幀緩沖器(m=4),則可利用一個額外的幀緩沖器(當與m=3的情況相比時)來降低參考幀的重復解碼時間長度。此策略選擇在將被表示的幀序列中位于大約一半位置的幀。如此處理有助于將BOF分成兩半,其中解碼每一半。

表2此策略出于使一個或多個必須被解碼(或重復解碼)的幀跨度的大小最小化的目的來選擇幀。在此處理中,對于剩余的將被表示的幀的全部解碼(和需要重復解碼)操作被遞歸地分成兩個子操作。每個子操作可以具有較少的幀緩沖器,并且可以使用具有可用幀緩沖器m較少的n較小的情況來解決。
例如,如果n=8(I1P2P3P4P5P6P7P8)并且我們選擇高速緩存幀4,則從P4...P8的第二解碼操作可以被視為具有5個幀和3個緩沖器的子問題(n=5,m=3,見前面的m=3表中n=5項)。在解碼第二子問題之后,剩余的解碼I1P2P3P4的問題成為前面具有m=4個緩沖器的n=4的子情況。該選擇策略仍與n=4和b=4的情況相同,但是因為幀I1和P4被高速緩存,所以只有2個額外的參考幀必須被解碼。
五個幀緩沖器(m=5)如果m=5以及n=6,則只有一個幀(例如,幀P2)需要解碼。這使得總共有7個解碼。
如果m=5以及n=7,則只有2個幀(例如,幀P2P3)需要解碼。這使得總共有9個解碼。
如果m=5以及n=8,則只有3個幀(例如,幀P2、P3和P4)需要解碼。這使得總共有11個解碼。

表3*在P2至P5范圍內(nèi)的任何兩個幀,選擇頭兩個對于解碼效率(高速緩存交疊)是有利的。
**在P2至P6范圍內(nèi)的任何三個幀,選擇頭三個對于解碼效率(高速緩存交疊)是有利的。
六個幀緩沖器(m=6)如果m=6以及n=7,則只有一個幀(例如,幀P4)需要解碼。這使得總共有8個解碼。
如果m=6以及n=8,則只有2個幀需要解碼。這使得總共有10個解碼。

表4*在P2至P5范圍內(nèi)的任何幀,選擇第一個對于解碼效率(高速緩存交疊)是有利的。
**在P2至P6范圍內(nèi)的任何兩個幀,選擇頭兩個對于解碼效率(高速緩存交疊)是有利的。
七個幀緩沖器(m=7)如果m=7以及n=8,則只有一個幀(例如,幀P2)需要解碼。這使得總共有9個解碼。

表5*在P2至P5范圍內(nèi)的任何幀,選擇第一個對于解碼效率(高速緩存交疊)是有利的。
全部解碼的總結(jié)

表6典型的反向表示器的選擇策略可以明顯地降低重復解碼的數(shù)量,同時也消除了對大量緩存(傳統(tǒng)的方法所需要的)的需要。
此處的可選實施例可以不使已解碼的I-幀保持為可用的。實際上,可以丟棄它,并在后面再次解碼。
用于中間n的幀緩沖器選擇策略因此,對于中間數(shù)量(n)的參考幀,典型的反向表示器的這種幀緩沖器利用下面所述的策略選擇策略(其中n約大于8且m<n)??梢栽谏鲜鰣D3的步驟318中和周圍的運行中采用這種策略。
此選擇策略也可以被稱作“記憶化(memoization)”策略。通常,“記憶化”是保存(即,記憶)稍后再次使用計算的結(jié)果而不是在相同條件下再次重復計算該結(jié)果的算法技術(shù)。
其焦點是遞歸地將BOF分成越來越小的跨度??缍仁撬x幀(用于高速緩存)之間的幀??缍乳L度是以跨度中有多少幀為基礎(chǔ)的。此選擇策略連續(xù)的將跨度分成更小的跨度,直到已知的跨度組合與已知的幀和緩沖器的組合匹配為止。
為了使用m個緩沖器以反向順序解碼和顯示n個幀,典型的反向表示器這種幀緩沖器選擇策略定義了“用于保持的第一幀”F(m,n)。在解碼之后,該第一幀不使其緩沖器立即釋放。幀在其中解碼的該緩沖器直到該幀實際已經(jīng)被表示后才被釋放。任意地,第一幀的數(shù)量被選擇為1。
此選擇策略定義需要解碼的數(shù)量,以便使用D(m,n)的此算法的m個緩沖器以反向順序解碼和顯示n個幀。現(xiàn)在遞歸地計算F(m,n)和D(m,n)。注意,如果m≥n,則D(m,n)=n,F(xiàn)(m,n)=1。
如果m<n,通過找到用于所保持的第一幀的所有敏感值所需的最小解碼數(shù)量來執(zhí)行遞歸,由此作為附帶推導出F(m,n)和D(m,n)假設(shè)用于保持的第一幀是x,則所需的解碼數(shù)量分解為

表7使這些量的和最小的x的值是F(m,n)。使這個和最小的x的最大值可以任意地選擇以避免模糊。
在計算遞歸過程中,D(i,j)和F(i,j)的值被集中在大小為m×n的陣列中。所以當值已經(jīng)被計算一次時,不再需要上述的進一步搜索。
接下來,使用F(i,j)的值重構(gòu)解碼序列。
用于大n的幀緩沖器選擇策略如此,對于大數(shù)量(n)的參考幀,典型的反向表示器的這種幀緩沖器利用下面所述的策略選擇策略(其中n約大于8且m<n)??梢栽谏鲜鰣D3的步驟318中和周圍的運行中采用這種策略。
此選擇策略也可以被稱作“標準化算術(shù)跨度寬度序列”策略。其焦點是跨度長度??缍仁撬x幀(用于高速緩存)之間的幀??缍乳L度是以跨度中有多少個幀為基礎(chǔ)的。此選擇策略嘗試使最長的多個跨度的多個重復解碼的長度最小化。
通常,幀緩沖器被重復解碼的次數(shù)與所選幀(被高速緩存在幀緩沖器中)之間的跨度成正比。當幀被表示時,它們的幀緩沖器是不再需要的,并且可以被重復用于高速緩存重復解碼的幀。
隨著n的大小的增加,選擇策略的置換最優(yōu)化并不是與幀解碼的相對數(shù)量一樣有意義。選擇策略盡力使每個“重復解碼”塊的跨度長度最小化,同時當BOF被解碼時計算幀緩沖器的增加數(shù)量。
從最后將被解碼的幀開始,跨度長度與1、2、3、4、5、...、m-2(即,在幀索引順序中相對跨度寬度是m-2、m-1、...、3、2、1)成比例。對于第一幀、第n幀和與第n幀相鄰的一幀(即,在n-1),需要至少一個幀緩沖器以解碼最后的區(qū)間。在最后的區(qū)間被解碼之后,釋放緩沖器直到解碼下一個最后的間隔。因此具有m-3個緩沖器放置在n-2個幀的區(qū)間上。由此,用于在從2到n-1范圍內(nèi)均勻展開它們的縮放因子通過下面的因子給出k=(n-2)/求和(sum)(1...m-2)=(n-2)/((m-2)×(m-1)/2)=2(n-2)/((m-2)×(m-1))按照循環(huán),所選幀的位置是·f(m)=n·f(m-1)=n-1·f(m-1-i)=f(m-i)-取整(round)(k×i),對于i=1...m-3·f(1)=1例如,如果m=10個幀緩沖器用于n=100個幀,留下-個緩沖器用于解碼區(qū)間,則9個緩沖器是可用的,所以k=2×98/(8×9)=2.7。將選擇下面的幀f(1...m)用于高速緩存在幀緩沖器中f(10)=100f(9)=f(10)-1=99f(9-i)=f(10-i)-k×(i),對于i=1...7f(8)=f(9)-k×1=99-3=96f(7)=f(8)-k×2=96-5=91f(6)=f(7)-k×3=91-8=83f(5)=f(6)-k×4=83-11=72
f(4)=f(5)-k×5=72-14=58f(3)=f(4)-k×6=58-16=42f(2)=f(3)-k×7=42-19=21f(1)=1(注意如果i=8,則f(1)=f(2)-k×8=21-22=-1,約等于1)。
所以,幀1、21、42、58、72、83、91、96、99和100將被選擇用于高速緩存。
在解碼跨度之后,該算法遞歸地應(yīng)用到上一個跨度。
在解碼過程中,幀1至100將首先被解碼一次(以產(chǎn)生高速緩存點),然后重復解碼的幀之間的間隔將只有2幀。這產(chǎn)生了對于給定幀的最多為3的最大重復解碼數(shù)。例如,為了解碼91...96,具有2個自由幀(99和100),所以94和95將被高速緩存(重復解碼92、93、94和95)。則2個幀對于解碼91和93(從95和96釋放)是可用的。類似的對于1...21,將有8個幀是可用的(應(yīng)用相同的算術(shù)間隔算法,幀將是2倍的重復解碼成本)。
總的解碼成本大約是200(大約是2倍),但是對存儲器的需求降低了10倍。
這種選擇策略逐步增加了每個跨度的長度(相對于最后的幀)。
相反,二元細分算法將選擇幀1、50、75、87、93、96、99和100。平均起來,每個幀將被解碼ln(g)次,總的來說大約是700解碼成本。二元細分算法不利于任何超過“m”的可用的緩沖器,因此浪費了m-1n(g)=10-7=3個緩沖器。我們的第一種算法使用額外的緩沖器來將第一跨度減少至21的長度而不是50的長度。
含有B-幀的BOF的擴展部分如果BOF含有B-幀,則包括使用比BOF中具有的非參考幀更少的緩沖器的上述方案要求使用額外的緩沖器。該緩沖器用于保存最后解碼的參考幀,直到參考它的非參考幀被表示。
平滑計算負載期望盡可能相等的在每個幀顯示之間平衡解碼幀的成本。使每個幀顯示之間需要的解碼最大數(shù)量的最小化對于幀的平滑反向重放是最重要的因素。
在此情況下,包括使用比BOF中具有的非參考幀更少的緩沖器的上述用于反向重放的方案可以被修改以滿足此目的。一種在此方面改進該方案的方式是,當仍然有空閑緩沖器可以用于繼續(xù)解碼時,可延遲顯示一些已解碼的參考幀。這在靠近反向重放1個BOF的結(jié)束以及開始顯示前一個BOF時尤其重要。在此情況下,假設(shè)m幀是可用的,當還有m幀要被表示時,每個幀緩沖器將含有BOF中頭m幀中的一個。在此情況下,例如,當?shù)趍幀一被表示時,我們就釋放一個緩沖器,使其達到最好的負載平衡,使用該空閑的緩沖器可以解碼前一個BOF的多個幀。可以很容易地意識到,可以用于解碼前一個BOF的另外的緩沖器,當它們變成空閑時如何可以被使用。
也可以設(shè)計具體地被設(shè)計用于使最大解碼數(shù)量最小化或使用于解碼的最大時間最小化的算法。
分解成只具有一個I-幀的BOF上面的討論和解釋的典型的反向表示器,假設(shè)每個BOF具有單個關(guān)鍵幀(例如,I-幀)并由此開始。也假設(shè)了關(guān)鍵幀之后跟隨了其它的參考幀(例如,P-幀)和/或非參考幀(例如,B-幀)。
但是,存在更復雜的BOF結(jié)構(gòu)。這些結(jié)構(gòu)具有多個關(guān)鍵幀(例如,I-幀)。這些結(jié)構(gòu)在反向重放時可以被分解成每個都具有一個關(guān)鍵幀的子BOF組,。例如,DVD的VOBU可以被視為由許多子BOF組構(gòu)成的大的BOF。
如果BOF含有多個I-幀,則其可以被分解成多個子BOF組,每個組具有單個I-幀,且每個子BOF組由從一個I-幀至下一個I-幀的幀跨度而形成。
典型的反向表示器執(zhí)行子BOF組的塊級反向表示。因此,每個子BOF組的幀在解碼時反向。每個子BOF組的第一幀可以被高速緩存,用于下一個子BOF組的解碼。
例如,假設(shè)輸入BOF為I1B2B3P4B5B6I7B8B9P10B11I12B13I14。從I-幀至I-幀的有效的子BOF是BOF1=I1B2B3P4B5B6I7BOF2=I7B8B9P10B11I12BOF3=I12B13I14在BOF3被解碼之后,當產(chǎn)生B11幀同時表示BOF2時,幀I12可以被保持。
因此,可以在圖3的步驟310或圖4的步驟410中期間執(zhí)行此運行。在那些步驟的操作期間,接收的BOF被分解成多個子BOF組。其余的每個過程對子BOF組進行操作,當完成時它們返回到開始處,以便對下一個子BOF進行操作。
具有復雜BOF結(jié)構(gòu)的其它格式的擴展部分在最普通的視頻流格式中,B-幀是專用的非參考幀。但是,存在其它的復雜格式,例如H.264標準。這些格式具有更復雜的BOF結(jié)構(gòu),例如具有分級的參考幀的BOF。在這些復雜的格式中,B-幀可以用作其它B-幀的參考幀。
例如,假設(shè)存在序列I1B2B3B4B5B6I7B8B9B10B11B12I13B14I15的BOF結(jié)構(gòu),如圖5的BOF 500所示。
在此示例中,BOF 500包括參考幀510和非參考幀520。這些參考幀中的一些幀(特別是B2B4B6B8B11B14)是B-幀,并且通常只作為非參考幀。但是,在這些具有分級參考幀的復雜BOF結(jié)構(gòu)中,這些B-幀是參考幀,因為其它的幀(特別是B3B5B9B10B12B14)依賴于它們。其可以被分解成三個子BOF,530、532和534。
典型的反向表示器執(zhí)行塊反向分解(如上所述),該分解可以被應(yīng)用到參考幀之間的每個區(qū)間(例如每個子BOF)。例如,圖5的子BOF 3(534)可以被反向并被表示。幀I13可以被高速緩存并用于反向和播放子BOF 2(532)。類似地,幀I7可以被高速緩存并用于反向和播放子BOF 1(530)。塊反向也可以用于偽參考幀515之間的子BOF。例如,B2...B6的子BOF 530可被分別分解成由B4...B6和B2...B4構(gòu)成的兩個子子BOF。每個子子BOF可被單獨的反向。
或者,典型的反向表示器可以用其它的方式分解BOF,例如當其知道“區(qū)間參考幀”之間的參考幀的數(shù)量時。此處,區(qū)間參考幀是劃分每個間隔的I-幀,例如圖5中的I1、I7、I13和I15。子BOF1(530)的區(qū)間具有五個參考和偽參考幀(I1B2B4B6I7)和兩個非參考幀(B3B5)。
通過使用深度第一橫貫(traversavl)使BOF層級線性化,典型的反向表示器可以分配關(guān)鍵幀的高速緩存位置。這將大量的幀緩沖器分配給含有大量需要被重復解碼的幀的分支。
有效的區(qū)間寬度等于區(qū)間內(nèi)參考幀的數(shù)量。分支中參考幀的數(shù)量有助于分配區(qū)間的權(quán)重。分支的權(quán)重是該區(qū)間及其所有子區(qū)間所需的幀緩沖器的最小數(shù)量。
具有部分幀解碼相關(guān)性的其它格式的擴展部分在最普通的視頻流格式中,產(chǎn)生的幀是完全由其它幀產(chǎn)生的。例如,B-幀可由兩個相鄰的關(guān)鍵幀重構(gòu)。但是,也存在其它的更復雜的格式,例如H.264,其中幀可以被細分成更小的區(qū)域。幀可以被分成片(16像素高帶),片可以被分成宏塊(16×16像素塊),宏塊可以被分成子宏塊(四分之一或二分之一宏塊)等等。
通過用其它幀的一部分和修正因子來只替換幀的一部分從而執(zhí)行修改,幀可以被編碼為先前幀的副本。
這些復雜因素并不影響典型的反向表示器的方法。非參考幀仍被定義為不用于產(chǎn)生其它幀的幀,而如果其仍被要求用于產(chǎn)生其它幀,則該幀為參考幀。
對于給定的GOP,典型的反向表示器創(chuàng)建直接的非循環(huán)相關(guān)性圖,類似于圖5所示。
典型的反向解碼器的方法實施例圖6顯示了由媒體流再現(xiàn)系統(tǒng)200(或其一部分)執(zhí)行的典型的反向表示器的方法實施例。這個方法實施例可以由軟件、硬件或其組合來執(zhí)行。
在圖6的610,典型的反向表示器將復雜的BOF分成多個區(qū)間,每個區(qū)間至少具有一個參考幀。
在612,典型的反向表示器對每個區(qū)間執(zhí)行塊反向分解。
在614,將每個區(qū)間分成子區(qū)間,每個子區(qū)間具有至少一個偽參考幀。
在616,典型的反向表示器對每個子區(qū)間執(zhí)行塊反向分解。
對子區(qū)間的每個級層重復步驟614和616。
計算解碼的成本通過此處所述的至少一種實施例,假設(shè)解碼參考幀(例如,I-/P-幀)的成本。更具體地,可以假設(shè)I-幀和P-幀的相對成本。
除了假設(shè)這些相對解碼成本,此處所述的方法實施例還可以計算解碼I-幀和P-幀的相對成本。
典型的環(huán)境圖7顯示了典型的環(huán)境700,在其中可以實施(部分或整體)此處所述的技術(shù)、系統(tǒng)和其它方面。典型的反向表示器700是電視娛樂系統(tǒng),其促進了多媒體的分配。典型的數(shù)字視頻廣播(DVB)網(wǎng)絡(luò)是這種環(huán)境的一個示例。
環(huán)境700包括一個或多個多媒體內(nèi)容提供者702、內(nèi)容分配系統(tǒng)706和一個或多個顯示設(shè)備708(1)、708(2)、...、708(N),其經(jīng)過廣播網(wǎng)絡(luò)710連接到內(nèi)容分配系統(tǒng)706。
多媒體內(nèi)容提供者702包括內(nèi)容服務(wù)器712和存儲的內(nèi)容714,例如電影、電視節(jié)目、商業(yè)廣告、音樂和類似的音頻和/或視頻內(nèi)容。內(nèi)容服務(wù)器712控制存儲的內(nèi)容714從內(nèi)容提供者702到內(nèi)容分配系統(tǒng)706的分配。此外,內(nèi)容服務(wù)器702控制實時內(nèi)容(例如,沒有事先存儲的內(nèi)容,例如實況轉(zhuǎn)播提供的)和/或存儲在其它位置的內(nèi)容到內(nèi)容分配系統(tǒng)706的分配。
內(nèi)容分配系統(tǒng)706可以連接到網(wǎng)絡(luò)720,例如經(jīng)過內(nèi)聯(lián)網(wǎng)或因特網(wǎng)。內(nèi)容分配系統(tǒng)706包括廣播發(fā)射器728和一個或多個內(nèi)容處理器730。廣播發(fā)射器728經(jīng)過廣播網(wǎng)絡(luò)710發(fā)射信號,例如有線電視信號。
內(nèi)容分配系統(tǒng)706表示數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù),其向多個用戶提供多媒體內(nèi)容。
廣播網(wǎng)絡(luò)710可以包括有線電視網(wǎng)絡(luò)、RF、微波、衛(wèi)星、和/或例如因特網(wǎng)的數(shù)據(jù)網(wǎng),也可以包括使用任何廣播制式或廣播協(xié)議的有線或無線媒體。此外,廣播網(wǎng)絡(luò)710可以是使用任何類型的網(wǎng)絡(luò)拓撲結(jié)構(gòu)和任何網(wǎng)絡(luò)通信協(xié)議的任何類型的網(wǎng)絡(luò),可以被表示或以其它方式實施為兩種或多種網(wǎng)絡(luò)的組合。
在經(jīng)過廣播網(wǎng)絡(luò)708傳送該內(nèi)容之前,內(nèi)容處理器730處理從內(nèi)容提供者702接收的內(nèi)容。特別的內(nèi)容處理器730可以編碼,或以其它方式將接收的內(nèi)容處理成可被連接到廣播網(wǎng)絡(luò)710的多個顯示設(shè)備708(1)、708(2)、...、708(N)識別的格式。
顯示設(shè)備708可以多種方式來實施。例如,顯示設(shè)備708(1)從基于衛(wèi)星的發(fā)射器經(jīng)過衛(wèi)星天線734接收廣播內(nèi)容。顯示設(shè)備708(1)也被稱作機頂盒或衛(wèi)星接收設(shè)備。顯示設(shè)備708(1)連接到電視736(1)以及圖形用戶接口,用于顯示由顯示設(shè)備接收的內(nèi)容(例如,音頻數(shù)據(jù)和視頻數(shù)據(jù))。特別的顯示設(shè)備708可以連接到任何數(shù)量的電視736和/或類似的可以用于顯示或以其它方式再現(xiàn)內(nèi)容的設(shè)備。類似地,任何數(shù)量的顯示設(shè)備708可以連接到單個電視736。
顯示設(shè)備708(2)也被連接用于從廣播網(wǎng)絡(luò)710接收廣播內(nèi)容,并將接收的內(nèi)容提供到相關(guān)的電視736(2)。顯示設(shè)備708(N)是電視738和集成的機頂盒740的組合的一個例子。在此示例中,機頂盒的各種部件和功能被結(jié)合在電視中,而不是使用兩個分開的設(shè)備。結(jié)合在電視中的機頂盒可以經(jīng)過衛(wèi)星天線(類似于衛(wèi)星天線734)和/或經(jīng)過廣播網(wǎng)絡(luò)710接收廣播信號,在可選的實施例中,顯示設(shè)備706可以經(jīng)過因特網(wǎng)或任何其它的廣播媒體接收廣播信號。
典型的環(huán)境700也包括存儲的點播內(nèi)容742,例如視頻點播(VOD)電影內(nèi)容??赏ㄟ^屏幕上的電影指南由顯示設(shè)備708來瀏覽存儲的點播內(nèi)容,例如,瀏覽者可以輸入指令將特定的電影或其它的存儲內(nèi)容下載到對應(yīng)的顯示設(shè)備708。
迄今為止,已經(jīng)根據(jù)數(shù)字視頻廣播(DVB)環(huán)境說明了該典型的環(huán)境700。實際上,這是一個典型的環(huán)境。但是,在其沒有整個DVB環(huán)境的情況下也可以實施該典型的反向表示器。替代的,其可以通過例如設(shè)備708(X)所示的單機顯示設(shè)備來實施。
單機顯示設(shè)備708(X)從存儲介質(zhì)744(例如DVD盤)中存取數(shù)字視頻。其將內(nèi)容從介質(zhì)提供到相關(guān)的電視739。這樣的單機顯示設(shè)備的例子包括DVD播放器、個人視頻記錄機等。
典型的顯示設(shè)備圖8顯示了顯示設(shè)備708的典型實施例800,如連接到電視736的單機單元所示。顯示設(shè)備708可以以任何數(shù)量的實施例來實施,包括作為機頂盒、衛(wèi)星接收機、具有硬盤的TV記錄機、游戲控制臺、信息裝置、DVD播放器、個人視頻記錄機以及前述的設(shè)備。
顯示設(shè)備708包括無線接收端口802,例如紅外(IR)或藍牙無線端口,用于從遙控器804、手持輸入設(shè)備806或例如無線鍵盤的任何其它的無線設(shè)備接收無線通信。手持輸入設(shè)備806可以是個人數(shù)字助手(PDA)、手持計算機、無繩電話等。此外,無線鍵盤808被連接用于與顯示設(shè)備708通信。在可選的實施例中,遙控器804、手持設(shè)備806和/或鍵盤808可以使用RF通信鏈接或其它方式發(fā)射,以便與顯示設(shè)備708通信。
顯示設(shè)備708可以具有存儲介質(zhì)讀取器809,用于讀取內(nèi)容存儲介質(zhì),例如DVD盤。單機或非單機顯示設(shè)備708可以包括存儲介質(zhì)讀取器809。
顯示設(shè)備708可以從一個或多個廣播源(例如從衛(wèi)星或從廣播網(wǎng)絡(luò))接收一個或多個廣播信號810。顯示設(shè)備708包括硬件和/或軟件,用于接收和解碼廣播信號810,例如NTSC、PAL、SECAM或其它TV系統(tǒng)視頻信號。
顯示設(shè)備708也包括硬件和/或軟件,用于為用戶提供圖形用戶接口,例如通過該接口用戶可以訪問各種網(wǎng)絡(luò)服務(wù),配置顯示設(shè)備708以及執(zhí)行其它的功能。
顯示設(shè)備708可以經(jīng)過一個或多個連接與其它的設(shè)備通信,連接包括電話鏈接812、ISDN鏈接814、電纜鏈接816、以太網(wǎng)鏈接818、DSL鏈接820等。顯示設(shè)備708可以在特定的時刻使用一個或多個各種通信鏈接812-820,以便與任何數(shù)量的其它設(shè)備通信。
顯示設(shè)備708產(chǎn)生視頻信號820和音頻信號822,兩者都被傳到電視736。視頻信號和音頻信號可以經(jīng)過RF(射頻)鏈接、S-視頻鏈接、復合視頻鏈接、組合視頻鏈接或其它通信鏈接從顯示設(shè)備708傳到電視736。
盡管圖8中沒有顯示,但是顯示設(shè)備708可以包括一個或多個用于識別設(shè)備當前狀態(tài)的發(fā)光體和其它的指示器。此外,顯示設(shè)備可以包括一個或多個控制按鈕、開關(guān)或其它用于控制設(shè)備的操作的可選控制。
圖9顯示了圖7和8中所示的顯示設(shè)備708的所選部件。顯示設(shè)備708包括第一調(diào)諧器900和可選的第二調(diào)諧器902。這些調(diào)諧器可被稱作接收單元。調(diào)諧器900和902表示一個或多個帶內(nèi)調(diào)諧器,其調(diào)諧各種頻率和信道以接收電視信號,也表示用于調(diào)諧廣播信道的帶外調(diào)諧器,其中其它內(nèi)容可以在廣播信道上發(fā)射到顯示設(shè)備708。
顯示設(shè)備708也包括一個或多個處理器304和一個或多個存儲器部件??赡艿拇鎯ζ鞑考睦影S機存取存儲器(RAM)906、盤驅(qū)動器908、大容量存儲部件910和非易失性存儲器912(例如,ROM、閃存、EPROM、EEPROM等)。
顯示設(shè)備708的可選實施例可以包括一定范圍的處理和存儲器容量,并且可以包括比圖9所示的更多或更少類型的存儲器部件。
處理器904處理各種指令,以便控制顯示設(shè)備708的操作,以及與其它電子和計算設(shè)備通信。存儲部件(例如,RAM 906、盤驅(qū)動器908、存儲媒體910和非易失性存儲器912)存儲各種信息和/或數(shù)據(jù),例如多媒體數(shù)據(jù)、電子程序數(shù)據(jù)、網(wǎng)頁內(nèi)容數(shù)據(jù)、顯示設(shè)備708的配置信息、和/或圖形用戶接口信息。設(shè)備可以將數(shù)據(jù)高速緩存到這些存儲部件的任何一種內(nèi)。
操作系統(tǒng)914和一個或多個應(yīng)用程序916可以存儲在非易失性存儲器912中,并在處理器904上運行,以便提供運行時間環(huán)境。運行時間環(huán)境通過允許定義各種接口,反過來允許應(yīng)用程序916與顯示設(shè)備708交互,從而促進了顯示設(shè)備708的擴展性。
可以在顯示設(shè)備708上實施的應(yīng)用程序916可以包括電子程序指南(EPG)、方便電子郵件的電子郵件程序等。
顯示設(shè)備708也可以包括電視娛樂系統(tǒng)固有的其它部件,出于簡單的目的在此例子中沒有顯示。例如,顯示設(shè)備708可以包括用戶接口應(yīng)用程序和用戶接口發(fā)光體、按鈕、控制等,以方便瀏覽者與設(shè)備交互。
顯示設(shè)備708也包括解碼器920,以解碼廣播視頻信號,例如NTSC、PAL、SECAM或其它的TV系統(tǒng)視頻信號。其也可以是用于解碼數(shù)字壓縮視頻流(例如,按照MPEG形成的)的解碼器。這可以是與圖2的解碼器210、212和214相同類型的解碼器。
顯示設(shè)備708還包括無線接口922、網(wǎng)絡(luò)接口924、串行和/或并行接口926以及調(diào)制解調(diào)器928。無線接口922允許顯示設(shè)備708從用戶操作的輸入單元,例如從遠程控制設(shè)備或從其它的IR、藍牙或類似的RF輸入設(shè)備中接收輸入指令和其它的信息。
網(wǎng)絡(luò)接口924和串行和/或并行接口926允許顯示設(shè)備708經(jīng)過各種通信鏈接與其它的電子和計算設(shè)備交互和通信。盡管沒有顯示,顯示設(shè)備708也可以包括其它類型的數(shù)據(jù)通信接口,以便與其它的設(shè)備通信。調(diào)制解調(diào)器928方便顯示設(shè)備708經(jīng)過傳統(tǒng)的電話線與其它的電子和計算設(shè)備通信。
顯示設(shè)備708也包括視頻/音頻輸出930,其將信號提供給電視或處理和/或顯示或以其它方式再現(xiàn)視頻和音頻數(shù)據(jù)的其它設(shè)備。此輸出可被稱作顯示器。
顯示設(shè)備708也可以包括解碼控制器940,其部分和整體實施該典型的反向表示器。其可以是應(yīng)用程序或硬件部件(或二者的組合)。
盡管分開的顯示,但是顯示設(shè)備708的一些組件可以實施在特定用途集成電路(ASIC)中。此外,系統(tǒng)總線(沒有顯示)通常連接顯示設(shè)備708內(nèi)的各種部件。
典型的計算系統(tǒng)和環(huán)境圖10顯示了適當?shù)挠嬎悱h(huán)境1000的例子,在該環(huán)境內(nèi)可以實施(或者全部或者部分)如此處所述的典型的反向表示器。計算環(huán)境1000可以被用于此處所述的計算機和網(wǎng)絡(luò)結(jié)構(gòu)中。
典型的計算系統(tǒng)1000只是計算系統(tǒng)的一個例子,并不意味著對計算和網(wǎng)絡(luò)結(jié)構(gòu)的使用范圍或功能施加任何限制。計算系統(tǒng)1000或者應(yīng)當被解釋為具有任何相關(guān)性,或者是要求涉及典型的計算環(huán)境1000中所示的任何一個部件或部件的組合。
典型的反向表示器可以通過多種其它一般目的或具體目的的計算系統(tǒng)環(huán)境或配置來實施。已知的計算系統(tǒng)、環(huán)境、和/或配置的例子可以適用于使用包括(但不限于)個人計算機、服務(wù)器計算機、薄的客戶端、厚的客戶端、手持或臺式設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)PC、微機、大型計算機、包括任何上述的系統(tǒng)或設(shè)備的分配式計算環(huán)境等。
典型的反向表示器可以以計算機可執(zhí)行指令的一般背景來說明,計算機可執(zhí)行指令例如通過計算機運行的程序模塊。通常,程序模塊包括例行程序、程序、對象、要素、數(shù)據(jù)結(jié)構(gòu)等,用于執(zhí)行特定任務(wù)或?qū)嵤┨囟ㄕ獢?shù)據(jù)類型。典型的反向表示器也可以以分配式計算環(huán)境來實施,其中通過經(jīng)由通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備來執(zhí)行任務(wù)。在分配式計算環(huán)境中,程序模塊可以位于本地和遠程計算機的包括存儲器存儲設(shè)備的存儲媒體上。
計算環(huán)境1000包括計算機1002形式的通用計算設(shè)備,其可以是顯示設(shè)備708的另一個例子。計算機1002的部件可以包括(但不限于)一個或多個處理器或處理單元1004、系統(tǒng)存儲器1006和系統(tǒng)總線1008,其將包括處理器1004的各種系統(tǒng)部件連接到系統(tǒng)存儲器1006。
系統(tǒng)總線1008表示使用任何各種總線結(jié)構(gòu)的一種或多種的任何幾種類型的總線結(jié)構(gòu),包括使用任何的各種總線結(jié)構(gòu)的存儲器總線或存儲器控制器、外圍總線、圖形加速接口或本地總線。作為示例,這樣的結(jié)構(gòu)可以包括卡總線(CardBus)、個人計算機存儲卡國際協(xié)會(PCMCIA)、加速圖形接口(AGP)、小型計算機系統(tǒng)接口(SCSI)、通用串行總線(USB)、IEEE 1394、視頻電子標準協(xié)會(VESA)本地總線,以及也被稱作夾層總線(Mezzanine bus)的周邊元件擴展接口(PCI)總線。
計算機1002通常包括各種計算機可讀媒體。這樣的媒體可以是任何可用的媒體,其可通過計算機1002存取,并包括易失性和非易失性媒體,以及可移動和不可移動的媒體。
系統(tǒng)存儲器1006包括易失性存儲器形式的計算機可讀媒體,例如隨機存取存儲器(RAM)1010,和/或非易失性存儲器,例如只讀存儲器(ROM)1012。含有基本例了程序的基本輸入/輸出系統(tǒng)(BIOS)1014被存儲在ROM 1012中,基本例行程序例如在啟動期間有助于在計算機1002內(nèi)的元件之間傳遞信息的。RAM1010通常包括數(shù)據(jù)和/或程序模塊,通過處理單元1004可立即存取這些模塊和/或立即對其操作。
計算機1002也可以包括其它的可移動/不可移動的、易失性/非易失性的計算機存儲媒體。作為示例,圖10顯示了用于讀取和寫入不可移動的、非易失性磁媒體(沒有顯示)的硬盤驅(qū)動器1016,用于讀取和寫入可移動的、非易失性磁盤1020(例如,軟盤)的磁盤驅(qū)動器1018,以及用于讀取和/或?qū)懭肟梢苿拥摹⒎且资怨獗P1024(例如,CD-ROM、DVD-ROM或其它光學媒體)的光盤驅(qū)動器1022。硬盤驅(qū)動器1016、磁盤驅(qū)動器1018和光盤驅(qū)動器1022,每個都通過一個或多個數(shù)據(jù)媒體接口1 026連接到系統(tǒng)總線1008。或者,硬盤驅(qū)動器1016、磁盤驅(qū)動器1018和光盤驅(qū)動器1022可以通過一個或多個接口(沒有顯示)連接到系統(tǒng)總線1008。
盤驅(qū)動器和與它們相關(guān)的計算機可讀媒體提供非易失性存儲的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和計算機1002的其它數(shù)據(jù)。盡管示例顯示了硬盤1016、可移動的磁盤1020和可移動的光盤1024,但是應(yīng)當意識到,其它類型的可以存儲由計算機存取的數(shù)據(jù)的計算機可讀媒體也可以用于實施該典型的計算系統(tǒng)和環(huán)境,例如,盒式磁帶或其它的磁存儲設(shè)備、閃存卡、CD-ROM、數(shù)字通用盤(DVD)或其它的光學存儲器、隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)等。
任何數(shù)量的程序模塊可以存儲在硬盤1016、磁盤1020、光盤1024、ROM1012、和/或RAM1010上,作為示例,程序模塊包括操作系統(tǒng)1026、一個或多個應(yīng)用程序1028以及程序數(shù)據(jù)1032。
用戶可以經(jīng)過輸入設(shè)備,例如鍵盤1034和定點設(shè)備1036(例如“鼠標”)將指令和信息輸入到計算機1002中。其它的輸入設(shè)備1038(沒有具體顯示)可以包括麥克風、操縱桿、游戲鍵盤、衛(wèi)星天線、串口、掃描儀和/或類似設(shè)備。這些和其它的輸入設(shè)備經(jīng)過連接到系統(tǒng)總線1008的輸入/輸出接口1040而連接到處理單元1004,但是也可以通過其它的接口和總線結(jié)構(gòu)來連接,例如并口、游戲端口或通用串行總線(USB)。
監(jiān)視器1042或其它類型的顯示設(shè)備可以經(jīng)過接口,例如視頻適配器1044連接到系統(tǒng)總線1008。除了監(jiān)視器1042之外,其它的輸出外圍設(shè)備可以包括例如揚聲器(沒有顯示)和打印機1046的部件,其可以經(jīng)過輸入/輸出接口1040連接到計算機1002。
計算機1002可以工作在網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)環(huán)境使用邏輯連接到一個或多個遠程計算機,例如遠程計算設(shè)備1048。作為示例,遠程計算設(shè)備1048可以是個人計算機、便攜式計算機、服務(wù)器、路由器、網(wǎng)絡(luò)計算機、同等設(shè)備或其它公用網(wǎng)絡(luò)節(jié)點等。遠程計算設(shè)備1048被示例顯示為便攜式計算機,其可以包括此處所述的有關(guān)于計算機1002的許多或全部的元件和特征。
計算機1002與遠程計算機1048之間的邏輯連接被表示為局域網(wǎng)(LAN)1050,和一般的廣域網(wǎng)(WAN)1052。這樣的網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)寬的計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是很平常的。
當以LAN網(wǎng)絡(luò)環(huán)境實施時,計算機1002經(jīng)過網(wǎng)絡(luò)接口或適配器1054連接到本地網(wǎng)絡(luò)1050。當在WAN網(wǎng)絡(luò)環(huán)境中實施時,計算機1002通常包括調(diào)制解調(diào)器1056或其它用于在廣域網(wǎng)1052上建立通信的裝置。調(diào)制解調(diào)器1056可以是計算機1002的內(nèi)部或外部設(shè)備,其可以經(jīng)過輸入/輸出接口1040或其它適當?shù)臋C構(gòu)連接到系統(tǒng)總線1008。應(yīng)當意識到,示例的網(wǎng)絡(luò)連接是典型的,也可以采用在計算機1002與1048之間建立通信鏈接的其它裝置。
在網(wǎng)絡(luò)環(huán)境中,例如示例的計算環(huán)境1000,程序模塊相對于計算機1002被描述,或其部分可以存儲在遠程存儲器存儲設(shè)備上。作為示例,遠程應(yīng)用程序1058位于遠程計算機1048的存儲設(shè)備中。
出于示例的目的,應(yīng)用程序和其它的可執(zhí)行程序部件,例如操作系統(tǒng),在此作為分開的塊被表示,盡管如此,應(yīng)該意識到這樣的程序和部件存在于各個時期的計算設(shè)備1002的不同存儲部件中,并且通過計算機的數(shù)據(jù)處理器來運行。
計算機可執(zhí)行指令可以以計算機可執(zhí)行指令的一般背景來說明典型的反向表示器的實施例,計算機可執(zhí)行指令例如是由一個或多個計算機或其它設(shè)備運行的程序模塊。通常,程序模塊包括例行程序、程序、對象、要素、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定的任務(wù)或?qū)嵤┨囟ǖ恼獢?shù)據(jù)類型。通常,可以按照各個實施例所期望的來組合或分配程序模塊的功能。
計算機可讀媒體典型的反向表示器的實施例可以存儲在一些形式的計算機可讀媒體上或經(jīng)過一些形式的計算機可讀媒體來傳輸。計算機可讀媒體可以是任何可通過計算機存取的可用媒體。作為示例(沒有限制性),計算機可讀媒體可以包括“計算機存儲媒體”和“通信媒體”。
“計算機存儲媒體”包括以任何方法和技術(shù)實施的易失性和非易失性的、可移動和不可移動的媒體,用于存儲信息,例如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)。計算機存儲媒體包括(但不限于)RAM、ROM、EEPROM、閃存或其它的存儲器技術(shù)、CD-ROM、數(shù)字通用盤(DVD)或其它的光學存儲器、盒式磁帶、磁帶、磁盤存儲器或其它的磁存儲設(shè)備,或任何其它可用于存儲想要的信息且可由計算機存取的介質(zhì)。
“通信媒體”通常包括計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或以調(diào)制的數(shù)據(jù)信號形式的其它數(shù)據(jù)、例如載波或其它傳輸機制。通信媒體也包括任何信息傳遞媒體。
術(shù)語“調(diào)制的數(shù)據(jù)信號”意為具有一個或多個特征集的或以可將信息編碼在信號中的方式被改變的信號。作為示例(沒有限制性),通信媒體包括有線媒體,例如有線網(wǎng)絡(luò)或直接有限連接,還包括無線媒體,例如聲學的、RF、紅外和其它無線媒體。上述方式的任何組合也包含在計算機可讀媒體的范圍內(nèi)。
結(jié)論盡管已經(jīng)以專用于結(jié)構(gòu)特征和/或方法步驟的語言說明了本發(fā)明,但是應(yīng)當理解,權(quán)利要求中定義的本發(fā)明并不限于所述的具體特征或步驟。確切的是,具體的特征和步驟作為實施所要求保護的本發(fā)明的優(yōu)選形式來說明。
權(quán)利要求
1.一種具有計算機可執(zhí)行指令的計算機可讀介質(zhì),當計算機運行該指令時,其執(zhí)行一種促進媒體流的幀塊(BOF)的反向表示的方法,該BOF是具有已定義正向表示順序的幀的序列,每個幀被分類為參考幀或非參考幀,參考幀是具有BOF中至少一個其它幀用作對其固有已編碼數(shù)據(jù)解碼的參考的數(shù)據(jù)的幀,而非參考幀是具有不被BOF中另一幀所參考的已編碼數(shù)據(jù)的幀,該方法包括獲得媒體流的BOF;正向解碼和存儲BOF的一個或多個已解碼的參考幀;存儲BOF的非參考幀,而其數(shù)據(jù)仍被編碼;以從序列的最后幀開始的序列的反向順序,對于含有非參考幀和至少一個相鄰參考幀的每個子序列重復下面過程,并持續(xù)該重復過程直到達到第一幀為止●如果反向順序中下一個將被表示的幀是參考幀,則表示BOF中該參考幀;●產(chǎn)生BOF中的非參考幀的下一個將被表示的子序列;●以序列的反向順序表示一個或多個剛產(chǎn)生的非參考幀;●釋放存儲了剛被表示的非參考幀的存儲器;以及●如果反向順序中下一個將被表示的幀是參考幀,則表示BOF中的該參考幀;表示序列的第一參考幀。
2.如權(quán)利要求1所述的介質(zhì),其中對每個剛產(chǎn)生的非參考幀的表示發(fā)生在下一個將被表示的子序列的每個非參考幀產(chǎn)生之后。
3.如權(quán)利要求1所述的介質(zhì),其中釋放發(fā)生在剛表示的非參考幀參考的所有參考幀表示之后。
4.如權(quán)利要求1所述的介質(zhì),進一步包括釋放存儲了一個或多個剛表示的參考幀的存儲器。
5.如權(quán)利要求1所述的介質(zhì),其中該方法進一步包括接收由序列中多個BOF構(gòu)成的超級BOF,其中每個BOF具有一個關(guān)鍵幀,其不依賴于其它的幀而解碼;將該超級BOF分解成多個BOF;重復權(quán)利要求1所述的步驟,其中多個BOF中不同的一個以該超級BOF中的BOF序列的反向順序被提供給獲得步驟。
6.如權(quán)利要求1所述的介質(zhì),其中該方法進一步包括接收由序列中多個BOF構(gòu)成的超級BOF,其中每個BOF具有一個在序列開始處的不依賴于其它幀而解碼的關(guān)鍵幀,以及一個在序列結(jié)束處的不依賴于其它幀而解碼但是是下一個邏輯BOF的一部分的關(guān)鍵幀;將該超級BOF分解成多個BOF;重復權(quán)利要求1所述的步驟,其中多個BOF中不同的一個以該超級BOF中的BOF序列的反向順序被提供給獲得步驟。
7.一種計算設(shè)備,包括一個輸入設(shè)備,配置用于接收媒體流;一個顯示設(shè)備,配置用于顯示所要表示的幀;一個如權(quán)利要求1所述的介質(zhì)。
8.一種具有計算機可執(zhí)行指令的計算機可讀介質(zhì),當計算機運行該指令時,其執(zhí)行一種促進媒體流的幀塊(BOF)的反向表示的方法,該BOF是具有已定義正向表示順序的幀的序列,每個幀被分類為參考幀或非參考幀,參考幀是具有至少一個其它幀用作對其固有已編碼數(shù)據(jù)解碼的參考的數(shù)據(jù)的幀,而非參考幀是具有不被BOF中另一幀所參考的已編碼數(shù)據(jù)的幀,該方法包括獲得媒體流的BOF;正向解碼BOF的一個或多個參考幀;存儲BOF的已解碼的參考幀;存儲BOF的其數(shù)據(jù)仍被編碼的非參考幀;以序列的反向順序,選擇地解碼非參考幀;以反向順序表示該序列;釋放存儲了已經(jīng)表示的非參考幀的存儲器。
9.如權(quán)利要求8所述的介質(zhì),其中該方法還包括以序列的反向順序選擇地解碼參考幀。
10.如權(quán)利要求8所述的介質(zhì),其中在以反向順序表示BOF的任何幀之前,少于所有的非參考幀被解碼。
11.如權(quán)利要求8所述的介質(zhì),其中釋放進一步包括,在參考剛被表示的參考幀的所有非參考幀被表示之后,釋放存儲了剛被表示的非參考幀的存儲器。
12.如權(quán)利要求8所述的介質(zhì),其中釋放進一步包括,在參考剛被表示的參考幀的所有非參考幀被表示之后,釋放存儲了剛被表示的非參考幀的存儲器,其中該方法進一步包括使用這樣的存儲器以便有助于解碼將被表示的幀的子序列。
13.如權(quán)利要求8所述的介質(zhì),其中該方法進一步包括接收由序列中多個BOF構(gòu)成的超級BOF,其中每個BOF具有一個關(guān)鍵幀,其不依賴于其它的幀而解碼;將該超級BOF分解成多個BOF;重復權(quán)利要求8所述的步驟,其中多個BOF中不同的一個以該超級BOF中的BOF序列的反向順序被提供給獲得步驟。
14.一種計算設(shè)備,包括一個輸入設(shè)備,配置用于接收媒體流;一個顯示設(shè)備,配置用于顯示所要表示的幀;一個如權(quán)利要求8所述的介質(zhì)。
15.一種具有計算機可執(zhí)行指令的計算機可讀介質(zhì),當計算機運行該指令時,其執(zhí)行一種促進媒體流的幀塊(BOF)的反向表示的方法,該BOF是具有已定義正向表示順序的幀的序列,包括其后跟隨多個已編碼幀的關(guān)鍵幀,已編碼幀逐步依賴于在其之前用于產(chǎn)生的序列中的一個或多個幀,該方法包括獲得媒體流的BOF;在BOF的結(jié)束處開始,對BOF表示的所有非關(guān)鍵幀,重復以下過程選擇將被表示的這些幀的一個或多個幀;以反向順序,確定哪個幀是下一個將被表示的幀;如果下一個將被表示的幀已經(jīng)產(chǎn)生,并且存儲在存儲器中,則表示該下一個將被表示的幀,否則●產(chǎn)生在下一個將被表示的幀之前的、對于產(chǎn)生下一個將被表示的幀是必要的幀,但是僅產(chǎn)生沒有存儲在該存儲器中的幀;●在產(chǎn)生期間,存儲通過選擇步驟選擇的該產(chǎn)生的幀;●進一步產(chǎn)生下一個將被表示的幀;●表示下一個將被表示的幀;作為條件的優(yōu)點,重復選擇、確定的動作,以及如果、則、否則等條件動作,直到BOF的關(guān)鍵幀被表示為止。
16.如權(quán)利要求15所述的介質(zhì),其中產(chǎn)生步驟和進一步產(chǎn)生步驟包括基于其擁有的數(shù)據(jù)以及基于BOF中其它幀的數(shù)據(jù)解碼幀。
17.如權(quán)利要求15所述的介質(zhì),其中存儲步驟包括只存儲通過選擇步驟選擇的該產(chǎn)生的幀。
18.如權(quán)利要求15所述的介質(zhì),其中在表示之后,該方法進一步包括釋放存儲了剛被表示的幀的存儲器。
19.如權(quán)利要求15所述的介質(zhì),其中該方法進一步包括存儲BOF的其數(shù)據(jù)仍被編碼的非參考幀,非參考幀是具有已編碼數(shù)據(jù)的幀,該已編碼的數(shù)據(jù)不被BOF中其它幀所參考;以序列的反向順序,選擇地解碼非參考幀。
20.如權(quán)利要求15所述的介質(zhì),其中該方法進一步包括存儲BOF的其數(shù)據(jù)仍被編碼的非參考幀,非參考幀是具有已編碼數(shù)據(jù)的幀,該已編碼的數(shù)據(jù)不被BOF中其它幀所參考;以序列的反向順序,選擇地解碼參考幀和非參考幀。
21.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行二元細分以基本上識別用于選擇的大約m幀。
22.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的參考幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行二元細分以基本上識別用于選擇的大約m幀。
23.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行二元細分以基本上識別用于選擇的m或更少的幀。
24.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的參考幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行二元細分以基本上識別用于選擇的m或更少的幀。
25.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行遞歸細分以基本上識別用于選擇的大約m幀,其中幀的選擇在朝向序列中剩余的將被表示的幀的結(jié)束處被更重的加權(quán)。
26.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的參考幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行遞歸細分以基本上識別用于選擇的大約m幀,其中幀的選擇在朝向序列中剩余的將被表示的幀的結(jié)束處被更重的加權(quán)。
27.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行遞歸細分以基本上識別用于選擇的大約m幀,其中幀的選擇在朝向序列中剩余的將被表示的幀的結(jié)束處被更重的加權(quán),并且?guī)倪x擇產(chǎn)生與反向的算術(shù)序列成比例的間隔。
28.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀;參考存儲在存儲器中的一個或多個選擇表以識別用于選擇的m或更少的幀。
29.如權(quán)利要求15所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的參考幀;映射序列中剩余的將被表示的幀;參考存儲在存儲器中的一個或多個選擇表以識別用于選擇的m或更少的幀。
30.如權(quán)利要求15所述的介質(zhì),其中該方法進一步包括接收由序列中多個BOF構(gòu)成的超級BOF,其中每個BOF具有一個不依賴于其它的幀而解碼的關(guān)鍵幀;將該超級BOF分解成多個BOF;重復權(quán)利要求15所述的步驟,其中多個BOF中不同的一個以該超級BOF中的BOF序列的反向順序被提供給獲得步驟。
31.如權(quán)利要求15所述的介質(zhì),進一步包括計算解碼幀的成本。
32.如權(quán)利要求15所述的介質(zhì),進一步包括計算關(guān)鍵幀和BOF的一組中的逐步相關(guān)幀的成本。
33.一種計算設(shè)備,包括一個輸入設(shè)備,配置用于接收媒體流;一個顯示設(shè)備,配置用于顯示所要表示的幀;一個如權(quán)利要求15所述的介質(zhì)。
34.一種具有計算機可執(zhí)行指令的計算機可讀介質(zhì),當計算機運行該指令時,其執(zhí)行一種促進媒體流的幀塊(BOF)的反向表示的方法,該BOF是具有已定義正向表示順序的幀的序列,包括其后跟隨多個已編碼幀的關(guān)鍵幀,已編碼幀逐步依賴于在其之前用于解碼的序列中的一個或多個幀,該方法包括獲得媒體流的BOF;在BOF的結(jié)束處開始,對BOF表示的所有非關(guān)鍵幀,重復以下過程●以反向順序,表示下一個將被表示的幀;●在表示下一個將被表示的幀之前,正向解碼在下一個將被表示的幀之前的、對于解碼下一個將被表示的幀是必要的幀;●選擇哪一個已解碼的幀存儲在存儲器中,其中該選擇的產(chǎn)生的幀少于BOF的所有幀;●存儲該選擇的已解碼的幀;進一步表示該關(guān)鍵幀。
35.如權(quán)利要求34所述的介質(zhì),其中選擇的解碼幀是參考幀。
36.如權(quán)利要求34所述的介質(zhì),其中已經(jīng)被解碼和存儲在該存儲器中的幀被排除在正向解碼之外。
37.如權(quán)利要求34所述的介質(zhì),其中已經(jīng)被解碼和存儲在該存儲器中的幀被排除在正向解碼之外,這些被排除的幀在通過選擇步驟選擇的幀之中。
38.如權(quán)利要求34所述的介質(zhì),其中在表示之后,該方法進一步包括釋放存儲了剛被表示的幀的存儲器。
39.如權(quán)利要求34所述的介質(zhì),其中該存儲器進一步用于幫助解碼幀。
40.如權(quán)利要求34所述的介質(zhì),其中該方法進一步包括存儲BOF的其數(shù)據(jù)仍被編碼的非參考幀,非參考幀是具有已編碼數(shù)據(jù)的幀,該已編碼的數(shù)據(jù)不被BOF中其它幀所參考;以序列的反向順序,選擇地解碼非參考幀。
41.如權(quán)利要求34所述的介質(zhì),其中選擇的已解碼幀是參考幀,且其中該方法進一步包括存儲BOF的其數(shù)據(jù)仍被編碼的非參考幀,非參考幀是具有已編碼數(shù)據(jù)的幀,該已編碼的數(shù)據(jù)不被BOF中其它幀所參考;以序列的反向順序,選擇地解碼非參考幀。
42.如權(quán)利要求34所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行遞歸細分以基本上識別用于選擇的大約m幀。
43.如權(quán)利要求34所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的參考幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行遞歸細分以識別用于選擇的m或更少的幀。
44.如權(quán)利要求34所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行遞歸細分以基本上識別用于選擇的大約m幀,其中幀的選擇在朝向序列中剩余的將被表示的幀的結(jié)束處被更重的加權(quán)。
45.如權(quán)利要求34所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀的相對位置;執(zhí)行遞歸細分以基本上識別用于選擇的大約m幀,其中幀的選擇在朝向序列中剩余的將被表示的幀的結(jié)束處被更重的加權(quán),并且?guī)倪x擇產(chǎn)生與反向的算術(shù)序列成比例的間隔。
46.如權(quán)利要求34所述的介質(zhì),其中選擇步驟包括確定存儲器的可用幀緩沖器的數(shù)量m,每個幀緩沖器可以存儲已解碼的幀;映射序列中剩余的將被表示的幀;參考存儲在存儲器中的一個或多個選擇表以識別用于選擇的m或更少的幀。
47.如權(quán)利要求34所述的介質(zhì),其中選擇步驟包括接收由序列中多個BOF構(gòu)成的超級BOF,其中每個BOF具有一個關(guān)鍵幀;將該超級BOF分解成多個BOF;重復權(quán)利要求34所述的步驟,其中多個BOF中不同的一個以該超級BOF中的BOF序列的反向順序被提供給獲得步驟。
48.一種計算設(shè)備,包括一個輸入設(shè)備,配置用于接收媒體流;一個顯示設(shè)備,配置用于顯示要表示的幀;一個如權(quán)利要求34所述的介質(zhì)。
49.如權(quán)利要求34所述的介質(zhì),其中選擇步驟包括接收一組幀,其中解碼對其它幀的片段具有相關(guān)性的幀;確定存儲器的可用幀緩沖器或幀緩沖器片段的數(shù)量m,每個幀緩沖器片段可以存儲部分的已解碼的幀;映射序列中剩余完成的將被表示的幀片段;參考存儲在存儲器中的一個或多個選擇表或使用選擇策略以識別用于選擇的m或更少的幀片段。
50.如權(quán)利要求49所述的介質(zhì),其中該方法進一步包括幀片段包括片、宏塊、子宏塊或子宏塊的片段。
51.如權(quán)利要求49所述的介質(zhì),其中在顯示之后,該方法進一步包括釋放存儲了剛被表示的幀的存儲器。
52.如權(quán)利要求34所述的介質(zhì),進一步包括計算解碼幀的成本。
全文摘要
此處公開了一種方便已編碼的數(shù)字媒體流的反向表示的實施例。摘要本身并不限制本發(fā)明的范圍。本發(fā)明的范圍在后附的權(quán)利要求中指出。
文檔編號H04N5/85GK1725844SQ200510092239
公開日2006年1月25日 申請日期2005年5月17日 優(yōu)先權(quán)日2004年5月17日
發(fā)明者G·J·沙利文, G·F·伊文斯, R·C·B·斯彼得, S·C·羅佛 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
三台县| 镇远县| 肃宁县| 大姚县| 佳木斯市| 佛教| 远安县| 新兴县| 陈巴尔虎旗| 无棣县| 永登县| 积石山| 隆昌县| 方城县| 响水县| 定州市| 大庆市| 藁城市| 麻江县| 潢川县| 开原市| 松溪县| 墨玉县| 凌源市| 林口县| 建德市| 阿尔山市| 江门市| 贞丰县| 深圳市| 南投县| 阜平县| 宁乡县| 保定市| 武山县| 菏泽市| 霍州市| 卫辉市| 黎川县| 铁力市| 琼中|