專利名稱:媒體容器文件管理的制作方法
技術領域:
本發明總體涉及媒體和多媒體管理,并且特別涉及產生及使用包含這 種媒體和多媒體內容的媒體容器文件。
背景技術:
在最近的幾年內,通過不同的網絡向客戶端提供媒體和多媒體的情況 已經大大增多。現在有許多用戶采用因特網從媒體服務器訪問及下載例 如具有視頻和音頻流或文件的形式的媒體。這種媒體提供也已經出現在
基于無線電的移動通信網絡中。當前人們對于多媒體或TV內容使用移 動網絡非常感興趣。這在本領域中常常^t稱作移動TV。所述移動網絡中 的這種媒體提供當前主要可以通過單點傳送傳輸來獲得。但是,針對移 動TV的廣播/多點傳送遞送方法當前仍在開發中。這種標準化努力的例 子有3GPP多媒體廣播/多點傳送服務(MBMS)以及歐洲電信標準協會 (ETSI)手持式數字視頻廣播(DVB-H)。
為了符合針對在不同的有線和無線通信網絡中提供媒體的上述日益 增長的需求,正在開發可以在無線網絡中用于向發出請求的客戶端提供 媒體內容的流傳輸和下載服務器。通常的趨勢是透明且靈活的流傳輸/ 下載服務器,這意味著所述服務器應當基本地包括用來執行不同的媒體 管理功能的多個"標準"模塊或程序。隨后,輸入媒體內容與關于所述 模塊/程序應當如何處理所述內容的指令一起提供到這些功能。這樣與
的媒體供應。
因此,需要一種可以與具有透明且靈活的流傳輸/下載服務器的趨勢 相符合地使用的媒體容器格式。
發明內容
本發明克服了現有技術設置的上述和其他缺陷。
本發明的 一般目的是提供一種可以被用在多媒體會話中的媒體容器 文件。如所附權利要求書所限定的那樣,本發明滿足了上述和其他目的。 簡而言之,本發明涉及生成及使用媒體容器文件,并且涉及用于生成 及使用這種容器文件的設備。
生成媒體容器文件涉及提供至少一個媒體源文件,其包括將被傳送到 發出請求的客戶端并且將在所述客戶端處被呈現的媒體或多媒體數據。 該容器文件被視為包括一個或多個媒體源塊,這取決于該容器文件的大 小。根據本發明,通過把所述源塊分割成各源符號或部分來處理至少一
個所述媒體源塊,其中使得所述源符號或部分的尺寸允許其被FEC編解 碼器處理,以便基于所述源塊計算FEC冗余數據或符號。生成所選擇的 將被用于所述媒體源塊的塊分割的信息,并且將其與所述源塊的實際媒 體內容一起存儲在所述容器文件中。提供元數據并且將其包括在所述容 器文件中,以便提供媒體源塊與其分割信息之間的關聯。
所得到的容器文件可以由媒體服務器在媒體會話期間采用,以便利用 該容器文件中的所述分割信息來計算FEC數據,并且編輯包括來自該文 件的媒體數據和所計算的FEC數據的數據分組。通過對所述媒體源塊進 行預處理(即基于不同的FEC算法對其進行分割)并且生成被包括在本 發明的容器文件中的FEC信息,允許所述媒體服務器以簡單的在計算方 面并不昂貴的方式計算FEC數據并且把所述媒體數據和FEC數據插入到 將被傳送到發出請求的客戶端的數據分組中,而無需進行大量數據處理 以及計算需求高的塊分割。
在一個優選實施例中,所述容器文件還包括指令,所述媒體服務器在 計算所述FEC數據時以及在編輯包含來自所述容器文件的媒體和FEC數 據的數據分組時使用并且遵循所述指令。在這種情況下,所述容器文件 包括能夠按照可靠的方式成功地把所述媒體數據轉送到所述客戶端所 需要的所有媒體內容和指令。
可以參照結合附圖進行的以下詳細描述來更好地理解本發明及其其 他目的和優點,其中
圖1是示出了根據本發明的 一方面的生成媒體容器文件的方法的流程 圖2是更加詳細地示出了圖1的媒體塊提供步驟的流程圖;圖3是示出了圖1的文件生成方法的附加步驟的流程圖4是根據本發明的另 一 方面的媒體容器文件的示意性總覽;
圖5是示出了根據本發明的另 一 方面的媒體會話管理方法的流程圖6是示出了圖5的會話管理方法的附加步驟的流程圖7是示出了圖5的會話管理方法的附加步驟的流程輯的示意圖9是根據本發明的包括管理媒體容器文件的媒體服務器的通信網絡 的總覽;
圖10是根據本發明的另 一方面的內容服務器的示意性方框圖; 圖ll是更加詳細地示出了圖IO的媒體塊提供器的一個實施例的示意 性方框圖12是更加詳細地示出了圖10的容器文件產生器的一個實施例的示 意性方框圖;以及
圖13是根據本發明的另 一方面的媒體會話服務器的示意性方框圖。
具體實施例方式
在附圖中,相同的附圖標記將被用于相應的或類似的元件。 本發明總體上涉及媒體和多媒體數據管理,并且特別涉及產生及利用 與基于無線電的通信網絡中的媒體服務器(比如流傳輸或下載服務器) 有關的容器文件。本發明的這些媒體容器文件包括將要傳送到 一個(或 多個)發出請求的客戶端的媒體內容以及被用來在所述媒體服務器中執 行媒體處理和傳輸的指令。根據本發明,所述媒體內容被預處理,并且 其以允許媒體服務器在媒體會話期間進行高效管理的形式存在。根據本 發明的一個特定方面,對原始媒體內容進行了預處理,以便在所述媒體 服務器處簡化對所述媒體會話提供可靠性保護。因此,所述內容的格式
以便增k成功遞送到發出請求的客戶端的機會。 ^ 口 、'
根據本發明的一個優選實施例,對所述媒體內容執行預處理,并且將
所述預處理適配成在所述媒體服務器處計算將被包括在所傳送的媒體
流中的前向糾錯(FEC)冗余數據。
如本領域中已知的那樣,FEC涉及到把冗余數據添加到所傳送的有效載荷數據中,這樣允許接收器在無需向發送方請求附加數據的情況下枱二
測并校正錯誤。FEC的優點在于常常能夠避免對數據的重傳,但是其代 價則是平均而言更高的帶寬要求。因此,FEC可以被有利地用于媒體內 容的基于多點傳送/廣播的遞送,其中重傳將很難實現。
FEC是通過利用所選算法或方案向將被傳送的信息添加冗余度而實現 的,所述算法或方案在本領域中通常被稱作FEC編解碼器。每一個這種 冗余比特總是許多原始信息或有效載荷比特的復雜函數。在輸出中包括 未經修改的輸入的FEC編解碼器被稱作系統編解碼器。換句話說,(N, K) 系統FEC編解碼器保留K個源符號或有效載荷符號,并且附加(N-K)個 FEC符號。相應地,(N, K)非系統FEC編解碼器從K個源符號產生N個 (FEC或源)符號,而不必保留所有K個源符號。
主要有兩類FEC編解碼器塊編解碼器和巻積編解碼器。FEC塊編解 碼器在預定尺寸的比特或符號的固定尺寸的塊(分組)上進行操作,而 巻積編解碼器則在任意長度的比特或符號流上進行操作。Digital Fountains Raptor編解碼器是能夠從單一源塊產生任意數目的FEC冗余 符號的FEC塊編解碼器。這是該FEC編解碼器的一個有利屬性,因為這 意味著不同的保護-開銷配置不需要源塊構造的改變。Reed-Solomon是 另 一種FEC塊編解碼器,但是其需要對于不同的保護開銷尺寸在源塊分 割中做出改變。FEC塊編解碼器的其他例子包括Golay、 BCH (Bose、 Ray—Chaudhuri、 Hocquenghera )和Hamming。與本發明相結合地4吏用的 一種優選的FEC編解碼器是Digital Raptor編解碼器。
根據本發明,媒體或多媒體數據或內容指代可以由內容提供商或服務 器提供給客戶端以供呈現數據的任何數據。其典型的優選實例包括視頻 數據和音頻數據。所述數據可以具有預先編碼的固定速率音頻或視頻內 容版本的形式,或者具有可伸縮音頻或視頻內容的形式。其他媒體實例 包括靜止圖像(JPEG)、位形(GIF和PNG)、矢量圖形(SVG)以 及合成音頻(SP-MIDI )和文本(XHTML和SMIL )。
圖l是根據本發明的生成媒體容器文件的方法的流程圖。該媒體容器 文件可以被視為完整的輸入包,其由媒體服務器在媒體會話期間使用來 提供媒體內容并且把媒體數據形成可傳送的數據分組。因此,除了媒體 內容本身之外,所述容器文件優選地包括由所述媒體服務器在媒體會話所述方法開始于步驟Sl,在該步驟中提供至少一個媒體源塊。該至少
一個媒體源塊包括將被發送到客戶端的媒體數據或符號,其將在該客戶 端處4^呈現,以便向用戶呈現媒體內容。所述媒體塊可以具有固定的相 同尺寸,或者至少其一部分,如果多于一個的話,可以具有不同的比特
/符號尺寸。如果在步驟S1中提供多于兩個媒體源塊,則把它們視為相
同媒體內容文件或流(例如視頻流)以及/或者不同的^f某體文件或流(例 如視頻流的幾個媒體源塊以及相應的相關聯的音頻流的幾個媒體塊)的 單獨媒體塊。
在該步驟Sl中可以提供相關聯的媒體內容。例如,如果所述媒體內
容包括音樂視頻,則至少一個所提供的媒體塊優選地包括視頻數據,并 且至少 一個媒體塊包含相應的音頻數據。但是本發明預期可以在多個可 能的媒體版本中提供相同媒體內容。例如,所述音樂視頻的視頻部分可 以被提供在多個預先編碼的視頻版本中,其中每一個所述視頻版本^皮適
配成與給定的帶寬或者比特率水平或區間相結合地使用。因此在步驟Sl
中可以提供給定媒體內容的多個版本。在這種情況下,每一個所述媒體 版本可以被視為包括一個或多個媒體源塊。雖然可以提供多個媒體版本 并且將其組織到所述容器文件中,但是在所述媒體會話期間的給定時刻 通常僅僅使用一個所述版本,但是例如基于可用帶寬水平的改變,在所 述會話期間,在各媒體版本之間可以有切換。
在下一個步驟S2中,把所提供的媒體源塊分割成源符號或者所謂的 組塊(chunk)。這些符號通常包括幾百個字節。該塊分割是至少部分 地基于將被媒體服務器用來為當前媒體源塊計算FEC符號的FEC編解碼 器/算法的信息來執行的。如前所述,基于Reed-Solomon的FEC編解碼 器基于所期望的保護開銷尺寸(即FEC冗余符號的數目)而需要所述源 塊分割中的改變。因此,實際的FEC編解碼器或算法以及/或者所需的 FEC保護開銷可能會影響所述媒體源分割以及媒體符號尺寸。此外,在 步驟S2的該源塊分割中可以使用由媒體服務器使用來傳送所述媒體內 容的其他參數,比如數據分組的尺寸,其中所述數據分組比如是用戶數 據報協議(UDP)分組。在這種情況下,可以限制所述源符號的尺寸, 從而可以把至少一個完整源符號置于UDP分組中。
該分割步驟S2不一定意味著把所述媒體源塊物理地劃分成#:存儲在
所述容器文件中的單獨位置處的單獨源符號。與此相對,在大多數實際的實現方式中,所述媒體源文件在所述容器文件中凈皮存儲為一個連續數 據序列,但是被視為或者被虛擬地劃分成媒體源塊,所述媒體源塊又被 虛擬地分割成源符號。
在下一個步驟S3中生成所述分割的信息。該信息基本上表明所述數
據序列的哪些部分屬于所述媒體源塊的哪一個源符號。所述分割信息可
以被組織到一個表中,該表表明媒體源塊Z的比特X到比特Y構成源符 號。可替換地,所述信息可以包括每一個源符號的以字節計的尺寸。于 是在知道媒體源塊在媒體文件中的起始位置的情況下有可能確定屬于 不同源符號的數據部分。
本發明預期可以根據至少兩種不同的分割操作來分割給定的媒體源 塊。例如,第一種此類塊分割可以被適配于第一FEC算法,而所采用的 第二種分割則被適配于第二FEC算法。此外,所述塊分割還可以依賴于 在所述媒體服務器處實際所期望的FEC開銷。在這種情況下,可以在文 件產生時確定針對不同的FEC開銷所設計的不同塊分割。所述分割信息 于是包括適用于給定媒體源塊的這些替換分割的信息。
在步驟S4中把所分割的媒體塊和所生成的分割信息組織到所述媒體 容器文件中。因此,所述媒體內容和所述信息作為所述容器文件的各部 分被插入。此外,被組織在所述容器文件中的所述至少一個媒體塊優選 地共同包括將在媒體會話期間被傳送到客戶端的所有媒體內容數據。換 句話說,所述容器文件包含用于整個多媒體呈現的媒體數據。
下一個步驟S5提供將被包括在所述容器文件中的元數據。該元數據 提供在步驟S4中被添加到所述容器文件中的媒體源塊與在步驟S4中被 存儲在所述文件中的分割之間的關聯。這種關聯可以具有從所述媒體源 塊在所迷文件內的存儲位置到所述分割信息的存儲位置的指針的形式, 或者反之亦然。因此,該元數據允許在給出特定媒體源塊或者其在所述 容器文件內的位置的情況下識別出相關聯的分割信息或者該信息在所 述文件內的存儲位置。在所述媒體源塊和/或相關聯的信息被存儲在所 述容器文件中的預先定義的"標準"或"默認"位置處的情況下,取代 采用指針,所述元數據可以包括所述媒體源塊和/或相關聯的信息的標 識符。隨后使用該元數據來識別出所述文件中的所述媒體源塊和所述分 割的其中之一,并且基于該識別出的位置可以識別出所述J 某體源塊和所
述信息當中的另一個。在本發明的一種典型的實現方式中,在步驟S1中提供多個媒體源塊。
在這種情況下,優選地對于每一個這種媒體源塊或者至少對于多組媒體
源塊重復步驟S2到S5,這由線Ll示意性地示出。因此,如果在步驟 Sl中把yV個媒體源塊組織到所述容器文件中,則優選地把步驟S2到S5 重復vV次,這意味著除了所述源塊之外還把W個分割信息和元數據版本 組織在所述容器文件中。 所述方法隨后結束。
如前所述,本發明的一個目的是提供一種媒體容器文件,其除了實際 的媒體數據之外還包括將在計算FEC數據時被使用的FEC相關的分割信 息。這意味著所述文件到源塊劃分和塊分割是"離線"進行的,并且與 媒體服務器中的實際的媒體傳輸處理無關。這種預處理簡化了所述服務 器的任務,并且降低了所述服務器的性能要求和復雜度。此外,所迷容 器文件優選地還包括由媒體服務器識別出媒體數據和所計算的FEC數據 并且把所述媒體數據和所計算的FEC數據組成媒體流所需的信息和指 令,其中所述媒體流可以被傳送到發出請求的客戶端。因此,所述容器 文件可以被視為能夠被透明且靈活的服務器用于數據編輯和傳輸的數 據、信息和指令的完整包。
上面結合圖l描述的容器文件生成優選地是在可以訪問內部或外部媒 體內容源的內容產生器或者服務器處實施的。隨后可以在諸如計算機存 儲器的存儲介質中或者在諸如電信號或無線電信號的物理信號中表示 所生成的容器文件,以便例如在本地系統內傳輸或者通過本地或全球網 絡傳輸。在一個典型的實施例中,所述容器文件被提供為到媒體服務器 的無線電信號,以便使用在與不同客戶端的媒體會話中。
在下面的公開內容中將通篇使用術語"媒體容器文件",其含義包括
圖2是示出了圖1的容器文件生成方法的附加步驟的流程圖。所述方 法開始于步驟SIO,在該步驟中提供至少一個媒體源文件。在該說明性 實施例中,可以在所述容器文件產生器處以包含所述媒體數據的源文件 或流的形式獲得媒體內容。在該步驟S10中,可以提供一個或多個媒體 源文件以便包括到容器文件中。例如,第一媒體文件可以包含視頻數據, 而第二相關聯的文件則包含音頻數據。為了允許在所述媒體服務器處高 效地計算FEC冗余數據以及隨后使用這種FEC數據,在步驟S1Q中提供的所述一個(或多個)媒體源文件在下一個步驟Sll中被劃分成多個媒
體塊。該媒體源塊于是可以被視為所述媒體源文件的片段,其中可以對
該片段應用或操作FEC代碼。在源符號或者數據比特方面的所述媒體塊 的尺寸可以結合所述劃分被預先定義或選擇。在前一種情況下,所述尺 寸可以由將被采用來計算FEC冗余數據的預定FEC方案或代碼來定義。 因此,實際的FEC編解碼器或算法以及/或者所需要的FEC保護開銷可 能會影響所述媒體文件劃分和媒體塊尺寸。
在所述輸入媒體源文件的比特或符號尺寸小于可以由FEC編解碼器有 效處理的最大尺寸時,當然不需要把該源文件劃分成媒體源塊,并且可 以省略步驟Sll。于是將該輸入媒體源文件視為根據本發明的媒體源塊。
應當注意的是,即使存在優選的塊尺寸,也并不需要從媒體源文件生 成的所有媒體源塊都具有該優選尺寸。例如,與其他等同塊相比,最后 一個媒體源塊可能具有較小的尺寸,這是因為所述媒體文件的剩余部分 不包含足夠的媒體數據以達到所述優選塊尺寸。
上述劃分步驟Sll不一定意味著把所述媒體源文件物理地劃分成被存 儲在所述容器文件中的單獨位置處的單獨媒體源塊。與此相對,在大多 數實際的實現方式中,所述媒體源文件在所述容器文件中被存儲為 一個 連續數據序列,但是被視為或者被虛擬地劃分成媒體源塊。例如,可以 把包含2#個源符號的的媒體源文件劃分成使得源符號
屬于第 一源塊,并且使得符號[A 2,1]屬于第二源塊。
在下一個步驟S12中提供特定媒體源文件劃分的信息。當所述媒體服 務器將要提供媒體數據分組流和/或計算FEC數據時,該信息對所述媒 體服務器可能具有相關性。
所述方法隨后繼續到圖1的步驟S2,在該步驟中把所述一個(或多個) 媒體源塊分割成媒體源塊。
圖3是示出了圖1的容器文件生成方法的附加步驟的流程圖。該方法 從圖1的步驟S5繼續。在下一個步驟S20中,提供作為計算所述塊分 割的基礎的FEC算法或方案的信息。該信息可以具有特定算法名稱或者 某種其他描述性信息的形式。在一種替換方法中,每一種可用的FEC算 法都具有預先定義的標識符。因此,隨后在步驟S20中可以僅僅提供該 FEC標識符。在一種典型的實現方式中采用了單一 FEC編解碼器的信息 來分割媒體源文件的所有媒體源塊。但是實際上有可能在對給定媒體源同的FEC編解碼器。因此,所述FEC信息可以表明利用了單一FEC編解 碼器分割了所述容器文件內的所有塊以允許計算FEC符號,或者標識出 對于哪一個源塊或者源塊組使用了不同的FEC編解碼器。在本上下文中, 實際上有可能基于不同的潛在目標FEC編解碼器和/或FEC開銷來分割 給定源塊。在這種情況下,優選地在步驟S20中提供這些不同FEC編解 碼器的信息。
在下一個步驟S21中優選地提供屬性表。如果在所述容器文件中包括 多于一個媒體源文件/流,則該屬性表是特別有用的,但是在僅僅包含 單一媒體源文件時也可以有利地使用該屬性表。該文件屬性表通常包含 所述媒體源文件的媒體類型的信息,優選地是所述媒體的多目的因特網 郵件擴展(MIME)類型。因此,該MIME信息可以表明所述媒體是音頻 媒體、視頻媒體或者某種其他媒體類型,其中包括同步多媒體集成語言 (SMIL)。該MIME類型向所述媒體服務器提供關于什么類型的數據被實 際包括在所述容器文件中的信息。所述屬性表還可以包括被用于所述媒 體數據的任何編碼方案的信息,其中包括gzip。在所述屬性表中還可以 包括尺寸信息。該尺寸信息可以聲明每一個媒體源文件的以字節或符號 數計算的總尺寸、所述一個(或多個)源文件的媒體源塊的對應尺寸(基 本上對應于在圖2的步驟S12中提供的所述劃分信息)、對應于將在傳 送數據時被使用的數據分組的最大或目標有效載荷尺寸、媒體源符號 (基本上對應于在圖1的步驟S3中生成的所述分割信息)和/或FEC符 號的(以字節計的)尺寸等等。對于被包括在所述容器文件中的每一個 媒體源文件,在所述屬性表中優選地包括文件名或文件標識符。
優選地在所述屬性表中找到關于每一個媒體源文件在所述容器文件 中的實卩示存儲位置的信息。該位置信息可以表明該源文件的第 一媒體源 塊的起始位置,并且隨后在所述容器文件中的該位置之后找到剩余的媒 體塊。在圖1的步驟S5中生成的提供所述容器文件中的媒體源塊與分 割信息之間的關聯的元數據也可以被包括在所述屬性表中。相應地,關 于所采用的塊分割以及針對冗余數據計算的FEC編解碼器的信息優選地 :故包括在該表中。
因此,所述容器文件的屬性表可以被用作用于媒體源的單一信息源,組的其他信息。
在下一個步驟S22中生成FEC計算指令。這些指令凈皮媒體服務器使用 來基于所述媒體源塊的所述元數據和分割數據為這些源塊計算FEC數 據。因此,這些指令可以被視為提供關于如何把不同源塊的媒體源符號 輸入到FEC編解碼器(其優選地是基于所述FEC信息定義的)以便生成 FEC符號的指令的提示或元數據,其中所述FEC符號將在媒體會話期間 與所述媒體內容一起被用來提供可靠性保護。優選地與所述分割信息和 所述元數據(其允許識別所述分割信息) 一起使用所述指令,以便對于 至少其中 一個所述媒體源塊計算FEC符號的存儲庫。
在一種優選的實現方式中,所述FEC計算指令定義為所述至少一個媒 體源塊計算一組FEC冗余符號。該FEC符號組可以包括一個(但是優選 地包括多個)基于所述媒體源塊的源符號計算的FEC符號。
所述FEC計算指令可以包括針對給定媒體源塊的多條替換指令。例如, 在將要針對基于所述FEC算法信息確定的FEC數據計算使用第一 FEC編 解碼器時采用第一替換FEC指令。相應地,第二替換FEC指令定義利用 第二FEC編解碼器計算FEC數據。替換地或附加地,所述替換FEC指令 可以被適配于不同的FEC開銷,從而基本上取決于可允許的最大(或最 小)FEC開銷規定計算不同數目的FEC符號。
下一個步驟S23生成供媒體服務器使用的編輯指令。這些指令被用來 定義對來自所述媒體源塊的媒體數據和基于所述一條(或多條)FEC計 算指令計算的FEC冗余數據的編輯,以便形成數據分組的媒體流。因此, 這些指令可以被視為提示或元數據,其提供關于如何使用被包括在所述 容器文件中的數據以及從中計算的數據來組成具有可靠性保護的可傳 送媒體分組流的指令。因此,這些指令被用來把元數據和FEC數據一起 編輯成適當的分組,以供在媒體會話期間傳輸到發出請求的客戶端。因 此,所述指令將描述媒體源數據和FEC數據的服務器側傳輸順序。但是 應當注意到,所述指令通常不包括時間調度信息、目標/源地址或端口 的信息或者其他特定于會話的信息。這意味著所述容器文件以及其中的 編輯指令對于特定會話來說是透明的,并且實際上可以被媒體服務器用 于與不同接收客戶端的多個不同會話,但是也可以被不同媒體服務器使 用。
所述編輯指令可以應用于所述媒體源塊的子集,這意味著必須由媒體服務器在會話期間讀取并使用多條這種指令。可替換地,編輯指令包括 對于單 一媒體源文件或者實際上對于所述容器文件中的所有媒體源文
件所需要的所有信息。
在步驟S23中可以實際生成多于一個編輯指令集。在這種情況下,可 以提供不同的替換指令,從而媒體服務器可以選擇確定對于特定媒體會 話采用哪一個特定指令集。例如,在采用單一傳輸信道以用于數據傳輸 時,第一編輯指令可以被用于描述媒體源塊和FEC數據的傳輸順序。如
果有多條信道可用(意味著可以并行地而不是順序地傳送數據),則第 二指令可以被應用于相同的媒體源塊和FEC數據,但是其提供編輯和傳 輸順序信息。因此,可以使用幾條編輯指令來提供針對不同傳輸信道條 件的替換傳輸會話。
按照類似的方式,對于不同的可靠性保護開銷可以包括替換的編輯指 令。例如,第一編輯指令被用于針對第一最大保護開銷水平描述媒體源 塊和FEC數據的編輯和傳輸順序,而第二指令則:故用于具有第二不同 FEC開銷水平的相同媒體源塊。如果該第二FEC開銷水平高于(低于) 第一水平,則可以向給定數量的媒體源符號添加更多的FEC符號或其在 本領域中也被稱作的奇偶符號。
下一個步驟S24組織在先前的步驟S20到S23以及優選地還有圖2的 步驟S12中提供和生成的信息、表和指令到容器文件中。所述容器文件 于是將包含由媒體服務器識別、計算及組成用于傳輸到發出請求的一個 (或多個)客戶端的數據所需要的"原始"媒體數據、信息、指令和元 數據的免整集合。所述方法隨后結束。
圖4是根據本發明的媒體容器文件1的示意性總覽。如前所述,該容 器文件1包含多個媒體源文件10、 12、 14的媒體數據,在該圖中示出 了M個這種文件,其中M》1。每一個文件IO、 12、 14的媒體數據^皮視 為劃分成多個媒體源塊20、 22、 24。在該圖中對于第一媒體源文件10 示出了Qi個這種塊20、 22、 24,其中Q一1。每一個這種媒體源塊20、 22、 24又祐j見為分割成源符號。
除了具有媒體數據的媒體源塊20、 22、 24之外,所述容器文件1還 包括分割信息集30、 32、 34,其包含出于促進計算FEC冗余數據的目的 而被應用于所述媒體源塊20、 22、 24的所述源符號分割的預先生成的 信息,其中將把所述FEC冗余數據與所述媒體數據相結合地使用來提供可靠性保護。在一種優選的實現方式中,每一個媒體源塊包括專用分割
信息集30、 32、 34。在這種情況下,該圖中的信息集30、 32、 34的數 目N是iV,。
本發明6f關聯元數據40也被提供在所述容器文件1中,所述關聯元 數據4Q提供所述分割信息30、 32、 34與所述分割信息30、 32、 34所 適用的所述一個(或多個)媒體源塊20、 22、 24之間的關聯。圖4示出 了該元數據40在文件1中的多個不同的可能位置。在第一實施例中, 與所述一個(或多個)相關聯的媒體源塊20、 22、 24相結合地存儲所述 元數據。因此,通過識別出所述文件中的媒體源塊20、 22、 24還允許 識別出該源塊20、 22、 24的對應元數據40。替4灸地或附加地,把所述 元數據40與對應的分割信息30、 32、 34—起存儲。因此,每一個信息 集30、 32、 34具有相關的關聯元數據40,其允許識別出為之應用所述 特定分割信息30、 32、 34的一個(或多個)相關媒體源塊20、 22、 24。 如果所述容器文件1包括優選的文件屬性表60,則所述關聯元數據40 可以被提供在該屬性表中。在這種情況下,媒體服務器可以僅僅調查該 文件屬性表6G以便識別出將在媒體會話期間使用的相關媒體數據和分 割數據的位置。在另一種可能的實現方式中,與所述容器文件l的不同 提示軌道50、 52、 54相結合地存儲所述關聯元數據40。這些提示軌道 包括將由媒體服務器用于媒體會話的FEC計算和/或編輯指令。在這種 情況下,每一條提示軌道50、 52、 54僅僅需要包含可以由該提示軌道 50、 52、 54中的指令實現的媒體會話所需要的元數據40。多個此類可 能的存儲位置的組合也是可能的,并且落在本發明的范圍之內。
根據本發明的一個特定實施例,所述媒體容器文件1是交織的單元, 其針對循序(progressive)下載或流傳輸而^皮優化。從而可以通過到 發出請求的客戶端的所謂的循序下載或流傳輸來傳送及下載整個多媒 體呈現。
ISO基礎媒體文件格式[l, 2, 3]可以有利地被釆用作為本發明的媒體 容器文件的文件格式。替換的容器文件格式包括MP4文件格式、3GP文 件才各式以及Qu i ckT i me才各式。
異步分層編碼(ALC)是一種可大量伸縮的可靠的內容遞送協議。其 是用于對任意二進制對象進行可靠的多點傳送遞送的基礎協議,并且已 經被采用作為在3GPP2BCMCS (廣播/多點傳送服務)以及開放移動聯盟(0MA)瀏覽器和內容(BAC)廣播(BCAST)工作組中進行廣播/多點傳 送文件遞送的強制協議。
FLUTE (通過單向傳輸的文件遞送)在ALC之上建立并且定義了一種 用于單向文件遞送的協議,其近來已經在3GPP MBMS和DVB-H IP數據 播送(IPDC)中被采用作為針對廣播/多點傳送文件遞送的強制協議。 ALC和FLUTE都由因特網工程任務組(IETF)定義。
FLUTE定義了文件遞送表(FDT),其攜帶與在ALC會話中遞送的文件 相關聯的元數據,并且提供用于對FDT進行帶內遞送和更新的機制。與 此相對,ALC依賴于對文件元數據進行帶外遞送的其他措施。OMABCAST 定義了電子服務指南(ESG),其通常在所述ALC會話之前很好被遞送 到客戶端。如果在所述ALC會話期間需要更新所述文件元數據,則可以 通過利用ESG遞送/更新信道來更新ESG的各片段。
器文件中。元框(Meta box)及其子框(child box)允許把多種數據 項目(比如靜態媒體(畫面)和SMIL呈現)存儲到ISO基礎媒體文件 中。所述元框及其子框還允許在所述ISO基礎媒體文件中把文件名、到 各項目的路徑以及所述文件目錄結構的信令相關聯。
一般來說,在可以通過ALC/FLUTE發送文件之前的第一步是根據本發 明把所述文件分割成源塊和源符號。所述分割可以依賴于FEC方案、目 標分組尺寸以及所期望的FEC開銷。對于FEC編碼的每一個源塊,預先 計算分割信息,并且將其與關于所述FEC方案的信息和文件劃分信息一 起存儲在所述ISO基礎媒體文件中。
促進文件傳輸的下 一步是使所述I SO基礎媒體文件還包含定義利用所 述分割信息從所述媒體源塊計算FEC符號的指令。此外,所述ISO基礎 媒體文件優選地還包括用于多點傳送/廣播服務器的指令,其(利用會 話描述協議)描述所述ALC/FLUTE會話,并且描述如何把各項目封裝到 ALC或FLUTE分組中。
一方面所述文件分割以及用于文件遞送的所述提示軌道能夠被彼此 獨立地使用。所述文件分割有助于提示軌道的設計,并且允許例如具有 不同FEC開銷的替換提示軌道重復使用相同的FEC符號。它們還提供訪 問源符號的措施。然而,為了在服務器遵循提示軌道指令時降低復雜度, 提示軌道直接涉及到被拷貝到提示釆樣中的項目或數據的數據范圍。下面給出了根據本發明的容器文件的 一個更加詳細的實現方式實例,
其具有ISO基礎媒體文件格式的形式并且被適配成通過ALC/FLUTE傳 輸。然而這僅僅應當被視為本發明的一個說明性實例,在本發明的范圍 內可以對該實例做出明顯的4務改和改變。 源文件的存儲
預定通過ALC/FLUTE傳輸的文件被作為項目存儲在充當容器文件的 ISO基礎J 某體文件的頂級元框('meta,)中。項目位置框('iloc,) 表明每一個項目(媒體源文件)在所述容器文件內的實際存儲位置以及 每一個項目的文件尺寸。每一個項目的文件名、內容類型(MIME類型) 等等由項目信息框('iinf,)提供。
FD項目信息框
關于分割源文件的細節凈皮提供在FD項目信息框('fiin,)中。該 框優選地被用于采用了 FD提示軌道的文件,并且優選地恰好有一個該 框位于所述元框('meta,)內。該框凈皮如下定義
aligned問class FDItemlnformationBox extends FullBox('fiin', version = 0, 0)
unsigned int(16) entry一count; PartitionEntiyl entiy—count j partition—entries; SessionGroupBox sessionjnfo; GroupIdToNameBox groupjd—to_name;
所述FD項目信息框中的每一個PartitionEntry (分割條目)提供關 于對于特定媒體源文件的特定文件分割和元數據的細節。如果在所述 ISO文件中使用了替換的分割,則有可能為一個源文件提供多個條目。 所有分割條目都可以被隱含地編號,并且第一條目的編號通常為1。
分割條目
源的分割條目('paen,);故如下定義 aligned(8) class PartitionEntry extends Box('paen')
FilePartitionBox blocks—and—symbols;
其可以包含定義所述媒體源分割的一個框。文件分割框
文件分割框('fpar,)識別出源文件并且提供把該文件分割成源塊 和符號。其定義如下
aligned(8) class FilePartitionBox extends Fu肪ox('fpar', version = 0, 0)
unsigned int(16) item—ID;
unsigned int(16) iiicket_payload_8ize;
unsigned int(16)跑C一encodingJD;
unsigned int(16) FEC一instance一ID;
usingned int(16) max—source—block—length;
unsigned int(16) encoding_symbolJength;
unsigned int(16) max—number—of_encoding_symbols;
string scheme_specific—info;
unsigned int(16) entiy一count;
for i <= entry—count; i++)
unsigned int(16) bloc、count; unsigned int(32) block_size;
語義
item—ID(項目ID)表明源文件的項目ID。有可能通過在多于一個文 件信息條目的文件分割框中使用相同的項目ID來提供對源文件的替換 的分割。
packet_payload_size (分組有效載荷尺寸)給出分割算法的目標 FLUTE或ALC分組有效載荷尺寸。應當注意到,UDP分組有效載荷更大, 這是因為其還包含FLUTE或ALC報頭。
FEC_encoding-ID ( FEC編碼ID)標識出FEC編碼方案。Q值可以對應 于默認方案,比如對應于"Compact No-Code FEC scheme (緊致無代碼 FEC方案)",其也一皮稱作"Null-FEC (空FEC) ,, [4]。 1值優選地對 應于"MBMS FEC" [5]。
FEC_instance —ID (FEC事例ID)提供對被用于欠詳列的FEC方案的 FEC編碼器的更為具體的標識。該值通常不被用于完全詳列的FEC方案。關于欠詳列的FEC方案的進一步細節參見文獻[4]。
max_source_block_length (最大源塊長度)給出每個々某體源塊的最 大源符號數目。
encoding_symbol-length (編碼符號長度)給出一個編碼符號(源符 號和FEC奇偶符號)的(以字節計的)尺寸。除了可能較短的最后一個 符號之外, 一個項目的所有編碼符號優選地具有相同的長度。
max—number_of_encoding_symbols (最大編碼符號數目)給出針對在 文獻[4]中定義的FEC編碼ID 129可以為源塊生成的最大編碼符號數目。
scheme_specific_info (特定于方案的信息)是"FLUTEbis"中的特 定于方案的對象傳送信息(特定于FEC-0TI方案的信息)的base64編 碼的空字符結尾字符串。所述信息的定義取決于所述FEC編碼ID。
entry —count (條目計數)給出提供對源文件的分割的(block—count, block—size)對的列表中的條目數。從所述文件的開頭開始,每一個條 目表明該文件的下 一個片段如何被劃分成源塊和源符號。
block—count (塊計數)表明尺寸block_size (以字節計)的連續源 塊的數目。不是符號尺寸(其被提供在FEC信息框中)的倍數的 block_size表明最后一個源符號包括未被存儲在所述文件項目中的填 充符。
項目信息框
為了矛J用廣播/多點傳送文件下載協議(ALC/FLUTE)內部地傳送所嵌 入的分立媒體,優選地令所述服務器還傳送對應于所述分立媒體的某些 元數據。如果FLUTE被用作廣播協議,則作為所述FDT的一部分發送所 述元數據,而如果把ALC與OMA BCAST ESG相結合地使用,則作為OMA BCAST ESG的一部分發送所述元數據。
由于某些元數據信息可能是迅速(on the fly )產生的,因此對于FLUTE 和ALC所共有的所述元數據的靜態部分的模板結構被定義為所述項目信 息條目的第二版本。所述項目信息條目的該版本在所述項目信息框中被 用于具有源文件分割的項目。ali^tied(8) class ItemlnfoEntiy extends FullBox('infe,, version瞎1, 0)
unsigned int(16) item—ID;
unsigned int(16) itemjprotection—indeix;
unsigned int(32) content—length;
unsigned int(32) transfer—length;
string item一name;
string contentJype;
string content Jocation;
string contenlLencoding;
string contcnt_MD5)
unsigned int問entry_count;
for (i-1; i <= entiy一count; i++)
unsigned int(32) group—id;
語義
item—id(項目id )對于主資源(例如包含在'xml,框中的擴展標記 語言(XML))包含O,或者對于為之定義了以下信息的項目包含該項目 的ID。
item_protection_index(項目保護索引)對于不受保護的項目包含0, 或者包含到項目保護框的基于1的索引(所述項目保護框中的第一個框 的索引為l),其中所述項目保護框定義了^支應用于該項目的保護。
content —length (內容長度)給出(未編碼)文件的總長度(以字節計)。
transfer — length (傳送長度)給出(已編碼)文件的總長度(以字 節計)。應當注意到,如果沒有應用內容編碼則該傳送長度等于內容長 度(見下面)。
item—name (項目名)是UTF-8字符的空字符結尾字符串,其包含所 述項目的符號名,即該項目(源文件)的文件名。
content —type (內容類型)是UTF-8字符的空字符結尾字符串,其具 有所述項目的MIME類型。如果該項目是經過內容編碼的(見下面),則所述MIME類型指代內容解碼之后的該項目。
content — location (內容位置)是UTF-8字符的空字符結尾字符串, 其包含定義在HTTP/1. 1 [6]中的所述文件的URI。
content — encoding (內容編碼)是UTF-8字符的空字符結尾字符串, 其被用來表明所述二進制文件是已編碼的,并且在被解譯之前需要被解 碼。針對HTTP/1. 1的內容編碼定義了其值。 一些可能的值有"gzip"、 "compress"和"deflate"。空的字符串表明沒有內容編碼。應當注意 到,所述項目在應用了內容編碼之后^皮存4渚。
content_MD5 (內容MD5 )是UTF-8字符的空字符結尾字符串,其包含 所述文件的MD5摘要[6, 7]。
entry — count (條目計數)給出下面的列表中的條目數。
group — ID (組ID)表明所述文件項目所屬的文件組。
優選地采用所有的字段。但是空字符結尾字符串也有可能僅僅包含空 字符,以表明沒有提供該字段的相應值。對所述框的未來擴展可以在末 尾添加附加的字段。
通過考慮被提供在用于每一個項目的文件信息框中的信息以及由提 示軌道所使用的項目列表,可以構造對于FDT或ESG所需的文件條目。
可以通過使用定義在ISO基礎媒體文件格式[l, 2]的8.44.7節中的 通用資源位置(URL)表來指代所嵌入的媒體資源的內容位置。
會話組框
FD會話可以同時在幾條FD信道上進行發送,其中的每一條信道都由 FD提示軌道進行描述。所述會話組框包含會話列表以及屬于每一個會話 的所有媒體文件組和提示軌道。如果在所述容器文件中有多于一條FD 提示軌道,則在所述FD項目信息框中優選地存在一個會話組框。
在任意時間應當僅^又處理一個會話組。在會話組中第 一條列出的提示 軌道指定基礎信道。如果所述媒體服務器在各會話組之間沒有優選,則 默認的選擇通常是第 一會話組。包含由所述提示軌道所提到的文件的所 有文件組的組ID都^^皮包括在所述文件組的列表中。隨后可以(利用組 ID到名稱框)把所述文件組ID翻譯成文件組名,所述文件組名可以浮皮 所述服務器包括在FDT中。aligned(8) class SessionGroupBox extends Box('segr')
unsigned int(16) .nuirusession^groups; for(i-O; i < nura^session一groups;
unsigned int(8) entry一ccmnt; for (j="0; j < entry—count; j++)
unsigned int(32) group—ID;
unsigned int(16) num—channels_in—se3sion_group; for(k"0; k < ntim一channels—in—session_group; k++)
unsigned in卿)hint—track一id;
語義
num_session—groups (會話組數目)指定會話組的數目。 entry —count (條目計數)給出下面的列表中的條目數,該列表包括 所述會話組所遵照的所有文件組。該會話組包含^皮包括在由每一個源文 件的項目信息條目所表明的所列出的文件組中的所有文件。用于該會話 組的FDT應當優選地^(又僅包含在該結構中列出的那些組。 group—ID (組ID)表明所述會話組所遵照的文件組。 num—charmels-in一session—groups (會話組中的信道數)指定所述會 話組中的信道數。該"會話組中的信道數,,的值是正整數。
hint-track_ID (提示專九道ID )指定屬于特定會話組的FD提示專九道的 軌道ID。 一條FD提示軌道對應于一條分層編碼傳輸(LCT)信道。 組ID到名稱沖匡
所述組ID到名稱框把文件組名與使用在所述項目信息條目中的文件 組ID相關聯。aligned(8) class GroupIdToNameBox extends FullBoxCgitn', version - 0, 0)
unsigned int(32) entry—count; for (i-1; i<-entry—count; i++)
unsigned int(32) group—ID; string group一name;
語義
entry_count (條目計數)給出下面的列表中的條目數。 group —ID (組ID)表明文件組。
group_name (組名)是UTF-8字符的空字符結尾字符串,其包含相應 的文件組名。 提示軌道格式
所述提示軌道結構被一般化,以便支持多種數據格式的提示采樣。所 述提示軌道采樣包含建立正確類型的分組報頭所需要的任何數據,并且 還包含到應歸入所述分組中的數據的媒體源塊的指針。
采樣條目格式
FD提示軌道是具有'fdp,("文件遞送協議"的簡稱)的采樣描述
中的條目格式的提示軌道(媒體句柄'hint (提示),)。
FDHintSampleEntry( FD提示采樣條目)被包含在SampleDescriptionBox
(采樣描述框)('stsd,)中并且具有以下句法 class FDHintSampleEntry() extends SampleEntry ('fdp 0
uint(16) hinttrackversion = 1; uint(16) highestcompatibleversion a 1; uint(16) partition—entry—ID; uint(16) FEC一overhead; box additionaldata[j
語義
partition_entry_ID (分割條目ID)表明FD項目信息框中的分割條目。O值表明沒有分割條目與該采樣條目相關聯(例如對于FDT)。
FEC—overhead ( FEC開銷)是固定的值8. 8,其表明由所述一個(或多 個)提示采樣使用的百分比保護開銷。提供FEC開銷的意圖是提供幫助 媒體服務器選擇會話組(以及相應的FD提示軌道)的特性。
字|殳 "hinttrackversion ( 提示專九道版本),,和 "highestcompatibleversion (最高兼容版本),,具有與 "RtpHintSampleEntry (Rtp提示采樣條目),,中相同的解譯,這在ISO 基礎媒體文件格式[l, 2]的10. 2節中做了描述。可以作為附加的數據, 提供time_scale_entry (時間尺度條目)框。如果沒有提供所述時間尺度 條目框,則沒有給出關于分組定時的指示。
可以通過觀察提示軌道的所有采樣條目以及由上述項目ID所涉及的 項目的相應的文件元數據信息框來產生FDT或ESG所需要的文件條目。 如果任何采樣沒有涉及采樣條目,則沒有采樣條目包括在所述提示軌道中。
采樣格式
所述提示軌道中的每一個FD采樣將生成一個或多個FD分組。每一個
采樣包含兩個區域針對組成所述分組的指令,以及在發送所述分組時
所需要的任何額外數據(例如被拷貝到所述采樣中而不是駐留在對應于
源文件或FEC的項目中的編碼符號)。應當注意到,可以從采樣尺寸表
中獲知所述采樣的尺寸。
aligned(8) class FDsample extends Box('fdsa,)
FDPacketBox packett)ox[j ExtraDataBox extradata;
樣地,每一個FD采樣中的FD分組框按照應當對其進行處理的順序出現。 如果在所述FD提示采樣條目中存在時間尺度條目框,則定義采樣次數 并且提供對于默認比特率的相對分組發送次數。取決于實際的傳輸比特 率,服務器可以應用線性時間縮放。采樣次數可以簡化所述調度處理, 但是要及時發送分組則取決于所述媒體服務器。 分組條目4各式所述FD采樣中的每一個分組具有以下結構[8-10]: aligned(8) class FDpacketBox extends Box(切pa,
header—template LCT一header一info; unsigned int(16) entrycountl;
aataenuy neaaer_extension^con8tructor8[entiycountl];
unsigned int(16) entiycount2;
dataentiy packet—constructors[entiycount21;
LCT_header_info (LCT報頭信息)包含對于當前FD分組的LCT報頭模板。
entry_countl (條目計數1 )對下面的構造器進行計數。
header —extension—constructors (報頭擴展構造器)是被用來構造
LCT報頭擴展的結構。
entry_count2 (條目計數2)對下面的構造器進行計數。
packet — constructors (分組構造器)是^皮用來構造FD分組中的FEC
有效載荷ID和源符號的結構。
LCT報頭模板格式 class header-template
unsigned int(l) sender_currenUime_present;
unsigned int(l) expected_residual_time_present;
unsigned int(l) session—close—bit;
unsigned int(l) object—close—bit)
unsigned int(4) reserved;
unsigned int(16) transporJLobject—identifier;
所述LCT報頭模板可以被媒體服務器使用來形成用于分組的LCT報 頭。應當注意到,所述報頭的某些部分取決于服務器策略并且沒有被包 括在所述模板中。某些字段長度還取決于由所述服務器分配的LCT報頭 比特。所述服務器可能還需要改變所述TOI的值。
LCT報頭擴展構造器格式應當注意到,媒體服務器可以通過觀察是否存在EXT-FDT來識別出包 括FDT的分組。
aligned(8) class LCTheaderextension
unsigned int問header—extension—type; unsigned int問header_extensionJength; unsigned int問header—extensionj:ontent[;
header_extension—length(報頭擴展長度)用32比特字的倍數表示。
0值意味著該報頭由服務器生成。
header — extension—content (報頭擴展內容)是等于報頭擴展長度的
項目數。
分組構造器格式
存在多種形式的構造器。每一個構造器都是16字節,以便使得迭代 更加容易。第一個字節是聯合區分符。該結構是基于ISO基礎媒體文件 格式[l, 2]的10. 3. 2節。aligned(8) class FDconstructor(type)
unsigned int(8)constructor—type - type;
aligne, class FDnoopconstructor extends FDconstructor(O)
{,
unsigned int(8) pad〖15;
aligned問class FDimtnediateconstructor extends FDconstructon
unsigned int(8) cotint; unsigned int(8) data[count; unsigned int(8) pad〖14 - count];
aJigned問class FDsampleconstructor extends FDconstructor(2)
signed in柳trackrefindex; unsigned i^t(16) length; unsigned int(32) samplenumber; unsigned int(32) sampleoffset; unsigned int《16) bytesperblock e 1; unsigned int( 16) samplesperblock = 1;
aligned(8) class FDitemco加tructor extends FDconstructor(3)
unsigned int(16) itemJD; unsigned int(16) extent—index; unsigned int(64) data^offset; unsigned int(24) datajength;
aligned(8) class FDxtnlboxconstructor extends FDconstructor(4)
unsigned int(64) data—offset; unsigned int(32) data—length; unsigned int(24) reserved;額外數據框
FD提示軌道的每一個采樣可以包括存儲在額外數據框中的額外數據
aligned(8) class ExtraDataBox extends Box((extr') bit(8) extradataJ;
圖5是示出了根據本發明的媒體會話管理方法的流程圖。該媒體會話 管理是在媒體服務器(比如流傳輸或下載服務器)中實施的,并且其使 用本發明的媒體容器文件。所述方法開始于步驟S30,在該步驟中提供 媒體容器文件。這一文件提供可以通過從所述媒體服務器的存儲器位置 獲取所述容器文件而實現,這意味著該服務器先前已經從內容提供商或 產生器接收了所述文件。可替換地,所述媒體服務器可以結合針對媒體 數據的請求從內容提供商定購或接收所述容器文件。
在下一個步驟S41中,利用至少一個々某體源塊并且基于與該至少一個 媒體源塊相關聯的元數據和分割信息來計算FEC冗余數據。在該計算步 驟S41中,優選地采用在媒體塊的基礎上進行操作的FEC塊編解碼器(比 如digital fountain raptor編解碼器)。但是也可以采用巻積FEC編 解碼器,所述巻積FEC編解碼器也在本發明的范圍內。在一種優選實現 方式中,對于所述至少一個媒體源塊生成一組FEC冗余符號。該FEC符 號組可以包括一個(但是優選地包括多個)基于所述媒體源塊的源符號 計算的FEC符號。將為媒體源塊計算的FEC符號的數目可以由所采用的 FEC編解碼器中的限制來限定,其可以是所述媒體源塊中的媒體源符號 的數目的函數或者由某種其他標準(例如FEC開銷)來限制。此外,被 包括在所述媒體容器文件中的信息可以指定將計算的FEC冗余數據量。
在一種優選的實現方式中,所述媒體容器文件還包括在該步驟S31中 使用的FEC計算指令。隨后在選擇將被輸入到所述FEC編解碼器的源符 號以便生成FEC符號時把這些指令與所述分割信息(以及被用于識別所 述分割信息的元信息)一起使用。
如果所述容器文件還包括把所述一個(或多個)媒體源文件劃分成媒 體源塊的信息,則可以使用該劃分信息來識別將被用于FEC數據計算的 正確的源符號。
在步驟S31中計算的FEC符號的數目可以由所述媒體服務器基于某種局部標準來確定,所述標準比如是所述媒體會話期間的最大/最小當前
可允許FEC開銷。可替換地,如上所述,被提供在所述容器文件中的信 息(比如FEC計算指令)指定將對于給定媒體源塊計算的FEC冗余數據
量。,
可以在正在進行的媒體會話期間迅速執行步驟S31中的FEC數據計 算。可替換地,所述媒體服務器可以在實際會話之前生成FEC數據的存
儲器中:隨后4以在后面的媒體會話中把所述預:計算的^FEC數據與所 述容器文件中的媒體內容一起使用。
在下一個步驟S32中,通過從所述容器文件的一個(或多個)媒體源 塊中提取媒體數據并且提供在步驟S31中計算的FEC冗余數據來編輯媒 體數據分組。所述媒體服務器優選地接收將在所述媒體會話期間傳送的 媒體數據的標識符。可替換地,所述容器文件可能僅僅包含單一媒體數 據文件的媒體數據,因此沒有必要選擇媒體源。在任一種情況下,被包 括在所述容器文件中(比如被包括在所述文件屬性表中)的先前描述的 信息都可以被用于識別所述媒體文件的開頭,即應當從該處開始傳輸的 第一個媒體源塊。此外,被包括在所述容器文件中的其他信息可以被用
作關于應當如何組合媒體數據和FEC數據并且將其包括在數據分組中的 指令,其中所述數據分組適于通過一條或多條基于無線電的信道被無線
傳送到不同的客戶端。
在下一個步驟S33中,優選地通過廣播或多點傳送技術把具有FEC可 靠性保護的所編輯的媒體數據分組發送到客戶端,在所述客戶端處可以 呈現所述媒體數據。通常一旦在所述媒體服務器中的傳送緩沖器達到了 給定水年就啟動所述分組傳輸。但是在所述媒體會話期間,在其他分組 正被傳送的同時編輯新的數據分組并且將其輸入到所述傳送緩沖器中, 這由線L2示意性地示出。
通過所生成的容器文件以及通過在其中組織媒體數據并且提供預先 計算的分割數據,可以在媒體會話期間降低所述媒體服務器的處理需 求。因此這導致降低了服務器復雜度并且允許服務器靈活性,這是因為 所述服務器不需要迅速進行源塊構造和分割。
所述方法隨后結束。
圖6是示出了圖5的媒體會話管理方法的附加步驟的流程圖。所述方法從圖5的步驟S30繼續。在下一個步驟S40中,所述々某體月l務器選擇 將用于FEC數據計算的FEC算法或編解碼器。該FEC算法優選地是在分 割媒體源塊時使用的FEC算法,基于該FEC算法計算FEC數據。因此所 述媒體容器文件優選地包括該FEC算法/編解碼器的信息,該信息由所 述媒體服務器在所述選擇步驟S4Q中釆用。
如果所述FEC信息包括多種可用FEC算法的標識符并且給定的媒體源 塊可用在多種不同的替換分割中,則所述媒體服務器優選地使用其他輸 入信息(其中包括FEC開銷容量和/或FEC計算指令)來選擇在計算FEC 數據時將使用哪種FEC算法和哪些塊分割信息。
所述算法隨后繼續到圖5的步驟S31,在該步驟中使用所選的FEC算 法來計算所述FEC數據。
圖7是示出了圖4的會話管理方法的附加步驟的流程圖。所述方法從 圖5的步驟S31繼續。在下一個步驟S50中確定當前可以:故采用來在所 述媒體會話中進行數據傳輸的FEC開銷容量。可以基于針對所迷媒體傳 輸所能分配給所述服務器的帶寬水平以及對于該媒體傳輸所采用的一 個(或多個)無線電載體的最小和最大比特率水平等等來確定或者至少 估計所述容量。實際上可以在該步驟S50中采用本領域中已知的用于結 合數據傳輸確定這種開銷容量的任何技術。
一旦確定了所述FEC開銷容量,下一個步驟S51就基于所確定的開銷 容量來選擇編輯指令集。因此,所述媒體容器文件于是包含多個替換的 編輯指令集,所述替換的編輯指令集可以被用于給定的媒體內容但是提
供不同的FEC開銷水平。換句話說,這些替換的編輯指令基本上定義將 在編輯媒體數據分組時添加到所述媒體數據中的FEC冗余數據量。可接 受的FEC開銷越大,所添加的FEC數據就越多。通過具有不同的替換編 輯指令,所述媒體服務器可以使用在給定當前開銷限制的情況下允許最 高可允許FEC保護的那些指令,從而與使用單一編輯指令集相比增大了 在不同客戶端處成功接收及解碼所述媒體數據的機會。
所述方法隨后繼續到圖5的步驟S32,在該步驟中基于在步驟S51中 選擇的編輯指令從所述媒體內容數據和相關聯的FEC數據編輯媒體數據分組。
如果所述媒體容器文件還包括附加信息(比如文件到塊劃分的信息、 FEC算法的信息和/或文件屬性表),所述媒體服務器可以在數據分組生成和傳輸過程中使用該附加信息。
例如,可以在所述文件屬性表中包括或者至少聲明可以由所述媒體月l
務器使用的所述附加數據以及優選地還有MIME類型的信息、任何編碼 信息、尺寸信息等等。在一種優選實現方式中,該屬性表構成單一信息 或查找源,其可以被所述媒體服務器訪問以便獲得結合媒體提取、數據 分組編輯和傳輸所需要的或者有利的信息。
圖8是根據本發明的媒體容器文件1的示意圖,其被用于顯示出根據 本發明的一個實施例使用替換的編輯指令。該容器文件l包括媒體源文 件IO,所述媒體源文件10優選地包括多個媒體源塊。在該實施例中, 該源文件10的每一個媒體源塊具有相關聯的分割信息30。在該說明性 例子中,該容器文件l還包括三條提示軌道50、 52、 54,所述提示軌道 包含用于于不同FEC開銷的編輯指令。例如,在期望10%的冗余開銷時 可以使用第一提示軌道50,第二提示軌道52給出大約1 / 的FEC開銷, 笫三提示軌道54給出14。/。的FEC開銷。在該圖中采用了在文獻["的附 錄B中提出的源塊構造算法。
所述分割信息IO被FEC編解碼器采用來基于所述源文件10中的媒體 源塊計算FEC數據70。如果該源文件10包括多個+某體源塊,則計算多 個FEC數據集或存儲庫70,即優選地為每個媒體源塊計算一個FEC數據 集。
如果選擇了第一提示軌道5 0,則生成數據分組81、 82、 83、 84的第 一流(在該圖中僅僅為每個媒體源塊和FEC塊示出了一個數據分組)。 然而,如果替換地使用了第二提示軌道52,則生成數據分組91、 92、 93、 94的第二流。與第一流80相比,第二流90對于每個媒體源塊包括 更大的FEC塊,即更多的FEC冗余數據。但是對應的源塊在兩個流80、 90中包含相同的媒體數據量。
圖9是通信網絡的示意性總覽,其中示出了生成或使用本發明的媒體 容器文件l的各方。內容服務器IOO表示所述內容提供商或產生器,其 接收或者可以訪問媒體源數據并且構造媒體容器文件1。該容器文件1 的副本被發送到媒體服務器200,該媒體服務器200在媒體會話中使用 該容器文件1來編輯數據分組,所述數據分組包含^L發送(多點傳送) 到不同的客戶端300、 310、 320的媒體和FEC數據,所述客戶端在該圖 中由移動終端表示。圖10是根據本發明的媒體內容服務器100的示意性方框圖。該內容 服務器100包括一般的輸入和輸出(I/O)單元110,其被設置成與各外
部單元通信并且包括用于與各外部單元通信的功能(發送器/接收器、
調制器/解調器、編碼器/解碼器)。該1/0單元110特別被設置成接收
輸入媒體內容以及接收針對媒體容器文件的請求。當向所述通信網絡中
的其他服務器傳送這種容器文件時,服務器100還釆用1/0單元110。 所述內容服務器IOO還包括容器文件產生器160,其被設置成產生本
發明的媒體容器文件。該服務器ioo還包括媒體塊提供器130,其祐:i殳
置成提供至少一個媒體源塊,以便由該文件產生器160的媒體塊管理器 161將其輸入到所述媒體容器文件中。該媒體塊提供器130從內部數據 存儲裝置120或者從所述1/0單元IIG提供所述至少一個輸入源塊,其 中該1/0單元IIO從外部媒體源400、 410接收媒體內容。
所述一個(或多個)媒體源塊隨后被轉送到所述內容服務器100的塊 分割器140。該分割器140至少部分地基于FEC算法的信息把所述一個 (或多+ )輸入媒體源塊分割成一定數目的源符號(通常是多個這種源 符號),所述FEC算法將被應用于所述源塊以便計算FEC數據。所述分 割操作不一定必須把所述源塊物理地劃分成源符號。與此相對,所述分
割可以是通過把所述源塊的不同部分分配到不同的源符號的虛擬劃分。
將被應用于所述源塊并且可能會影響所述塊分割的FEC算法可以是對 于各媒體源塊一貫采用的某種預先定義的標準FEC算法。可替換地,所 述內容服務器100的塊分割器140或者某個其他單元從多種可用FEC算 法當中選擇特定的一種FEC算法來使用。在進行該選擇時可以使用不同 的輸入數據,比如最大預期FEC開銷。在另一個實施例中,所述塊分割 器MO暴于不同的替換可用FEC算法的信息對給定的媒體源塊執行多種 替換的分割。例如,如果所述內容服務器ioo具有關于在所述媒體服務 器中可以獲得的可能FEC算法的知識,則該塊分割器MO可以針對每一 種所述FEC算法執行單獨的塊分割。
除了根據將被應用于所述媒體源塊的特定FEC算法或方案執行塊分割 之外,所述塊分割器140還可以操作來執行適于把所述源符號置于數據 分組中的分割,其中所述數據分組將由媒體服務器在媒體會話期間采 用。因此,所述分割器140可以采用分組尺寸(比如UDP分組尺寸)信 自定源塊分割的信息由信息生成器150生 成。如前所述,該信息可以指定所述媒體源塊的哪些比特屬于哪些源符 號,并且定義被應用于源塊的所有源符號的符號尺寸(最后一個源符號 可能除外,其可以具有更小的尺寸)。
在該例中,所述塊分割器140對媒體源塊執行多種替換分割,由所述 生成器150生成的所述信息包括涉及到這些替換塊分割的數據。
所述分割信息一皮從所述發生器轉送到所述容器文件產生器160的信息 管理器162,其把所述信息插入到所述媒體容器文件中。
所述文件產生器160的元數據管理器163把元數據提供到所述容器文 件中。該元數據提供由所述塊管理器161組織的媒體源塊與由所述分割 信息管理器162組織的分割信息之間的關聯。
隨后可以把所得到的媒體容器文件至少暫時存儲在所述數據存儲裝 置120中,或者通過所述1/0單元110將其傳送到^ 某體服務器。
所述內容服務器100的各單元110、 130、 140、 150、 160、 161、 162 和163可以被實現或者提供為軟件、硬件或其組合。所述單元110到163 都可以被實現在通信系統中的單一網絡節點內的內容服務器100中。可 替換地,分布式實現方式也是可能的,并且落在本發明的范圍內。在這 種情況下,所述內容服務器100的不同單元110到163可以凈皮設置在不 同的網絡節點中,但是即便如此也仍將執行前面所描述的其預定操作。
圖ll是更加詳細地示出了圖IO的媒體塊提供器130的一個實施例的 示意性方框圖。在一種優選的實現方式中,所述輸入媒體內容具有媒體 源文件的形式,所述媒體源文件由媒體文件劃分器132例如從所述內容 服務器的數據存儲裝置或1/0單元提供。所述媒體源文件被該文件提供 器132轉送到媒體文件劃分器134。該劃分器134把所述源文件分離成 一個或多個源塊。該劃分器134可以基于不同的信息或參數進行該文件 劃分。例如,可以至少部分地基于將被應用來計算FEC冗余數據的FEC 算法來確定所述文件劃分。在這種情況下,所述文件劃分134優選地可 以使用這種FEC算法的信息。該劃分器134隨后可以把媒體源文件分離 成/個等尺寸的J 某體源塊以及一個可以具有小于其他7個塊的尺寸 的媒體源塊。
劃分信息生成器136被設置成連接到所述文件劃分器134。該生成器 136生成由該文件劃分器134確定并且可能由其執行的所述文件劃分的信息。在第一實現方式中,所生成的信息可以指定媒體源文件的哪些比 特屬于不同的媒體源塊。在第二實現方式中,所述信息指定媒體源塊的 (比特或符號)尺寸(最后一個源塊可能除外,其可以具有更小的尺寸)。 在這種情況下,知道所述媒體源文件的起始位置,則可以利用該(尺寸) 劃分信息識別不同的媒體源塊。
在所述塊提供器130中實現劃分信息管理器138,以便把來自所述信 息生成器136的所述劃分信息組織到所述媒體容器文件中。
所述媒體塊提供器130的各單元132到138可以;故實現或者提供為軟 件、硬件或其組合。所述單元132到138都可以;故實現在所述媒體塊提 供器130中。可替換地,分布式實現方式也是可能的,并且落在本發明 的范圍內。在這種情況下,所述媒體塊提供器130的不同單元132到138 可以被設置在所述內容服務器中的其他位置處。
圖12是更加詳細地示出了圖10的容器文件產生器160的一個實施例 的示意性方框圖。除了前面描述的媒體塊管理器161、分割信息管理器 162和元數據管理器163之外,該文件產生器160還包括FEC信息管理 器164。該FEC信息管理器164生成將被應用于所述容器文件的一個(或 多個)媒體源塊的一種(或多種)FEC算法的信息并且將其組織到所述 容器文件中。在執行塊分割時,由所述內容服務器的塊分割器執行的所 述塊分割也使用這種了這種FEC算法信息。因此,作為已經執行了所述 塊分割的基礎的所述一種(或多種)FEC算法的信息優選地由所述管理 器164生成并且被包括在所述容器文件中。
可以把表管理器165包括在所述文件產生器160中,以便生成屬性表 并且將其包括在所述容器文件中。該屬性表于是可以包括所述容器文件 中的一個(或多個)媒體源文件的信息,比如文件類型、文件尺寸、文 件存儲位置、文件加密、文件名/標識符等等。此外,本發明的分割信 息、文件劃分信息和元數據也可以被包括在由該表管理器165生成的所 述屬性表中。
可以把FEC指令管理器166包括在所述文件產生器160中,以便生成 FEC指令,其中媒體服務器在基于所述容器文件的媒體源塊生成FEC數 據時將遵循所述FEC指令。于是這些指令將連同與特定媒體源塊相關聯 的分割信息一起指定可以把哪些源符號輸入到FEC編解碼器以便計算 FEC符號。可以由所述管理器166針對給定的源塊提供不同的替換FEC指令,其中所述FEC指令適于與不同的FEC編解碼器和/或FEC開銷相 結合地使用。
所述文件產生器160的編輯指令管理器167生成編輯指令并且將其插 入到所述容器文件中。這些指令包括由媒體服務器使用來編輯來自所述 媒體源塊的媒體數據以及利用所述源塊和分割信息計算的FEC數據的信 息。該管理器167可以為所述文件中的每一項媒體內容生成單一指令或 者指令集。可替換地,可以由該管理器167提供不同的所述指令并且將 其組織到所述容器文件中,其中所述不同的指令適應于在所述媒體會話 中釆用的不同的FEC開銷、不同的FEC數據類型和/或不同數目的基于 無線電的通信信道。
所述容器文件產生器160的各單元161到167可以被實現或者提供為 軟件、硬件或其組合。所述單元161到167都可以;故實現在所述容器文 件產生器16G中。可替換地,分布式實現方式也是可能的,并且落在本 發明的范圍內。在這種情況下,所述容器文件產生器160的不同單元161 到167可以被設置在所述內容服務器中的其他位置處。
圖13是根據本發明的媒體會話服務器200的示意性方框圖。該々某體 服務器200包括1/0單元210,其用于實施與各外部單元的通信。該I/O 單元210特別被設置成從內容服務器請求并接收媒體文件容器。該I/O 單元210還接收源自不同用戶客戶端的針對媒體內容的請求或者至少關 于應當向哪些客戶端傳送媒體內容的信息。還可以通過該I/O單元210 把由所述媒體服務器200編輯的數據分組傳送到這些客戶端。
所述服務器200包括媒體文件提供器220,其提供媒體內容文件以供 使用在當前會話中。該文件提供器220可以生成針對特定容器文件的請 求,該請求通過所述1/0單元210被傳送給內容產生器。可替換地,該 提供器220從被提供在所述媒體服務器200內的數據存儲裝置250中獲 取先前接收的容器文件。
所述媒體服務器2GG的FEC計算器或編解碼器240針對存儲在所述容 器文件中的至少一個媒體源塊計算FEC冗余數據。該FEC計算器240可 以使用在上述計算程序中提到的任一種FEC算法。在一種優選實現方式 中,如果有選擇的話,所述容器文件向該計算器240指示要采用哪一種 FEC算法。該FEC計算器240首先識別用于輸入媒體源塊的相關分割信 息。在該識別程序中,該計算器240使用與所述源塊相關聯并且#:提供在所述容器文件中的所述元數據。該計算器240隨后使用所述分割信息 來識別應當對之應用所述FEC算法(其是基于所述容器文件中的FEC信 息選擇的)以便生成FEC數據的媒體源塊的那些部分。
在^個優選實施例中,所述媒體容器文件還包括FEC計算指令,在識 別正確的輸入源符號并且執行實際的FEC數據計算時,除了所述分割信 息之外所述計算器240還使用所述FEC計算指令。另外的輸入信息可以 是先前描述的FEC算法信息(其允許選擇將要使用的正確的FEC算法) 和文件劃分信息(其允許識別正確的媒體源塊)。
文件中的編輯指:提取來自該文件的媒體數據和來自二述二c計算器:
FEC數據,以便生成包含所提取的該數據的數據分組。隨后通過所述I/0 單元21Q傳送(或者從該處流傳輸或下載)如此生成的數據分組。
對于給定的媒體內容可以把不同的編輯指令存儲在所述文件中。例 如,所述指令可以是依賴于信道或者依賴于容量的。在前一種情況下, 可用無線電信道的數目和應當傳送的并行媒體流的數目決定由所述編 輯器230使用的實際編輯指令。在后一種情況下,在所述服務器200中 優選地包括FEC容量估計器260,其用于估計可以在會話期間采用的FEC 開銷的最大數量。優選地在所述會話期間動態地更新由該估計器260執 行的開銷估計,這是因為可以在所述會話期間改變所述開銷容量。集合 選擇器270使用來自所述估計器260的所述容量估計來選擇將要使用可 以在所述文件中獲得的哪一條特定編輯指令或指令集。所述分組編輯器 230隨后使用該指令(集)把媒體數據和FEC數據編輯到數據分組中。
所述媒體服務器200的各單元210、 220、 230、 240、 260和270可以 被實現或者提供為軟件、硬件或其組合。所述單元210到270都可以被 實現在通信系統中的單一網絡節點內的媒體服務器200中。可替換地, 分布式實現方式也是可能的,并且落在本發明的范圍內。在這種情況下, 所述媒體服務器200的不同單元210到270可以被設置在不同的網絡節 點中,但是即便如此也仍將執行前面所描述的其預定操作。
本領i或技術人員應當理解,在不偏離本發明的范圍的情況下可以對本 發明做出許多修改和改變,本發明的范圍由所附權利要求書限定。參考文獻 ISO/IEC 14496-12:2005: "ISO base media file format" [21 ISO/IEC 15444-12:2005: "ISO base media file format"3] International application WO 2005/039131 RFC 3695; Compact Forward Error Correction (FEC) Schemes, February 2004
問 3GPP TS 26.346 V7,0.0, 3rd Generation Partnership Project; Technical Specification Group Services and System Aspects; Multimedia Broadcast/Multicast Service (MBMS); Protocols and codecs, June 2006 [6
RFC 2616; Hypertext Transfer Protocol - HTTP/1.1, June 1999 〖7RFC 1864; The Content-MDS Header Field, October 1995 [8j RFC 3926; FLUTE - File Delivery over Unidirectional Transport, October 2004 RFC 3451; Layered Coding Transport (LCT) Building Block, December
200權利要求
1、一種生成媒體容器文件的方法,所述方法包括以下步驟-提供至少一個包括媒體數據的媒體源塊;-至少部分地根據將被應用于所述至少一個媒體源塊的前向糾錯FEC算法的信息把所述至少一個媒體源塊分割成多個源符號;-生成描述所述分割的分割信息;-把所述至少一個媒體源塊組織在所述媒體容器文件中;-把所述分割信息組織在所述媒體容器文件中;以及-在所述媒體容器文件中提供元數據,所述元數據提供所述至少一個媒體源塊與所述分割信息之間的關聯。
2、 根據權利要求l所述的方法,其中,提供所述至少一個媒體源塊的 所述步驟包括以下步驟-提供媒體源文件;-把所述媒體源文件劃分成所述至少一個媒體源塊;-生成描述所述劃分的劃分信息;-把所述劃分信息組織在所述媒體容器文件中。
3、 根據權利要求2所述的方法,其中,所述劃分步驟包括至少部分 地基于所述FEC算法的信息把所述媒體源文件劃分成所述至少一個媒體 源塊。
4、 根據權利要求l - 3中任一權利要求所述的方法,還包括以下步驟 -在所述媒體容器文件中提供所述FEC算法的信息。
5、 根據權利要求l - 4中任一權利要求所述的方法,還包括以下步驟 -在所述媒體容器文件中提供屬性表,該屬性表包括所述至少一個媒體源塊在所述媒體容器文件內的存儲位置信息。
6、 根據權利要求l - 5中任一權利要求所述的方法,還包括以下步驟 -生成FEC計算指令,所述FEC計算指令定義基于所述元數據、所述至少 一個媒體源塊以及所述分割信息來計算FEC冗余數據;以及 -把所述FEC計算指令組織在所述媒體容器文件中。
7、 根據權利要求6所述的方法,還包括以下步驟-生成編輯指令,所述編輯指令定義對來自所述至少一個媒體源塊的 媒體數據和所述FEC冗余數據的編輯,以便形成數據分組的媒體流;以-把所述編輯指令組織在所述媒體容器文件中。
8、 根據權利要求7所述的方法,其中,所述生成編輯指令的步驟包括 以下步驟-生成第一編輯指令集,所述第一編輯指令集定義對來自所述至少一 個媒體源塊的媒體數據和所述FEC冗余數據的編輯,以便形成具有第一 FEC冗余開銷水平的數據分組的第一媒體流;以及-生成第二編輯指令集,所述第二編輯指令集定義對來自所述至少一 個媒體源塊的媒體數據和所述FEC冗余數據的編輯,以便形成具有第二 FEC冗余開銷水平的數據分組的第二媒體流。
9、 一種媒體內容服務器,其包括-媒體塊提供器,其被設置成提供至少一個包括媒體數據的媒體源塊;-媒體塊分割器,其被設置成至少部分地根據將被應用于所述至少一 個媒體源塊的前向糾錯FEC算法的信息把所述至少 一個媒體源塊分割成 多個源符號;-分割信息生成器,其被設置成生成描述所述分割的分割信息;-媒體塊管理器,其被設置成把所述至少一個媒體源塊組織在所述媒體容器文件中;-分割信息管理器,其被設置成把所述分割信息組織在所述媒體容器 文件中;以及-元數據管理器,其被設置成在所述媒體容器文件中提供元數據,所 述元數據提供所述至少 一個媒體源塊與所述分割信息之間的關聯。
10、 根據權利要求9所述的媒體內容服務器,其中,所述媒體塊提供 器包括-媒體文件提供器,其被設置成提供媒體源文件; -媒體文件劃分器,其被設置成把所述媒體源文件劃分成所述至少一 個媒體源塊;-劃分信息生成器,其^皮設置成生成描述所述劃分的劃分信息; -劃分信息管理器,其被設置成把所述劃分信息組織在所述媒體容器 文件中。
11、 根據權利要求10所述的媒體內容服務器,其中,所述媒體文件劃 分器被設置成至少部分地基于所述FEC算法的信息把所述媒體源文件劃分成所述至少 一 個媒體源塊。
12、 根據權利要求9-ll中任一權利要求所述的媒體內容服務器,還 包括.-FEC信息管理器,其^:設置成在所述J(某體容器文件中提供所述FEC算 法的信息。
13、 根據權利要求9 - 12中任一權利要求所述的媒體內容服務器,還 包括-表管理器,其被設置成在所述媒體容器文件中提供屬性表,該屬性 表包括所述至少一個媒體源塊在所述媒體容器文件內的存儲位置信息。
14、 根據權利要求9-13中任一權利要求所述的媒體內容服務器,還 包括-FEC指令管理器,其被設置成i)生成FEC計算指令,所述FEC計算 指令定義基于所述元數據、所述至少 一個媒體源塊以及所述分割信息來 計算FEC冗余數據;以及ii)把所述FEC計算指令組織在所述媒體容器文 件中。
15、 根據權利要求14所述的媒體內容服務器,還包括 -編輯指令管理器,其被設置成i)生成編輯指令,所述編輯指令定義對來自所述至少 一個媒體源塊的媒體數據和所述FEC冗余數據的編 輯,以便形成數據分組的媒體流;以及ii )把所述編輯指令組織在所述 媒體容器文件中。
16、 根據權利要求15所述的媒體內容服務器,其中,所述編輯指令管 理器被設置成i)生成第一編輯指令集,所述第一編輯指令集定義對 來自所述至少 一 個媒體源塊的媒體數據和所述FEC冗余數據的編輯,以 便形成具有第一FEC冗余開銷水平的數據分組的第一媒體流;以及ii ) 生成第二編輯指令集,所述第二編輯指令集定義對來自所述至少一個媒 體源塊的媒體數據和所述FEC冗余數據的編輯,以便形成具有第二FEC冗 余開銷水平的數據分組的第二媒體流。
17、 一種媒體容器文件,其包括-至少一個媒體源塊;-描述至少部分地根據將被應用于所述至少 一 個媒體源塊的前向糾 錯FEC算法的信息執行把所述至少 一 個媒體源塊分割成多個源符號的分 割信息;以及_元數據,其提供所述至少 一 個媒體源塊與所述分割信息之間的關聯。
18、 根據權利要求17所述的媒體容器文件,還包括-描述把媒體源文件劃分成所述至少 一個媒體源塊的劃分信息。
19、 根據權利要求17或18所述的媒體容器文件,還包括 -所述FEC算法的信息。
20、 根據權利要求H-19中任一權利要求所述的媒體容器文件,還包 括-屬性表,其包括所述至少一個媒體源塊在所述媒體容器文件內的存 儲位置信息。
21、 根據權利要求17-20中任一權利要求所述的媒體容器文件,還包 括-FEC計算指令,其定義基于所述元數據、所述至少一個媒體源塊以 及所述分割信息來計算FEC冗余數據。
22、 根據權利要求21所述的媒體容器文件,還包括-編輯指令,其定義對來自所述至少一個媒體源塊的媒體數據和所述 FEC冗余數據的編輯,以便形成數據分組的媒體流。
23、 一種媒體會話管理方法,其包括以下步驟-提供媒體容器文件,所述媒體容器文件包括至少一個媒體源塊、分 割信息、以及提供所述至少一個媒體源塊與所述分割信息之間的關聯的 元數據;-基于所述元數據、所述至少 一個媒體源塊以及所述分割信息來計算 前向糾錯FEC冗余數據;-通過提取來自所述至少 一個媒體源塊的媒體數據和所述FEC冗余數 據來編輯數據分組;以及-在媒體會話期間把所述數據分組傳送到至少 一個用戶終端。
24、 根據權利要求23所述的方法,其中,所述媒體容器文件還包括FEC 計算指令,所述FEC計算指令定義基于所述元數據、所述至少一個媒體 源塊以及所述分割信息來計算FEC冗余數據,并且所述計算步驟包括 基于所述元數據、所述至少一個媒體源塊、所述分割信息以及所述FEC 計算指令來計算所述FEC冗余數據。
25、 根據權利要求23或24所述的方法,其中,所述媒體容器文件還包括描述把媒體源文件劃分成所述至少 一 個媒體源塊的劃分信息,并且所述計算步驟包括基于所述元數據、所述至少一個媒體源塊、所述分割 信息以及所述劃分信息來計算所述FEC冗余數據。
26、 根據權利要求23 - 25中任一權利要求所述的方法,其中,所述媒 體容器文件還包括FEC算法信息,并且所述計算步驟包括以下步驟-基于所述FEC算法信息從多種可用FEC算法當中選擇一種FEC算法; 以及-利用所述選擇的FEC算法并且基于所述元數據、所述至少一個媒體 源塊以及所述分割信息來計算所述FEC冗余數據。
27、 根據權利要求23 - 26中任一權利要求所述的方法,其中,所述媒 體容器文件還包括編輯指令,所述編輯指令定義對來自所述至少一個媒 體源塊的媒體數據和所述FEC冗余數據的編輯,以便形成數據分組的媒 體流,并且所述編輯步驟包括通過基于所述編輯指令提取來自所述至
28、 根據權利要求27所述的方法,其中,所述編輯指令包括多個編輯 指令集,其中每一個編輯指令集與已定義的FEC冗余開銷相關聯,所述 方法包括以下步驟-對于所述媒體會話估計FEC冗余開銷容量;以及-基于所述估計的FEC冗余開銷容量從所述多個編輯指令集當中選擇 編輯指令集,其中,所述編輯步驟包括通過基于所述選擇的編輯指令 集提取來自所述至少一個媒體源塊的媒體數據和所述FEC冗余數據來編 輯所述數據分組。
29、 根據權利要求23 - 28中任一權利要求所述的方法,其中,所述媒 體容器文件還包括屬性表,所述屬性表包括所述至少一個媒體源塊在所 述媒體容器文件內的存儲信息,并且所述編輯步驟包括通過基于所述 屬性表提取來自所述至少一個媒體源塊的媒體數據和所述FEC冗余數據 來編輯所述數據分組。
30、 一種媒體會話服務器,其包括-媒體文件提供器,其用于提供媒體容器文件,所述媒體容器文件包 括至少一個媒體源塊、分割信息、以及提供所述至少一個媒體源塊與所 述分割信息之間的關聯的元數據;-前向糾錯FEC計算器,其被設置成基于所述元數據、所述至少一個媒體源塊以及所述分割信息來計算FEC冗余數據;-數據分組編輯器,其被設置成連接到所述媒體文件提供器和FEC計 算器,以便通過提取來自所述至少一個媒體源塊的媒體數據和所述FEC 冗余數據來編輯數據分組;以及-傳送器,其被設置成連接到所述數據分組編輯器,以便在媒體會話 期間把由所述數據分組編輯器編輯的所述數據分組傳送到至少 一個用 戶終端。
31、 根據權利要求30所述的媒體會話服務器,其中,所述媒體容器文 件還包括FEC計算指令,所述FEC計算指令定義基于所述元數據、所述至 少一個媒體源塊以及所述分割信息來計算FEC冗余數據,并且所述FEC計 算器被設置成基于所述元數據、所述至少一個媒體源塊、所述分割信 息以及所述FEC計算指令來計算所述FEC冗余數據。
32、 根據權利要求30或31所述的媒體會話服務器,其中,所述媒體容 器文件還包括描述把媒體源文件劃分成所述至少 一 個媒體源塊的劃分 信息,并且所述FEC計算器被設置成基于所述元數據、所述至少一個 媒體源塊、所述分割信息以及所述劃分信息來計算所述FEC冗余數據。
33、 根據權利要求30 - 32中任一權利要求所述的媒體會話服務器,其 中,所述媒體容器文件還包括FEC算法信息,并且所述FEC計算器被設置 成i )基于所述FEC算法信息從多種可用FEC算法當中選擇一種FEC算法; 以及ii)利用所述選擇的FEC算法并且基于所述元數據、所述至少一個 媒體源塊以及所述分割信息來計算所述FEC冗余數據。
34、 根據權利要求30 - 33中任一權利要求所述的媒體會話服務器,其 中,所漆媒體容器文件還包括編輯指令,所述編輯指令定義對來自所述 至少 一個媒體源塊的媒體數據和所述FEC冗余數據的編輯,以便形成數 據分組的媒體流,并且所述數據分組編輯器被設置成通過基于所述編 輯指令提取來自所述至少一個媒體源塊的媒體數據和所述FEC冗余數據 來編輯所述數據分組。
35、 根據權利要求34所述的媒體會話服務器,其中,所述編輯指令包 括多個編輯指令集,其中每一個編輯指令集與已定義的FEC冗余開銷相 關聯,所述媒體會話服務器還包括-FEC容量估計器,其被設置成對于所述媒體會話估計FEC冗余開銷容 量;以及-集合選擇器,其被設置成連接到所述FEC容量估計器,以便基于由 所述FEC容量估計器所估計的所述FEC冗余開銷容量從所述多個編輯指 令集當中選擇編輯指令集,其中,所述數據分組編輯器被設置成通過 基于由所述集合選擇器所選擇的所述編輯指令集提取來自所述至少一 個媒體源塊的媒體數據和所述FEC冗余數據來編輯所述數據分組。
36、根據權利要求30 - 35中任一權利要求所述的媒體會話服務器,其 中,所述媒體容器文件還包括屬性表,所述屬性表包括所述至少一個媒 體源塊在所述媒體容器文件內的存儲信息,并且所述數據分組編輯器被 設置成通過基于所述屬性表提取來自所述至少一個媒體源塊的媒體數 據和所述FEC冗余數據來編輯所述數據分組。
全文摘要
本發明教導一種媒體容器文件(1),其包括被組織到媒體源塊(20;22;24)中的媒體數據。所述媒體源塊(20;22;24)被分割成源符號,可以由前向糾錯(FEC)算法對所述源符號進行處理以便生成FEC冗余數據(70)。除了所述源塊(20;22;24)之外,該源塊分割的信息(30;32;34)被包括在所述文件(1)中。該容器文件(1)還包括元數據(40),其提供所述媒體源塊(20;22;24)與所述分割信息(30;32;34)之間的關聯。在計算FEC數據之前,該容器文件(1)可以由媒體服務器(200)在媒體會話中采用來在無需大量數據處理的情況下編輯將被傳送到發出請求的客戶端(400;410;420)的媒體數據分組。
文檔編號H04N7/66GK101416526SQ200780001963
公開日2009年4月22日 申請日期2007年1月4日 優先權日2006年1月5日
發明者M·韋斯特倫德, P·弗羅德, T·洛馬 申請人:艾利森電話股份有限公司