專利名稱:用于處理關(guān)于ts碼流的特技播放命令的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于處理關(guān)于TS碼流的特技播放命令的方法和設(shè)備,尤其涉及 一種可實現(xiàn)不同碼流之間和不同特技播放命令之間的無縫切換的用于處理關(guān)于TS碼流的 特技播放命令的方法和設(shè)備。
背景技術(shù):
特技(Trick)播放是多媒體回放系統(tǒng)中一項極具吸引力的特色。它可以使用戶 對錄制好的節(jié)目進(jìn)行后退、慢放、快進(jìn)等操作,隨心所欲地觀看節(jié)目,徹底改變過去看電 視的被動和無奈。同時,如果不同碼流的特技播放以及不同特技播放命令之間能夠無縫 (Seamless)切換,則更能夠提供出色的用戶體驗。為實現(xiàn)視頻/音頻服務(wù)與應(yīng)用互操作的可能性,運(yùn)動圖像專家組(MPEG)于1994 年推出MPEG-2(IS0/IEC 13818-1)標(biāo)準(zhǔn),針對標(biāo)準(zhǔn)數(shù)字電視和高清晰度電視在各種應(yīng)用下 的壓縮方案和系統(tǒng)層的作了詳細(xì)規(guī)定。傳送流(TransportStream,簡稱TS流)是標(biāo)準(zhǔn)中定 義的兩種數(shù)據(jù)流之一。它由一道或多道節(jié)目組成,每道節(jié)目由一個或多個原始流和一些其 他流復(fù)合在一起,包括視頻流、音頻流、節(jié)目特殊信息流(PSI)和其他數(shù)據(jù)包。TS流在數(shù)字 電視系統(tǒng)中得到了廣泛的應(yīng)用,如視音頻資料的錄制保存、電視節(jié)目的編輯等?,F(xiàn)有技術(shù)中,用于處理關(guān)于TS碼流的特技播放命令的方法有1)在碼流生成/錄制的時候選定特技播放時需要的幀,進(jìn)行轉(zhuǎn)換,消除幀之間的 依賴性,比如B幀(雙向預(yù)測幀)和P幀(單向預(yù)測幀)解碼都需要參考幀。轉(zhuǎn)碼后生成 獨(dú)立的供特技播放時使用的附加碼流。但該方法需要轉(zhuǎn)碼支持,而轉(zhuǎn)碼需要額外的軟硬件 資源,生成附加碼流也需要額外的存儲空間;2)采用索引文件,記錄碼流的一些特征信息,以幫助從碼流中選擇特定的媒體數(shù) 據(jù)內(nèi)容用于快進(jìn)快退等特技播放。但該方法需要對碼流進(jìn)行預(yù)處理來生成索引文件。預(yù)處 理生成索引文件的特點是錄制的時候生成索引andex)文件不同平臺上生成的索引文 件不一致,無法通用;在播放前預(yù)處理生成索引文件需要額外的等待時間,導(dǎo)致用戶無法 接受;當(dāng)對碼流進(jìn)行編輯時,比如切割/合并,需要同步處理碼流文件和附加的索引文件, 增加了實現(xiàn)的復(fù)雜度。3)在碼流中插入填充包(stuffing packets)記錄正常播放的時間值,并在生成 索引文件的過程中記錄這個播放時間,以此來幫助播放器在特技模式發(fā)生切換時定位新模 式開始播放的接入位置。但該方法需要在碼流中增加額外的附加信息,通用性欠佳。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種可實現(xiàn)不同碼流之間和不同特技播放命令之間的無 縫切換的用于處理關(guān)于TS碼流的特技播放命令的方法和設(shè)備。根據(jù)本發(fā)明示例性實施例,提供一種用于處理關(guān)于TS碼流的特技播放命令的方 法,包括將TS碼流中包括至少一個幀內(nèi)編碼幀的視頻序列作為接入單元;當(dāng)接收到特技播放命令時,如果存在已存儲的包括所述TS碼流中所有接入單元的特征信息的索引文件, 則搜索索引文件,獲得與當(dāng)前顯示幀的顯示時間戳PTS相應(yīng)的接入單元的特征信息;否則, 實時解析所述TS碼流,獲得與所述PTS相應(yīng)的接入單元的特征信息。獲得所述特征信息后,如果存在所述索引文件,則根據(jù)獲得的所述特征信息,搜索 索引文件,將索引文件中所述特技播放命令所需的后續(xù)接入單元的特征信息存儲到緩存; 否則,根據(jù)獲得的所述特征信息,在實時解析所述TS碼流的同時,將所述TS碼流中所述特 技播放命令所需的后續(xù)接入單元的特征信息存儲到緩存;當(dāng)接收到新的特技播放命令時, 首先搜索緩存,如果緩存中存在與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信息,則從緩 存中獲得與所述PTS相應(yīng)的接入單元的特征信息;否則,如果存在已存儲的包括所述TS碼 流中所有接入單元的特征信息的索引文件,則搜索索引文件,從索引文件中獲得與所述PTS 相應(yīng)的接入單元的特征信息;否則,實時解析所述TS碼流,從TS碼流中獲得與所述PTS相 應(yīng)的接入單元的特征信息。當(dāng)接收到新的特技播放命令時,如果從緩存中獲得與所述PTS相應(yīng)的接入單元的 特征信息,并且存在索引文件,則根據(jù)獲得的所述接入單元的特征信息,從索引文件獲得新 的特技播放命令所需的后續(xù)接入單元的特征信息。當(dāng)接收到新的特技播放命令時,如果通過搜索索引文件獲得與所述PTS相應(yīng)的接 入單元的特征信息,則獲得所述新的特技播放命令所需的后續(xù)接入單元的特征信息。所述索引文件包括TS碼流的接入單元的特征信息。所述索引文件包括完整性標(biāo)志,用于指示索引文件中是否包括TS碼流的所有接 入單元的特征信息。當(dāng)所述索引文件中包括TS碼流中所有接入單元的特征信息時,完整性標(biāo)志為1 ; 否則,完整性標(biāo)志為0。所述索引文件還包括版本信息和視頻編碼格式中的至少一個。當(dāng)?shù)却脩糨斎氲目臻e、進(jìn)行常速播放或進(jìn)行慢速播放時,在后臺生成并存儲所 述TS碼流的索引文件。生成所述索引文件的步驟包括檢查當(dāng)前路徑下存在的所有TS碼流文件,如果存 在未生成索引文件的TS碼流,或存在索引文件中的完整性標(biāo)志為0的TS碼流,則在后臺生 成所述TS碼流的索引文件,如果生成了包括所述TS碼流中所有接入單元的特征信息的索 引文件,則將所述索引文件中的完整性標(biāo)志設(shè)為1。當(dāng)接收到特技播放命令時,如果后臺正在生成索引文件,則停止所述索引文件的 生成。當(dāng)接收到新的特技播放命令,獲得與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信 息時,允許預(yù)定范圍內(nèi)的PTS誤差。所述特技播放命令包括快進(jìn)、快退、慢進(jìn)、慢退和單幀播放。所述緩存是先入先出FIFO結(jié)構(gòu)的循環(huán)隊列,所述隊列中的每個單元存儲一個接 入單元的特征信息,當(dāng)所述隊列滿時,丟棄最早的一個單元,寫入新的接入單元的特征信 息,并且當(dāng)搜索時,從最后寫入的單元開始搜索。根據(jù)本發(fā)明示例性實施例,提供一種用于處理關(guān)于TS碼流的特技播放命令的設(shè) 備,包括存儲器,用于存儲包括所述TS碼流中所有接入單元的特征信息的索引文件,所述接入單元是所述TS碼流中包括至少一個幀內(nèi)編碼幀的視頻序列;碼流實時解析器,用于實 時解析所述TS碼流;以及特技播放控制器,用于處理關(guān)于所述TS碼流的特技播放命令,當(dāng) 特技播放控制器接收到特技播放命令時,檢查存儲器中是否存在包括所述TS碼流中所有 接入單元的特征信息的索引文件,如果存在,則搜索索引文件,獲得與當(dāng)前顯示的接入單元 中的第一個幀內(nèi)編碼幀的顯示時間戳PTS相應(yīng)的接入單元的特征信息;否則,特技播放控 制器控制碼流實時解析器實時解析所述TS碼流,獲得與所述PTS相應(yīng)的接入單元的特征信 肩、O所述設(shè)備還包括緩存器,當(dāng)獲得所述特征信息后,特技播放控制器檢查存儲器中 是否存在索引文件,如果存在,則根據(jù)獲得的所述特征信息,搜索索引文件,將索引文件中 所述特技播放命令所需的后續(xù)接入單元的特征信息存儲到緩存器;否則,特技播放控制器 控制碼流實時解析器,根據(jù)獲得的所述特征信息,實時解析所述TS碼流,在實時解析所述 TS碼流的同時,將所述TS碼流中所述特技播放命令所需的后續(xù)接入單元的特征信息存儲 到所述緩存器。如果緩存器溢出,則丟棄最先存放的單元,把最近的特征信息存儲到所述緩 存器。當(dāng)所述特技播放控制器接收到新的特技播放命令時,首先搜索緩存器,如果緩存 器中存在與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信息,則特技播放控制器從緩存器中 獲得與所述PTS相應(yīng)的接入單元的特征信息;否則,特技播放控制器檢查存儲器中是否存 在包括所述TS碼流中所有接入單元的特征信息的索引文件,如果存在,則搜索索引文件, 從索引文件中獲得與所述PTS相應(yīng)的接入單元的特征信息;否則,特技播放控制器控制碼 流實時解析器,實時解析所述TS碼流,從TS碼流中獲得與所述PTS相應(yīng)的接入單元的特征 fn息ο當(dāng)所述特技播放控制器接收到新的特技播放命令時,如果從緩存器中獲得與所述 PTS相應(yīng)的接入單元的特征信息,并且存儲器中存在索引文件,則特技播放控制器根據(jù)獲得 的所述接入單元的特征信息,從存儲器中的索引文件獲得新的特技播放命令所需的后續(xù)接 入單元的特征信息。當(dāng)所述特技播放控制器接收到新的特技播放命令時,如果從存儲器的索引文件中 獲得與所述PTS相應(yīng)的接入單元的特征信息,則特技播放控制器獲得所述新的特技播放命 令所需的后續(xù)接入單元的特征信息。所述設(shè)備還包括索引管理模塊,當(dāng)?shù)却脩糨斎氲目臻e、進(jìn)行常速播放或進(jìn)行慢 速播放時,索引管理模塊在后臺生成并存儲包括所述TS碼流中所有接入單元的特征信息 的索引文件。所述索引管理模塊檢查當(dāng)前路徑下存在的所有TS碼流文件,如果對于任意一個 TS碼流未生成包括所述TS碼流中所有接入單元的特征信息的索引文件,則在后臺生成所 述TS碼流的索引文件。當(dāng)所述特技播放控制器接收到特技播放命令時,則檢查索引管理模塊是否正在后 臺生成索引文件,如果正在生成,則控制索引管理模塊停止所述索引文件的生成。當(dāng)所述特技播放控制器接收到新的特技播放命令,獲得與當(dāng)前顯示幀的PTS相應(yīng) 的接入單元的特征信息時,允許預(yù)定范圍內(nèi)的PTS誤差。所述緩存器中存在先入先出FIFO結(jié)構(gòu)的循環(huán)隊列,所述隊列中的每個單元存儲一個接入單元的特征信息,當(dāng)所述隊列滿時,丟棄最早的一個單元,寫入新的接入單元的特 征信息,并且當(dāng)搜索時,從最晚寫入的單元開始搜索。
通過下面結(jié)合附圖進(jìn)行的對實施例的描述,本發(fā)明的上述和/或其他目的和優(yōu)點 將會變得更加清楚,其中圖1是根據(jù)本發(fā)明示例性實施例的處理關(guān)于TS碼流的特技播放命令的設(shè)備的框 圖;圖2是根據(jù)本發(fā)明另一示例性實施例的處理關(guān)于TS碼流的特技播放命令的設(shè)備 的框圖;圖3是根據(jù)本發(fā)明另一示例性實施例的處理關(guān)于TS碼流的特技播放命令的設(shè)備 的框圖;圖4是根據(jù)本發(fā)明示例性實施例的處理關(guān)于TS碼流的特技播放命令的方法的流 程圖;圖5是根據(jù)本發(fā)明示例性實施例的收到新的特技播放命令時的處理的示例的示 圖;以及圖6是根據(jù)本發(fā)明另一示例性實施例的收到新的特技播放命令時處理關(guān)于TS碼 流的特技播放命令的方法的流程圖。
具體實施例方式通過參照下述示例性實施例和附圖的詳細(xì)描述,本發(fā)明的示例性實施例將更容易 理解。然而,本發(fā)明的構(gòu)思可以以許多不同的形式被實施,并且不應(yīng)被解釋為限于在此闡述 的示例性實施例。更恰當(dāng)?shù)?,提供這些示例性實施例以使本公開將會徹底和完整,并將本發(fā) 明的構(gòu)思完全地傳達(dá)給本領(lǐng)域的技術(shù)人員,并且本發(fā)明將僅由權(quán)利要求進(jìn)行限定。貫穿說 明書的始終,相同的標(biāo)號指示相同的部件。 以下,將參照附圖詳細(xì)地描述本發(fā)明的示例性實施例。TS碼流包括視頻流、音頻流、節(jié)目特殊信息流(PSI)和其他數(shù)據(jù)包。在MPEG-2視 頻編碼標(biāo)準(zhǔn)中,當(dāng)在TS碼流中檢測到序列起始碼后,即認(rèn)為新的視頻序列開始。在H. 264/ AVC視頻編碼標(biāo)準(zhǔn)中,當(dāng)在TS碼流中檢測到視頻序列參數(shù)集(sequence parameter sets, 簡稱SPS),即認(rèn)為新的視頻序列開始。而在實時碼流中,為隨機(jī)接入,TS碼流中的視頻序列 的時間長度較短,一般小于1秒(以30fps,1個視頻序列1個G0P,且GOP長度=15為例, 視頻序列間隔僅為500毫秒)。所述視頻序列不限于此,還可基于MPEG-2,H. 264/AVC以外 的其他編碼標(biāo)準(zhǔn)。本發(fā)明中,將TS碼流中包括至少一個幀內(nèi)編碼幀(I幀)的視頻序列作為接入單 元,當(dāng)接收到特技播放命令時,用于在TS碼流中定位特技播放所需的位置。特技播放命令可以是快進(jìn),S卩,正向快速(例如,2倍速、4倍速或16倍速)播放; 快退,即反向快速(例如,2倍速、4倍速或16倍速)播放;慢進(jìn),即,正向慢速(例如,1/2倍 速、1/4倍速或1/8倍速)播放;慢退,即反向慢速(例如,1/2倍速、1/4倍速或1/8倍速) 播放;以及單幀播放,即,以固定的視頻序列間隔來播放。
在不播放TS碼流時(即,等待用戶輸入的空閑)或?qū)S碼流進(jìn)行常速播放或慢 速播放時,可在后臺檢查當(dāng)前路徑下存在的所有TS碼流文件。如果存在未生成索引文件的 TS碼流,則在后臺解析所述TS碼流,在索引文件中加入TS碼流中的接入單元的特征信息和 完整性標(biāo)志。其中,通過獲得TS碼流中所有接入單元的每一個的序列頭在所述TS碼流中 的起始偏移位置、接入單元中第一個幀內(nèi)編碼幀的顯示時間戳PTS和接入單元中第一個幀 內(nèi)編碼幀在所述TS碼流中的結(jié)束偏移位置,并將上述特征信息存儲在索引文件中來生成 該TS碼流的索引文件。完整性標(biāo)志指示索引文件中是否包括了相應(yīng)TS碼流文件中的所有 接入單元的特征信息。當(dāng)將TS碼流文件中所有接入單元的特征信息都加入索引文件后,可 將完整性標(biāo)志設(shè)置為1 ;否則,如果在此之前,由于接收到特技播放命令而中斷了對索引文 件的生成,使得索引文件未包括所有接入單元的特征信息,則將完整性標(biāo)志設(shè)置為0。另一 種情況是,當(dāng)在后臺檢查當(dāng)前路徑下存在的所有TS碼流文件時,發(fā)現(xiàn)存在索引文件的完整 性標(biāo)志為0的TS碼流,即,該索引文件只包括與其相應(yīng)的TS碼流中的一部分接入單元的特 征信息,則繼續(xù)生成該索引文件,直到該索引文件包括與其相應(yīng)的TS碼流中的所有接入單 元的特征信息,并將該索引文件的完整性標(biāo)志設(shè)置為1 ;或者,若由于接收到特技播放命令 而中斷對索引文件的生成,則保持該索引文件的完整性標(biāo)志為0。索引文件中還可以包括 版本信息(如,1.0、2. 0等)和/或TS碼流的視頻編碼格式。當(dāng)然,索引文件的格式不限于 此,可以根據(jù)具體應(yīng)用加入TS碼流的其它信息。通過逐個檢查當(dāng)前路徑下存在的所有TS碼流文件,生成所有TS碼流的索引文件。另外,在進(jìn)行后臺解析以生成索引文件的時候,如果接收到特技播放命令,則停止 后臺解析,開始處理特技播放命令。圖1是根據(jù)本發(fā)明示例性實施例的處理關(guān)于TS碼流的特技播放命令的設(shè)備的框 圖。參照圖1,處理關(guān)于TS碼流的特技播放命令的設(shè)備400包括存儲器110、碼流實時 解析器120和特技播放控制器130。當(dāng)特技播放控制器130接收到特技播放命令時,檢查存儲器110中是否存在包括 當(dāng)前播放的TS碼流中所有接入單元的特征信息的索引文件,所述接入單元是所述TS碼流 中包括至少一個幀內(nèi)編碼幀的視頻序列。接入單元的特征信息中可包括接入單元的序列 頭在當(dāng)前TS碼流中的起始偏移位置、接入單元中第一個I幀的顯示時間戳(PTQ和接入 單元中第一個I幀在當(dāng)前TS碼流中的結(jié)束偏移位置。如果存在完整的索引文件,則特技 播放控制器130搜索索引文件中的接入單元的特征信息,將每個接入單元的特征信息中的 PTS(PTS_indeX)與當(dāng)前TS碼流中當(dāng)前正在顯示幀的PTS(PTS_Current)進(jìn)行比較,如果找 到與PTS_Current匹配的PTSjndex,則獲得包括所述PTSjndex的特征信息。根據(jù)該特征 信息中包括的接入單元的序列頭在當(dāng)前TS碼流中的起始偏移位置和接入單元中第一個I 幀在當(dāng)前TS碼流中的結(jié)束偏移位置,可快速定位到特技播放命令所需的接入單元,從而快 速準(zhǔn)確地開始特技播放。如果不存在完整的索引文件,則特技播放控制器130控制碼流實時解析器120實 時解析當(dāng)前TS碼流,根據(jù)PTS_Current,獲得與PTS_Current相應(yīng)的接入單元的特征信息, 從而直接定位到TS碼流中特技播放所需的接入單元的起始和結(jié)束位置。通過實時解析碼 流,特技播放可以在不同的TS碼流之間進(jìn)行無縫切換。
圖2是根據(jù)本發(fā)明另一示例性實施例的處理關(guān)于TS碼流的特技播放命令的設(shè)備 的框圖。參照圖2,處理關(guān)于TS碼流的特技播放命令的設(shè)備100還可包括緩存器140,當(dāng)在 進(jìn)行特技播放時,特技播放控制器130在獲得所述特征信息后,檢查存儲器110中是否存在 包括當(dāng)前播放的TS碼流中所有接入單元的特征信息的索引文件。如果存在,則特技播放控 制器130根據(jù)獲得的特征信息搜索索引文件,將索引文件中特技播放命令所需的后續(xù)接入 單元的特征信息存儲到緩存器440中。如果存儲器110中不存在完整的索引文件,則特技 播放控制器130控制碼流實時解析器120,根據(jù)獲得的特征信息實時解析TS碼流。并且在 實時解析TS碼流的同時,特技播放控制器130將TS碼流中所述特技播放命令所需后續(xù)的 接入單元的特征信息存儲到所述緩存器140中。因為緩存器140可以是先入先出FIFO結(jié)構(gòu)的循環(huán)隊列,因此隊列中的每個單元存 儲一個接入單元的特征信息。當(dāng)將特技播放控制器130將特征信息發(fā)送到緩存器140時,因 為緩存器140的容量有限,所以當(dāng)隊列滿時,則緩存器140丟棄最早的一個單元,寫入新的 接入單元的特征信息。這樣,緩存器140中就存儲有最近播放的接入單元的特征信息。同 時,特技播放控制器130根據(jù)獲得的特征信息,直接定位到特技播放命令所需的接入單元 的起始和結(jié)束位置,進(jìn)行特技播放。當(dāng)特技播放控制器130接收到新的特技播放命令時,首先搜索緩存器140,如果緩 存器140中存在與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信息,則特技播放控制器130 從緩存器140中獲得與所述PTS相應(yīng)的接入單元的特征信息。隨后,特技播放控制器130 檢查存儲器110中是否存在索引文件,如果存在,則特技播放控制器130根據(jù)獲得的接入單 元的特征信息,從存儲器110中的索引文件獲得新的特技播放命令所需的后續(xù)接入單元的 特征信息。如果緩存器140中不存在與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信息,則特 技播放控制器130檢查存儲器110中是否存在完整的索引文件,如果存在,則搜索索引文 件,獲得新的特技播放命令所需的后續(xù)接入單元的特征信息。如果存儲器110中不存在完整的索引文件,則特技播放控制器130控制碼流實時 解析器120,實時解析TS碼流,從TS碼流中獲得與所述PTS相應(yīng)的接入單元的特征信息。圖3是根據(jù)本發(fā)明另一示例性實施例的處理關(guān)于TS碼流的特技播放命令的設(shè)備 的框圖。參照圖3,處理關(guān)于TS碼流的特技播放命令的設(shè)備100還可包括索引管理模塊 150。當(dāng)?shù)却脩糨斎氲目臻e、進(jìn)行常速播放或進(jìn)行慢速播放時,索引管理模塊150檢查當(dāng) 前路徑下存在的所有TS碼流文件,如果發(fā)現(xiàn)所有TS碼流文件中,存在未生成完整索引文件 的TS碼流,則索引管理模塊150在后臺生成包括所述TS碼流中所有接入單元的特征信息 的索引文件,并將索引文件存儲在存儲器110中。當(dāng)特技播放控制器130接收到特技播放命令時,則檢查索引管理模塊150是否正 在后臺生成索引文件,如果正在生成,則控制索引管理模塊150停止生成索引文件。圖4是根據(jù)本發(fā)明示例性實施例的處理關(guān)于TS碼流的特技播放命令的方法的流 程圖。參照圖4,如果接收到特技播放命令(步驟S410),則檢查是否存在存儲的索引文件(步驟S420),所述索引文件包括當(dāng)前播放的TS碼流中所有接入單元的特征信息,即,所 述索引文件是關(guān)于當(dāng)前TS碼流的完整的索引,如果僅包括當(dāng)前TS碼流中的一部分接入單 元的特征信息,則也認(rèn)為不存在所述索引文件。接入單元的特征信息中可包括接入單元的 序列頭在當(dāng)前TS碼流中的起始偏移位置、接入單元中第一個I幀的顯示時間戳(PTQ和接 入單元中第一個I幀在當(dāng)前TS碼流中的結(jié)束偏移位置。如果存在完整的索引文件,則搜索 索引文件中的接入單元的特征信息(步驟S430),將每個接入單元的特征信息中的PTS(稱 作PTS_index)與當(dāng)前TS碼流中當(dāng)前正在顯示幀的PTS (稱作PTS_current)進(jìn)行比較,如 果找到與PTS_Current匹配的PTSjndex,則獲得包括所述PTSjndex的特征信息(步驟 S450)。根據(jù)該特征信息中包括的接入單元的序列頭在當(dāng)前TS碼流中的起始偏移位置和接 入單元中第一個I幀在當(dāng)前TS碼流中的結(jié)束偏移位置,可快速定位到特技播放命令所需的 接入單元,從而快速準(zhǔn)確地開始特技播放。如果在步驟S120中判斷不存在完整的索引文件,則也無需停止播放,等待生成索 引文件,而是實時解析當(dāng)前TS碼流(步驟S440),根據(jù)PTS_Current,獲得與PTS_Current 相應(yīng)的接入單元的特征信息(步驟S450),從而直接定位到TS碼流中特技播放所需的接入 單元的起始和結(jié)束位置。通過實時解析碼流,在不存在索引文件的時候也可以立即進(jìn)行特 技播放,不需要等待。也不會因為不同平臺產(chǎn)生的TS碼流的索引文件不一致,導(dǎo)致無法進(jìn) 行特技播放的情況,即,特技播放可以在不同的TS碼流之間進(jìn)行無縫切換。圖5是根據(jù)本發(fā)明示例性實施例的收到新的特技播放命令時的處理的示例的示 圖。參照圖5,例如,正在進(jìn)行快進(jìn)的特技播放,當(dāng)前顯示的是TS碼流中第In+1個接入單元 中的巾貞,而對TS碼流進(jìn)行的解復(fù)用/解碼/顯示等的處理已經(jīng)進(jìn)行到TS碼流中第In+m+1個 接入單元。如果接收到新的特技播放命令(例如,快退),將TS碼流中當(dāng)前顯示的第In+1個 接入單元中的幀作為新的特技播放命令的開始位置。因此需要快速,準(zhǔn)確的找到這個開始 位置,否則造成響應(yīng)時間長,或者位置偏移,也就不能實現(xiàn)無縫切換。因此,在本發(fā)明中,為了實現(xiàn)不同特技播放命令的無縫切換,可在進(jìn)行特技播放的 同時,如果存在完整的索引文件,則搜索索引文件;如果不存在完整的索引文件,則實時解 析TS碼流,從而獲得第Ilri個接入單元的特征信息。隨后,將特技播放命令所需的后續(xù)接入 單元的特征信息存儲到緩存。例如,當(dāng)收到8倍速的快進(jìn)的特技播放命令時,如果存在完整 的索引文件,則根據(jù)PTS_Current,搜索索引文件,找到與PTS_Current匹配的PTSjndex。 又因為當(dāng)前特技播放命令是8倍速快進(jìn)(每隔一個接入單元播放),則從索引文件中的存儲 的當(dāng)前TS碼流中所有接入單元的特征信息中,從與PTS_CUrrent相應(yīng)的接入單元開始,每 隔一個接入單元獲得當(dāng)前TS碼流的接入單元的特征信息。接下來,將從索引文件獲得的8 倍速快進(jìn)特技播放命令所需的接入單元的特征信息發(fā)送到緩存。如果不存在完整的索引文 件,則實時解析當(dāng)前TS碼流,每隔一個接入單元獲得當(dāng)前TS碼流的接入單元的特征信息, 并將獲得的8倍速快進(jìn)特技播放命令所需的接入單元的特征信息發(fā)送到緩存。因為緩存 可以是先入先出FIFO結(jié)構(gòu)的循環(huán)隊列,隊列中的每個單元存儲一個接入單元的特征信息。 當(dāng)將特征信息發(fā)送到緩存時,因為緩存的容量有限,所以當(dāng)隊列滿時,則丟棄最早的一個單 元,寫入新的接入單元的特征信息。這樣緩存中就存儲有最近播放的接入單元的特征信息。 同時根據(jù)獲得的特征信息,直接定位到TS碼流中8倍速快進(jìn)特技播放命令所需的接入單元 的起始和結(jié)束位置,進(jìn)行特技播放。
圖6是根據(jù)本發(fā)明另一示例性實施例的收到新的特技播放命令時處理關(guān)于TS碼 流的特技播放命令的方法的流程圖。參照圖6,例如,當(dāng)前正在進(jìn)行8倍速快進(jìn)特技播放,收到16倍速快退(每隔3個 接入單元播放,并且只播放接入單元中的第一個I幀)的新的特技播放命令(步驟S610), 則停止播放,根據(jù)PTS_CUrrent,從緩存中最晚寫入的單元開始搜索緩存,看緩存中是否存 在與PTS_CUrrent相應(yīng)的接入單元的特征信息(步驟S620)。因為緩存中存儲有最近播放 的接入單元的特征信息,所以有可能獲得與PTS_current匹配的PTSjndex (步驟S660), 這樣就可迅速定位到16倍速快退特技播放命令所需的接入單元的起始和結(jié)束位置。匹配 時,也可允許匹配的PTS_indeX與PTS_Current在預(yù)定的誤差范圍內(nèi)。例如,可根據(jù)想要獲 得的播放的精確性,允許獲得的作為特技播放命令所需的定位的接入單元的PTS_indeX與 PTS_current之間的誤差為與一個或多個圖像組(GOP)的持續(xù)時間相應(yīng)的PTS偏移量。應(yīng) 該理解的是,此處的描述僅是示例性的,不應(yīng)被理解為對本發(fā)明的限制。但是也有可能因為緩存容量有限,當(dāng)寫入新的特征信息時,與PTS_current匹配 的PTSjndex已經(jīng)被丟棄,因此緩存中不存在與PTS_current匹配的PTS_index。則此時, 查看是否如果存在完整的索引文件(步驟S630),如果存在,則搜索索引文件中的接入單 元的特征信息(步驟S640),如果找到與PTS_Current匹配的PTSjndex,則獲得包括所述 PTSjndex的特征信息(步驟S660)。進(jìn)一步,獲得與PTS_Current相應(yīng)的接入單元的特征 信息之后,還可以從索引文件中的存儲的當(dāng)前TS碼流中所有接入單元的特征信息中,從與 PTS_current相應(yīng)的接入單元開始,每隔3個接入單元獲得當(dāng)前TS碼流的接入單元的特征 信息,從而獲得16倍速快退特技播放命令所需的所有接入單元的特征信息,使得播放時可 直接定位到每個接入單元,實現(xiàn)特技播放。如果不存在完整的索引文件,則實時解析當(dāng)前TS碼流(步驟S650),根據(jù)PTS_ current,獲得與PTS_current相應(yīng)的接入單元的特征信息(步驟S660),從而直接定位到 16倍速快退的新的特技播放命令所需的接入單元的起始和結(jié)束位置。從而在接收到新的特 技播放命令時,響應(yīng)快,可實現(xiàn)無縫切換,切換后接入點位置準(zhǔn)確,無漂移現(xiàn)象。此外,如果在步驟S620中,判斷緩存存在與PTS_Current相應(yīng)的接入單元的特征 信息(即,16倍速快退的新的特技播放命令所需的接入單元的特征信息),則也可繼續(xù)查看 是否存在完整的索引文件。如果存在,則根據(jù)與PTS_CUrrent相應(yīng)的接入單元的特征信息, 從索引文件中存儲的當(dāng)前TS碼流中所有接入單元的特征信息中,從與PTS_CUrrent相應(yīng)的 接入單元開始,每隔3個接入單元獲得當(dāng)前TS碼流的接入單元的特征信息,從而獲得16倍 速快退特技播放命令所需的后續(xù)接入單元的特征信息,使得播放時可直接定位到每個接入 單元,實現(xiàn)特技播放。
權(quán)利要求
1.一種用于處理關(guān)于TS碼流的特技播放命令的方法,其中,將TS碼流中包括至少一個 幀內(nèi)編碼幀的視頻序列作為接入單元,所述方法包括步驟(a)接收特技播放命令;(bl)如果存在已存儲的包括所述TS碼流中所有接入單元的特征信息的索引文件,則 搜索索引文件以獲得與當(dāng)前顯示幀的顯示時間戳PTS相應(yīng)的接入單元的特征信息;(b2)如果不存在所述索引文件,則實時解析所述TS碼流以獲得與所述PTS相應(yīng)的接入 單元的特征信息。
2.如權(quán)利要求1所述的方法,還包括(cl)獲得所述特征信息后,如果存在所述索引文件,則根據(jù)獲得的所述特征信息搜索 索引文件,將索引文件中所述特技播放命令所需的后續(xù)接入單元的特征信息存儲到緩存;(c2)如果不存在所述索引文件,則根據(jù)獲得的所述特征信息,在實時解析所述TS碼流 的同時,將所述TS碼流中所述特技播放命令所需的后續(xù)接入單元的特征信息存儲到緩存; (dl)當(dāng)接收到新的特技播放命令時,搜索緩存,如果緩存中存在與當(dāng)前顯示幀的PTS 相應(yīng)的接入單元的特征信息,則從緩存中獲得與所述PTS相應(yīng)的接入單元的特征信息;(d2)如果緩存中不存在與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信息,但存在已存 儲的包括所述TS碼流中所有接入單元的特征信息的索引文件,則搜索索引文件,從索引文 件中獲得與所述PTS相應(yīng)的接入單元的特征信息;(d3)如果緩存中不存在與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信息,且不存在已 存儲的包括所述TS碼流中所有接入單元的特征信息的索引文件,則實時解析所述TS碼流, 從TS碼流中獲得與所述PTS相應(yīng)的接入單元的特征信息。
3.如權(quán)利要求2所述的方法,其中,步驟(dl)還包括如果從緩存中獲得與所述PTS相 應(yīng)的接入單元的特征信息,并且存在索引文件,則根據(jù)獲得的所述接入單元的特征信息,從 索引文件獲得新的特技播放命令所需的后續(xù)接入單元的特征信息。
4.如權(quán)利要求2所述的方法,其中,步驟(業(yè))還包括如果通過搜索索引文件獲得與 所述PTS相應(yīng)的接入單元的特征信息,則獲得所述新的特技播放命令所需的后續(xù)接入單元 的特征信息。
5.如權(quán)利要求1所述的方法,其中,所述索引文件包括TS碼流的接入單元的特征信息。
6.如權(quán)利要求5所述的方法,其中,所述索引文件包括完整性標(biāo)志,用于指示索引文件 中是否包括TS碼流的所有接入單元的特征信息。
7.如權(quán)利要求5所述的方法,其中,當(dāng)所述索引文件中包括TS碼流中所有接入單元的 特征信息時,完整性標(biāo)志為1 ;否則,完整性標(biāo)志為0。
8.如權(quán)利要求5所述的方法,其中,所述索引文件還包括版本信息和視頻編碼格式中 的至少一個。
9.如權(quán)利要求1所述的方法,還包括當(dāng)?shù)却脩糨斎氲目臻e、進(jìn)行常速播放或進(jìn)行慢 速播放時,在后臺生成并存儲所述TS碼流的索引文件。
10.如權(quán)利要求9所述的方法,其中,生成所述索引文件的步驟包括檢查當(dāng)前路徑下 存在的所有TS碼流文件,如果存在未生成索引文件的TS碼流,或存在索引文件中的完整性 標(biāo)志為0的TS碼流,則在后臺生成所述TS碼流的索引文件,如果生成了包括所述TS碼流 中所有接入單元的特征信息的索引文件,則將所述索引文件中的完整性標(biāo)志設(shè)為1。
11.如權(quán)利要求9所述的方法,還包括當(dāng)接收到特技播放命令時,如果后臺正在生成 索引文件,則停止所述索引文件的生成。
12.如權(quán)利要求1所述的方法,其中,所述特征信息包括接入單元的序列頭在所述TS碼 流中的起始偏移位置、接入單元中第一個幀內(nèi)編碼幀的顯示時間戳PTS和接入單元中第一 個幀內(nèi)編碼幀在所述TS碼流中的結(jié)束偏移位置。
13.如權(quán)利要求2所述的方法,其中,當(dāng)接收到新的特技播放命令,獲得與當(dāng)前顯示幀 的PTS相應(yīng)的接入單元的特征信息時,允許預(yù)定范圍內(nèi)的PTS誤差。
14.如權(quán)利要求1所述的方法,其中,所述特技播放命令包括快進(jìn)、快退、慢進(jìn)、慢退和 單幀播放。
15.如權(quán)利要求2所述的方法,其中,所述緩存是先入先出FIFO結(jié)構(gòu)的循環(huán)隊列,所述 隊列中的每個單元存儲一個接入單元的特征信息,當(dāng)所述隊列滿時,丟棄最先的一個單元, 寫入新的接入單元的特征信息,并且當(dāng)搜索時,從最后寫入的單元開始搜索。
16.一種用于處理關(guān)于TS碼流的特技播放命令的設(shè)備,包括存儲器,用于存儲包括所述TS碼流中所有接入單元的特征信息的索引文件,所述接入 單元是所述TS碼流中包括至少一個幀內(nèi)編碼幀的視頻序列;碼流實時解析器,用于實時解析所述TS碼流;以及特技播放控制器,用于處理關(guān)于所述TS碼流的特技播放命令,當(dāng)特技播放控制器接收 到特技播放命令時,檢查存儲器中是否存在包括所述TS碼流中所有接入單元的特征信息 的索引文件,如果存在,則搜索索引文件,獲得與當(dāng)前顯示幀的顯示時間戳PTS相應(yīng)的接入 單元的特征信息;否則,特技播放控制器控制碼流實時解析器實時解析所述TS碼流,獲得 與所述PTS相應(yīng)的接入單元的特征信息。
17.如權(quán)利要求16所述的設(shè)備,還包括緩存器,當(dāng)獲得所述特征信息后,特技播放控制器檢查存儲器中是否存在索引文件,如 果存在,則根據(jù)獲得的所述特征信息,搜索索引文件,將索引文件中所述特技播放命令所需 的接入單元的特征信息存儲到緩存器;否則,特技播放控制器控制碼流實時解析器,根據(jù)獲 得的所述特征信息,實時解析所述TS碼流,在實時解析所述TS碼流的同時,將所述TS碼流 中所述特技播放命令所需的接入單元的特征信息存儲到所述緩存器。如果緩存器溢出,則 丟棄最先存放的單元,把最近的特征信息存儲到所述緩存器。
18.如權(quán)利要求17所述的設(shè)備,其中,當(dāng)特技播放控制器接收到新的特技播放命令時, 首先搜索緩存器,如果緩存器中存在與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信息,則 特技播放控制器從緩存器中獲得與所述PTS相應(yīng)的接入單元的特征信息;否則,特技播放 控制器檢查存儲器中是否存在包括所述TS碼流中所有接入單元的特征信息的索引文件, 如果存在,則搜索索引文件,從索引文件中獲得與所述PTS相應(yīng)的接入單元的特征信息;否 則,特技播放控制器控制碼流實時解析器,實時解析所述TS碼流,從TS碼流中獲得與所述 PTS相應(yīng)的接入單元的特征信息。
19.如權(quán)利要求18所述的設(shè)備,其中,當(dāng)特技播放控制器接收到新的特技播放命令時, 如果從緩存器中獲得與所述PTS相應(yīng)的接入單元的特征信息,并且存儲器中存在索引文 件,則特技播放控制器根據(jù)獲得的所述接入單元的特征信息,從存儲器中的索引文件獲得 新的特技播放命令所需的后續(xù)接入單元的特征信息。
20.如權(quán)利要求18所述的設(shè)備,其中,當(dāng)特技播放控制器接收到新的特技播放命令時, 如果從存儲器的索引文件中獲得與所述PTS相應(yīng)的接入單元的特征信息,則特技播放控制 器獲得所述新的特技播放命令所需的后續(xù)接入單元的特征信息。
21.如權(quán)利要求16所述的設(shè)備,其中,所述索引文件包括TS碼流的接入單元的特征信肩、ο
22.如權(quán)利要求21所述的設(shè)備,其中,所述索引文件包括完整性標(biāo)志,用于指示索引文 件中是否包括TS碼流的所有接入單元的特征信息。
23.如權(quán)利要求21所述的設(shè)備,其中,當(dāng)所述索引文件中包括TS碼流中所有接入單元 的特征信息時,完整性標(biāo)志為1 ;否則,完整性標(biāo)志為0。
24.如權(quán)利要求21所述的設(shè)備,其中,所述索引文件還包括版本信息和視頻編碼格式 中的至少一個。
25.如權(quán)利要求16所述的設(shè)備,還包括索引管理模塊,當(dāng)?shù)却脩糨斎氲目臻e、進(jìn)行常速播放或進(jìn)行慢速播放時,索引管理模 塊在后臺生成并存儲所述TS碼流的索引文件。
26.如權(quán)利要求25所述的設(shè)備,其中,索引管理模塊檢查當(dāng)前路徑下存在的所有TS碼 流文件,如果存在未生成索引文件的TS碼流,或存在索引文件中的完整性標(biāo)志為0的TS碼 流,則在后臺生成所述TS碼流的索引文件,如果生成了包括所述TS碼流中所有接入單元的 特征信息的索引文件,則將所述索引文件中的完整性標(biāo)志設(shè)為1。
27.如權(quán)利要求25所述的設(shè)備,還包括當(dāng)特技播放控制器接收到特技播放命令時,則 檢查索引管理模塊是否正在后臺生成索引文件,如果正在生成,則控制索引管理模塊停止 所述索引文件的生成。
28.如權(quán)利要求16所述的設(shè)備,其中,所述特征信息包括接入單元的序列頭在所述TS 碼流中的起始偏移位置、接入單元中第一個幀內(nèi)編碼幀的顯示時間戳PTS和接入單元中第 一個幀內(nèi)編碼幀在所述TS碼流中的結(jié)束偏移位置。所述索引文件包括版本信息,對應(yīng)TS 碼流特征信息完整性標(biāo)志,視頻編碼格式,各個接入單元的特征信息等等。
29.如權(quán)利要求16所述的設(shè)備,其中,當(dāng)特技播放控制器接收到新的特技播放命令,獲 得與當(dāng)前顯示幀的PTS相應(yīng)的接入單元的特征信息時,允許預(yù)定范圍內(nèi)的PTS誤差。
30.如權(quán)利要求17所述的設(shè)備,其中,所述緩存器中存在先入先出FIFO結(jié)構(gòu)的循環(huán)隊 列,所述隊列中的每個單元存儲一個接入單元的特征信息,當(dāng)所述隊列滿時,丟棄最先的一 個單元,寫入新的接入單元的特征信息,并且當(dāng)搜索時,從最后寫入的單元開始搜索。
全文摘要
提供一種用于處理關(guān)于TS碼流的特技播放命令的方法和設(shè)備。所述方法和設(shè)備將TS碼流中包括至少一個幀內(nèi)編碼幀的視頻序列作為接入單元。通過實時解析原始TS碼流文件,能夠?qū)Σ煌拇a流文件進(jìn)行即時的特技播放;在等待用戶輸入的空閑、常速或慢速播放時后臺解析TS碼流文件,生成索引文件,一旦索引文件生成,之后的特技播放就可根據(jù)這個索引文件實現(xiàn);將最近播放接入單元的特征信息存儲到緩存區(qū),從而在特技模式切換需要重定位接入位置時,無需再次解析碼流或搜索索引文件,可直接從緩存區(qū)中快速的搜索到接入單元的信息,實現(xiàn)了各種特技模式無縫的切換,切換后接入的響應(yīng)時間快,位置準(zhǔn)確。
文檔編號H04N21/2387GK102065320SQ20091020837
公開日2011年5月18日 申請日期2009年11月12日 優(yōu)先權(quán)日2009年11月12日
發(fā)明者劉明, 張 杰, 成亮, 胡建榮 申請人:三星電子(中國)研發(fā)中心, 三星電子株式會社