<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 數(shù)字信號處理器在多媒體通信中的應用

          數(shù)字信號處理器在多媒體通信中的應用

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

            近年來技術得到了廣泛的應用,在消費類和通信類產品中占據了越來越多的比重。技術得以廣泛應用的一個重要基礎是數(shù)字圖像和數(shù)字視頻的壓縮編碼技術的突破,使得原來無法廉價地存儲、處理和傳輸?shù)拇髷?shù)據量信息得到有效的利用。因此靜止圖像和視頻圖像的壓縮編碼技術,是產品中的一個非常關鍵的技術,也是近十多年學術和工業(yè)界非常關注的熱點領越,發(fā)展非常地迅速,應用范圍迅速地擴張。

            為了規(guī)范多媒體信息的表示,使各生產商的產品可以互相兼容,使工業(yè)界采用盡可能先進的技術,一些國際組織結合學術界和工業(yè)界的成果,制定了一系列關于多媒體應用的標準,表1列出了有關圖像、視頻和多媒體終端的幾個典型標準。

            由于多媒體技術是發(fā)展中的新型技術,各種技術和標準的更新?lián)Q代十分迅速,新標準不斷出現(xiàn)替代舊的標準,一些標準即使沒有被替換,自身也在進行不斷的更新和補充,這給產品的設計帶來困難。對實現(xiàn)一個標準的產品來說,采用專用芯片來實現(xiàn)往往是最經濟的,但專用芯片一般不可編程。當一個標準被替換或更新后,原來的專用芯片不再可用,要重新設計新的硬件系統(tǒng),因此一些多媒體產品不但更新?lián)Q代十分地快,而且,后續(xù)的維護工作也非常困難。

            對許多應用來講,用戶希望產品的生命期長一些,某些平臺能夠通過軟件升級進行更新?lián)Q代,這就要求系統(tǒng)的硬件平臺是可編程的。通用是可編程的,但因功耗大,系統(tǒng)利用率不高,不太適合于專用設備的平臺;而單片機和一般的嵌入式因為運算能力較弱,也難以擔負起可編程多媒體處理平臺的任務。數(shù)字信號因其運算能力強、功耗低成為可編程多媒體系統(tǒng)最合適的硬件平臺。

            傳統(tǒng)的數(shù)字信號處理器(DSP)是為一般的信號處理設計的通用,因此,其外圍并不直接適用于多媒體系統(tǒng)的應用,但由于多媒體信號種類多,有些時序復雜(如模擬視頻信號),利用外部可編程器件(FPGA,CPLD等)設計的多媒體信號接口增加了系統(tǒng)的復雜性,降低了系統(tǒng)的可靠性,增加了系統(tǒng)成本。因此,為了適應多媒體應用的需要,近年一些主要的DSP廠家專門設計了針對多媒體應用的DSP,稱之為媒體處理器(Media Signal Processor:MSP)。MSP不但集成了適合于多媒體信號的各種信號接口,也設計了適用于多媒體通信的接口,并且在CPU內部附設了專用于視頻或圖像處理的輔助單元,是一種非常理想的適用于多媒體產品開發(fā)的可編程硬件平臺。

            目前,已有多個廠家生產MSP,其中包括TI、Philips和Equator等,并有多個系列產品問世。本文將對TI生產的通用MSP系列DM64X進行簡要介紹,使讀者了解MSP的基本結構和應用。

            MSP也可以分為兩類,一類是針對專用設備設計的,接口都已經專門化,例如TI針對數(shù)碼相機設計的專用處理器;另一類是通用MSP,支持比較寬的多媒體應用,基本包括了多媒體應用所需的各類接口,DM64X就是這種通用MSP,下文以DM642為例,介紹其功能。圖1是DM642的結構框圖。

          圖1 TMS320DM642結構圖

            由圖中可以看出,DM642片上包含了如下接口:

          三個可配置的視頻接口,可以和
          視頻輸入,輸出或傳輸流輸入無
          縫連接。

          VCXO 內插控制端口(VIC)

          10/100Mbps以太網口(EMAC)

          數(shù)據管理輸入輸出模塊(MDIO)

          多通道音頻串行端口(McASP)

          I2C(Inter-integrated circuit)總線 模塊

          兩個多通道有緩存的串口
          (McBSPs)

          三個32-bit通用定時器

          用戶可配置的16-bit或32-bit的
          主端口接口(HPI16/HPI32)

          66Mhz32-bit的PCI接口
          通用I/O端口(GPIO)

          64-bit的外部存儲單元接口,支持
          和同步或異步存儲單元的連接

            這些接口基本上提供了設計多媒體系統(tǒng)所需要的外部接口。同時,DM642還針對圖像和視頻處理優(yōu)化其中央處理器(CPU),包括為了滿足視頻和圖象處理的需要,采用VelociTI體系結構。該MSP還采用高級超長指令字結構,使得在一個指令周期能夠并行處理多條指令。

          DM642 CPU的組成部分:

          兩個通用寄存器組(A和B,各32
          個32-bit通用寄存器)

          8個功能單元(.L1,.L2,.S1,.S2,.
          M1,.M2,.D1,.D2)

          兩個從內存讀數(shù)據的數(shù)據通道
          (LD1和LD2)

          兩個寫內存的數(shù)據通道(ST1和
          ST2)

          兩個數(shù)據地址通道(DA1和DA2)

          兩個寄存器組數(shù)據交叉通道(1X
          和2X)

            DM642的這些功能,使得它非常合適作為多媒體硬件平臺,基于它的各種應用系統(tǒng)已經出現(xiàn)或正在開發(fā)中,圖2中,可以看到一個基于DM642的網絡視頻監(jiān)控終端的設計例子。

          圖2 遠程視頻監(jiān)控系統(tǒng)原理框圖

            此系統(tǒng)各單元的主要功能如下。

            視頻采集模塊:將從攝像頭采集的視頻流,通過解碼芯片,得到原始YUV視頻流,送入DM642的視頻端口。

            視頻編碼模塊:片上可運行視頻標準H.264編解碼器。這是當前最新一代的視頻編碼標準,具有壓縮比高,視頻質量好,抗誤碼能力強,魯棒性高,適宜網絡傳輸?shù)忍攸c。

            此外,該編碼器還提供性能良好的碼率控制功能,能夠向網絡傳輸速率穩(wěn)定的碼流。

            網絡傳輸模塊:DM642提供10M/100M以太網借口,編碼模塊得到的編碼后碼流,經過本模塊,由網絡傳輸?shù)竭h程網絡終端。

            視頻回放模塊:將解碼器得到的實時重建視頻流,通過DM642提供的視頻接口輸出,并通過編碼芯片,將重建視頻流轉換成NTSC/PAL制,由電視回放,可以看到重建視頻效果。

            嵌入式控制模塊:該模塊以一個SOC為核心,通過PCI總線和DM642相連,實現(xiàn)一些控制功能,如實現(xiàn)硬盤讀寫、用戶界面管理和對整個系統(tǒng)的控制工作。

            由于DSP的可編程性,本系統(tǒng)的核心編解碼算法可以方便的進行修改,移植和升級工作。此外,本系統(tǒng)結合DM642以及H.264的先進性,具有視頻壓縮比高,主觀質量好,體積小,功耗低等特點。

            本文討論了采用MSP實現(xiàn)多媒體產品設計存在的優(yōu)點,并列舉了實例進行說明,在現(xiàn)有技術尚在快速發(fā)展的過程中,MSP技術有其獨特的優(yōu)點。



          關鍵詞: 多媒體 接口 處理器

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();