數字電視制播設備間的文件交換格式

在現今的數字電視演播室中,設備之間基本上采用信號流連接方式,如SDI、STDI、模擬YUV、VBS等信號流。在非線性編輯系統和播出系統與服務器之間的連接,還有基于MPEG-2傳輸流等的信號連接方式。基于信號流連接方式的主要特點是,傳送時可以同時播放和處理。但是,以流方式傳送的數字信號,元數據被放在場消隱期間傳送,在信號切換時元數據會丟失。

  在以媒體資產管理系統為核心的數字制播環境,一是需要以數據文件進行存儲、遷移和交換,并使用豐富的元數據,元數據要和視/音頻數據捆在一起傳送和存儲;二是基于計算機平臺的視/音頻處理設備越來越多,以文件傳輸視/音頻及元數據是這些設備之間最有效的數據傳輸方法;三是文件傳輸方式允許所有相關數據被打包后一起傳送,非常靈活;四是基于文件傳輸允許大量使用IT設備,文件可以在不同速率的廣域網和局域網中交流,文件的調用速度可以適應不同的通道帶寬;五是文件交換不會引起圖像質量的下降。

  基于數據的傳輸標準尚不完善備。現在互聯網上應用最廣泛的文件傳輸協議是FTP(File Transfer Protocol),它用于文件上/下載,允許文件在傳輸中斷后續傳,傳輸過程不需要人工干預,非常適合非編系統的素材交換。一些視頻服務器和錄像機也采用FTP作為傳輸和復制的工具。但是,采用FTP需要雙向網絡支持,而且傳輸時不能同時播放和處理。

  從AV平臺過渡到IT平臺,要把AV素材數據化,使元數據處理系統化,做到文件無縫交換,并支持流和文件兩種方式。基于這種需求,MXF、GXF和AAF文件格式應運而生。MXF(Material eXchange Format)為“素材交換格式”,主要用于設備間的文件交換并支持簡單的編輯功能;GXF(General eXchange Format)為“通用交換格式”,主要用于存儲文檔的交換;AAF(Advanced Authoring Format)為“先進制作格式”,支持復雜、靈活的編輯功能。


MXF格式

  MXF是專業MPEG論壇(Pro-MPEG Forum)制定和推廣的一個開放的文件格式,目標是解決節目制作系統中不同環節的設備間視/音頻節目素材和相關數據及其元數據的交換。

MXF的特點

  (1)MXF是音/視頻/元數據的打包結構,文件本體可以是多種視/音頻格式,包括元數據。MXF對于任何素材和節目單元(數字音/視頻、附加數據或元數據)的傳輸,不必考慮其格式和內容,將這些節目單元作為一個實體,簡單地放入文件包內,通過網絡傳輸,并且可以通過文件名檢索源文件。MXF符合SMPTE 336M KLV數據編碼協議。

  (2)文件在傳輸過程中可以直接播放。以往只有以數據流方式傳輸文件時,才能在傳輸過程中同時播放。現在以文件交換格式傳輸視/音頻時,在服務器錄入文件的過程中,也可以播放其內容。由于內容實體在文件中以播放順序排列,文件中重復分布再同步信號,文件頭數據重復出現在其它部位和文件主體部分,即使傳輸中斷,時鐘也能再次鎖定,能從文件任意部分開始解碼。

  (3)元數據得以保留。用MXF傳輸視/音頻時,元數據與視/音頻捆在一起傳送,元數據與有效負荷同樣用于說明文件的實體功能。

MXF數據格式

  簡單類型

Open in new window


  如圖1所示,文件頭包含文件的總體信息,說明文件內有什么內容及其安排方式,稱為結構型元數據,還有可選的用戶定義描述元數據。文件體有一內容容器,用于傳輸隔行掃描的視/音頻數據,以及部分元數據。

  復雜類型

