a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 用ADSP-2181和MC68302實現MPEG-2傳送復用器

用ADSP-2181和MC68302實現MPEG-2傳送復用器

作者: 時間:2006-05-07 來源:網絡 收藏

摘要:在概述MPEG-2傳送流(TS)語法規范的基礎上,給出了用ADSP-2181 器和MC68302微控制器實現傳送復用器的設計方案和實現技術。該方法是在MC68302的控制下,用DSP查詢復用器各輸入FIFO的狀態,根據各FIFO的狀態讀入數據,完成音頻、視頻的均勻打包。

本文引用地址:http://www.j9360.com/article/242399.htm

關鍵詞:MPEG-2編碼傳輸系統 傳送復用器 TS流 打包

當今世界正在向數字化方向發展,電視信號的數字編碼、數字化存儲、數字化傳輸、數字化處理在我們的現實世界中已經變得越來越廣泛。電視系統的全面數字化給節目制作和傳輸都帶來了革命性的變化。隨著碼率壓縮技術的突破和MPEG標準的建立,從演播室到發射整個系統的各個方面正處于全面數字化的進程中。MPEG-2編解碼傳輸系統是目前解決演播室節目制作和傳輸的主流產品。

MPEG-2編碼傳輸系統由音、視頻編碼器(包括音、視頻原始流的分組基本流打包)、傳輸流系統復用器、網絡適配器等組成,如圖1所示。

復用器是整個系統的關鍵設備之一,它接收前端多套節目編碼器來的視頻、音頻壓縮數據流,按照一定的復用策略將其交織復用成符合MPEG-2系統層規范的單一的系統碼流(傳輸流)。為實現一套節目音頻、視頻的解碼同步,在碼流中需插入各種時間標記、系統控制等信息。最后送到網絡適配器或者信道調制設備,得到與傳輸信道相匹配的標準輸出碼流后,送往信道。復用器還提供整個編碼系統的系統時鐘。

本文復用器的設計是在MPEG-2音/視頻國際標準的第一部分ISO/IEC13818-1系統層語法規范的基礎上,采用ADSP-2181信號處理器芯片和MOTOROLA的微處理器MC68302實現的。

1 復用器的設計

1.1 ISO/IEC 13818-1傳送層語法結構

復用器以MPEG-2系統規范為基礎,對于地面廣播方式,復用器按傳輸流(TS)格式打包。TS包的長度固定為188字節,傳送層采用固定字長數據包的優點在于為以后新業務的創立提供了靈活性,新增的比特流可以直接在傳送層處理而無需增加硬件。數據包字頭信息中采用數據包標識(PID)作為比特流的識別工具,因此可以將視頻、音頻和其它數據混合在一起。經網絡適配器后,得到具有G.703標準的碼流,以便在類似SDH多路復用的環境中進行數據的發送;同時也有利于抗信道誤碼和誤碼后的恢復。

傳送層的語法結構如圖2所示。188字節長度的TS包由4字節的鏈接字頭、可變長字節的自適應字頭以及有效數據負荷組成。每個TS包的字頭信息鑒別一種應用比特流,它們構成TS包的負荷,支持的應用包括視頻、音頻、數據、節目流和系統控制信息等。

1.2 多路復用流語意的限制

(1)節目參考時鐘PCR的編碼頻率

打包時,TS流的構造應使得含有每一節目的PCR-PID的TS流分組中連續出現program_clock_reference字段最后一位的字節間隔應小于等于0.1s。

(2)顯示時間標簽的編碼頻率

對每一個原始視頻或音頻流來說,傳送流的結構應使編碼的顯示時間標簽的最大差值為0.7s,也就是

│tPnk-tPnk’’│≤0.7s

(3)在傳送流中,音頻采樣速率和系統目標解碼器的系統時鐘頻率之間有特定的比例關系,而且視頻圖象速率和系統時鐘頻率之間也有特定的比例關系。

2 ADSP-2181的性能

器(DSP)具有速度快、運算能力強、花費低、可擴展和集成度高等優良特性,這就使得我們在選擇內嵌環境下工作的信號協處理器時,能夠提供非常強大且靈活的系統,并且價格非常合理。

本文采用AD公司的ADSP-2181 器,它具有以下主要性能:

·25ns的單周期指令執行時間

