專利名稱:用于多個(gè)流的協(xié)調(diào)拼接的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施方式一般來說涉及數(shù)字處理技術(shù),且更明確地說,涉及用于在數(shù)字傳輸系統(tǒng)中拼接壓縮數(shù)據(jù)流的方法和設(shè)備。
背景技術(shù):
在通信系統(tǒng)內(nèi),網(wǎng)絡(luò)帶寬在多媒體信號(hào)的傳輸期間起重要作用。各種多媒體服務(wù) (例如,廣播服務(wù)、視頻點(diǎn)播(video on demand)服務(wù)、視頻電話服務(wù)等)產(chǎn)生了多媒體信號(hào)。一般來說,多媒體信號(hào)具有極大帶寬且占用網(wǎng)絡(luò)帶寬的大部分。因此,開發(fā)了各種壓縮標(biāo)準(zhǔn)(例如,運(yùn)動(dòng)圖像專家組(例如,MPEG-I、MPEG-2)、H. 26X等),以去除多媒體信號(hào)中的數(shù)據(jù)冗余。如所述壓縮標(biāo)準(zhǔn)定義的各種壓縮技術(shù)用于產(chǎn)生壓縮多媒體信號(hào)。壓縮多媒體信號(hào)相對(duì)占用較少網(wǎng)絡(luò)帶寬。并且,壓縮多媒體信號(hào)一般包括編碼幀,例如,編碼圖像幀、編碼音頻幀、編碼數(shù)據(jù)幀等。已開發(fā)各種數(shù)字系統(tǒng)以對(duì)編碼多媒體信號(hào)進(jìn)行處理(例如,廣播、拼接等)。一方面,壓縮技術(shù)降低了多媒體信號(hào)的帶寬要求,另一方面,壓縮技術(shù)已不經(jīng)意間增加了數(shù)字系統(tǒng)的復(fù)雜性。例如,在典型拼接操作中,數(shù)字系統(tǒng)配置成首先對(duì)壓縮多媒體信號(hào)進(jìn)行解碼并隨后將解碼多媒體信號(hào)的至少一或更多個(gè)幀(例如,圖像幀)替換為其它幀。此外,在完成拼接操作后,數(shù)字系統(tǒng)配置成使用前述壓縮標(biāo)準(zhǔn)對(duì)解碼多媒體信號(hào)進(jìn)行重新編碼。多媒體信號(hào)的這種解碼和重新編碼影響壓縮多媒體信號(hào)的質(zhì)量并降低數(shù)字系統(tǒng)的效率。并且,數(shù)字系統(tǒng)需要計(jì)算能力強(qiáng)大的高端處理單元,以處理壓縮多媒體信號(hào)。此外,在拼接操作期間,多媒體信號(hào)的各種流(例如,視頻流、音頻流等)可能失去相互間的定時(shí)同步。在常規(guī)方法中,數(shù)字系統(tǒng)使用硬件時(shí)鐘作為一或更多個(gè)流時(shí)鐘的從時(shí)鐘,以實(shí)現(xiàn)所述一或更多個(gè)流之間的定時(shí)同步。硬件時(shí)鐘給數(shù)字系統(tǒng)增加附加復(fù)雜性。因此,此項(xiàng)技術(shù)中需要一種用于有效地拼接壓縮多媒體信號(hào)的方法和設(shè)備。
發(fā)明內(nèi)容
本發(fā)明公開一種拼接第一數(shù)據(jù)流和第二數(shù)據(jù)流的方法。所述方法包含檢測(cè)第一數(shù)據(jù)流內(nèi)的拼接入(splice-in)點(diǎn)和拼接出(splice-out)點(diǎn),其中所述拼接入點(diǎn)是所述第一數(shù)據(jù)流中的一幀,且所述拼接出點(diǎn)是所述第一數(shù)據(jù)流中的另一幀。所述方法進(jìn)一步從所述第一數(shù)據(jù)流中的數(shù)個(gè)拼接機(jī)會(huì)點(diǎn)(SOP)識(shí)別拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn),其中所述拼接入機(jī)會(huì)點(diǎn)對(duì)應(yīng)于所述拼接入點(diǎn)且所述拼接出機(jī)會(huì)點(diǎn)對(duì)應(yīng)于所述拼接出點(diǎn),其中所述拼接入機(jī)會(huì)點(diǎn)和所述拼接出機(jī)會(huì)點(diǎn)是所述第一數(shù)據(jù)流的幀。所述方法將所述第一數(shù)據(jù)流的至少一個(gè)幀替換為所述第二數(shù)據(jù)流的至少一個(gè)幀,其中所述第一數(shù)據(jù)流的所述幀的所述替換從所述拼接入機(jī)會(huì)點(diǎn)起開始且在所述拼接出機(jī)會(huì)點(diǎn)處結(jié)束;且其中所述第一數(shù)據(jù)流包括數(shù)個(gè)幀且所述第二數(shù)據(jù)流包括數(shù)個(gè)幀。所述方法執(zhí)行拼接操作,而不需對(duì)所述第一數(shù)據(jù)流進(jìn)行拆包。此外,所述幀的替換不需要對(duì)所述第一數(shù)據(jù)流的所述幀進(jìn)行重新排序。在另一實(shí)施方式中,本發(fā)明公開一種用于控制第一數(shù)據(jù)流的數(shù)個(gè)流的流程的方法和設(shè)備。在一個(gè)實(shí)施方式中,所述方法包含處理所述第一數(shù)據(jù)流的至少兩個(gè)流的至少一個(gè)訪問單元,其中所述至少兩個(gè)流的所述處理起始于跳躍的開始處且其中所述至少兩個(gè)流包括數(shù)個(gè)訪問單元。所述方法在所述跳躍的所述開始處將跳躍信用提供給至少兩個(gè)流拼接模塊,其中所述至少兩個(gè)流拼接模塊在跳躍周期期間處理所述相應(yīng)至少兩個(gè)流,且所述跳躍的所述開始處的所述跳躍信用設(shè)立所述跳躍周期。所述方法進(jìn)一步在所述跳躍周期期間修改所述至少兩個(gè)流拼接模塊的所述跳躍信用并在所述至少兩個(gè)流拼接模塊中的一流拼接模塊的所述已修改跳躍信用小于所述至少兩個(gè)流中的一流的所述訪問單元的持續(xù)時(shí)間的量時(shí)中斷所述流的所述處理。在再一實(shí)施方式中,本發(fā)明公開一種用于選擇第一數(shù)據(jù)流的數(shù)個(gè)流的拼接機(jī)會(huì)點(diǎn)的方法和設(shè)備。在一個(gè)實(shí)施方式中,所述方法包含從所述第一數(shù)據(jù)流的所述數(shù)個(gè)流中識(shí)別錨流,其中所述錨流包括數(shù)個(gè)訪問單元。所述方法從所述錨流的所述數(shù)個(gè)訪問單元決定所述錨流內(nèi)的拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)。所述方法進(jìn)一步根據(jù)所述錨流的所述拼接入機(jī)會(huì)點(diǎn)和所述拼接出機(jī)會(huì)點(diǎn)決定除所述錨流外的至少一個(gè)流的拼接機(jī)會(huì)點(diǎn)。
因此可以詳細(xì)理解本發(fā)明的上述特征,通過參照實(shí)施方式,可以得到上文概述的本發(fā)明的更特定的描述,所述實(shí)施方式中的一些繪示于附圖中。然而,應(yīng)注意,附圖僅繪示本發(fā)明的典型實(shí)施方式,且因此不應(yīng)視為限制本發(fā)明的范疇,因?yàn)楸景l(fā)明可以接納其它同等有效的實(shí)施方式。圖1繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的示范性數(shù)據(jù)流處理系統(tǒng)的框圖;圖2繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的拼接器的示范性實(shí)施方式的框圖;圖3A至圖3E繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的對(duì)數(shù)據(jù)流進(jìn)行的示范性拼接操作;圖4繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的對(duì)數(shù)據(jù)流進(jìn)行拼接操作的示范性方法的流程圖;圖5繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的用于控制第一數(shù)據(jù)流的數(shù)個(gè)流的流程的方法的流程圖;和圖6繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的用于選擇第一數(shù)據(jù)流的數(shù)個(gè)流的拼接機(jī)會(huì)點(diǎn)的方法的流程圖。
具體實(shí)施例方式圖1繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的示范性數(shù)據(jù)流廣播系統(tǒng)100的框圖。系統(tǒng)100配置成將多媒體服務(wù)(例如,數(shù)字電視廣播服務(wù)、視頻點(diǎn)播廣播服務(wù)等)向用戶廣播。在一個(gè)實(shí)施方式中,系統(tǒng)100可以向用戶提供綜合數(shù)字服務(wù),例如,因特網(wǎng)和/或企業(yè)內(nèi)部網(wǎng)的接入。數(shù)據(jù)流廣播系統(tǒng)100包括數(shù)個(gè)源站,所述源站通過網(wǎng)絡(luò)124以通信方式與數(shù)個(gè)處理站連接。所述數(shù)個(gè)源站(例如,源站10 、源站10 、源站10 ……和源站102n)在下文稱為源站102。一般來說,源站102為廣播站(例如,電視廣播站、無線電廣播站等),源站102將數(shù)據(jù)流發(fā)射到數(shù)個(gè)處理站,例如,處理站11 、處理站11 、處理站IlZ3……和處理站11 , 所述數(shù)個(gè)處理站在下文稱為處理站112。在一個(gè)實(shí)例中,源站102是數(shù)字廣播站,且源站102 將數(shù)字?jǐn)?shù)據(jù)流發(fā)射到數(shù)個(gè)處理站112。在另一實(shí)例中,源站102是將模擬流發(fā)射到數(shù)個(gè)處理站112的模擬廣播站。如本說明書中稍后所解釋的,數(shù)個(gè)處理站112配置成對(duì)數(shù)據(jù)流執(zhí)行操作(例如,拼接等)。在一些實(shí)施方式中,源站102配置成產(chǎn)生節(jié)目流,所述節(jié)目流包括具有一序列數(shù)個(gè)圖像幀的視頻流、具有數(shù)個(gè)音頻幀的一或更多個(gè)音頻流和具有數(shù)個(gè)節(jié)目時(shí)鐘基準(zhǔn)(PCR) 幀的相關(guān)聯(lián)PCR流。在一個(gè)實(shí)施方式中,源站102可從制作工作室接收節(jié)目流。在一個(gè)實(shí)例中,制作工作室可以是移動(dòng)制作工作室,所述移動(dòng)制作工作室用于報(bào)導(dǎo)娛樂事件,例如, 新聞、現(xiàn)場(chǎng)比賽、會(huì)議等。源站102配置成使用熟知的壓縮技術(shù)(例如,JPEG、MPEG (例如,MPEG-l、MPEG-2和 MPEG-4)、H.26X等)來處理節(jié)目流。結(jié)果,產(chǎn)生了壓縮數(shù)據(jù)流。舉例來說而不是為了限制, 在一個(gè)實(shí)施方式中,源站102配置成產(chǎn)生符合MPEG的壓縮數(shù)據(jù)流。因此,根據(jù)MPEG壓縮標(biāo)準(zhǔn)來對(duì)特定節(jié)目流的各種幀(例如,圖像幀、音頻幀和相關(guān)聯(lián)的節(jié)目時(shí)鐘基準(zhǔn)(PCR)流)進(jìn)行編碼。一般來說,節(jié)目流的特定圖像幀可以壓縮為幀內(nèi)編碼幀(I幀)、預(yù)測(cè)幀(P幀)或壓縮為雙向幀(B幀)。I幀消除了圖像幀內(nèi)的空間冗余,且I幀是獨(dú)立編碼的。結(jié)果,當(dāng)在處理站112處解碼時(shí),I幀并不依賴于其它圖像幀。然而,P幀和B幀是依賴性壓縮圖像幀, 且當(dāng)在處理站112處解碼時(shí),P幀和B幀可能需要I幀和/或P幀。另外,P幀消除了相對(duì)于先前的壓縮圖像幀的時(shí)間冗余。先前的壓縮圖像幀可以是I幀或P幀。此外,B幀消除了相對(duì)于先前的壓縮圖像幀和未來的壓縮圖像幀的時(shí)間冗余。先前的壓縮幀和/或未來的壓縮幀可以是I幀和/或P幀。隨后,源站102配置成使用壓縮圖像幀產(chǎn)生視頻序列。視頻序列始于序列標(biāo)頭,接著是壓縮圖像幀的一或更多個(gè)集合。此外,壓縮標(biāo)準(zhǔn)(例如,MPEG標(biāo)準(zhǔn))定義圖像組(GOP), 所述圖像組(GOP)具有視頻流的一或更多個(gè)壓縮圖像幀。GOP始于I幀,接著是特定數(shù)目的B幀和P幀。因此,源站102使用節(jié)目流的編碼圖像幀產(chǎn)生基礎(chǔ)視頻流(EQ。此外,源站102配置成壓縮節(jié)目流的音頻幀和/或PCR幀。因此,源站102配置成產(chǎn)生節(jié)目流的音頻流和PCR流的基礎(chǔ)流。此外,源站102配置成產(chǎn)生節(jié)目流的每個(gè)基礎(chǔ)流的分包基礎(chǔ)流(PES)。PES包括 PES包,所述PES包具有PES包標(biāo)頭和數(shù)據(jù)有效負(fù)荷。PES包標(biāo)頭包括流標(biāo)識(shí)(SID),所述流標(biāo)識(shí)(SID)用于識(shí)別節(jié)目流的一或更多個(gè)基礎(chǔ)流。此外,每個(gè)PES包標(biāo)頭包括時(shí)間戳,所述時(shí)間戳稱為展現(xiàn)時(shí)間戳(PTQ和解碼時(shí)間戳(DTS)。此外,源站102配置成將若干PES復(fù)用,所述PES具有稱為節(jié)目時(shí)鐘基準(zhǔn)(PCR)的公用時(shí)基。源站102配置成進(jìn)一步將復(fù)用的PES分包成傳輸流(化)包并產(chǎn)生節(jié)目流的單節(jié)目傳輸流(SPTQ。另外和/或替代,源站102配置成將一或更多個(gè)SPTS復(fù)用并產(chǎn)生多節(jié)目傳輸流(MPTS)。因此,源站102配置成通過網(wǎng)絡(luò)IM將傳輸流(例如,SPTS、MPTS)作為第一壓縮數(shù)據(jù)流發(fā)射到數(shù)個(gè)處理站112。網(wǎng)絡(luò)124包含通信系統(tǒng),所述通信系統(tǒng)通過電線、電纜、光纖和/或無線鏈路(例如,衛(wèi)星鏈路)連接一或更多個(gè)通信裝置(例如,源站102、處理站112等),電線、電纜、光纖和/或無線鏈路(例如,衛(wèi)星鏈路)是由各種類型的熟知網(wǎng)絡(luò)部件(例如,集線器、交換器、 路由器等)所促進(jìn)的。網(wǎng)絡(luò)1 可以使用各種熟知的協(xié)議在網(wǎng)絡(luò)資源之間傳遞信息。舉例來說,網(wǎng)絡(luò)IM可以是使用各種傳輸系統(tǒng)(例如,廣播傳輸系統(tǒng))的因特網(wǎng)或企業(yè)內(nèi)部網(wǎng)的一部分,網(wǎng)絡(luò)IM使用各種調(diào)制技術(shù)、各種接口(例如,異步串行接口(ASI))、傳輸手段(例如,RF電纜、光纖、衛(wèi)星鏈路)等。或者,網(wǎng)絡(luò)IM可以是因特網(wǎng)協(xié)議網(wǎng)絡(luò)的一部分,所述因特網(wǎng)協(xié)議網(wǎng)絡(luò)是在以太網(wǎng)、Wi-Fi或光纖或?qū)S镁€路、ATM網(wǎng)絡(luò)等上。根據(jù)一或更多個(gè)實(shí)施方式,數(shù)個(gè)處理站112可位于數(shù)個(gè)不同地理位置中。數(shù)個(gè)處理站112包括數(shù)個(gè)接收器(例如,接收器1H1、接收器1142、接收器1143……和接收器114n), 所述數(shù)個(gè)接收器在下文稱為接收器114。每個(gè)接收器114配置成接收源站102所產(chǎn)生的第一壓縮數(shù)據(jù)流。此外,所述數(shù)個(gè)處理站112包括數(shù)個(gè)拼接器(例如,拼接器Iie1、拼接器114、 拼接器11 ……和拼接器116n),所述數(shù)個(gè)拼接器在下文稱為拼接器116。在一個(gè)實(shí)施方式中,接收器114接收第一壓縮數(shù)據(jù)流并將第一壓縮數(shù)據(jù)流傳遞到拼接器116。根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,處理站112可以使用數(shù)字集成接收器解碼器(IRD)裝置,以將第一壓縮數(shù)據(jù)流傳遞到拼接器116?;蛘?,處理站112可以使用模擬 IRD裝置作為接收器114,且模擬IRD裝置將接收的流編碼為壓縮數(shù)據(jù)流。隨后,將第一壓縮數(shù)據(jù)流提供到拼接器116。在一些實(shí)施方式中,接收器114實(shí)現(xiàn)壓縮數(shù)據(jù)流的解調(diào)和/或解擾。此外,拼接器116使用第二壓縮數(shù)據(jù)流對(duì)第一壓縮數(shù)據(jù)流進(jìn)行拼接操作。舉例來說,拼接器116可以將第一壓縮數(shù)據(jù)流的一或更多個(gè)編碼幀(例如,圖像幀、音頻幀、PCR幀等)替換為第二壓縮數(shù)據(jù)流的一或更多個(gè)編碼幀。在一個(gè)實(shí)施方式中,拼接器116將第一壓縮數(shù)據(jù)流的一或更多個(gè)編碼幀替換為充填幀。舉例來說,將第一壓縮數(shù)據(jù)流的編碼圖像幀替換為I型或P型圖像充填幀。如本說明書中稍后所解釋的,拼接器116配置成在拼接操作期間維持第一壓縮數(shù)據(jù)流的視頻流和音頻流之間的同步。根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,源站102可提供第二壓縮數(shù)據(jù)流。視情況,系統(tǒng)100包括流產(chǎn)生器120,流產(chǎn)生器120用于將第二壓縮數(shù)據(jù)流提供到拼接器116。在一個(gè)實(shí)例中,流產(chǎn)生器120可以與源站102通信以獲得第二壓縮數(shù)據(jù)流的內(nèi)容的授權(quán)。系統(tǒng)100進(jìn)一步包括數(shù)個(gè)發(fā)射器(例如,發(fā)射器IlS1、發(fā)射器11 、發(fā)射器11 …… 和發(fā)射器118n),所述數(shù)個(gè)發(fā)射器在下文稱為發(fā)射器118。發(fā)射器118與處理站112相關(guān)聯(lián)。 拼接器116將拼接的壓縮數(shù)據(jù)流轉(zhuǎn)發(fā)到發(fā)射器118。隨后,發(fā)射器118將拼接的壓縮數(shù)據(jù)流發(fā)射到網(wǎng)絡(luò)126。網(wǎng)絡(luò)1 包含通信系統(tǒng),所述通信系統(tǒng)通過電線、電纜、光纖和/或無線鏈路連接若干電腦,電線、電纜、光纖和/或無線鏈路是由各種類型的熟知網(wǎng)絡(luò)部件(例如,集線器、 交換器、路由器等)所促進(jìn)的。網(wǎng)絡(luò)1 可以使用各種熟知的協(xié)議在網(wǎng)絡(luò)資源之間傳遞信息。舉例來說,網(wǎng)絡(luò)1 可以是使用各種傳輸系統(tǒng)(例如,廣播傳輸系統(tǒng))的因特網(wǎng)或企業(yè)內(nèi)部網(wǎng)的一部分,網(wǎng)絡(luò)1 使用各種調(diào)制技術(shù)、各種接口(例如,異步串行接口(ASI))、傳輸手段(例如,RF電纜、光纖、衛(wèi)星鏈路)等?;蛘?,網(wǎng)絡(luò)1 可以是因特網(wǎng)協(xié)議網(wǎng)絡(luò)的一部分,所述因特網(wǎng)協(xié)議網(wǎng)絡(luò)是在以太網(wǎng)、Wi-Fi或光纖或?qū)S镁€路、ATM網(wǎng)絡(luò)等上。根據(jù)一或更多個(gè)實(shí)施方式,源站102配置成將一或更多個(gè)廣告插入到節(jié)目流內(nèi)。 舉例來說,在現(xiàn)場(chǎng)報(bào)導(dǎo)(例如,足球比賽)期間,數(shù)個(gè)廣告插入到節(jié)目流內(nèi)。廣告是廣播公司的創(chuàng)收來源。此外,所述節(jié)目流作為第一壓縮數(shù)據(jù)流傳遞到處理站112。舉例來說而不是為了限制,處理站112是數(shù)字傳輸系統(tǒng)中的有線電視頭端,且所述有線電視頭端執(zhí)行第一壓縮數(shù)據(jù)流與第二壓縮數(shù)據(jù)流的拼接。在一個(gè)實(shí)施方式中,第二壓縮數(shù)據(jù)流包括一或更多個(gè)廣告,所述一或更多個(gè)廣告用于替換第一壓縮數(shù)據(jù)流的一或更多個(gè)廣告。在一個(gè)實(shí)施方式中,用戶可以訪問廣告計(jì)劃器工具,所述廣告計(jì)劃器工具用于對(duì)第一壓縮數(shù)據(jù)流的一或更多個(gè)廣告的替換進(jìn)行調(diào)度。 舉例來說,廣告計(jì)劃器工具在第一壓縮數(shù)據(jù)流內(nèi)提供一或更多個(gè)庫存現(xiàn)貨(替換時(shí)隙)的列表。庫存現(xiàn)貨是指廣播流中可以用來插入廣告數(shù)據(jù)流的時(shí)隙。在一個(gè)實(shí)施方式中,廣告計(jì)劃器工具是名為“Method and apparatus for planning a schedule of multimedia advertisements in a broadcasting channel,,的臨時(shí)專利申請(qǐng)案中所公開的廣告計(jì)劃器,所述臨時(shí)專利申請(qǐng)案是與本申請(qǐng)案一起申請(qǐng)的。 因此,用戶選擇一或更多個(gè)庫存現(xiàn)貨,且分配選中的庫存現(xiàn)貨的廣告。隨后,拼接器116在所述一或更多個(gè)庫存現(xiàn)貨處執(zhí)行第一壓縮數(shù)據(jù)流與第二壓縮數(shù)據(jù)流的拼接。根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,用戶訪問廣告產(chǎn)生器工具,所述廣告產(chǎn)生器工具用于產(chǎn)生廣告。廣告產(chǎn)生器工具包括各種計(jì)算資源,例如,硬件資源、軟件資源、多媒體數(shù)據(jù)(例如,視頻數(shù)據(jù)、圖像數(shù)據(jù)等)等,且因此,使用戶能夠產(chǎn)生需要替換第一壓縮數(shù)據(jù)流的廣告的廣告。在一個(gè)實(shí)施方式中,廣告產(chǎn)生器工具是名為“Method and apparatus for generating a multimedia advertisement”的臨時(shí)專利申請(qǐng)案中所公開的廣告產(chǎn)生器,所述臨時(shí)專利申請(qǐng)案是與本申請(qǐng)案一起申請(qǐng)的。此外,處理站112配置成通過網(wǎng)絡(luò)1 與數(shù)個(gè)裝置(例如,裝置13 、裝置1322、裝置13 ……和裝置132n)通信,所述數(shù)個(gè)裝置在下文稱為裝置132。裝置132可以是臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、數(shù)字電視、機(jī)頂盒等。裝置132用于對(duì)處理站112的已修改壓縮數(shù)據(jù)流進(jìn)行處理。在一個(gè)實(shí)施方式中,裝置132可以將用戶的屬性(例如,用戶的身份等)傳遞到處理站112。隨后,處理站112可以根據(jù)用戶的屬性處理接收的壓縮數(shù)據(jù)流,且因此,將條件式訪問提供給用戶。圖2繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的拼接器116的示范性實(shí)施方式的框圖。拼接器116對(duì)第一壓縮數(shù)據(jù)流執(zhí)行拼接操作并將第一壓縮數(shù)據(jù)流的編碼幀替換為第二壓縮數(shù)據(jù)流的一或更多個(gè)幀。拼接器116包括解復(fù)用器(Demux) 202、數(shù)個(gè)拼接器控制器(例如,拼接器控制器201、拼接器控制器2042、拼接器控制器2043……和拼接器控制器 204J和復(fù)用器206,所述數(shù)個(gè)拼接器控制器在下文稱為拼接器控制器204。一般來說,解復(fù)用器202從接收器114接收MPTS。所述MPTS包括一或更多個(gè)SPTS, 且每個(gè)SPTS具有唯一節(jié)目識(shí)別號(hào)(PID)。解復(fù)用器202將接收的MPTS解復(fù)用成一或更多個(gè)SPTS,并將所述SPTS傳遞到拼接器控制器204。每個(gè)拼接器控制器204配置成處理與特定SPTS相關(guān)聯(lián)的一或更多個(gè)流(例如,視頻流、音頻流和PCR流)。在一個(gè)實(shí)例中,拼接器控制器204對(duì)SPTS的相關(guān)聯(lián)的流執(zhí)行拼接操作,并將拼接的SPTS轉(zhuǎn)發(fā)到復(fù)用器206。復(fù)用器206對(duì)每個(gè)拼接器控制器204的輸出進(jìn)行復(fù)用,且因此,產(chǎn)生處理過的MPTS。因此,復(fù)用器206將處理過的MPTS轉(zhuǎn)發(fā)到發(fā)射器118。在另一實(shí)例中,拼接器控制器204配置成維持 SPTS的視頻流與音頻流之間的同步。第一數(shù)據(jù)流也可以稱為第一壓縮數(shù)據(jù)流。根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,拼接器控制器204包括控制模塊208、流程控
制模塊216和數(shù)個(gè)流拼接模塊(SSM) 210(例如,SSM 210” SSM 2102、SSM 2103......和SSM
210n),所述數(shù)個(gè)流拼接模塊(SSM) 210在下文稱為SSM 210。舉例來說,視頻SSM 210對(duì) SPTS的視頻流執(zhí)行拼接操作。音頻SSM 210對(duì)SPTS的音頻流執(zhí)行拼接操作。節(jié)目時(shí)鐘基準(zhǔn)(PC SSM 210對(duì)SPTS的PCR流執(zhí)行拼接操作??刂颇K208監(jiān)視SPTS的一或更多個(gè)接收的數(shù)據(jù)包,且因此,檢測(cè)SPTS內(nèi)的拼接入點(diǎn)和拼接出點(diǎn)。在一個(gè)實(shí)施方式中,控制模塊208可以檢測(cè)數(shù)據(jù)包內(nèi)的信號(hào)(例如,CUE 音信號(hào)),且因此,檢測(cè)SPTS內(nèi)的拼接入點(diǎn)和拼接出點(diǎn)。此外,在檢測(cè)到拼接入點(diǎn)和拼接出點(diǎn)后,控制模塊208將拼接入點(diǎn)、拼接出點(diǎn)傳遞至IJ SSM 210。隨后,SSM 210檢測(cè)SPTS的流內(nèi)的訪問單元邊界(AUB)的到達(dá)。此夕卜,SPTS 的視頻流中的訪問單元是圖像幀,且SPTS的音頻流中的訪問單元是音頻幀。訪問單元的到達(dá)指示視頻流中的圖像標(biāo)頭的開始的存在和音頻流中的新幀的開始的存在。此外,SSM 210 決定特定訪問單元是否為拼接機(jī)會(huì)點(diǎn)(SOP)。SOP為SPTS中的位置,在所述位置中,SSM 210可以起始拼接操作。此外,SOP是指SPTS中的特定訪問單元/幀,且所述特定訪問單元/幀并不具有過去依賴性和/或未來依賴性。因此,SPTS的視頻流中的SOP是I幀。類似地,SPTS的音頻流中的SOP是音頻幀。 并且,SPTS的PCR流中的SOP是PCR包。根據(jù)本發(fā)明的各種實(shí)施方式,SSM 210配置成處理流,而不需對(duì)傳輸流進(jìn)行拆包。 在一些實(shí)施方式中,SSM 210監(jiān)視SPTS的數(shù)據(jù)包以發(fā)現(xiàn)AUB的到達(dá)。SSM 210分析可在SPTS 的數(shù)據(jù)包中獲得的標(biāo)頭信息以對(duì)AUB進(jìn)行定位。在一個(gè)實(shí)施方式中,當(dāng)SPTS的PES邊界與ES邊界對(duì)齊時(shí),隨后PES標(biāo)頭的開始并入了 ES標(biāo)頭的開始。此外,PES邊界與ES邊界的對(duì)齊可在任何級(jí)別(即,序列、G0P、圖像和切片)進(jìn)行。此外,TS數(shù)據(jù)包包括有效負(fù)荷單元開始指示符(PUSI)位,所述有效負(fù)荷單元開始指示符(PUSI)位表示SPTS內(nèi)的新PES標(biāo)頭的開始。TS數(shù)據(jù)包中的PUSI位的存在暗示ES標(biāo)頭的存在。此外,SSM 210配置成檢測(cè)圖像標(biāo)頭的存在,以用于在TS數(shù)據(jù)包中對(duì)AUB進(jìn)行定位。在若干例子中,當(dāng)流(例如,視頻流)具有在多個(gè)包間整齊排列的若干標(biāo)頭時(shí),SSM 210 使用傳輸流的多個(gè)數(shù)據(jù)包來檢測(cè)AUB的存在。在AUB的到達(dá)后,SSM 210識(shí)別TS數(shù)據(jù)包內(nèi)的SOP的存在。舉例來說而不是為了限制,SSM 210通過以下方式來對(duì)SOP的存在進(jìn)行定位在TS數(shù)據(jù)包中檢查PUSI位并隨后查找圖像標(biāo)頭。此外,SSM 210從SPTS的特定流(例如,視頻流、音頻流、PCR流等)內(nèi)的數(shù)個(gè)拼接機(jī)會(huì)點(diǎn)(SOP)識(shí)別對(duì)應(yīng)于拼接入點(diǎn)的拼接入機(jī)會(huì)點(diǎn)和對(duì)應(yīng)于拼接出點(diǎn)的拼接出機(jī)會(huì)點(diǎn)。拼接入機(jī)會(huì)點(diǎn)涉及SPTS的特定流中的一幀,且SSM 210是從所述特定幀起起始拼接操作。拼接出機(jī)會(huì)點(diǎn)涉及SPTS的特定流中的另一幀,且SSM 210在另一幀前結(jié)束拼接操作。此外,在特定數(shù)據(jù)TS包中檢測(cè)到拼接入機(jī)會(huì)點(diǎn)后,SSM 210將特定數(shù)據(jù)流的TS數(shù)據(jù)包替換為第二壓縮數(shù)據(jù)流的一或更多個(gè)數(shù)據(jù)包或替換為虛擬數(shù)據(jù)包。SSM 210替換SPTS 的TS數(shù)據(jù)包直到拼接出機(jī)會(huì)點(diǎn)為止。
9
在一些實(shí)施方式中,當(dāng)?shù)谝粔嚎s數(shù)據(jù)流的特定流(例如,音頻流)的TS數(shù)據(jù)包包括二或更多個(gè)幀時(shí),SSM 210監(jiān)視一或更多個(gè)幀的標(biāo)頭,以便識(shí)別拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)。如果幀被宣稱為特定TS數(shù)據(jù)包中的拼接入機(jī)會(huì)點(diǎn)或拼接出機(jī)會(huì)點(diǎn),那么SSM 210就修改特定TS數(shù)據(jù)包。如果特定數(shù)據(jù)包包括拼接入機(jī)會(huì)點(diǎn),那么SSM 210就通過僅保留拼接入機(jī)會(huì)點(diǎn)之前的數(shù)據(jù)來修改特定數(shù)據(jù)包。特定數(shù)據(jù)包的剩余部分替換為零以便使特定數(shù)據(jù)包的大小(例如,188個(gè)字節(jié))完整。如果特定TS數(shù)據(jù)包包括拼接出機(jī)會(huì)點(diǎn),那么SSM 210 就通過僅保留拼接出機(jī)會(huì)點(diǎn)之后的數(shù)據(jù)來修改特定數(shù)據(jù)包。特定TS數(shù)據(jù)包的剩余部分替換為零以便使特定數(shù)據(jù)包的大小(例如,188個(gè)字節(jié))完整。在一個(gè)實(shí)例中,填充字節(jié)Oxff 用于傳輸流標(biāo)頭之后,以充填TS數(shù)據(jù)包的剩余部分。因此,SSM 210在檢測(cè)到拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)后修改或替換流的數(shù)據(jù)包,而不需對(duì)SPTS進(jìn)行拆包。因此,第一壓縮數(shù)據(jù)流的數(shù)據(jù)包的選擇性處理提高了系統(tǒng)的效率。此外,SSM 210包括數(shù)個(gè)定時(shí)模塊(例如,定時(shí)模塊212i、定時(shí)模塊21 、定時(shí)模塊 2123……和定時(shí)模塊212n),所述數(shù)個(gè)定時(shí)模塊在下文稱為定時(shí)模塊212。如本說明書中稍后所解釋的,定時(shí)模塊212根據(jù)與第一壓縮數(shù)據(jù)流的一或更多個(gè)幀相關(guān)聯(lián)的定時(shí)值而修改與第二壓縮數(shù)據(jù)流的一或更多個(gè)幀或虛擬幀相關(guān)聯(lián)的定時(shí)值。流程控制模塊216控制第一壓縮數(shù)據(jù)流的一或更多個(gè)流的數(shù)據(jù)包的流程,且流程控制模塊216將在本說明書中稍后加以論述。拼接器控制器204和所述模塊(控制模塊 208、SSM 210等)的一或更多個(gè)實(shí)施方式可以用硬件、軟件或硬件與軟件的組合來實(shí)施。視頻拼接圖3A至圖3E繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的對(duì)第一壓縮數(shù)據(jù)流的示范性編碼視頻流進(jìn)行的示范性拼接操作。圖3A繪示編碼視頻流A的編碼圖像幀的顯示序列, 且編碼視頻流A的每個(gè)圖像幀是按照MPEG-2標(biāo)準(zhǔn)中所定義的壓縮技術(shù)來編碼的。此外,圖像幀的對(duì)應(yīng)編號(hào)提供了時(shí)間基準(zhǔn),所述時(shí)間基準(zhǔn)對(duì)應(yīng)于視頻流A的幀的顯示次序。如圖所示,幀0編碼為I幀,且?guī)?編碼為P幀。幀3依賴于先前幀0,且當(dāng)在裝置132處解碼時(shí), 幀3需要幀0。幀1和幀2為雙向幀,且因此,幀1和幀2依賴于先前幀0和未來幀3。圖3A進(jìn)一步繪示第一壓縮數(shù)據(jù)流的視頻流A的圖像組(GOP),例如,GOP UGOP 2 等。GOP —般始于I幀,接著是一或更多個(gè)P幀和B幀。舉例來說,在視頻流A中,GOP 1包括幀0到幀11,且GOP 2包括幀12到幀23。舉例來說而不是為了限制,視頻流A的GOP的大小定義為十二,且本領(lǐng)域的技術(shù)人員可以將可變大小用于視頻流的G0P。圖;3B繪示編碼視頻流A的發(fā)射順序圖。按照MPEG-2標(biāo)準(zhǔn),編碼視頻流的發(fā)射始于 GOP的I幀,接著是如圖:3B所示的序列。處理站112接收第一壓縮數(shù)據(jù)流中的視頻流A,且拼接器116可以將視頻流A的一或更多個(gè)幀替換為視頻流B的一或更多個(gè)幀。已修改視頻流A(如圖3E所示)并不包括預(yù)測(cè)基準(zhǔn)介于拼接入機(jī)會(huì)點(diǎn)與拼接出機(jī)會(huì)點(diǎn)之間的來自原始視頻流A的任何幀。結(jié)果,不具有未解決的幀依賴性。因此,拼接操作始于GOP的開始處, 且?guī)瑑H在新序列的開始處替換為I幀或P幀。舉例來說而不是為了限制,當(dāng)視頻流A的GOP大小與視頻流B的GOP大小匹配時(shí), 視頻SSM 210將視頻流A的一或更多個(gè)GOP替換為視頻流B的一或更多個(gè)G0P。另外和/ 或替代,當(dāng)視頻流A的GOP大小與視頻流B的GOP大小失配時(shí),視頻SSM 210將視頻流A的一或更多個(gè)GOP替換為視頻流B的一或更多個(gè)GOP以及替換為一或更多個(gè)充填幀。
圖3C繪示視頻流A內(nèi)的拼接入點(diǎn)、拼接出點(diǎn)和一或更多個(gè)SOP。控制模塊208將幀4識(shí)別為拼接入點(diǎn)并將幀19識(shí)別為拼接出點(diǎn)。視頻SSM 210監(jiān)視視頻流A且進(jìn)一步將幀12識(shí)別為拼接入機(jī)會(huì)點(diǎn)并將幀M識(shí)別為拼接出機(jī)會(huì)點(diǎn)。如圖3C所示,幀12為I幀,且因此,視頻SSM 210將視頻流的幀從幀12起替換為視頻流B的一或更多個(gè)幀。在一些實(shí)施方式中,視頻流A的P型幀可以由視頻SSM 210選擇作為拼接入機(jī)會(huì)點(diǎn)。圖3D繪示第二壓縮數(shù)據(jù)流的視頻流B。如圖3D所示,視頻流B的GOP大小等于十。圖3E繪示已修改流,所述已修改流是在第一壓縮數(shù)據(jù)流的視頻流A的拼接操作后產(chǎn)生的。舉例來說而不是為了限制,視頻流B的GOP大小(G0P大小=10)與視頻流A的GOP大小0Χ)Ρ大小=12)不匹配。結(jié)果,兩個(gè)充填幀F(xiàn)l和F2另外與視頻流B的GOP—起插入于第一壓縮數(shù)據(jù)流的視頻流A內(nèi)。充填幀(例如,去除視頻流A與視頻流B之間的 GOP大小的失配。如本說明書中稍后所解釋的,充填幀可以是I型充填幀和/或P型充填幀。根據(jù)各種實(shí)施方式,SSM 210預(yù)備視頻流B以便去除在拼接入機(jī)會(huì)點(diǎn)的到達(dá)之前的反向冗余。為了實(shí)現(xiàn)有效的拼接操作,視頻流B必須始于I型幀,且視頻流B的第二幀可以是I幀或P幀。如圖3D所示,視頻流B始于I幀,且下一幀是P幀。如果視頻流B不包括所述要求,那么視頻SSM 210就修改視頻流B。以下改變是在視頻流B內(nèi)進(jìn)行的。視頻流 B中的I幀之前的幀被放棄。此外,視頻流B的第一 I幀與下一 P幀之間的幀被放棄。最終,第一I幀和虛擬幀的時(shí)間基準(zhǔn)得以更新。在視頻流B編碼為具有有限持續(xù)時(shí)間的文件的多數(shù)情況下,視頻流B編碼的上述條件通常已得以滿足,在此情況下,不需要進(jìn)一步處理視頻流B。SSM 210高速緩存視頻流B以進(jìn)行預(yù)處理,且使視頻流B在拼接入機(jī)會(huì)點(diǎn)到達(dá)之前準(zhǔn)備好。根據(jù)一或更多個(gè)實(shí)施方式,視頻流B為有限視頻流,且視頻SSM 210決定需要用來替換視頻流A的幀的視頻流B的幀的任何不足。在一個(gè)實(shí)例中,視頻SSM 210決定視頻流 B的幀和充填幀的數(shù)目,所述數(shù)目的幀替換在拼接入機(jī)會(huì)點(diǎn)之后的視頻流A的幀。視頻SSM 210決定sub_gop_distance,sub_gop_distance為視頻流的單個(gè)GOP中的連續(xù)I幀與P幀時(shí)間基準(zhǔn)之間的差。實(shí)際上,值sub_gop_distance是連續(xù)I幀與P幀之間的幀的數(shù)目加一。此夕卜,IJ^SSM 210 決定 sub_temporal_reference = (temporal_reference) % Sub_gop_distance,其中(%)為提醒操作。值 sub_temporal_reference 給出兩個(gè)連續(xù) I 幀與P幀之間的圖像數(shù)。舉例來說,如果視頻流A的配置文件為具有2個(gè)B幀的開放G0P, 那么按照解碼次序,圖像的模式為IBBPBBP,其中時(shí)間基準(zhǔn)為201534867,等等。因此,在所述特定情況下,值sub_gop_distance是3,這是通過將2個(gè)連續(xù)I幀和P幀的temporal— reference相減或?qū)幀的數(shù)目加1來計(jì)算的。視頻SSM 210交替掃描視頻流A的一個(gè)AUB和視頻流B的一個(gè)AUB,其中視頻流B 滯后視頻流A達(dá)視頻流B的一個(gè)sub_gop_distance。假設(shè)視頻流A的sub_gop_distance >=視頻流B的sub_gop_distance,且所述sub_gop_distance對(duì)于編碼器設(shè)定而言是恒定的。視頻流B的subjemporalreference給出了視頻流B的幀的數(shù)目的估計(jì),且充填幀需要放在視頻流A的拼接出機(jī)會(huì)點(diǎn)的到達(dá)之后。一旦視頻流A的拼接出機(jī)會(huì)點(diǎn)和視頻流 B的退出點(diǎn)被發(fā)現(xiàn),視頻SSM 210就計(jì)算在拼接操作期間替換視頻流A的幀的(視頻流B的)有效幀的數(shù)目和充填幀的數(shù)目。這可以使用以下算法來計(jì)算。當(dāng)視頻流B包括封閉GOP時(shí)if (Current—picture—type = = ‘ I ‘)Number_of—frames of video stream B = IelseNumber_of—frames of video stream B = sub_gop_distance(B)-sub_temporal_ reference(B)當(dāng)視頻流B包括幵放GOP時(shí)L = (sub_gop_length(B)sub_temporal—reference (B))% sub—gop—length (B)M = sub—gop—length(B)_l,其中M等于兩個(gè)I/P幀之間B幀的準(zhǔn)確數(shù)目Number_of—B_frames = sub—gop—length (B) - (M+L) % sub—gop—length (B)在上述兩種情況下Number of filler frames = Sub_gop_distance_Number_of—B—Frames。此外,在拼接操作期間,在拼接入機(jī)會(huì)點(diǎn)或拼接出機(jī)會(huì)點(diǎn)處,在視頻流B或視頻流 A中分別有多個(gè)幀,所述幀依賴于先前G0P。因此,視頻SSM 210修改所述幀的時(shí)間基準(zhǔn),以便去除對(duì)先前GOP的依賴性。舉例來說而不是為了限制,視頻SSM 210將I幀的時(shí)間基準(zhǔn) (即,拼接出機(jī)會(huì)點(diǎn))修改為0,以形成新G0P。此外,下一全填充幀/I幀副本的時(shí)間基準(zhǔn)單調(diào)地增加(例如,增加量為1)直到下一前向幀到達(dá)為止。前向幀的時(shí)間基準(zhǔn)未經(jīng)修改。再次參照?qǐng)D3C,在拼接出機(jī)會(huì)點(diǎn)(幀24)后,幀22和幀23是GOP 2的幀。因?yàn)槠唇悠?16未對(duì)視頻流A的編碼圖像幀進(jìn)行解碼并且?guī)?2和幀23需要GOP 2的幀的解碼, 所以視頻SSM 210進(jìn)一步將此些幀替換為I幀(幀M)。因此,通過將此些B幀(例如,幀 22和幀23)替換為I幀的副本,拼接器去除了復(fù)雜的處理操作,例如,幀的解碼操作、幀轉(zhuǎn)換操作、對(duì)幀編號(hào)重新排序的操作等。由SSM 210進(jìn)行的B幀的替換減少了內(nèi)存處理時(shí)間并因此提高處理站112的效率。音頻拼接根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,音頻SSM 210對(duì)SPTS的音頻流執(zhí)行拼接操作。一般來說,按照各種壓縮標(biāo)準(zhǔn)(例如,MPEG、Mh等),特定音頻幀并不依賴于其它音頻幀。因此,SPTS的音頻流的可能SOP為SPTS的音頻幀。在檢測(cè)到拼接入點(diǎn)和拼接出點(diǎn)后, 音頻SSM 210從SPTS的音頻流中的數(shù)個(gè)SOP檢測(cè)拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)。因此,音頻SSM 210對(duì)音頻流執(zhí)行拼接操作。PCR 拼接根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,PCR SSM 210對(duì)SPTS的PCR流執(zhí)行拼接操作。 一般來說,可在SPTS的PCR流的PCR包到達(dá)時(shí)獲得PCR流的S0P。在拼接操作期間,PCRSSM 210根據(jù)SPTS的PCR流的PCR包修改第二壓縮數(shù)據(jù)流的一或更多個(gè)PCR包。在一個(gè)實(shí)例中,PCR SSM 210根據(jù)SPTS的PCR流的PCR值線性地修改第二壓縮數(shù)據(jù)流的PCR包的PCR值。舉例來說,如果第一壓縮數(shù)據(jù)流的最后輸出PCR包的PCR值為MP4,那么第二壓縮數(shù)據(jù)流的PCR包的PCR值Η^^Π,ΑΡρΑΚ……)被修改。第二壓縮流的已修改PCR值表示為OPpOP2……等。在一個(gè)實(shí)例中,來自第一壓縮數(shù)據(jù)流的拼接點(diǎn)的PCR值復(fù)制到第二壓縮數(shù)據(jù)流。OP1 = MP4此外,對(duì)于第二壓縮數(shù)據(jù)流的每個(gè)連續(xù)的新PCR而言,添加了偏移量。結(jié)果,第二壓縮數(shù)據(jù)流的第N PCR值修改為OPn = OP^APn-AP1OPn = APn+ (OP1-AP1)隨后,PCR SSM 210將SPTS的PCR流的PCR包替換為第二壓縮數(shù)據(jù)流的已修改PCR包。根據(jù)本發(fā)明的各種實(shí)施方式,在拼接操作之前,數(shù)個(gè)SSM 210高速緩存第二數(shù)據(jù)流的至少一部分。在一個(gè)實(shí)例中,在拼接操作之前,SSM 210高速緩存整個(gè)第二數(shù)據(jù)流。此外,SSM 210選擇第二數(shù)據(jù)流的一個(gè)訪問單元,以替換第一數(shù)據(jù)流的一個(gè)訪問單元。訪問單元的檢測(cè)是使用與第一數(shù)據(jù)流所使用的方法相同的方法來進(jìn)行的,并且所述方法早先已描述于本說明書中。此外,第二數(shù)據(jù)流中的每個(gè)圖像的前進(jìn)僅在第一流的相應(yīng)數(shù)目的圖像前進(jìn)的情況下才能進(jìn)行。此舉允許先驗(yàn)地高速緩存第二流的數(shù)據(jù)。如果第二數(shù)據(jù)流需要在拼接操作之前經(jīng)受任何處理,那么SSM 210就在訪問單元的替換的開始之前處理第二數(shù)據(jù)流。舉例來說,檢查第二數(shù)據(jù)流是否符合標(biāo)準(zhǔn)或是否具有所需的持續(xù)時(shí)間失配。如果存在任何失配或不符合標(biāo)準(zhǔn),那么SSM 210就在高速緩存期間處理第二數(shù)據(jù)流。充填幀的產(chǎn)生如本說明書中早先所解釋的,SSM 210將第一壓縮數(shù)據(jù)流的一或更多個(gè)幀替換為充填幀。舉例來說,視頻SSM 210將第一壓縮數(shù)據(jù)流的一或更多個(gè)幀替換為視頻充填幀。在一個(gè)實(shí)施方式中,視頻充填幀為幀內(nèi)編碼充填幀或預(yù)測(cè)充填幀。 在一個(gè)實(shí)例中,P型充填幀可以通過生成P型壓縮幀內(nèi)的所有運(yùn)動(dòng)向量和DCT系數(shù)而產(chǎn)生。因此產(chǎn)生的P型充填幀是從先前幀預(yù)測(cè)的,而不需要具有運(yùn)動(dòng)補(bǔ)償。另外和/或替代,P型充填幀的標(biāo)頭可以不包括序列標(biāo)頭或GOP標(biāo)頭信息,以便減少P型充填幀的位的數(shù)目。P型充填幀僅在I幀或P幀之后插入。類似地,音頻SSM 210將第一壓縮數(shù)據(jù)流的一或更多個(gè)幀替換為音頻充填幀。在一個(gè)實(shí)施方式中,音頻充填幀為由編碼器使用適當(dāng)配置文件產(chǎn)生的靜音幀。舉例來說而不是為了限制,IOHz的頻率用于產(chǎn)生音頻充填幀。此外,PCR SSM 210將第一壓縮數(shù)據(jù)流的一或更多個(gè)幀替換為PCR充填幀。由于 PCR幀包括時(shí)鐘信息,因此,PCR充填幀通過修改第一壓縮數(shù)據(jù)流或第二壓縮數(shù)據(jù)流的最后存儲(chǔ)PCR包的PCR值而產(chǎn)生。在一個(gè)實(shí)例中,如果由拼接器114輸出的PCR值為PCR_ last且需要在d毫秒的持續(xù)時(shí)間內(nèi)產(chǎn)生并輸出下一 PCR包,那么就使用PCR_next = PCR_ last+d*90計(jì)算PCR充填幀的PCR值。因此,產(chǎn)生了 PCR充填幀。PTS/DTS 修改如本說明書中早先所描述的,SSM 210包括定時(shí)模塊212,定時(shí)模塊212根據(jù)與第一壓縮數(shù)據(jù)流的一或更多個(gè)幀相關(guān)聯(lián)的定時(shí)值而修改與第二壓縮數(shù)據(jù)流的一或更多個(gè)幀或虛擬幀相關(guān)聯(lián)的定時(shí)值,例如,展現(xiàn)時(shí)間戳(PTS)、解碼時(shí)間戳(DTQ等。結(jié)果,第二壓縮數(shù)據(jù)流實(shí)現(xiàn)了與接收的壓縮數(shù)據(jù)流的時(shí)基相同的時(shí)基。在一個(gè)實(shí)例中,定時(shí)模塊212通過對(duì)第二壓縮數(shù)據(jù)流的定時(shí)值應(yīng)用線性變換來修改定時(shí)值。舉例來說而不是為了限制,如果A是第二壓縮數(shù)據(jù)流中的PTS值的向量表示,B 是第二壓縮數(shù)據(jù)流中的PTS值的向量表示,且S是所有元素均相等的恒定移位值的向量,那么線性變換A' =A+S表示第二壓縮數(shù)據(jù)流的具有已修改PTS值的向量,且線性變換B'= B+S給出第二壓縮數(shù)據(jù)流的已修改DTS值。因此對(duì)第二壓縮數(shù)據(jù)流應(yīng)用的線性變換不改變時(shí)鐘基準(zhǔn)特性。此外,為了實(shí)現(xiàn)壓縮數(shù)據(jù)流的流暢播放,PCR SSM 210修改第二壓縮數(shù)據(jù)流的PCR值。舉例來說,如果P表示第二壓縮數(shù)據(jù)流的PCR值的向量,那么線性變換P' =P+S 表示具有已修改PCR值的向量。舉例來說而不是為了限制,第一壓縮數(shù)據(jù)流與第二壓縮數(shù)據(jù)流之間的類似時(shí)基是通過決定基點(diǎn)來實(shí)現(xiàn)的。若干參數(shù)(例如,base. pts、base. dts、display_order和decode_ order)用于計(jì)算基點(diǎn)?;c(diǎn)表示開始點(diǎn),或者基點(diǎn)表示PTS環(huán)繞或時(shí)間基準(zhǔn)重新開始(例如,視頻中的GOP的開始)的任何點(diǎn)。任何幀的所估計(jì)PTS (i)均是按照下式計(jì)算current, pts = base, ρts+ (current. display_order-base. display_ order)氺frame_size?;谒鎏囟ǖ仁剑诙嚎s數(shù)據(jù)流的幀經(jīng)修改以實(shí)現(xiàn)第一壓縮數(shù)據(jù)流的時(shí)基。舉例來說而不是為了限制,對(duì)于第二壓縮數(shù)據(jù)流的視頻流(AF)而言,AF_base. Pts =第一壓縮數(shù)據(jù)流的開始點(diǎn)的第一圖像的PTS且AF_base. display_order = 0。所述值在各種情況下均有效。舉例來說,在第二壓縮數(shù)據(jù)流的開放GOP的情況下,視頻SSM 210 預(yù)處理第二壓縮數(shù)據(jù)流,通過修改I幀的時(shí)間基準(zhǔn)來去除時(shí)間依賴性,并將依賴性圖像替換為虛擬幀。此外,對(duì)于PCR流和音頻流而言,每個(gè)PTS和PCR值的到達(dá)為基點(diǎn)。因此,基點(diǎn)是針對(duì)每個(gè)PTS和PCR值而更新的。因此,通過使用所述值和前述等式,實(shí)現(xiàn)了第二壓縮數(shù)據(jù)流的已修改時(shí)間戳。根據(jù)本發(fā)明的各種實(shí)施方式,定時(shí)模塊212可在拼接入點(diǎn)支持時(shí)基不連續(xù)性。因此,第二壓縮數(shù)據(jù)流可以始于新的時(shí)基值。舉例來說,第二壓縮數(shù)據(jù)流的PTS值、DTS值和 PCR值可以具有新的時(shí)基。新的時(shí)基值可以通過設(shè)定具有新的時(shí)基的第二壓縮數(shù)據(jù)流的第一包的不連續(xù)性指示符來指示。因此,在拼接出點(diǎn),不連續(xù)性指示符設(shè)定于第一壓縮數(shù)據(jù)流的第一包中,且因此關(guān)于新的時(shí)基而發(fā)出信號(hào)。圖4繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的對(duì)數(shù)據(jù)流進(jìn)行拼接操作的示范性方法400的流程圖。方法400始于步驟402并繼續(xù)進(jìn)行到步驟404。在步驟404,處理第一數(shù)據(jù)流(例如,由圖1的源站102產(chǎn)生的壓縮數(shù)據(jù)流)。在一些實(shí)施方式中,監(jiān)視第一數(shù)據(jù)流以檢測(cè)視頻流或音頻流或節(jié)目時(shí)鐘基準(zhǔn)流中的數(shù)個(gè)拼接機(jī)會(huì)點(diǎn)。方法400繼續(xù)進(jìn)行到步驟406。在步驟406,判定是否到達(dá)拼接入機(jī)會(huì)點(diǎn)。如果未到達(dá)拼接入機(jī)會(huì)點(diǎn),那么方法400就繼續(xù)進(jìn)行到步驟404。如果到達(dá)拼接入機(jī)會(huì)點(diǎn),那么方法400就繼續(xù)進(jìn)行到步驟408。在步驟408,處理第二數(shù)據(jù)流。在一個(gè)實(shí)施方式中,流拼接模塊(例如,圖2的SSM 210)修改第二數(shù)據(jù)流的幀的時(shí)間基準(zhǔn)。在步驟410,替換第一數(shù)據(jù)流的幀。在一些實(shí)施方式中,視頻流拼接模塊(例如, 圖2的視頻SSM 210)執(zhí)行GOP級(jí)精度拼接,并將第一數(shù)據(jù)流的視頻流的一或更多個(gè)GOP替換為第二數(shù)據(jù)流的一或更多個(gè)G0P。在一些實(shí)施方式中,音頻拼接模塊(例如,圖2的音頻 SSM 210)對(duì)第一數(shù)據(jù)流的音頻流執(zhí)行幀級(jí)精度拼接。
14
在步驟412,處理第一數(shù)據(jù)流以識(shí)別拼接出機(jī)會(huì)點(diǎn)。在步驟414,判定是否到達(dá)拼接出機(jī)會(huì)點(diǎn)。如果未到達(dá)拼接出機(jī)會(huì)點(diǎn),那么方法400就繼續(xù)進(jìn)行到步驟410。如果到達(dá)拼接出機(jī)會(huì)點(diǎn),那么方法400就繼續(xù)進(jìn)行到步驟416。在步驟416,決定待用于替換的幀的數(shù)目。在一個(gè)實(shí)施方式中,流拼接模塊(例如,圖2的SSM 210)決定需要替換的第一數(shù)據(jù)流的幀的數(shù)目。此外,流拼接模塊識(shí)別用于替換第一數(shù)據(jù)流的第二數(shù)據(jù)流的幀的數(shù)目和充填幀的數(shù)目。在步驟418,可以修改第一數(shù)據(jù)流的幀的時(shí)間基準(zhǔn)。方法400繼續(xù)進(jìn)行到步驟420。 在步驟420,方法400結(jié)束。本文中所論述的本發(fā)明的各種實(shí)施方式提供若干優(yōu)勢(shì)。在一個(gè)實(shí)例中,本發(fā)明實(shí)現(xiàn)了第一數(shù)據(jù)流的視頻流的GOP精度拼接和第一數(shù)據(jù)流的音頻流的幀精度拼接。此外,拼接操作與GOP的大小無關(guān)。第一數(shù)據(jù)流和第二數(shù)據(jù)流可以具有任意GOP大小。拼接操作將一個(gè)訪問單元替換為另一訪問單元。此外,提供第二數(shù)據(jù)流的時(shí)基校正以便避免拼接流中的時(shí)基的任何不連續(xù)性。此外,在拼接操作的結(jié)束時(shí)提供虛擬幀以提供流暢的轉(zhuǎn)變效果。此外,拼接操作并不對(duì)壓縮數(shù)據(jù)流的編碼幀進(jìn)行解碼。由于未對(duì)幀進(jìn)行解碼,本發(fā)明在相對(duì)較少的處理要求的情況下有效地起到作用,而不會(huì)影響拼接操作的質(zhì)量。拼接操作不需要對(duì)第一數(shù)據(jù)流的圖像幀重新排序,這是因?yàn)槠唇硬僮鞑灰蕾囉谖磥韴D像。因此,拼接器處的每個(gè)圖像的到達(dá)次序與圖像離開拼接器的次序相同。此外,拼接操作不需要存儲(chǔ)所述幀以供稍后用于拼接。在幀的到達(dá)后判定幀在拼接流將被選擇還是被放棄。最后,拼接操作不對(duì)傳輸流進(jìn)行拆包來執(zhí)行拼接操作。由于未對(duì)傳輸包進(jìn)行拆包和重新分包,因此避免了內(nèi)存復(fù)制的大量開銷。結(jié)果,以高速度和相對(duì)較高的質(zhì)量實(shí)現(xiàn)了拼接操作。流程控制根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,流程控制模塊216控制處理站112內(nèi)的第一數(shù)據(jù)流的數(shù)個(gè)流的前進(jìn)。一般來說,第一數(shù)據(jù)流的數(shù)個(gè)流可以按照不同數(shù)據(jù)速率獲得,并且此外,數(shù)據(jù)速率可以隨著時(shí)間而變。換句話說,不同數(shù)據(jù)速率在不同時(shí)間間隔存在。結(jié)果, 數(shù)個(gè)SSM 210可以在某一時(shí)間周期期間處理不同量的數(shù)據(jù)。此外,數(shù)個(gè)流相互提前或滯后。舉例來說,第一數(shù)據(jù)流的特定音頻流可以相對(duì)于第一數(shù)據(jù)流的視頻流滯后。因此,流程控制模塊216配置成確保數(shù)個(gè)SSM 210按照某一方式處理所述流,以使得數(shù)個(gè)流維持容許的滯后或提前。舉例來說而不是為了限制,數(shù)個(gè)SSM 210 在特定時(shí)間周期期間處理相等量的數(shù)據(jù),以便維持容許的滯后或提前。在一或更多個(gè)實(shí)施方式中,數(shù)個(gè)SSM 210處理相應(yīng)流歷時(shí)跳躍周期。跳躍周期等于特定流拼接模塊處理特定流的持續(xù)時(shí)間的量。跳躍周期等于所述流的訪問單元的一或更多倍的播放持續(xù)時(shí)間。舉例來說,對(duì)于視頻流而言,跳躍周期等于視頻訪問單元的一或更多倍的播放持續(xù)時(shí)間。此外,對(duì)于特定跳躍而言,跳躍周期在數(shù)個(gè)SSM 210間有所不同。舉例來說,視頻SSM 210的跳躍周期可以不同于音頻SSM 210的跳躍周期。為了實(shí)現(xiàn)數(shù)個(gè)流之間的流程控制,數(shù)個(gè)SSM 210在逐個(gè)跳躍的基礎(chǔ)上處理相應(yīng)流。換句話說,SSM 210的特定流拼接模塊僅在SSM 210的剩余流拼接模塊完成相應(yīng)跳躍時(shí)才移動(dòng)到下一跳躍。在特定例子中,當(dāng)數(shù)個(gè)SSM 210不相互通信時(shí),流程控制模塊216配置成將每個(gè)SSM 210已完成跳躍的信息傳遞到數(shù)個(gè)SSM 210。此外,流程控制模塊216在跳
15躍的開始將公用跳躍信用傳遞到數(shù)個(gè)SSM 210。此外,數(shù)個(gè)SSM 210的每個(gè)流拼接模塊處理相應(yīng)流的訪問單元。隨著特定流的每個(gè)訪問單元的到達(dá),相應(yīng)流拼接模塊的跳躍信用減小,減小的量等于訪問單元的播放持續(xù)時(shí)間。此外,當(dāng)流拼接模塊的跳躍信用小于訪問單元的播放持續(xù)時(shí)間時(shí),特定流的流拼接模塊完成跳躍并將跳躍結(jié)束的狀態(tài)傳遞到流程控制模塊216。此外,在從SSM 210的剩余流拼接模塊接收到跳躍結(jié)束狀態(tài)后,流程控制模塊216將信息提供到數(shù)個(gè)SSM 210以開始新的跳躍。以所述方式,在完成包括多倍跳躍的跳躍循環(huán)后,維持了容許的提前或滯后。在一個(gè)實(shí)例中,在完成跳躍循環(huán)后,在第一數(shù)據(jù)流的數(shù)個(gè)流間維持在跳躍循環(huán)的開始時(shí)存在的提前或滯后。在一個(gè)實(shí)例中,跳躍循環(huán)的持續(xù)時(shí)間等于第一數(shù)據(jù)流的數(shù)個(gè)流的訪問單元間隔的最小公倍數(shù)(LCM)。此外,根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,提供了虛擬代碼以實(shí)現(xiàn)數(shù)個(gè)流之間的流程控制。
//在流程控制模塊216處。 SSM 210的數(shù)目=N; 對(duì)所有拼接器設(shè)定Average—leap—size For i=0…..N
{ If (! Leap—finished(i))
{ Run stream splicing module ()
lf(leap_flnish(i))
Leapcount++;}
If (leap count=N)
Reset leap—finish(i) for all i,...N
issue new leap for all i,....N}
//流拼接模塊內(nèi)部 Run—stream—spicing—module () { If (new leap) leap_credit+=avg—leap;
while (leap—credit〉=Access_unit一duration) { splice()//till next Access unit leap_credit-=Access_unit_size;} lf(leap—credit<Access_unit—size) leap—finished(i)=TRUE;}
圖5繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的用于控制第一數(shù)據(jù)流的數(shù)個(gè)流的流程的方法500的示范性流程圖。方法500始于步驟502并繼續(xù)進(jìn)行到步驟504。在步驟 504,識(shí)別流拼接模塊(SSM 210)(例如,圖2的SSM 210)。在步驟506,將跳躍信用傳遞到流拼接模塊。在一個(gè)實(shí)施方式中,流程控制模塊(例如,圖2的流程控制模塊216)將跳躍信用傳遞到流拼接模塊。所述方法繼續(xù)進(jìn)行到步驟508。在步驟508,判定跳躍信用是否大于或等于訪問單元的持續(xù)時(shí)間。如果決定跳躍信用大于或等于訪問單元的持續(xù)時(shí)間,那么方法500就繼續(xù)進(jìn)行到步驟510。在步驟510,處理所述流的訪問單元。舉例來說,視頻流拼接模塊處理視頻流的視頻訪問單元。在一些實(shí)施方式中,視頻流拼接模塊將視頻訪問單元替換為另一視頻訪問單元。在一個(gè)實(shí)例中,替換的訪問單元是第二數(shù)據(jù)流的視頻流的視頻訪問單元。在另一實(shí)例中,替換的訪問單元是虛擬訪問單元。在步驟512,修改跳躍信用。在一個(gè)實(shí)例中,減小跳躍信用,減小的量等于所述流的訪問單元的持續(xù)時(shí)間。所述方法進(jìn)一步繼續(xù)進(jìn)行到步驟508。如果決定跳躍信用不大于或等于訪問單元的持續(xù)時(shí)間,那么方法500就繼續(xù)進(jìn)行到步驟514。在步驟514,完成跳躍。 方法500繼續(xù)進(jìn)行到步驟516。在步驟516,方法500結(jié)束。根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,流程控制與媒體類型、編解碼器類型或文件格式類型無關(guān)。此外,流程控制模塊216使流拼接模塊能夠處理相等量的數(shù)據(jù)。結(jié)果,流程控制不需要第一數(shù)據(jù)流的數(shù)個(gè)流的位速率信息。因此,流程控制可以在數(shù)個(gè)流的任意位速率或可變位速率下起到作用。此外,流程控制算法管理數(shù)個(gè)流之間的初始提前或滯后。結(jié)果,在多流SOP授權(quán)期間,對(duì)適當(dāng)拼接機(jī)會(huì)點(diǎn)進(jìn)行了定位。并且,交替處理了第一數(shù)據(jù)流與第二數(shù)據(jù)流的訪問單元。因此,第一數(shù)據(jù)流的流程控制控制第二數(shù)據(jù)流的流程。此外,流程控制不需要對(duì)流進(jìn)行解碼或復(fù)雜的位速率計(jì)算來控制數(shù)據(jù)。此外,因?yàn)門S/PES標(biāo)頭包括與時(shí)間相關(guān)的字段,所以流程控制僅需要TES/PES標(biāo)頭以進(jìn)行操作。多流SOP授權(quán)算法根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,控制模塊208配置成識(shí)別第一數(shù)據(jù)流的一個(gè)流的拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn),所述拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)對(duì)應(yīng)于第一數(shù)據(jù)流的另一流的拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)。根據(jù)一個(gè)流的拼接機(jī)會(huì)點(diǎn)來選擇另一流的拼接機(jī)會(huì)點(diǎn)改良了拼接流的質(zhì)量。舉例來說,此種選擇拼接機(jī)會(huì)點(diǎn)(SOP)的處理維持了第一數(shù)據(jù)流的數(shù)個(gè)流(例如,視頻流和一或更多個(gè)音頻流)之間的預(yù)先設(shè)立的同步。在另一實(shí)例中,此種選擇拼接機(jī)會(huì)點(diǎn)的處理避免了產(chǎn)生不同流的準(zhǔn)確替換持續(xù)時(shí)間的差異。結(jié)果,可以預(yù)防因PCR與其它內(nèi)容之間的持續(xù)時(shí)間的失配而造成的時(shí)基的不連續(xù)性。此外,控制模塊208從第一數(shù)據(jù)流的數(shù)個(gè)流中識(shí)別錨流。在一個(gè)實(shí)施方式中,錨流包括訪問單元,所述訪問單元與第一數(shù)據(jù)流的其它流的訪問單元相比具有最大播放持續(xù)時(shí)間。舉例來說而不是為了限制,控制模塊208可以將視頻流識(shí)別為錨流,這是因?yàn)樗鲆曨l流的訪問單元的播放持續(xù)時(shí)間相對(duì)大于一或更多個(gè)音頻流的訪問單元的播放持續(xù)時(shí)間。在另一實(shí)施方式中,控制模塊208將音頻流識(shí)別為錨流。如本說明書中早先所描述的,對(duì)于不同流而言,拼接機(jī)會(huì)點(diǎn)在不同點(diǎn)到達(dá)。舉例來說,對(duì)于音頻流而言,拼接機(jī)會(huì)點(diǎn)在訪問單元邊界(AUB)處到達(dá),而對(duì)于視頻流而言,拼接機(jī)會(huì)點(diǎn)在每個(gè)GOP處到達(dá)。在檢測(cè)到錨流后,拼接機(jī)會(huì)點(diǎn)(例如,拼接入機(jī)會(huì)點(diǎn)或拼接出機(jī)會(huì)點(diǎn))決定于錨流中。此外,對(duì)于錨流的決定的拼接機(jī)會(huì)點(diǎn)而言,計(jì)算第η流的數(shù)個(gè)拼接機(jī)會(huì)點(diǎn)的變量 eiJ = I SOPanchor (i)-SOPn(J) I。變量eij計(jì)算錨流的第i拼接機(jī)會(huì)點(diǎn)與第η流的第j拼接機(jī)會(huì)點(diǎn)之間的展現(xiàn)時(shí)間戳(PTQ值的差異。第η流拼接模塊識(shí)別第η流中的特定拼接機(jī)會(huì)點(diǎn),其中變量針對(duì)特定拼接機(jī)會(huì)點(diǎn)具有最小值。根據(jù)一或更多個(gè)實(shí)施方式,各種方法可以用于有效地決定數(shù)據(jù)流的數(shù)個(gè)流的拼接機(jī)會(huì)點(diǎn)。在一種方法中,在SOP的到達(dá)之前預(yù)測(cè)數(shù)個(gè)流的拼接機(jī)會(huì)點(diǎn)。因此,根據(jù)錨流的 SOP而計(jì)算了變量并決定了數(shù)個(gè)流的SOP。此種方法也稱為SOP選擇的預(yù)測(cè)方法。在一種迭代方法中,控制模塊208將流的處理保持暫停直到SOP的到達(dá)為止。此外,迭代算法(本說明書中稍后描述)識(shí)別到達(dá)的SOP是否為最佳SOP集合。因此,控制模塊208傳遞相應(yīng)流以進(jìn)一步進(jìn)行處理。在另一種方法中,使用了預(yù)測(cè)方法與迭代方法的組合。以下描述提供了一或更多種算法,所述算法用于實(shí)施預(yù)測(cè)方法、迭代方法和組合式預(yù)測(cè)與迭代方法。變量名稱和相應(yīng)定義如下所述S0P_flag 由流拼接模塊引擎指示的SOP的到達(dá)。S0P_granted 在對(duì)流的SOP進(jìn)行授權(quán)時(shí)設(shè)定。SOP_timestampn(i)第 η 流的第 i SOP 例子。SOP_timestamp n(i)第 η 流的第 i 預(yù)測(cè) SOP 例子。錨流預(yù)測(cè)是在所述流的基礎(chǔ)上進(jìn)行。sop_count =對(duì)SOP進(jìn)行授權(quán)的信道的計(jì)數(shù)eiJ =錨流的第i SOP與另一流的第j SOP之間的PTS誤差S為給予流拼接模塊的目標(biāo)SOP時(shí)間戳。預(yù)測(cè)算法
SOP_timestamp~0 (O)=Predict (Null) SOP_PTS0=SOP_timestamp~0 (0) For η<-0,Ν
SOP_timestamp~n(0)=Predict(SOP_PTSo) sop_count=0
/*Run stream splicing module*/ while (sop—count<N) { for (n<-0,N)
{ Run_stream_splicing—module (n); if(SOP_PTSn<=CURRENT_PTSn) && SOP_fkg==TRUE) { SOPgranted(n)
sop_count++} } }迭代算法sop—Count=O
/*Run stream splicing module*/ while (sop_count<N) { for (n<-0,N) { Run_splicer (n);
If (SOP_flag==TRUE && n==anchor stream)
{ SOP_granted(n);
sop_count++;}
if (SOP_flag-=TRUE && η !二anchor stream && SOP_granted(anchor stream)==TRUE) { calculate (eij) calculate (ei(j+l))
if(eij<=eiO+l)) { SOP granted(n)
sop—count++;} else
continue; }}}組合式預(yù)測(cè)與迭代算法在所述算法中,按照平均SOP持續(xù)時(shí)間的次序?qū)?shù)個(gè)流進(jìn)行分類。在下一步驟中, 從數(shù)個(gè)流中選擇錨流。此外,預(yù)測(cè)錨流中的最早S0P。在錨流中偵測(cè)到SOP后,預(yù)測(cè)較接近錨流的SOP的另一流的多個(gè)S0P。從另一流的數(shù)個(gè)SOP中,根據(jù)變量eij來選擇另一流的拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)。并且,所述算法使用以下條件來核實(shí)任何流均不與最遠(yuǎn)SOP 交叉。以下條件在確保任何流均不與最遠(yuǎn)SOP交叉時(shí)是必需的a. PTS
的提前(在每個(gè)跳躍的開始時(shí))> PTS[i]的提前+S0P_distance_maxb.其中S0P_distance_max =錨流的最差情況SOP持續(xù)時(shí)間。此外,如早先所描述的,開始了正常的流程控制,并且明白表示了流的每個(gè)訪問單元邊界和SOP的到達(dá)。此外,在以下條件下對(duì)SOP預(yù)測(cè)重新迭代I.如果錨流的SOP在所述SOP的原始位置處未被發(fā)現(xiàn),或II.如果錨流的SOP在早于所述SOP的預(yù)期位置處被發(fā)現(xiàn)。提供以下虛擬代碼來實(shí)現(xiàn)組合式預(yù)測(cè)與迭代算法。Sopcount=O
/ Predict with a immediate PTS value*/ /*SOP_TIME_OUT. After this, abort the SOP search.*/ SOP_TIMESTAMP~0 (O)=Predict (0)//This implies next immediate SOP SOP_PTS0=SOP_timestamp~0 (0) For n<-0,N
SOP_timestamp~n (0)=Predict(SC)P—PTS0) while (sop_count<N) { for (n<-0,N){
Run—stream—splicing_module (n); If(current—PTS0>SOP_TIME—OUT) { Exit(); }
If (SOP flag==TRUE && η == anchor stream) { SOP_granted(anchor stream) sop—count++; SOP_PTS0=Current_PTS0
For k<-0,N
SOP_timestamp~n(0)=Predict(SOP_PTS0) } If (SOP_flag==TRUE && η !=anchor stream && SOP—granted(anchor stream)==TRUE &&
Current PTSn>=SOP_timestamp~n(0)) {·
SOP—granted(n)
sop—count++;} }}根據(jù)一或更多個(gè)實(shí)施方式,公開了視頻流的固定和可變GOP的SOP持續(xù)時(shí)間的預(yù)測(cè)。假設(shè)S為SOP應(yīng)在視頻流中到達(dá)的理論P(yáng)TS。如本說明書中已陳述的,視頻流拼接模塊執(zhí)行GOP精度拼接。由于GOP精確性和不具有對(duì)GOP開始的位置的控制,在某一范圍內(nèi)搜索S0P_timestamp n(i)。在一個(gè)實(shí)例中,當(dāng)視頻流的GOP的大小固定且等于“G0P_SUE” 時(shí),S的相鄰SOP為total_aubs = (S_current_pts) · AUB_SIZE/(90*1000)covered_G0P_distance = G0P_SIZE-total_aubs % G0P_SIZES0P_timestamp n(i) = (total_aubs_covered_G0P_distance) · *AUB_SIZES0P_timestamp η(i+1) = S0P_timestamp η(i)+G0P_SIZE*AUB_SIZE此夕卜,依賴于 covered_G0P_distance, S0P_timestamp n(i)或 S0P_timestamp n(i+l)按照下式選自最小的el和e2 el = (S_SOP_timestamp n(i))e2 = (S0P_timestamp n(i+l)_S)預(yù)測(cè)的最佳SOP為對(duì)應(yīng)于el與e2之間的最小誤差的SOP。所述算法對(duì)于音頻流也同樣適用。最佳授權(quán)算法根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式,節(jié)目插入或廣告插入將第一流的指定內(nèi)容改寫為第二流的內(nèi)容。一般來說,發(fā)生了如下事件第一數(shù)據(jù)流上的內(nèi)容剪輯設(shè)定成將被進(jìn)行改寫的目標(biāo)。所提供的拼接入點(diǎn)為第一此些事件中的內(nèi)容(例如,幀)的開始,并且拼接出點(diǎn)定義為所述事件的最后一幀。當(dāng)流拼接模塊并不對(duì)流執(zhí)行幀精度拼接時(shí),有效的拼接入點(diǎn)和拼接出點(diǎn)有所不同。結(jié)果,改寫了第一數(shù)據(jù)流中的先前幀(從而導(dǎo)致在輸出中那些圖像丟失),或者將顯現(xiàn)目標(biāo)事件中的很少的幀,從而產(chǎn)生知覺短暫影響。因此,最佳SOP授權(quán)算法識(shí)別最佳SOP集合(拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)),所述最佳SOP集合在輸出中在改寫的過去事件與當(dāng)前可見元素之間進(jìn)行最佳化。在一個(gè)實(shí)施方式中,所述算法包含以下步驟。假設(shè)“S”為理論拼接入點(diǎn),且預(yù)期轉(zhuǎn)變事件在第一數(shù)據(jù)流中在S處發(fā)生。為了識(shí)別知覺上的最佳S0P,決定錨流的SOP。因此,使用前述算法(例如,預(yù)測(cè)算法、迭代算法和組合式預(yù)測(cè)與迭代算法)來決定其它流的SOP。此外,在特定流中預(yù)測(cè)出或識(shí)別出最接近“S”的S0P,即,SOP0(i)和SOP0(i+l)。 此外,定義對(duì)應(yīng)于SOP的誤差的誤差和%(i+l),其中按照下式計(jì)算誤差%(1)和 e0(i+l)e0(i) = S-SOP0 (i)e0(i+l) = S-SOP0 (i+1)在下一步驟中,將一對(duì)SOPtl (i)和SOPtl (i+Ι)進(jìn)行定位以使得%(1)是最小_ve誤差且是最小+ve誤差。在SOPji)的到達(dá)后,判定對(duì)當(dāng)前SOP進(jìn)行授權(quán)還是放棄當(dāng)前S0P。并且,預(yù)測(cè)出S0P Q(i+l)并且可獲得值 ⑴和e 0(i+l)。此外,在所述算法中作出以下判定。如果和均是負(fù)值,那么所述算法繼續(xù)搜索下一 SOP i,i+1對(duì),如果e0(i)是-ve并且e0(i+l)是+ve,那么從所述SOP i,i+1對(duì)選擇SOP,最佳SOP = SOP0 ⑴,如果 I % ⑴ I > I e Q (i+1)最佳SOP = SOP 。(i+Ι),如果 I % ⑴ I > I e 。(i+1)使用多流SOP授權(quán)算法尋找所有S0Pn。如果和均是正值,那么放棄所述算法。如所公開的,一旦選擇了預(yù)測(cè)S0P,當(dāng)前最佳SOP授權(quán)算法就退出并且多流SOP算法就計(jì)算其它流的所有S0P。在可變GOP的情況下,SOP的序列號(hào)不可預(yù)測(cè)。結(jié)果,i為任意數(shù)。在所述情況下,在SOP的每次到達(dá)時(shí)嘗試所述算法。在所述特定情況下,以下條件用于判定最佳S0P。SOP Q (i+1) = SOP0(i)+MIN_GOP_SIZE此外,如果未對(duì)SOPtl (i)進(jìn)行授權(quán)并且SOP Q (i+1) > S0P_TIME_0UT,那么中止拼接操作。經(jīng)加權(quán)的預(yù)測(cè)SOP根據(jù)一或更多個(gè)實(shí)施方式,先前事件的改寫相對(duì)較敏感。在所述情況下,對(duì)誤差對(duì)進(jìn)行加權(quán)以實(shí)現(xiàn)SOP的相對(duì)較佳的選擇。因此,將兩個(gè)權(quán)重W-和W+給予流拼接模塊,以進(jìn)行知覺決策。在一個(gè)實(shí)例中,權(quán)重W-和W+是i的線性函數(shù)。在另一實(shí)例中,權(quán)重W-和W+是i的非線性函數(shù)。在所述情況下,按照下式計(jì)算最小誤差SOP 最佳SOP = SOP0 ⑴,如果 I % ⑴ I *W- > I e Q (i+1) | *w+最佳SOP = SOP 。(i+1),如果 I % ⑴ I *w- > | e Q (i+1) | *w+舉例來說,w-和w+是4和1 ;這表示在反向方向上產(chǎn)生的誤差比在前向方向上產(chǎn)生的誤差代價(jià)高。因此,在S之前剛好2個(gè)圖像處的SOP與在S之后的8個(gè)圖像處的SOP 具有相同影響。圖6繪示根據(jù)本發(fā)明的一或更多個(gè)實(shí)施方式的用于選擇第一數(shù)據(jù)流的數(shù)個(gè)流的拼接機(jī)會(huì)點(diǎn)的方法600的流程圖。方法600始于步驟602并繼續(xù)進(jìn)行到步驟604。在步驟 604,識(shí)別第一數(shù)據(jù)流的數(shù)個(gè)流。在一個(gè)實(shí)例中,所述數(shù)個(gè)流包括視頻流、一或更多個(gè)音頻流禾口 PCR流。在步驟606,從所述數(shù)個(gè)流中識(shí)別錨流。在一些實(shí)施方式中,錨流相比于第一數(shù)據(jù)流的其它流具有最高SOP持續(xù)時(shí)間。在步驟608,決定錨流的拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)。在步驟610,根據(jù)錨流的拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)來決定另一流的SOP。在一個(gè)實(shí)例中,多流授權(quán)算法用于決定另一流的SOP。方法600繼續(xù)進(jìn)行到步驟612。在步驟612,方法600結(jié)束。根據(jù)本發(fā)明的各種實(shí)施方式,SOP授權(quán)算法與媒體類型、編解碼器類型或文件格式類型無關(guān)。此外,SOP授權(quán)算法不需要第一數(shù)據(jù)流的數(shù)個(gè)流的位速率信息。因此,SOP授權(quán)算法可以在數(shù)個(gè)流的任意位速率或可變位速率下起到作用。此外,SOP授權(quán)算法針對(duì)拼接的既定精確性以高效率對(duì)第一數(shù)據(jù)流起到作用,所述第一數(shù)據(jù)流包括一或更多個(gè)視頻流、 一或更多個(gè)音頻流。此外,SOP授權(quán)算法在流拼接模塊的任意精確性能力下起到作用。舉例來說,在拼接為幀精度拼接、或GOP精度拼接或子GOP精度拼接時(shí),SOP授權(quán)算法起到作用。SOP授權(quán)算法每次僅處理一個(gè)訪問單元。換句話說,SOP授權(quán)算法不需要未來或過去的存儲(chǔ)來進(jìn)行決策。此外,SOP授權(quán)算法在各種SOP持續(xù)時(shí)間(例如,可變GOP大小)下有效地起到作用。 此外,由于SOP授權(quán)算法不需要分析和處理流(除決定SOP以外),因此,所述算法需要相對(duì)較少的計(jì)算。此外,本文中所論述的各種實(shí)施方式實(shí)現(xiàn)了一種營業(yè)方法,其中廣告可以插入到廣播流中,以使得插入廣告在相對(duì)較小的地理區(qū)域(例如,與有線電視頭端有關(guān)的區(qū)域)中展示。插入廣告可以不同于廣播廣告。此舉對(duì)廣告商、廣播公司和觀眾具有各種優(yōu)勢(shì),并且此種營業(yè)方法公開于臨時(shí)專利申請(qǐng)案“Method and system for broadcasting multimedia data”中,所述臨時(shí)專利申請(qǐng)案是與本申請(qǐng)案一起申請(qǐng)的。根據(jù)所論述的各種實(shí)施方式,拼接器對(duì)此種營業(yè)方法提供若干優(yōu)勢(shì),尤其是能夠允許廣告商和/或廣播公司插入廣告流來代替廣播流,所述廣告流例如能夠在局域有線電視頭端處獲得。
22
雖然上文所述內(nèi)容針對(duì)本發(fā)明的實(shí)施方式,但可設(shè)計(jì)出本發(fā)明的其它實(shí)施方式, 而不偏離本發(fā)明的基本范疇。
權(quán)利要求
1.一種用于控制第一數(shù)據(jù)流的數(shù)個(gè)流的流程的方法,所述方法包含處理第一數(shù)據(jù)流的至少兩個(gè)流的至少一個(gè)訪問單元,其中所述至少兩個(gè)流的所述處理起始于跳躍的開始處且其中所述至少兩個(gè)流包括數(shù)個(gè)訪問單元;在所述跳躍的所述開始處將跳躍信用提供給至少兩個(gè)流拼接模塊,其中所述至少兩個(gè)流拼接模塊在跳躍周期期間處理所述相應(yīng)至少兩個(gè)流,且所述跳躍的所述開始處的所述跳躍信用設(shè)立所述跳躍周期;在所述跳躍周期期間修改所述至少兩個(gè)流拼接模塊的所述跳躍信用;和在所述至少兩個(gè)流拼接模塊中的一流拼接模塊的所述已修改跳躍信用小于所述至少兩個(gè)流中的一流的所述訪問單元的持續(xù)時(shí)間的量時(shí)中斷所述流的所述處理。
2.如權(quán)利要求1所述的方法,其中所述處理包含將所述第一數(shù)據(jù)流的所述至少兩個(gè)流的一或更多個(gè)訪問單元替換為第二數(shù)據(jù)流的一或更多個(gè)訪問單元。
3.如權(quán)利要求1所述的方法,其中所述處理包含將所述第一數(shù)據(jù)流的所述至少兩個(gè)流的一或更多個(gè)訪問單元替換為充填幀。
4.如權(quán)利要求1所述的方法,其中所述在所述跳躍的所述開始處將跳躍信用提供給至少兩個(gè)流拼接模塊包含在新跳躍的開始處將相等跳躍信用傳遞到所述至少兩個(gè)流拼接模塊。
5.如權(quán)利要求1所述的方法,進(jìn)一步包含在決定量的時(shí)間后維持所述至少兩個(gè)流之間的初始提前。
6.如權(quán)利要求5所述的方法,其中所述決定量的時(shí)間等于跳躍循環(huán)的持續(xù)時(shí)間,其中所述跳躍循環(huán)包括至少一個(gè)跳躍。
7.如權(quán)利要求6所述的方法,其中跳躍循環(huán)的所述持續(xù)時(shí)間等于所述第一數(shù)據(jù)流的所述至少兩個(gè)流的訪問單元間隔的最小公倍數(shù)(LCM)。
8.一種用于控制第一數(shù)據(jù)流的數(shù)個(gè)流的流程的設(shè)備,所述設(shè)備包含至少兩個(gè)流拼接模塊,配置成在跳躍周期期間處理所述第一數(shù)據(jù)流的至少兩個(gè)流的至少一個(gè)訪問單元,其中所述至少兩個(gè)流包括數(shù)個(gè)訪問單元;流程控制模塊,配置成在跳躍的開始處將跳躍信用提供給所述至少兩個(gè)拼接模塊,并確保所述至少兩個(gè)流拼接模塊在所述跳躍的所述開始處起始所述處理操作;且其中所述跳躍信用設(shè)立所述至少兩個(gè)流拼接模塊的所述跳躍周期。
9.如權(quán)利要求8所述的設(shè)備,其中所述訪問單元為以下訪問單元中的至少一個(gè)視頻訪問單元或音頻訪問單元。
10.如權(quán)利要求8所述的設(shè)備,其中所述至少兩個(gè)流包含以下流中的至少一個(gè)視頻流和音頻流。
11.一種用于選擇第一數(shù)據(jù)流的數(shù)個(gè)流的拼接機(jī)會(huì)點(diǎn)的方法,所述方法包含 從所述第一數(shù)據(jù)流的所述數(shù)個(gè)流中識(shí)別錨流,其中所述錨流包括數(shù)個(gè)訪問單元;從所述錨流的所述數(shù)個(gè)訪問單元決定所述錨流內(nèi)的拼接入(splice-in)機(jī)會(huì)點(diǎn)和拼接出(splice-out)機(jī)會(huì)點(diǎn);根據(jù)所述錨流的所述拼接入機(jī)會(huì)點(diǎn)和所述拼接出機(jī)會(huì)點(diǎn)決定除所述錨流外的至少一個(gè)流的拼接機(jī)會(huì)點(diǎn)。
12.如權(quán)利要求11所述的方法,其中所述錨流的所述訪問單元在所述數(shù)個(gè)流的訪問單元中具有最高播放持續(xù)時(shí)間。
13.如權(quán)利要求11所述的方法,其中所述數(shù)個(gè)流包含以下流中的至少一個(gè)視頻流;音頻流;和PCR流。
14.如權(quán)利要求12所述的方法,其中所述決定至少一個(gè)流的拼接機(jī)會(huì)點(diǎn)包含計(jì)算第η 流的數(shù)個(gè)拼接機(jī)會(huì)點(diǎn)的變量= |S0Pm。to(i)-S0Pn(j) |,其中所述變量eij計(jì)算所述錨流的第i拼接機(jī)會(huì)點(diǎn)與所述第η流的第j拼接機(jī)會(huì)點(diǎn)之間的展現(xiàn)時(shí)間戳(PTS)值的差異。
15.如權(quán)利要求14所述的方法,進(jìn)一步包含識(shí)別導(dǎo)致在所述第η流的所述數(shù)個(gè)拼接機(jī)會(huì)點(diǎn)中變量的值最小的所述第η流的拼接機(jī)會(huì)點(diǎn)。
16.一種用于選擇第一數(shù)據(jù)流的數(shù)個(gè)流的拼接機(jī)會(huì)點(diǎn)的設(shè)備,所述設(shè)備包含用于至少兩個(gè)流的至少兩個(gè)流拼接模塊,其中流拼接模塊檢測(cè)相應(yīng)流內(nèi)的數(shù)個(gè)拼接機(jī)會(huì)點(diǎn);和控制模塊,用于從所述第一數(shù)據(jù)流的所述至少兩個(gè)流中識(shí)別錨流,其中所述控制模塊配置成與所述至少兩個(gè)流拼接模塊通信,以便根據(jù)所述錨流的拼接入機(jī)會(huì)點(diǎn)和拼接出機(jī)會(huì)點(diǎn)來決定另一流的拼接機(jī)會(huì)點(diǎn)。
17.如權(quán)利要求16所述的設(shè)備,其中所述錨流包括持續(xù)時(shí)間大于其它流的拼接機(jī)會(huì)點(diǎn)的拼接機(jī)會(huì)點(diǎn)。
18.如權(quán)利要求16所述的設(shè)備,其中所述至少兩個(gè)拼接模塊利用預(yù)測(cè)算法以決定其它流的拼接機(jī)會(huì)點(diǎn)。
19.如權(quán)利要求16所述的設(shè)備,其中所述至少兩個(gè)拼接模塊利用迭代算法以決定其它流的拼接機(jī)會(huì)點(diǎn)。
20.如權(quán)利要求16所述的設(shè)備,其中所述至少兩個(gè)拼接模塊利用預(yù)測(cè)算法與迭代算法的組合以決定其它流的拼接機(jī)會(huì)點(diǎn)。
21.如權(quán)利要求16所述的設(shè)備,其中所述至少兩個(gè)拼接模塊利用最佳授權(quán)算法以決定其它流的拼接機(jī)會(huì)點(diǎn)。
22.如權(quán)利要求21所述的設(shè)備,其中所述至少兩個(gè)拼接模塊利用經(jīng)加權(quán)的預(yù)測(cè)SOP算法。
全文摘要
本發(fā)明公開一種用于多個(gè)流的協(xié)調(diào)拼接的方法和設(shè)備。在一個(gè)實(shí)施方式中,本發(fā)明公開一種用于控制第一數(shù)據(jù)流的數(shù)個(gè)流的流程的方法和設(shè)備。此外,本發(fā)明公開一種用于選擇第一數(shù)據(jù)流的數(shù)個(gè)流的拼接機(jī)會(huì)點(diǎn)的方法和設(shè)備。
文檔編號(hào)H04N21/81GK102461196SQ201080030058
公開日2012年5月16日 申請(qǐng)日期2010年4月28日 優(yōu)先權(quán)日2009年4月28日
發(fā)明者德文德拉庫馬爾·班克爾, 拉克沙·特里帕蒂, 達(dá)爾吉特·考爾, 迪潘庫馬爾·梅達(dá) 申請(qǐng)人:福拜特斯印度私人有限公司