Open in new window


  MXF數據格式的復雜類型可包括索引表,如圖2所示。索引部分包括部分元數據和文件參數,用于文件訪問,指示文件體內包括的幾個部分:用于流傳輸中斷后再恢復的信息;用于區分場景或片段的信息;用于區分不同場景類型的信息。文件體部分占整個文件的99%以上,MXF采用普通容器(Generic Container,GC)作為文件本體的中間容器,所有視/音頻流和元數據都裝入GC中。GC由系統項目、圖像項目、聲音項目和輔助數據項目組成。最基本的項目是系統項目,它含有視/音頻流和元數據處理的詳細參數。要求幀精確元數據(如時間碼、UMID等)也存儲在系統項目內。如果元數據需要很大的空間,可利用輔助項目傳送額外的元數據。

  KLV編碼

  MXF采用KLV(Key Length Value)編碼(SMPTE 336M標準)對元數據和內容打包。KLV的數據結構分為KEY、LENGTH和VALUE三部分,見圖3。

Open in new window


  Keys為16B SMPTE標準化通用標簽(Universal Labels)。KLV項目(Items)可分組放入各個數據集(Set),數據集內的Local Keys為2B長,其基本目錄由SMPTE預先確定;其它在文件內定義。Local Keys指明:通用識別符(Universal Identifier,UID)是另一個集的參考,還是識別這個單獨集的標簽。

  識別符ID和參考

  MXF的UID包括:16B通用標簽,如KLV的Key標簽;16B通用唯一識別符(Universally Unique ID, UUID),用于識別特殊數據集、指向其他集、產生識別符;32B唯一素材識別符(Unique Material Identifier, UMID),用來識別一些實體元素及其有關的元數據集(Metadata Sets)。

  MXF的元數據集有兩種形式:一種是一對一的描述,ID即是該數據集自己的識別符,例如規定一個視頻軌數據集有描述自己的元數據;另一種是一個數據集的ID元數據集嵌入其他元數據集,它需要以其他元數據集做參考。

  時間線軌的概念

  MXF對文件中的每個部分都采用時間線軌(Time Line Track)的概念,實體內容和元數據的分段都掛在一個虛擬的時間線上,通過元數據集定義:識別和標簽軌、編輯等級和軌的持續期、指向其它元數據集和與這個軌相關聯的實體內容之容器。時間線軌上有與視頻軌對應的時間碼。如圖4所示,掛在時間線軌上的元數據把元數據軌和實體軌關聯起來。這個描述方案稱為DMS-1,基于SMPTE和EBU的元數據定義,而不同于MPEG-7。

Open in new window


  MXF打包封裝的一個輸出文件可能涉及其他源文件。MXF采用素材包和文件包的概念傳送使用文件包,編輯時通過文件包的映射形成素材包。素材包內含描述編輯最后輸出的元數據。文件包含有描述素材源的元數據,有一個指向基本內容的最終指示器。

  操作模式限定了文件組成的復雜度:單一實體型文件只有單一的實體片斷;文件內有多種不同源片斷的串接,文件內的節目交替出現。

  編輯時將文件包映射到一個時間線上組成素材包。圖4中,簡單模式的素材包是由單個文件包構成的單一素材源數據段;復雜模式的素材包含多個文件包編輯成的多個素材源數據段,即多個文件包映射在單一時間線上形成素材包。

  MXF文件主體的格式

  MXF的文件主體是DV、MPEG、非壓縮視頻素材和AES音頻,對主體格式(Body Formats)的規定為:

  (1)將編碼的素材實體分成可編輯的單元,典型的編輯單元即為一幀;

  (2)典型的可編輯單元包括:系統項目(System Item),例如URL、聲音通道的號、時間碼等;圖像項目(Picture Item);聲音項目(Sound Item);數據項目,例如字幕。每個可編輯單元內的項目都采用KLV編碼,如圖5所示。

Open in new window


MXF中的元數據

  MXF文件中的元數據如圖6所示。元數據不僅用于記錄時間碼,而且可用于記錄文件結構、文件體內容、關鍵字和題目、副標題、參考數字、位置、時間、數據和版本號等。

  SMPTE已通過了元數據說明與分級的協議,以及包括唯一素材標識符(UMID)的KLV編碼方案。