·片內16K字程序存儲器PRAM;片內16K字數據存儲器DRAM

·三個獨立的計算單元ALU、乘法/累加器和桶形移位器

·兩個獨立的地址發生器

·強有力的程序定序器

·循環無額外時鐘開銷

·條件算術指令

·具有壓擴硬件和自動數據緩沖的兩個雙緩沖串行口

·可編程的內部定時器

·可編程的等待狀態發生器

·16比特內部DMA口可快速訪問片內存儲器

·具有2048個存儲單元的I/O口支持并行的外圍設備

·13個可編程的標志管腳可提供靈活的系統信令

·EPROM的自動引導或通過內部DMA口自動引導

這些特點使得它只需最小的外部支持環境就可以工作。

用ADSP-2181實現壓縮的音、視頻的傳輸流打包時,如果視頻編碼器以8Mbps的速率輸出壓縮的視頻流,存于視頻FIFO中,而16位操作的DSP每個指令讀兩個字節,則需讀0.5M次,即每秒需要500 000次讀指令才能保證FIFO不發生溢出。與此同時,DSP還需對讀出的數據進行一定的處理,才能從DSP串口發出。ADSP-2181的最高指令周期為40MIPS,按每秒從FIFO讀1MB計算,則平均1秒一個字節可有40條指令的處理時間。對于打包處理,ADSP-2181可以滿足一套節目的復用。

3 ADSP-2181的IDMA接口與MC68302的連接

為了使DSP實現最好的性能,有效的微處理器通信是最關鍵的。摩托羅拉MC68300系列微控制器能提供強大且靈活的總線接口,很適合DSP的要求。

復用器設計時,整個過程的協調控制工作是用摩托羅拉的微處理器MC68302完成的。控制操作流程見圖3。圖中的標號表示系統的整個初始化過程,其中,“(1)”表示MC68302對打包DSP進行RESET(復位),DSP開始初始化;“(2)”表示MC68302給編碼器加載程序;“(3)”表示打包DSP通知MC68302已初始化完畢;“(4)”表示MC68302通知編碼器開始工作。

MC68302對整個系統初始化完畢后,ADSP-2181便開始從FIFO中讀取分組的視頻原始流和音頻原始流,并對所讀數據進行判斷,加相應的包頭,然后在外加串口時鐘的控制下,以固定速率從ADSP-2181串口把打包的TS流數據送往信道。

下面介紹ADSP-2181芯片的IDMA接口同MC68302微控制器之間的硬件界面和軟件接口的設計方案。

3.1 IDMA操作

外部器件能通過DSP的IDMA接口訪問ADSP-2181的內存。微處理器MC68302能夠通過IDMA接口與ADSP-2181的內存通信,把此DSP芯片當作是隸屬自身的以存儲區劃分的外圍設備,并且可以訪問ADSP-2181的所有數據存儲器(DM)和程序存儲器(PM)。

ADSP-2181的IDMA接口由以下幾部分組成:一條16比特的地址/數據復用總線(IAD16:0),一條選擇線(IS),地址鎖存有效信號(ALE),讀信號(IAD),寫信號(IWR),通知信號(IACK)。MC68302負責所有數據傳輸的初始化工作。
ADSP-2181的存儲器地址裝載在IDMA地址寄存器中,IDMA地址寄存器包括14比特的內存地址和1比特限定傳輸類型的標志位。該標志位用于區分所傳輸的是24比特的程序存儲器代碼,還是16比特的數據存儲器數據。IDMA地址寄存器的初始化工作既可以由DSP完成,也可以由微處理器完成。微處理器可以通過運行一個地址鎖存周期來初始化此寄存器。一個地址鎖存周期的過程如下:先由微處理器發ALE信號,然后在IAD上傳輸15比特位(14位地址信號和位目的存儲類型信號)。為了更有效地傳送大段的操作代碼或數據,并不是IDMA存取都需要一個地址鎖存周期。相反,一旦鎖定,每個IDMA字傳輸之后地址就會自動增加。

3.2 硬件界面設計

占用微控制器外圍空間的ADSP-2181芯片的IDMA端口需要劃分成兩個部分:一部分由微控制器使用,用來設置它想訪問的DSP存儲器地址;另一部分則用于傳輸數據和指令信息。
對于基于DSP的協處理系統的設計而言,微控制器和DSP之間的硬件接口設計僅僅是驅動工作的一部分。系統的啟動問題及微處理器和DSP之間的通信問題在系統設計中是很重要的部分。

