專利名稱:編碼裝置、方法、和程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及編碼設(shè)備、其方法、及其程序,具體地,涉及能夠?qū)Ξ嬅孢M行編碼使得在解碼方不發(fā)生顯示等待的編碼設(shè)備、其方法、及其程序
背景技術(shù):
參考圖1,將簡要描述在作為運動圖像壓縮編碼標準的AVC(高級視頻編碼)標準中的編碼和解碼之間的關(guān)系。
編碼器2對由攝像機1捕獲的視頻信號等進行編碼,并基于雙向運動補償幀間預(yù)測的理論生成位流。
如果解碼方的緩沖器5上溢或下溢,則緩沖器5失敗。在這個情況下,解碼器不能正確地解碼位流。這樣,編碼器2必須生成位流使得緩沖器5沒有失敗。
為了實現(xiàn)這一點,已經(jīng)引入了虛擬解碼器的概念,其中對包括虛擬緩沖器的解碼器6的操作進行虛擬建模。
將該虛擬解碼器定義為具有兩個緩沖器,即存儲解碼之前的位流的緩沖器(CPB已編碼的畫面緩沖器)和存儲已解碼的畫面的緩沖器(DPB已解碼的畫面緩沖器)。基于等級來定義CPB和DPB的緩沖器大小。
當一幀或者一場視頻數(shù)據(jù)的畫面是作為解碼處理單元的存取單元時,在預(yù)定的到達時間處將存取單元輸入到CPB。圖2A示出了與CPB的解碼時間對應(yīng)的CPB去除(removal)時間。在由CPB去除時間定義的時間處立即(instantaneously)從CPB取出存取單元,并立即由虛擬解碼器對其進行解碼。在CPB去除時間處將已解碼的畫面輸入到DPB。
按照顯示順序重新排列已經(jīng)解碼并輸入到DPB的畫面,并將這些畫面存儲在DPB中。圖2B示出了作為與DPB的顯示時間對應(yīng)的時間的DPB輸出。在由DPB輸出時間定義的時間處從DPB輸出該存取單元,并顯示該存取單元。
按照例如16毫秒的間隔(tc)來定義CPB去除時間和DPB輸出時間。
編碼器2生成PES(已分組化的基本流)分組,其具有如圖3所示的、包括例如存取單元的有效載荷(payload)。在AVC位流中,CPB去除時間和DPB輸出時間被存儲為每個畫面的報頭信息。這樣,在這個情況下,將它們存儲在有效載荷中。
PES分組的報頭信息包括顯示時間信息(PTS呈現(xiàn)時間戳)等。當隨機地存取PES分組時,PTS用于同步視頻數(shù)據(jù)、音頻數(shù)據(jù)、和子標題數(shù)據(jù)。
編碼器2根據(jù)圖2A和圖2B所示的CPB去除時間和DPB輸出時間的規(guī)則對畫面進行編碼,使得這些緩沖器沒有失敗。在圖3所示的有效載荷的AVC存取單元中包括了每個畫面的CPB去除時間和DPB輸出時間的值作為要在解碼處理中遵循的規(guī)則。
實際(real)播放器在圖2C所示的時間處對已編碼的位流執(zhí)行解碼處理,并在圖2D所示的時間處顯示已解碼的位流。在實際解碼處理中,基于在圖3所示的有效載荷的AVC存取單元中包括的DPB輸出時間,以例如每秒30幀的速率顯示畫面。在AVC標準中,在畫面的報頭信息中描述虛擬解碼器的CPB去除時間和DPB輸出時間。
以象圖2A和圖2B所示的虛擬解碼器的CPB去除時間和DPB輸出時間一樣的間隔tc來表示在圖2C和圖2D所示的實際解碼處理中的解碼時間和顯示時間。
將編碼器2生成的位流輸入到傳送緩沖器3并存儲在其中。將存儲在傳送緩沖器3中的位流作為例如傳輸流或節(jié)目流輸出到傳送路徑4,或存儲在記錄介質(zhì)(未示出)中。
通過傳送路徑4或記錄介質(zhì)(未示出)傳送的傳輸流或節(jié)目流被輸入到解碼方的緩沖器。解碼器6從緩沖器5提取位流,并如圖2C所示,以與虛擬解碼器的CPB去除時間所表示的解碼順序(圖2A)相同的順序(圖2A),在DPB輸出時間處(圖2B)對每個畫面的位流進行解碼(見非專利文獻1,“H.264/AVC(ISO/IEC 14496-10),附件C”)。
然而,如上所述,在與DPB輸出時間(而不是與由虛擬解碼器定義的CPB去除時間(圖2B))對應(yīng)的時間處,以與虛擬解碼器的解碼(圖2A)相同的順序執(zhí)行實際解碼處理。這樣,當畫面的解碼順序不同于其顯示順序時,可能在畫面的顯示時間處還沒有對該畫面進行解碼。
例如,如圖2B所示按照顯示順序被顯示為第三畫面的畫面B3被解碼為圖2A所示的按照解碼順序的第四畫面。相反,如圖2C所示,畫面B3在實際解碼方的解碼時間變?yōu)榕c圖2C所示在畫面B3的顯示時間(圖2D)之后按照顯示順序被原始顯示為第四畫面的畫面P4的顯示時間(圖2B)對應(yīng)的時間。這樣,如圖2D所示,不能在原始顯示時間(圖2B)處顯示畫面B3。在圖2D中,X意指在與圖2B所示的DPB輸出時間對應(yīng)的時間處沒有顯示“B3”。在這個情況下,在實際解碼處理中,如圖2D所示,發(fā)生了畫面B3的顯示等待。
發(fā)明內(nèi)容
鑒于前述觀點而作出本發(fā)明,并且本發(fā)明的目的是對畫面進行編碼,使得在解碼方不發(fā)生顯示等待。
本發(fā)明是一種編碼設(shè)備,其對畫面進行編碼使得解碼設(shè)備在與畫面的顯示時間對應(yīng)的時間處對所述畫面進行解碼,該編碼設(shè)備包括編碼部分,其對作為可隨機存取的畫面組的畫面進行編碼,使得在畫面的顯示時間之前對畫面進行解碼。
該編碼部分可包括第一檢測部分,其從畫面組中檢測按照顯示順序作為第一畫面顯示的畫面的顯示時間之后、按照解碼順序作為第一畫面被解碼的畫面;第二檢測部分,在畫面組中檢測按照顯示順序作為第m畫面顯示的畫面;第三檢測部分,從畫面組中檢測比第一檢測部分所檢測的畫面遲m個畫面解碼的畫面;以及執(zhí)行部分,其執(zhí)行編碼處理,使得在對由第三檢測部分檢測到的畫面進行解碼之前,對由第二檢測部分檢測到的畫面進行解碼。
本發(fā)明是一種編碼方法,用于編碼畫面,使得解碼設(shè)備在與畫面的顯示時間對應(yīng)的時間處對所述畫面解碼,該編碼方法包括如下步驟對作為可隨機存取的畫面組的畫面進行編碼,使得在畫面的顯示時間之前對畫面進行解碼。
本發(fā)明是一種程序,促使處理器控制編碼設(shè)備,該編碼設(shè)備對畫面進行編碼使得解碼設(shè)備在與畫面的顯示時間對應(yīng)的時間處對畫面解碼,該程序包括如下步驟對作為可隨機存取的畫面組的畫面進行編碼,使得在畫面的顯示時間之前對畫面進行解碼。
在本發(fā)明的設(shè)備、方法、和程序中,對組成可隨機存取的畫面組的多個畫面進行解碼,使得在畫面的顯示時間之前對所述畫面進行解碼。根據(jù)本發(fā)明,可以編碼運動圖像,使得在解碼方不發(fā)生顯示等待。
圖1是示出在編碼和解碼之間的關(guān)系示例的示意圖; 圖2A、圖2B、圖2C、和圖2D是描述基于虛擬解碼器模型的編碼設(shè)備的操作、和實際播放器的操作的示例的時序圖; 圖3是示出PES分組的數(shù)據(jù)結(jié)構(gòu)的示意圖; 圖4是示出根據(jù)本發(fā)明的編碼設(shè)備的結(jié)構(gòu)的示例的框圖; 圖5A和圖5B是以RIP為單位描述解碼順序和顯示順序的示意圖; 圖6是示出圖4所示的視頻編碼器26的結(jié)構(gòu)的示例的框圖; 圖7是示出圖4所示的編碼設(shè)備的機械結(jié)構(gòu)的示例的框圖; 圖8是描述圖4所示的編碼設(shè)備的操作的流程圖; 圖9A和圖9B分別是實際播放器解碼并顯示圖4中所示的編碼設(shè)備已編碼的畫面組的時序圖; 圖10A和圖10B是實際播放器解碼并顯示圖4中所示的編碼設(shè)備已編碼的畫面組的時序圖; 圖11A、圖11B、圖11C、和圖11D是實際播放器解碼并顯示圖4中所示的編碼設(shè)備已編碼的畫面組的時序圖; 圖12A、圖12B、圖12C、和圖12D是實際播放器解碼并顯示圖4中所示的編碼設(shè)備已編碼的畫面組的時序圖; 圖13A、圖13B、圖13C、和圖13D是實際播放器解碼并顯示圖4中所示的編碼設(shè)備已編碼的畫面組的時序圖; 圖14A、圖14B、圖14C、和圖14D是實際播放器解碼并顯示圖4中所示的編碼設(shè)備已編碼的畫面組的時序圖; 圖15A、圖15B、圖15C、和圖15D是實際播放器解碼并顯示圖4中所示的編碼設(shè)備已編碼的畫面組的時序圖;以及 圖16A、圖16B、圖16C、和圖16D是實際播放器解碼并顯示圖4中所示的編碼設(shè)備已編碼的畫面組的時序圖。
具體實施例方式 接下來,將描述本發(fā)明的實施例。在這個說明書中描述的本發(fā)明與本發(fā)明的實施例之間的關(guān)系如下。在這個部分中的描述指出在這個說明書中描述用于支持在說明書中陳述的本發(fā)明的實施例。這樣,即使在這個部分中沒有描述某些實施例,也并不意指這些實施例不與本發(fā)明相對應(yīng)。相反地,即使在這部分將實施例描述為本發(fā)明,也并不意指這些實施例沒有對應(yīng)于不同于本發(fā)明。
這個部分的描述不意指在這個說明書中描述的本發(fā)明的所有方面。換言之,在這個部分的描述對應(yīng)于在該說明書中描述的發(fā)明。這樣,在這個部分的描述沒有否定本發(fā)明的如下方面其在本專利申請的權(quán)利要求中沒有陳述,但作為修改而可能作出分案專利申請和/或可能增加本發(fā)明的其它方面。
權(quán)利要求1的編碼設(shè)備包括編碼部分,其對作為可隨機存取的畫面組的畫面進行編碼,使得在畫面的顯示時間之前解碼該畫面(例如,圖7所示的編碼控制部分53)。
在權(quán)利要求4的編碼設(shè)備中,編碼部分包括第一檢測部分,在畫面組中檢測按照顯示順序作為第一畫面顯示的畫面的顯示時間之后、按照解碼順序作為第一畫面被解碼的畫面(例如,圖7中所示的編碼控制部分53,其執(zhí)行圖8所示的步驟S6); 第二檢測部分,在畫面組中檢測按照顯示順序作為第m畫面顯示的畫面(例如,圖7中所示的編碼控制部分53,其執(zhí)行圖8所示的步驟S8); 第三檢測部分,從畫面組中檢測比第一檢測部分所檢測的畫面遲m個畫面解碼的畫面(例如,圖7中所示的編碼控制部分53,其執(zhí)行圖8所示的步驟S8);以及 執(zhí)行部分,其執(zhí)行編碼處理,使得在對由第三檢測部分檢測到的畫面進行解碼之前,對由第二檢測部分檢測到的畫面進行解碼(例如,圖7中所示的編碼控制部分53,其執(zhí)行圖8所示的步驟S10到S12)。
本發(fā)明的編碼方法和程序包括步驟對作為可隨機存取的畫面組的畫面進行編碼,使得在畫面的顯示時間之前對畫面進行解碼(例如,圖7中所示的編碼控制部分53,其執(zhí)行圖8所示的處理)。
接下來,將參考附圖描述本發(fā)明的實施例。
圖4示出根據(jù)本發(fā)明的編碼設(shè)備11的結(jié)構(gòu)的示例。
編碼設(shè)備11基于H.264/AVC標準對運動圖像進行壓縮編碼。然而,編碼設(shè)備11編碼運動圖像,使得僅僅利用如圖5A和圖5B所示由預(yù)定數(shù)目畫面組成的組(下文中,將這個組稱為RIP恢復(fù)點間隔畫面)中的畫面的信息進行完全解碼,以隨機地存取運動圖像。圖5A示出解碼順序,而圖5B示出顯示順序。
CPU(中央處理單元)22、存儲器23、視頻信號輸入接口24、控制信號輸入接口25、視頻編碼器26、視頻數(shù)據(jù)輸出接口27等和總線21相連。
CPU 22和存儲器23構(gòu)成計算機系統(tǒng)。換言之,CPU 22執(zhí)行在存儲器23中存儲的程序,以控制整個設(shè)備,并執(zhí)行將在后面描述的處理。存儲器23存儲CPU 22執(zhí)行的程序。此外,存儲器23暫時存儲CPU 22進行操作必需的數(shù)據(jù)。存儲器23的結(jié)構(gòu)可以為僅具有非易失性存儲器、或者具有易失性存儲器和非易失性存儲器的組合。當圖4所示的設(shè)備具有用于存儲CPU 22執(zhí)行的程序的硬盤時,存儲器23的結(jié)構(gòu)可以僅具有非易失性存儲器。
CPU 22執(zhí)行的程序可以永久性地或者暫時性地存儲在可移除記錄介質(zhì)中,諸如盤、軟盤、CD-ROM(致密盤只讀存儲器)、MO(磁光)盤、磁盤、或者存儲卡。這樣的可移除記錄介質(zhì)可以提供為所謂的封裝軟件。
可以將程序預(yù)先存儲在存儲器23中。替代地,可以將程序從這樣的可移除記錄介質(zhì)安裝到設(shè)備中。替代地,可以通過數(shù)字廣播衛(wèi)星而將該程序從下載站點無線地傳輸?shù)奖P裝置。替代地,可以經(jīng)由線纜通過諸如LAN(局域網(wǎng))或因特網(wǎng)之類的網(wǎng)絡(luò)而將程序從這樣的站點傳輸?shù)奖P裝置。該盤裝置可以從這樣的站點接收程序,并將其安裝到內(nèi)建存儲器23。
可以用單個CPU處理所述程序。替代地,可通過多個CPU分布式地處理該程序。
視頻信號輸入接口24在CPU 22的控制下輸入來自攝像機等的視頻信號,并通過總線21將該視頻信號提供給CPU 22、存儲器23、視頻編碼器26等。
控制信號輸入接口25輸入與用戶對于鍵(按鈕)(未示出)和遙控器的操作對應(yīng)的控制信號,并通過總線21將該控制信號提供給CPU 22??刂菩盘栞斎虢涌?5還例如用作調(diào)制解調(diào)器(包括ADSL(非對稱數(shù)字用戶線路)調(diào)制解調(diào)器)、和諸如NIC(網(wǎng)絡(luò)接口卡)的通信接口。
視頻編碼器26對通過視頻信號輸入接口24輸入的視頻信號進行編碼,并通過總線21而將作為對視頻信號編碼的結(jié)果獲得的視頻數(shù)據(jù)提供給CPU22。
視頻數(shù)據(jù)輸出接口27輸出其中CPU 22已經(jīng)將視頻數(shù)據(jù)分組成的視頻傳輸流。
圖6示出視頻編碼器26的結(jié)構(gòu)的示例。
A/D轉(zhuǎn)換部分31將作為模擬信號提供的畫面轉(zhuǎn)換為數(shù)字信號,并將該數(shù)字信號提供給2-3檢測部分32。在這個示例中,假設(shè)以場為單位將已經(jīng)被2-3下拉的NTSC格式畫面的圖像信號提供給A/D轉(zhuǎn)換部分31。
2-3檢測部分32利用場間差異信息來檢測2-3節(jié)律(rhythm),其中該場間差異信息是從A/D轉(zhuǎn)換部分31提供的畫面的兩個場之間的差異。
換言之,在2-3下拉中,影片(movie film)的每個幀被交替地轉(zhuǎn)換為NTSC格式的2個場或3個場。這樣,NTSC格式的畫面具有所謂的2-3節(jié)律,其中交替地重復(fù)由一幀的順序掃描影片獲得的2場組和3場組。該2-3檢測部分32檢測這些2場組和3場組。
所述2-3檢測部分32利用所檢測到的2場畫面組或3場畫面組來形成一幀的順序掃描畫面,并將該一幀的順序掃描畫面提供給屏幕重排緩沖器33。圖2A、圖2B、圖2C、和圖2D示出已經(jīng)被2-3下拉的畫面的示例。換言之,存在3個tc和2個tc作為顯示時間的間隔。
屏幕重排緩沖器33暫時存儲畫面,以預(yù)定的編碼順序重排它們,并以宏塊為單位將已重排的畫面作為編碼目標畫面(下文中,簡稱為“目標畫面”)提供給加法器34。
當目標畫面是幀內(nèi)編碼畫面時,加法器34直接將該目標畫面提供給正交變換部分35。
當目標畫面是幀間編碼畫面時,加法器34從目標畫面中減去從運動預(yù)測/補償部分42提供的預(yù)測畫面,并將該差值提供給正交變換部分35。
換言之,運動預(yù)測/補償部分42不僅檢測在屏幕重排緩沖器33中存儲的畫面的運動矢量,而且從幀存儲器41中讀取成為已編碼和解碼的目標畫面的參考畫面的畫面,基于運動矢量對參考畫面執(zhí)行運動補償,并以最佳預(yù)測模式生成目標畫面的預(yù)測畫面。運動預(yù)測/補償部分42將預(yù)測畫面提供給加法器34。加法器34從目標畫面中減去從運動預(yù)測/補償部分42提供的預(yù)測畫面,并將該差值提供給正交變換部分35。
所述正交變換部分35對從加法器34提供的目標畫面或者作為從目標畫面減去預(yù)測畫面的結(jié)果的差異畫面執(zhí)行諸如離散余弦變換的正交變換,并將作為變換結(jié)果的變換系數(shù)提供給量化部分36。
量化部分36以后面將描述的由速率控制部分43控制的量化器步長來量化從正交變換部分35提供的變換系數(shù),并將結(jié)果生成的量化器系數(shù)提供給可逆編碼部分37和去量化部分39。
可逆編碼部分37對從量化部分36提供的量化器系數(shù)、由運動預(yù)測/補償部分42檢測的運動矢量等執(zhí)行例如可變長度編碼或算術(shù)編碼的可逆編碼,并將作為結(jié)果的編碼數(shù)據(jù)提供給存儲緩沖器38。
可逆編碼部分37將運動矢量等插入到所述已編碼數(shù)據(jù)的所謂報頭部分。
存儲緩沖器38暫時存儲從可逆編碼部分37提供的已編碼數(shù)據(jù),并以預(yù)定速率輸出該已編碼數(shù)據(jù)。
將已編碼數(shù)據(jù)在存儲緩沖器38中的存儲量提供給速率控制部分43。速率控制部分43基于存儲緩沖器38的存儲量對量化部分36的量化器步長執(zhí)行反饋控制,使得存儲緩沖器38既不上溢也不下溢。
相反,去量化部分39以與量化部分36的量化器步長相同的量化器步長對從量化部分36提供的變換系數(shù)進行去量化,并將結(jié)果生成的變換系數(shù)提供給逆正交變換部分40。該逆正交變換部分40對從去量化部分39提供的變換系數(shù)執(zhí)行逆正交變換處理,以便解碼原始幀內(nèi)編碼畫面、或者已經(jīng)從原始幀間編碼畫面減去預(yù)測畫面得到的差異畫面。逆正交變換部分40將已解碼的畫面提供給幀存儲器41。
幀存儲器41存儲已經(jīng)對編碼畫面進行解碼的結(jié)果。此外,幀存儲器41相加以下兩項已對差異畫面進行解碼的結(jié)果;和從幀間編碼畫面中減去的、并且已經(jīng)從運動預(yù)測/補償部分42獲得的預(yù)測畫面。因此,幀存儲器41解碼幀間編碼畫面并存儲該畫面。
運動預(yù)測/補償部分42利用存儲在幀存儲器41中的參考畫面而生成預(yù)測畫面。
圖7示出了圖4中所示的CPU 22執(zhí)行的編碼處理的功能結(jié)構(gòu)的示例。
控制信號輸入控制部分51向編碼控制部分53通知已經(jīng)通過控制信號輸入接口25(圖4)輸入了命令。
視頻信號輸入控制部分52向視頻編碼器26(圖4)提供已經(jīng)通過視頻信號輸入接口24(圖4)輸入的視頻信號。
編碼控制部分53根據(jù)從控制信號輸入控制部分51提供的命令來控制每個部分,以便編碼已經(jīng)通過視頻信號輸入接口24(圖4)輸入的視頻信號,這將在后面描述。
視頻編碼器控制部分54在編碼控制部分53的控制下控制視頻編碼器26(圖4)以便編碼已經(jīng)通過視頻信號輸入接口24(圖4)輸入的視頻信號。
在編碼控制部分53的控制下,視頻數(shù)據(jù)輸出控制部分55控制視頻數(shù)據(jù)輸出接口27(圖4)以分組由視頻編碼器26生成的位流,并輸出作為結(jié)果生成的傳輸流。
接下來,參考圖8中所示的流程圖,將描述編碼設(shè)備11的編碼處理的操作。首先,將簡要描述編碼處理。然后,將詳細描述編碼處理的特定示例。
在步驟S1,編碼控制部分53從視頻信號輸入接口24獲得將基于輸入順序編碼的畫面的顯示時間。
在步驟S2,編碼控制部分53向視頻編碼器控制部分54通知基于顯示時間的預(yù)定編碼順序。視頻編碼器控制部分54控制視頻編碼器26,以便按照編碼順序編碼已經(jīng)通過視頻信號輸入接口24輸入的視頻信號。
在步驟S3,編碼控制部分53從視頻編碼器26所編碼的畫面序列中選擇一個RIP。在RIP中,按照解碼順序排列的畫面中的第一畫面和最后畫面分別被稱為畫面N0和畫面Ne。
在步驟S4中,編碼控制部分53讀取構(gòu)成在步驟S3中選擇的RIP的畫面的DPB輸出時間。在步驟S5,編碼控制部分53讀取這些畫面的CPB去除時間。
在步驟S6,編碼控制部分53檢測在步驟S3所選擇的RIP中的、作為按照顯示順序的第一畫面顯示的畫面(下文中,將這個畫面稱作畫面Na)的顯示時間之后的、在構(gòu)成步驟S3選擇的RIP的多個畫面之中、作為按照解碼順序的第一畫面解碼的畫面(下文中,將這個畫面稱作畫面Nd)。
在步驟S7中,編碼控制部分53將在后面的處理中使用的系數(shù)m原始化為值1。
在步驟S8,編碼控制部分53檢測比步驟S6檢測的畫面Na遲m個畫面顯示的畫面(下文中,將這個畫面稱作畫面Na+m)、和比畫面Nd遲m個畫面解碼的畫面(下文中,將這個畫面稱作畫面Nd+m)。
在步驟S9,編碼控制部分53確定在步驟S8檢測的畫面Nd+m是否是比RIP的最后畫面Ne早的畫面。當確定的結(jié)果表明畫面Nd+m比最后畫面Ne早時,流程前進到步驟S10。
在步驟S10,編碼控制部分53確定畫面Na+m是否包括在按照解碼順序的畫面序列{N0、……、Nd+m}中。當確定的結(jié)果指出畫面Na+m包括在該畫面序列中時,流程前進到步驟S11。在步驟S11中,編碼控制部分53將系數(shù)m的值遞增1。此后,流程返回到步驟S8。
相反,當步驟S10的確定結(jié)果指出畫面Na+m沒有包括在該畫面序列中時,流程前進到步驟S12。在步驟S12,編碼控制部分53改變在步驟S3選擇的RIP的編碼順序,并控制視頻編碼器控制部分54重新編碼該RIP。
作為在步驟S12進行重新編碼的一種方式,如果由于重新排序而發(fā)生顯示等待,則可以改變RIP中的畫面的解碼順序,使得RIP的顯示順序幾乎變成與RIP的解碼順序相同。例如,當顯示畫面Na+m時,將這個畫面的解碼順序改變?yōu)樵诋嬅嫘蛄衶N0、……、Nd+m}中包括的畫面的解碼順序,使得畫面Na+m包括在{N0、……、Nd+m}中。當改變解碼順序時,改變了參考其它畫面進行運動補償?shù)漠嬅娴年P(guān)系。這樣,可以適應(yīng)性地改變?yōu)榱颂岣呔幋a效率所分配的畫面類型。
當已經(jīng)在步驟S12中重新編碼了RIP時,流程前進到步驟S16。在步驟S16,確定是否已解決了顯示等待。當確定結(jié)果指出已經(jīng)解決了顯示等待時,流程返回到步驟S4。在步驟S4,從已改變的位置開始處理RIP。此后,循環(huán)地執(zhí)行所述處理。
作為步驟S12中的重新編碼的另一種方式,可以促使RIP中所有畫面的解碼時間早于它們的顯示時間,而不改變RIP中的畫面的排列。例如,當促使放在畫面報頭中的作為畫面解碼時間的CPB去除時間早于其中作為畫面顯示時間的DPB輸出時間時,可以將畫面Nd改變?yōu)榘凑誖IP的解碼順序比畫面Nd早幾個畫面的畫面。例如,將畫面Nd+m改變?yōu)楫嬅鍺d。在這個情況下,由于按照RIP的解碼順序的第一畫面的解碼時間遲于按照流的緊靠之前的RIP的解碼順序的最后畫面(緊靠之前的RIP的畫面Ne)的解碼時間,所以這約束了使解碼時間早于顯示時間的情況。
在步驟S16,確定是否已經(jīng)解決了顯示等待。當確定結(jié)果指出已經(jīng)解決了顯示等待時,流程返回到步驟S4。重復(fù)步驟S4之后的所述處理。
在步驟S16,因為緊靠之前的RIP和當前RIP之間的解碼間隔不足以促使解碼時間早于顯示時間并防止顯示等待發(fā)生,所以可能確定還沒有解決顯示等待。在這個情況下,流程返回到步驟S3。在步驟S3中,選擇流的最早RIP,并且從流的開始就促使解碼時間早于顯示時間。從而,可以防止顯示等待發(fā)生。
在步驟S11反復(fù)地遞增系數(shù)m的值。當步驟S9的確定結(jié)果指出畫面Nd+m不是早于畫面Ne的幀時,流程前進到步驟S13。
在步驟S13,編碼控制部分53確定在畫面序列(RIP){N0、……、Ne}中是否包括畫面Na+m。當確定結(jié)果指出在所述畫面序列中不包括畫面Na+m時,流程前進到步驟S14。
在步驟S14中,編碼控制部分53改變在步驟S3所選擇的RIP中的編碼順序,并控制視頻編碼器控制部分54重新編碼該RIP。此后,流程返回到步驟S13。
當步驟S13的確定結(jié)果指出畫面Na+m包括在所述畫面序列{N0、……、Ne}中時,流程前進到步驟S15。在步驟S15,編碼控制部分53確定在步驟S3是否已經(jīng)選擇所有RIP。當確定結(jié)果指出還沒有選擇所有RIP時,流程返回到步驟S3。在步驟S3,選擇下一個RIP。此后,重復(fù)步驟S4之后的處理。
當在步驟S15的確定結(jié)果指出已經(jīng)選擇了所有RIP時,完成該處理。
接下來,參考在圖9A和圖9B,圖10A和圖10B,以及圖11A、圖11B、圖11C、和圖11D中示出的示例,將詳細描述前面的編碼處理。在這個示例中,如圖9B、圖10B、和圖11B所示,已經(jīng)編碼了按照虛擬解碼器的DPB輸出時間的順序顯示的RIP的四個畫面(步驟S1),使得它們以如圖9A、圖10A、和圖11A所示的虛擬解碼器的CPB去除時間的順序被解碼(步驟S2)。
圖9A示出了在圖2A中示出的畫面的CPB去除時間。圖9B示出了在圖2B中示出的畫面的DPB輸出時間(m=1)。圖10A、圖11A、圖10B和圖11B也示出了這些關(guān)系(m=2)。
換言之,檢測在按照RIP的顯示順序作為第一畫面顯示的畫面I1(畫面Na)的顯示時間之后所解碼的RIP的畫面中的、按照解碼順序作為第一畫面解碼的畫面I1(畫面Nd)(步驟S4、S5、和S6)。
接下來,設(shè)置m=1(在步驟S7)。檢測比畫面I1(畫面Na)遲一個畫面地顯示的畫面P2(畫面Na+1)(圖9B)、以及比畫面I1遲一個畫面地解碼的畫面P2(畫面Nd+1)(圖9A)。
由于畫面P2(畫面Nd+1)是比作為按照RIP的解碼順序的最后畫面的畫面Ne早的畫面(步驟S9),所以確定按照顯示順序的畫面P2(畫面Na+1)是否包括在按照解碼順序從畫面N0到畫面Nd+1的畫面序列中,即畫面序列{I1,P2}中(在步驟S10)。在這個情況下,由于畫面P2包括在畫面序列中,所以系數(shù)m遞增1(m=2)(在步驟S11)。
在這個情況下,由于m是2,所以檢測比畫面I1(畫面Nd)遲兩個畫面地解碼的畫面P4(畫面Nd+2)(圖11A)、以及比畫面I1(畫面Na)遲兩個畫面地顯示的畫面B3(畫面Na+2)(圖10B)(在步驟S8)。
由于畫面P4(畫面Nd+2)是比作為按照RIP的解碼順序的最后畫面的畫面Ne早的畫面(步驟S9),所以確定按照顯示順序的畫面B3(畫面Na+2)沒有包括在按照解碼順序從畫面N0到畫面Nd+m的畫面序列中,即畫面序列{I1,P2,P3}中(在步驟S10)。
這樣,如圖2C所示,當按照顯示順序的畫面(如果m=2,則為畫面B3)、畫面Na+m沒有包括在按照解碼順序的從畫面N0到畫面Nd+m的畫面序列(如果m=2,則為畫面序列{I1,P2,P4})中時,則畫面B3的解碼時間變成在畫面B3的顯示時間之后、與按照顯示順序中原始地顯示為第四畫面的畫面P4的顯示時間(圖2B)對應(yīng)的時間(圖2D)。這樣,如圖2D所示,沒有在原始的顯示時間處顯示畫面B3。
在這個情況下,例如,如圖11A所示,重新編碼圖9A和圖10A中所示的畫面B3和畫面P4,使得虛擬解碼器中的畫面B3和畫面P4的CPB去除時間彼此取代(步驟S12)。
結(jié)果,即使在m=2的情況下,也將畫面B3檢測為比按照RIP中的解碼順序作為第一畫面解碼的畫面Nd(畫面I1)更遲地解碼的畫面Nd+2(圖11A)(步驟S8)。這樣,在已經(jīng)重新編碼這些畫面之后,按照顯示順序的畫面Na+2(畫面B3)也包括在按照解碼順序從畫面N0到畫面Nd+2的畫面序列{I1,P2,B3}中。因此,在實際播放器中,如圖2C和2D所示,在解碼方?jīng)]有顯示等待發(fā)生。如圖11C和圖11D所示,在與畫面B3的顯示時間對應(yīng)的時間處解碼畫面B3。因此,可以在畫面B3的顯示時間處顯示畫面B3。
重復(fù)這樣的處理,直到畫面Na+m變成RIP的最后畫面Ne為止。
在前面的示例中,改變畫面的編碼順序,并然后按照改變的編碼順序重新編碼畫面(步驟S12)。替代地,可以改變其它編碼條件。
當已經(jīng)基于圖12A和圖12B所示的虛擬解碼器模型的規(guī)則編碼了畫面時,按照顯示順序作為第二畫面顯示的畫面B2(圖12B)被解碼為按照解碼順序的第三畫面(圖12A)。另一方面,如圖12C所示,畫面B2在解碼方的解碼時間變成在畫面B2的顯示時間之后(圖12D)、與按照顯示順序原始地顯示為第三畫面的畫面P3的顯示時間(圖12B)對應(yīng)的時間。因此,畫面B2不能夠在其原始顯示時間(圖12B)處顯示。
換言之,在m=1的情況下,畫面Nd+1是畫面P3(圖12A),而畫面Na+1是畫面B2(圖12B)。作為按照顯示順序的第Na+1畫面的畫面B2沒有包括在作為按照解碼順序從畫面N0到畫面Nd+1的畫面序列的畫面序列{I1,P3}中。
在這個情況下,如圖13B所示,重新編碼畫面,使得DPB輸出時間被延遲1tc(在步驟S12)。因此,如圖13A所示,在m=1的情況下,由于畫面Nd+1變成畫面B2,作為按照顯示順序的第Na+1畫面的畫面B2被包括在按照解碼順序從畫面N0到畫面Nd+1的畫面序列的畫面序列{I1,P3,B2}中。換言之,在實際解碼處理中,如圖13C和圖13D所示,在畫面B2的顯示時間處解碼該畫面。由此,可在畫面B3的原始顯示時間處顯示該畫面。
同樣,當已經(jīng)基于在圖14A和圖14B所示的虛擬解碼器模型的規(guī)則編碼了畫面時,按照顯示順序作為第三畫面顯示的畫面B3(圖14B)作為按照解碼順序的第四畫面被解碼(圖14A)。另一方面,如圖14C所示,解碼方的畫面B3的解碼時間變成在畫面B3的顯示時間之后(圖14D)、與按照顯示順序原始地顯示為第四畫面的畫面P4的顯示時間(圖14B)對應(yīng)的時間。因此,如圖14D所示,畫面B3不能夠在原始顯示時間(圖14B)處顯示。
換言之,在m=2的情況下,按照解碼順序的畫面Nd+2是畫面P4(圖14A),而按照顯示順序的畫面Na+2是畫面B3(圖14B)。因此,作為按照顯示順序的畫面Na+2的畫面B3沒有包括在畫面序列{I1,P2,P4}中,該畫面序列是按照解碼順序從畫面N0到畫面Nd+2的畫面序列。
在這個情況下,如圖15B所示,當重新編碼畫面使得它們的DPB輸出定時延遲1tc時(步驟S12),在如圖15A所示的m=2的情況下,按照解碼順序的畫面Nd+2變成畫面B3。因此,作為按照顯示順序的畫面Na+1的畫面B3被包括在按照解碼順序從畫面N0到畫面Nd+2的畫面序列{I1,P2,P4,B3}中。換言之,如圖15C和圖15D所示,在實際解碼處理中,在畫面B3的顯示時間處解碼該畫面B3。從而,畫面B3顯示在其原始顯示時間處。
如上所述,當與畫面的顯示時間同步地解碼畫面時,定義作為一組預(yù)定數(shù)目畫面的RIP,使得可隨機地存取所述畫面。對于每個RIP,編碼畫面,使得虛擬解碼器在對比按照解碼順序中作為第一畫面解碼的畫面Nd遲m個畫面的畫面進行解碼之前,對按照顯示順序作為第一畫面顯示的畫面Na的顯示時間之后的、按照顯示順序作為第m個畫面顯示的畫面Na+m進行解碼。從而,可以在解碼方防止畫面的顯示等待。
可以存在頂場(top field)的畫面(例如,圖16A、圖16B、圖16C、和圖16D中的P2t)和底場的畫面(例如,圖16A、圖16B、圖16C、和圖16D中的P2b)。在這個情況下,當檢測到畫面Nd時,參考第一場的畫面(例如,圖16A、圖16B、圖16C、和圖16D中的P2t)的CPB去除時間。另一方面,當檢測到畫面Nd+m和Na+m時,將畫面P2t和畫面P2b作為一個畫面處理。換言之,當檢測到畫面Nd+m和Na+m時,按照解碼順序的畫面Nd+1是P3,而按照顯示順序的畫面Na+1是P2t和P2m。
在這個示例中,以幀、或者一對場為單位執(zhí)行實際解碼處理。因此,在圖16C和圖16D中,將P2t和P2b共同地表示為P2(t+2)。
在本說明書中,在編碼順序中按照時間順序處理用于描述由記錄介質(zhì)提供的程序的步驟。替代地,可以并行地或者不連續(xù)地處理它們。
權(quán)利要求
1.一種編碼設(shè)備,用于對畫面進行編碼,使得解碼設(shè)備在與畫面的顯示時間對應(yīng)的時間處對所述畫面進行解碼,該編碼設(shè)備包括
編碼部分,用于對作為可隨機存取的畫面組的畫面進行編碼,使得在畫面的顯示時間之前對畫面進行解碼。
2.根據(jù)權(quán)利要求1的編碼設(shè)備,
其中所述編碼部分按照改變的編碼順序?qū)υ摦嬅娼M的畫面進行編碼。
3.根據(jù)權(quán)利要求1的編碼設(shè)備,
其中所述編碼部分對該畫面組的畫面進行編碼,使得它們的顯示時間被延遲預(yù)定值。
4.根據(jù)權(quán)利要求1的編碼設(shè)備,
其中所述編碼部分包括
第一檢測部分,用于在畫面組中檢測按照顯示順序作為第一畫面顯示的畫面的顯示時間之后、按照解碼順序作為第一畫面被解碼的畫面;
第二檢測部分,用于在畫面組中檢測按照顯示順序作為第m畫面顯示的畫面;
第三檢測部分,用于從畫面組中檢測比第一檢測部分所檢測的畫面遲m個畫面解碼的畫面;以及
執(zhí)行部分,用于執(zhí)行編碼處理,使得在對由第三檢測部分檢測到的畫面進行解碼之前,對由第二檢測部分檢測到的畫面進行解碼。
5.一種編碼方法,用于編碼畫面使得解碼設(shè)備在與畫面的顯示時間對應(yīng)的時間處對它們解碼,該編碼方法包括如下步驟
對作為可隨機存取的畫面組的畫面進行編碼,使得在畫面的顯示時間之前對畫面進行解碼。
6.一種程序,促使處理器控制編碼設(shè)備,該編碼設(shè)備對畫面進行編碼使得解碼設(shè)備在與畫面的顯示時間對應(yīng)的時間處對畫面解碼,該程序包括如下步驟
對作為可隨機存取的畫面組的畫面進行編碼,使得在畫面的顯示時間之前對畫面進行解碼。
全文摘要
可以編碼畫面,使得在解碼方不發(fā)生顯示等待。對畫面進行重新編碼,使得它們的編碼順序改變。因此,將畫面B3檢測為比畫面I1(畫面Nd)遲兩個畫面地解碼的畫面Na+1(圖11A)。這樣,畫面P3(畫面Na+2)(比畫面I1遲兩個畫面地顯示的畫面)包括在畫面序列{I1,P2,B3}中。如圖11C和圖11D所示,在與畫面B3的顯示時間對應(yīng)的時間處解碼畫面B3。因此,可以在畫面B3的顯示時間處顯示畫面B3。
文檔編號H04N7/26GK101112102SQ20058004763
公開日2008年1月23日 申請日期2005年12月1日 優(yōu)先權(quán)日2004年12月2日
發(fā)明者高橋邦明, 木村剛士, 藤波靖 申請人:索尼株式會社, 索尼計算機娛樂公司