Open in new window


  在MXF文件的頭部和本體內都可以包含文件的元數據,頭部的元數據包括類似EDL的信息、內容識別元數據、場景或鏡頭元數據、描述元數據等。這些描述符都作為整體文件、鏡頭或場景的邊信息。

  非線性編輯需要編輯MXF文件的頭部元數據、本體元數據和素材。一般的編輯是采用中間格式,如易讀的XML語言,非線性編輯首先用XML文件作為編輯描述輸出,如圖7所示。那些XML文件和AV流用來產生MXF文件。另外,存儲在AV服務器中實體流和幀精確的元數據,在服務器中經SDTI-CP或i.Link接口復用或解復用。雖然MXF是文件交換格式,但在節目制作設備內也不必將MXF文件的內容轉換為本地文件結構存儲。因而,MXF輸入/輸出運作對于不同廠商的設備之間的互操作非常重要。

Open in new window


MXF編輯過程中元數據的操作

  素材獲取過程是節目制作鏈產生元數據的第一步,如圖8所示。例如,攝錄一體機用UMID元數據記錄傳統的前向時間碼(SMPTE12M),用于鏡頭識別的UMID元數據附加到每個鏡頭上。這些鏡頭素材(AV流和元數據)以MXF文件包形式采集到服務器上,文件包含有不同時間線的鏡頭素材。一旦這些MXF文件被存入服務器,即可對這些文件包進行非線性編輯,將文件包映射到單一的時間線上,用這個時間線來定義MXF素材包。

  非線性編輯加一些場景描述元數據,并產生EDL類的數據,這些都放在MXF文件的頭部元數據中。編輯過程如此重復,直到產生最后完整的素材包,見圖8。

Open in new window


  所有的文件包都在節目素材采集過程中產生,某些元數據(如鏡頭元數據)也附加到每個文件包上。非線性編輯器產生一個單一的編輯過程參考時間線,如圖4。非線性編輯器可以根據鏡頭的分界線,在其時間線上獨立地定義一些場景,也可以給每個場景附加元數據。最后的映射決定修改的EDL類數據,并存到MXF的頭部元數據內。

  存儲在AV服務器的音/視頻實體與外部元數據庫內的元數據聯合使用過程如下:MXF的頭部元數據被復制并存儲到外部MXF數據庫,所建立的數據包含搜索UMID(Keys);文件實體部分也含有UMID,UMID描述了外部元數據數據庫和AV服務器中實體之間的同步聯接,可用于聯接MXF實體和外部元數據;然后,用戶用外部數據庫的UMID搜索AV內容,從AV服務器(存檔系統)重新得到相應節目實體,見圖5。外部元數據庫也可以包含用戶自定義的元數據。

元數據——通向IT平臺的網關

  典型的基于IT的節目制作系統是:所有工作站和服務器都通過IP網絡連接,所接收的素材都用MXF文件進行非線性存檔,并與制作和播出系統共享。所有MXF文件也可傳送到其他部門或演播室再應用。MXF/AAF技術和元數據是這個系統的基礎。元數據元素UMID是MXF/AAF文件與大量外部元數據鏈接的要素。UMID詳細說明了逐幀或逐個場景識別文件中所含節目素材的方法,猶如把打包的節目片斷與所關聯的外部元數據相聯的指示器。雖然用戶在存留的節目中都有豐富的各自獨立的元數據,但MXF文件能攜帶更豐富的元數據。UMID聯結系統支持與攝取/存檔節目關聯的外部元數據的使用。元數據友好是節目制作系統向基于IT系統移植的關鍵。


GXF格式

  GXF也是Pro-MPEG組織制定和推廣的文件格式,它的目標是便于用數據磁帶存取素材(包括元數據)。除了沒有采用SMPTE推薦的KLV數據打包方式之外,GXF具有和MXF類似的特點,參看SMPTE360M。

  從設計上看,GXF和MXF文件都是既能用多種介質傳輸,又能邊傳輸、邊處理,兼具信號流和計算機數據文件二者的優點,對提高制作系統中節目和素材的傳輸效率大有益處。