3.3 加載DSP芯片

在加電情況下,DSP上的IDMA接口可用來加載程序。這樣DSP就無需再用單獨的EPROM芯片。對于芯片ADSP-2181,加載過程由管腳MMAP和BMODE來控制。保持管腳MMAP低電位、管腳BMODE高電位,就可以通過IDMA接口進行程序加載了。在此狀態下,當有復位信號時,DSP并不激活它的外部地址總線去訪問EPROM芯片,而是等待微處理器開始IDMA傳輸來填充其內部數據存儲器和程序存儲器,并且利用IDMA接口的地址自動增加特性來加速以升地址順序進行的代碼段的傳輸。當所有初始化工作結束時,微處理器初始化DSP的重啟動向量PM(0x0000),至此,程序加載結束,DSP 程序開始執行。此過程的流程如圖4所示。

3.4 產生加載代碼

ASDP-21xx系列的指令操作代碼位有24位,而IDMA接口只能接收16位的值。為了通過IDMA接口傳輸指令操作代碼,需要先傳輸16位,然后再傳輸另外8位 并進行適當的調整。

DSP的可執行文件是由ADSP_21XX鏈接器生成的。鏈接器接收由匯編器生成的目標文件,把它們放置在由系統結構文件定義的存儲結構中,產生DSP可執行文件。

4 ADSP-2181完成傳輸流打包

傳輸流的打包需要在ADSP-2181的數據存儲區DM中開辟兩個緩沖區,一個是TS頭固定長度部分的BUFFER,其中包含是否需要PCR字段的PCR-flag標志;另一個是可調字段的BUFFER,其中包括標識PCR編碼的相關字段。根據輸入修改TS的兩個緩沖,判斷是否需要可調字段、是否需加PCR字段、是否有填充字節以及填充字節的數目等。然后以恒定速率(在此是8.448Mbps)發出。

從編碼器來的視頻、音頻原始流分組(PES)在ADSP-2181中被分割成一個個長度為188字節的小包,并插入相應的TS字頭。由于視頻流的輸入速率遠大于音頻的輸入速率,在同一時間內的視頻TS包遠遠多于音頻的TS包,因此必須采取一定的措施使得視頻、音頻數據TS包能夠均勻地交織復用到最終的傳送碼流中,以保證解碼端的視頻、音頻解碼器的BUFFER不會產生上溢和下溢。PCR時間標記在傳送復用器中規定的視頻TS包頭中傳輸,但要說明的是,按照MPEG-2的系統層規范,PCR采樣的時刻必須是當PCR字段串行輸出離開復用器那一刻的時間,也就是說PCR的插入邏輯是復用器的最后一步操作。此外,一個PES包的包頭必須包含在一個新的TS傳送包中,同時PES包數據要充滿TS傳送包的負荷,若PES包數據的結尾無法與TS包結尾對齊,則需要在TS的調整字段中插入相應數量的填充字節,使得兩者的結尾對齊。解碼時填充字節則直接被丟棄。

復用器啟動后,由MC68302首先向前級視頻、音頻編碼器發出系統編碼開始信號,同時發送27MHz系統時鐘。ADSP-2181被動地接收前級編碼數據。視頻、音頻分別在各自的FIFO中緩存,各FIFO設有各自的雙向計數器,動態地反映各FIFO中緩存的視頻、音頻字節數。采用DSP輪詢技術控制復用比特流中各種TS包的交織策略。由于視頻PES數據流的輸入速率是可變的,而音頻的速率則是恒定的,若采用其他固定比例的復用策略,無法保證輸出碼流各種TS包的均勻性,采用輪詢技術除了能夠均勻打包輸出變速率的視頻數據流外,同時對多節目數據流的復用具有很好的靈活性,只需在軟件中增加輪詢的數目并合理安排其輪詢的優先級即可,可用圖5來描述。

ADSP-2181按視頻、音頻的次序對視頻FIFOV FIFO、音頻FIFOA FIFO進行輪詢,即讀取反映FIFO狀態的雙向計數器,若大于預先確定的門限數值,則從相應的FIFO中讀取184字節,送入第二級公共FIFO中。

