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

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計(jì)應(yīng)用 > H.264音視頻編解碼SoC芯片Hi3510的原理和應(yīng)用

          H.264音視頻編解碼SoC芯片Hi3510的原理和應(yīng)用

          作者: 時(shí)間:2011-08-01 來源:網(wǎng)絡(luò) 收藏

          進(jìn)入網(wǎng)絡(luò)時(shí)代以來,龐大的信息流帶來了人類文化的豐富,也帶來了存儲信息的煩惱。尤其是視頻信息的龐大數(shù)據(jù),催生了視頻壓縮技術(shù)的需求。視頻壓縮技術(shù)成為多媒體時(shí)代最熱門的技術(shù)之一,并廣泛地在電視、電影、可視電話、視頻會議、遠(yuǎn)程監(jiān)控等圖像傳輸和存儲的領(lǐng)域。

          視頻壓縮

          從信息論觀點(diǎn)來看,圖像作為一個(gè)信源,描述信源的數(shù)據(jù)是信息量(信源熵)和信息冗余量之和。信息冗余量有許多種,如空間冗余、時(shí)間冗余、結(jié)構(gòu)冗余、知識冗余、視覺冗余等,數(shù)據(jù)壓縮實(shí)質(zhì)上是減少這些冗余量??梢娙哂嗔繙p少可以減少數(shù)據(jù)量而不減少信源的信息量。從數(shù)學(xué)上講,圖像可以看作一個(gè)多維函數(shù),壓縮描述這個(gè)函數(shù)的數(shù)據(jù)量實(shí)質(zhì)是減少其相關(guān)性。

          根據(jù)圖像信息的組成元素,采用了幀內(nèi)預(yù)測、幀間預(yù)測、運(yùn)動估值和運(yùn)動補(bǔ)償、整數(shù)變換等方式,以提高對圖像的壓縮率。其中幀內(nèi)預(yù)測是根據(jù)圖像中相鄰像素可能相同的性質(zhì),利用相鄰像素的相關(guān)性,采用新的幀內(nèi)預(yù)測模式,通過當(dāng)前像素塊的左邊和上邊的像素(已編碼重建的像素)進(jìn)行預(yù)測,只對實(shí)際值和預(yù)測值的差值進(jìn)行編碼,從而能用較少的比特?cái)?shù)來表達(dá)幀內(nèi)編碼的像素塊信息;而幀間預(yù)測通過多幀參考和更小運(yùn)動預(yù)測區(qū)域等方法對下一幀進(jìn)行精確預(yù)測,從而減少傳輸?shù)臄?shù)據(jù)量,實(shí)現(xiàn)降低圖像的時(shí)域相關(guān)性。H.264把運(yùn)動估值和幀內(nèi)預(yù)測的殘差結(jié)果從時(shí)域變換到頻域,使用了類似于4×4離散余弦變換(DCT)的整數(shù)變換,而不是像MPEG-2和MPEG-4那樣采用8×8 DCT的浮點(diǎn)數(shù)變換。以整數(shù)為基礎(chǔ)的空間變換具備效果好、計(jì)算快(只需加法與移位運(yùn)算),反變換過程中不會出現(xiàn)適配問題等優(yōu)點(diǎn),并且結(jié)合量化過程,保證了在16位計(jì)算系統(tǒng)中,計(jì)算結(jié)果有最大精度且不會溢出。4×4的變換塊也8×8更能減少塊效應(yīng)和震鈴效應(yīng)。

          工作

          是海思公司推出的一款基于H.264 BP算法的視頻壓縮,該采用ARM+DSP+硬件加速引擎的多核高集成度的構(gòu)架,具備強(qiáng)大的視頻處理功能??蓪?shí)現(xiàn)DVD畫質(zhì)的實(shí)時(shí)編碼性能,能自適應(yīng)各種網(wǎng)絡(luò)環(huán)境,確保畫面的清晰度和實(shí)時(shí)性,低碼率的H.264編碼技術(shù)極大減少網(wǎng)絡(luò)存儲空間,并通過集成DES/3DES加解密硬件引擎確保網(wǎng)絡(luò)安全。采用0.13μm工藝、LFBGA400封裝,大小為19×19mm,引腳間距為0.8mm,片內(nèi)集成了包括數(shù)字視頻接口、USB、ETH、I2S、I2C、GPIO、SPI、UART、SDRAM、DDR等接口,滿足各種場景的設(shè)備開發(fā)的同時(shí)能大大降低了設(shè)備的BOM成本。
          Hi3510的工作:視頻輸入單元通過ITU-R BT.601/656接口接收由VADC輸出的數(shù)字視頻信息,并通過AHB總線把接收到的原始圖像寫入到外存(SDR SDRAM或DDR SDRAM)中;視頻編器從外存中讀取圖像,進(jìn)行運(yùn)動估計(jì)(幀間預(yù)測)、幀內(nèi)預(yù)測、DCT變換、量化、熵編碼(CAVLC+Exp-Golomb)、IDCT變換、反量化、運(yùn)動補(bǔ)償?shù)炔僮?,最后將符合H.264協(xié)議的裸碼流和編碼重構(gòu)幀(作為下一幀的參考幀)寫入到外存中;視頻輸出單元從外存中讀取圖像并通過ITU-R BT.601/656接口送給VDAC進(jìn)行顯示,的需求不同,視頻輸出單元從外存中讀取的圖像內(nèi)容也不同,當(dāng)需要對輸入圖像進(jìn)行預(yù)覽時(shí),視頻輸出單元從外存中讀取原始圖像,當(dāng)需要觀察視頻編碼器的編碼效果時(shí),視頻輸出單元從外存中讀取編碼重構(gòu)幀;ARM對視頻編碼器輸出的碼流進(jìn)行協(xié)議棧的封裝,然后送網(wǎng)口發(fā)送,以實(shí)現(xiàn)視頻點(diǎn)播業(yè)務(wù)。
            
          如圖1所示,該由ARM+DSP+視頻編加速器+圖形引擎縮放器的核心構(gòu)成,集成了豐富的外圍接口,并內(nèi)部集成包括如數(shù)字水印、DES/3DES算法,使得單芯片能適應(yīng)基乎所有的工作,降低與其它芯片配合的開發(fā)難度,也免除廠商對算法等標(biāo)準(zhǔn)部分的內(nèi)容進(jìn)行重復(fù)開發(fā),大大降低了設(shè)備廠商的投入門檻。配合海思不同應(yīng)用形態(tài)的開發(fā)包,可以開發(fā)出PMP、可視電話、網(wǎng)絡(luò)監(jiān)控、PVR、可視對講等各種產(chǎn)品。



          圖1:Hi3510 H.264邏輯框圖。

          Hi3510編解碼方案的實(shí)現(xiàn)

          作為架構(gòu)的編解碼芯片,Hi3510在設(shè)計(jì)時(shí)充分考慮到兼容性和使用的方便性。支持幾乎所有的公司生產(chǎn)的系列AD/DA芯片。Hi3510既可以作為獨(dú)立的編碼器工作,也可以作為獨(dú)立的解碼器工作,也可以同時(shí)編解碼工作,充分考慮到了編解碼市場的各種應(yīng)用場合。Hi3510是一個(gè)典型的多應(yīng)用的單芯片解決方案,大大降低了設(shè)備的BOM組成和成本。如圖2所示為芯片同時(shí)編解碼的應(yīng)用。



          圖2:Hi3510是一款典型的多應(yīng)用的單芯片解決方案。
          i3510編解碼的應(yīng)用

          Hi3510自帶的Linux操作系統(tǒng)(同時(shí)支持Vxworks、WinCE等開放式操作系統(tǒng))和ARM處理器,使得芯片除了編解碼功能外,還可以實(shí)現(xiàn)許多豐富的應(yīng)用功能開發(fā)。如圖2所示,只要附加一片普通AD就可實(shí)現(xiàn)復(fù)合視頻信號的數(shù)字化、壓縮和存儲和傳輸?shù)墓δ?。Hi3510開發(fā)包提供上層API接口,就可以調(diào)用實(shí)現(xiàn)所有的芯片功能,并能開發(fā)自己的個(gè)性化功能。圖3為芯片的編碼方案的應(yīng)用設(shè)計(jì)。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();