GXF文件的基本結構

  GXF支持JPEG、MPEG壓縮視頻和未壓縮的音頻,同時支持多種合成功能。音頻和視頻包在文件中復用,保證在文件傳輸和存儲過程中都可以同時播放,如圖9所示。文件中還包含服務器內對文件的注釋信息,如文件名稱、視音頻內容的入/出口等。GXF的復用結構中,包含編輯中的剪切、音頻淡入/淡出及對靜止素材的管理等信息。

Open in new window


GXF文件的傳輸

  GXF是一種網絡的數據交換格式,也是一種存儲文檔的交換格式。文件從一個服務器傳到另一個服務器時,發送服務器不必考慮所要傳送的文件是什么格式,只要把它打包成GXF文件發出去即可,接收服務器收到GXF文件,再把它轉換成其內部應用格式。

GXF的文件檢索

  GXF使用標準文件傳輸協議,可以實現部分文件檢索。從操作設備向存檔服務器(或數據磁帶庫)提出檢索要求時,將所需段落入/出點標記送到服務器即可,而不需要的素材部分則不會被傳輸。數據磁帶驅動的搜索速度比普通磁帶讀取速度高5倍。

  GXF文件在開始部分有一個粗略的幀檢索表,用于數字磁帶的文檔檢索。在服務器或編輯系統內部也有幀搜索表,用來運行EDL定義的剪切與轉換,這些設備收到GXF文件時,自動生成幀搜索表。不同設備對GXF文件處理方式不同,編輯設備收到文件時,會將不同視/音頻軌處理成連續分離的文件;存儲轉發設備收到文件時,則進行多路復用;而有些存檔設備則對收到的文件不作任何修改。因此,不同的設備根據不同的需要生成不同的內部搜索表。

  GXF已經得到廣泛應用,有大量基于GXF的檔案庫存儲器在應用,每天有上千個支持GXF的設備通過IP網絡傳遞素材。GXF文件交換格式仍在發展。


AAF格式

  AAF是AAF組織制定的,面向多媒體編輯工具之間的數據交換,主要用于實體數據和元數據的交換,對非線性編輯系統更有意義。

  在非線性編輯系統中,EDL起重要作用,并在編輯過程中被頻繁地使用。引入EDL已有30多年,但是,隨著制作工具和制作手段的發展,EDL已經難以滿足編輯的要求。于是,稱為“超級EDL”的AAF格式應運而生。

  AAF是針對后期編輯制作環境傳遞編輯信息而設計的,比MXF和GXF包含的內容更多。它容納元數據的能力很強,可以描述復雜的編輯信息,如合成、特技效果等,它能包含生成一個節目所需的所有素材和元數據。另外,AAF還支持通過元數據引用外部素材。這樣,單個AAF文件可以包含一個后期制作項目的所有數據和信息,而且根據AAF文件的內容可追溯到該項目制作歷史中的每個版本,并在生成每個新版本時都可以使用原始素材,避免素材多次復制帶來的質量下降。

  AAF采用層次式文件結構。它使用對象向導(Object-oriented)機制對元數據與實體進行組織,對象提供攜帶不同信息標志的整體框架。對象向導可對不同形式的信息進行某些相同處理。例如,在AAF文件中可以同時出現視頻數據、音頻數據、MIDI文件數據等工作區域。當信息非常復雜時,Object對信息進行結構方式的描述,這樣能比較容易地獲取信息摘要。當進行復雜的節目交換時,要用到Object模型。Object模型可提供實體與元數據打包和描述等多種機制及自定義類的功能,并具有在現有類中添加信息的功能。Object模型常用四種包:成分包(描述實體數據的順序、位置和對實體數據使用的特技)、素材包(為實體數據提供間接通道,與相關實體數據同步)、源文件包(提供數字實體數據入口和格式描述)和源物理包(提供物理介質的描述),每個包都是一個Object,都由元數據組成。每個包可以描述一種或幾種實體,這是由于每個包中可以包含一個或多個狹槽(Slot),如一個包可以含有2個音頻Slot、一個視頻Slot、2個靜止畫面Slot和3個時間碼Slot等。這樣,在文件交換中,元數據與實體一樣作為重要的交換對象進行交換。

  AAF提供了很多可交換的元數據,使節目段的特技轉換調整容易;可使多種數據互相聯系,能使畫面與聲音保持同步。AAF可在工作流程中對文件實體與元數據進行組織與交換,對影視后期制作具有非常重要的作用。