ADSP-2181在對視頻、音頻184字節的讀取過程中,同時檢測是否碰到PES包起始碼,若未碰到PES字頭,則由ADSP-2181向傳輸緩存器寫入相應的TS包頭4字節,無可調字段,再將公共FIFO中的184字節送入傳輸緩存器;若碰到PES字頭則立即停止從第一級視頻或音頻FIFO中讀取數據,同時向ADSP-2181發出中斷,ADSP-2181的中斷服務讀取公共FIFO中的字節數目,設其為N,由于在這N字節數據中包含4字節的PES字頭,為了使TS包與PES包字頭對齊,公共FIFO中的數據要打成兩個TS包,由于第一個TS包有效負荷數據只有N-4個字節,PES包的結尾未能和TS包的結尾對齊,因此在第一個TS包的自適應域要插入182-N-4個填充字節0xFF,有效數據負荷為N-4,第二個TS包由于是一個新的PES數據包的開始,公共FIFO中還保留4字節的PES字頭,因此ADSP-2181還需從第一級FIFO中讀入相應數目字節的視頻或音頻數據。對于音頻來說,不需插入PCR信息,只從音頻FIFO中讀入184-4個字節的數據。在向輸出緩存器寫入TS字頭后,再將公共FIFO中的數據送入輸出緩存器。對視頻來說,在不考慮PCR信息插入時其操作同音頻一樣。

由于兩PCR之間的時間間隔在MPEG-2視頻編碼器傳送流中要求為100 ms,因此,在DSP軟件中設計了一個計數器,用于對所有已生成的TS包進行計數。由于ADSP-2181串口的輸出速率是恒定的(在此是靠外加8.448MHz串口時鐘實現的),因而單位時間內的總的TS包的數目也是一定的。要使PCR之間的時間間隔保持恒定,只需將計數器的預置數目設定為“總的TS包數目/每秒÷25”,復用器每生成一個TS包,計數器減1,當計數器計到零時將時間間隔標記置位。ADSP-2181在每次輪詢打包TS數據之前,先檢測時間間隔標記是否置位,若未置位則按前述方法處理,若置位則在打包的下一個視頻TS包中插入PCR時間標記,當然這里只是在TS包頭中插入相應的可調字段,而沒有插入真正的PCR時間標記,只是將6字節的PCR位置預留出來。因此,如果下一個復用的TS包為視頻數據并且恰好需插入PCR時間標記,則DSP從視頻FIFO中讀的數據是176字節而不是184字節,因為可調字段已占用了8字節。如果該TS包為含有PES字頭的視頻TS包,則讀入的數據字節為172字節。在ADSP-2181的最后輸出單元中最重要的是完成PCR時間標記的插入。MPEG-2系統規范要求PCR時間必須為PCR域最后一字節離開復用器的時間,因此,PCR只能在串出的時刻鎖存系統時鐘。PCR信息只包含在特定的視頻TS包中,ADSP-2181在寫入該TS字頭時可調字段已預先保留6字節的PCR位置,因此,在數據串出的同時要進行字頭檢測。當滿足PCR插入條件時,即在檢測到TS包的同步字節以及可調字段標志位后,則在相應時刻啟動PCR鎖存及串出邏輯。

需要說明的是:對于多節目輸入復用的情況,除了可以采用以上所設計的DSP輪詢策略外,還應注意優先級的排隊問題,以防視頻緩沖區有上溢問題出現。對于VBR視頻的多節目復用問題,尤其要慎重考慮。不僅要設置雙向計數器,動態地反映各FIFO中緩存的視頻、音頻字節數,還要采用相應的預測機制來即時獲取各路視頻速率的變化趨勢,同時采用相應的返回控制機制來調整輸入端的速率,保證各路信號均勻交織,使輸入FIFO不溢出也是很有必要的。另外,節目特殊信息PSI的插入要滿足PAT之間和PMT之間的時間間隔恒定為40ms,設計時是在TS包計數器置零后緊接著的兩個TS包中放入PAT和PMT表格。解碼時選擇感興趣的節目就是根據PAT中標明的節目號在PMT中尋找該節目對應的音頻、視頻信息,進而實現該套節目的同步解碼。



評論


相關推薦

技術專區

關閉