MXF、GXF與AAF的比較

  MXF和GXF文件更適合于流式處理,不用等到文件傳輸結束,即可開始回放這個文件。AAF的結構比MXF和GXF復雜得多,它采用層次式文件結構,其文件中還有文件系統,這種層次結構決定了它在傳輸結束前無法被使用,無法實現流操作,但是有利于減少編輯修改過程中重寫的文件內容。

  AAF與MXF和GXF面向不同的應用。AAF不能直接用于文件交換,它支持高性能的編輯應用,包括非線性編輯和多層畫面合成、特技效果和豐富的元數據,可接受外部基準。Pro-MPEG Forum和AAF協會同意把MXF作為AAF的子集進行開發,MXF作為AAF的簡單功能版本,只支持簡單的編輯功能,不能接受外部基準,主要用于不同系統之間的文件交換和簡單編輯。MXF中有場景描述元數據,AAF尚未納入。AAF建議采用Microsoft的存儲結構,MXF采用KLV二進制符號。AAF已經開發了自己的軟件開發包(SDK),簡單修改AAF的SDK就可以得到MXF的SDK。

  MXF格式的文件不僅能用IP網絡傳輸,而且能使用SDTI作為傳輸接口,這可以充分利用電視臺現有的布線,有利于從信號流傳輸方式向文件傳輸方式平滑過渡。
  本文作者張琦女士,北京廣播學院電視工程系教授;楊宇女士,研究生。信息來源:《世界廣播電視》

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452640.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452640.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452640.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle 位移運算符,Oracle“(+)”運算符

在Oracle中,()表示JOIN中的“可選”表。 所以在你的查詢中,select a.id, b.id, a.col_2, b.col_2, ... from a,b where a.idb.id()這是一個左外加B表與一個表。 就像現代的左連接查詢一樣。 (它將返回a表的所有數據,而不會丟失在另一邊的數據…

JAVA-數據類型-復習

JAVA-數據類型-復習 Java中,一共有8種數據類型,4種整型,2種浮點型,1種用于表示Unicode編碼的字符單元的字符類型char,1種布爾類型。 整型 類型存儲需求(字節)一個字節包含8個位取值范圍byte1-12…

什么是實體-聯系圖(ER圖)

實體-聯系圖(ER圖)數據模型中包含3種相互關聯的信息:數據對象、數據對象的屬性及數據對象彼此間相互連接的關系。 1.數據對象 數據對象是對軟件必須理解的復合信息的抽象。所謂符合信息是指具有一系列不同性質或屬性的事物,僅有單…

記錄的習慣

記錄的習慣 書籍是人類進步的階梯,承載了人類文明進步的歷程。大多數人都寫過日記,但不知道有多少人重視過日記。常常我們會用相機記錄一些生活中的場景,然后收藏起來,等到若干年后再拿出來看,總能感覺到很溫馨很美好。…

php 去掉實體,用PHP刪除除5個預定義HTML實體之外的所有實體的最佳方法-用于XHTML5輸出...

我目前正在嘗試提供XHTML5.目前,我在正在處理的頁面上提供XHTML 1.1 Strict.那就是我為有能力的瀏覽器所做的.對于那些不接受XML編碼數據的人,我會嚴格遵循HTML4.1.在嘗試使用HTML5進行試驗時,以HTML5格式交付時,所有功能或多或少都可以按預期工作.但是,作為XHTML5交付時,我遇到…

Flask愛家租房--發布新房源(保存房屋基本信息)

0.頁面展示效果 1.后端代碼 api.route("/houses/info", methods["POST"]) login_required def save_house_info():"""保存房屋的基本信息前端發送過來的json數據{"title":"","price":"","ar…

今后最有前途的媒體格式 MXF

MXF格式已經被推出幾年了,從當初一個陌生的不為人們重視的格式逐漸獲得了業內人士的認知和認可,現如今正被廣泛應用于廣播電視與后期制作領域,且有不斷擴大之勢,松下公司推出的基于PII卡的無磁帶式標清攝像機,它所采用…

【c#】RabbitMQ學習文檔(一)Hello World

一、簡介 RabbitMQ是一個消息的代理器,用于接收和發送消息,你可以這樣想,他就是一個郵局,當您把需要寄送的郵件投遞到郵筒之時,你可以確定的是郵遞員先生肯定會把郵件發送到需要接收郵件的人的手里,不…

什么是狀態轉換圖

通過描繪系統的狀態及引起系統狀態轉換的事件,來表示系統的行為。此外狀態轉換圖還指明了作為特定事件的結果系統將做哪些動作(例如,處理數據)。因此狀態轉換圖提供了行為建模機制。

Python學習筆記三

參考教程:廖雪峰官網https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 一、函數的定義 Python中定義一個函數需要使用def語句,依次確定函數名、參數及函數體內容: #一個求絕對值的函數 def my_abs(x):i…

oracle中如何分頁,Oracle中操作分頁

mysql中分頁的寫法:select t.* from tbl_user t order by t.id limit $offset , $perpage$currentPage 1;//當前頁碼其中后面$sql:with partdata as (select rownum rowno,t.* from tablename t where column1090order by column) select * from partda…

Flask愛家租房--發布新房源(保存房屋圖片)

0.頁面展示效果 1)首先房東填寫房屋信息; 2)當房東填寫發布的房源信息之后,隱藏(hide)剛才填寫信息的界面,同時顯示(show)上傳房屋圖片的界面。 1.后端代碼 api.route("/houses/image&q…

數字的處理 :小數點四舍五入

js取float型小數點后兩位數的方法 轉載 發布時間:2014年01月18日 17:03:32 投稿:shangke 我要評論 js中取小數點后兩位方法最常用的就是四舍五入函數了,前面我介紹過js中四舍五入一此常用函數,這里正好用上,下面…

如何成為一名優秀的C程序員

問題的提出 每過一段時間我總會收到一些程序員發來的電子郵件,他們會問我是用什么編程語言來編寫自己的游戲的,以及我是如何學習這種編程語言的。因此,我認為在這篇博文里列出一些有關C語言的最佳讀物應該能幫到不少人。如果你知道其它的優秀…

CFS調度器

一、前言 隨著內核版本的演進,其源代碼的膨脹速度也在遞增,這讓Linux的學習曲線變得越來越陡峭了。這對初識內核的同學而言當然不是什么好事情,滿腔熱情很容易被當頭澆滅。我有一個循序漸進的方法,那就是先不要看最新的內核&#…

oracle索引分類與區分,深入理解Oracle表(6):堆組織表(HOT)和索引組織表(IOT)的區別...

摘要:堆表:又稱堆組織表,常用的表類型,以堆的方式管理,當增加數據時,將使用段中第一個適合數據大小的空閑空間。當刪除數據時,留下的空間允許以后的DML操作重用。 堆組織表(heap table)應用中99…

Flask愛家租房--發布新房源(總結)

重點總結 學習過程中,發現house_id貫穿兩個接口內容,現對后端邏輯部分做以下總結: 1)房東首先在前端填寫房屋的基本信息,此時通過newhouse.js文件$("#form-house-info").submit(function (e) {…}進行處理&…

關系的三類完整性約束

規則2.1實體完整性規則(Entity Integrity)若屬性A是基本關系R的主屬性,則屬性A不能取空值空值就是“不知道”或“不存在”或“無意義”的值例: 選修(學號,課程號,成績) “學號、課…

[QNAP crontab 定時執行程式

注意要自動執行的 sh 檔不要放在 /root 裡, 不然韌體更新後檔案會不見, 要放在個人帳號的資料夾,例如 /share/homes/帳號/ QNAP 的 crontab 放在 /etc/config/crontabvi /etc/config/crontab 例如要每日5:00執行 backup.sh 的話,加上這行 00 5 * * * /s…