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

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于小波視頻編解友專(zhuān)用芯片的視頻卡的設(shè)計(jì)與實(shí)現(xiàn)

          基于小波視頻編解友專(zhuān)用芯片的視頻卡的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2009-03-24 來(lái)源:網(wǎng)絡(luò) 收藏

          摘要:提出了一個(gè)利用編解碼搭建的壓縮解壓縮卡,對(duì)其硬件做了具體描述。

          本文引用地址:http://www.ex-cimer.com/article/167016.htm

          關(guān)鍵詞:變換 ADV612 IIC總線(xiàn) 采集與壓縮

          變換作為一種信號(hào)分析方法,具有多尺度、多分辨率分析和時(shí)域局部化與頻域局部化等優(yōu)點(diǎn)。小波變換是一種頻率上伸縮自由的變換。當(dāng)信號(hào)帶寬較窄時(shí),它可以通過(guò)縮小的方式使得對(duì)窄帶信號(hào)的刻劃較為精細(xì);當(dāng)信號(hào)帶寬較寬時(shí),它可以通過(guò)放大的方式使描述能夠滿(mǎn)足精度需要。因而小波變換是一種不受帶寬約束的圖像壓縮方法。與傳統(tǒng)的DCT變換的編碼方法相比,小波變換的圖像編碼是對(duì)整幅圖像進(jìn)行變換,充分利用了圖像整體相關(guān)性并消除了傳統(tǒng)分塊編碼方法帶來(lái)的方塊效應(yīng)。小波級(jí)數(shù)可以在不同分辨率下逼近某一函數(shù),多分辨率分解。多分辨率分解使我們可以在不同的刻畫(huà)精度上對(duì)源圖像進(jìn)行逼近,在不同層次上對(duì)原圖像進(jìn)行壓縮,突破了傳統(tǒng)編碼方法的壓縮比限制,從而獲得很高的壓縮比。小波變換的優(yōu)越性能使其在視頻圖像編碼領(lǐng)域得到廣泛應(yīng)用,目前,利用小波變換進(jìn)行圖像編碼的已經(jīng)問(wèn)世。

          本文介紹小波視頻編解碼專(zhuān)用芯片ADV612,并描述ADV612的視頻壓縮卡的

          1 小波視頻編解碼專(zhuān)用芯片ADV612

          1.1 ADV612系統(tǒng)功能介紹

          ADV612 是本文所描述的的核心部件,是由ANALOG公司推出的小波視頻編解碼專(zhuān)用芯片。ADV612采用了高密度GMOS集成電路技術(shù),整個(gè)芯片由數(shù)字視頻I/O接口,高清晰取景框控制、小波變換與幀抽取、片內(nèi)SRAM、片內(nèi)DRAM控制器、自適應(yīng)量化器與熵編碼器、FIFO壓縮數(shù)據(jù)緩存與主機(jī)接口等功能模塊搭成,如圖1所示。

          數(shù)字視頻I/O接口支持 CCIR601國(guó)際標(biāo)準(zhǔn)格式。編碼時(shí),數(shù)字視頻從數(shù)字視頻接口輸入,經(jīng)幀抽取和小波變換,送入量化器進(jìn)行量化。量化后的數(shù)據(jù)送入熵編碼器,進(jìn)行游程編碼和霍夫曼編碼,產(chǎn)生最后的壓縮數(shù)據(jù)流,送入集成于片內(nèi)的512×32位大小的FIFO緩存。當(dāng)片內(nèi)FIFO的數(shù)據(jù)量達(dá)到主機(jī)的預(yù)設(shè)值時(shí),ADV612發(fā)出中斷,通知主機(jī)取走數(shù)據(jù)。解碼過(guò)程與之相反,壓縮數(shù)據(jù)由主機(jī)送入FIFO,解碼后產(chǎn)生CCIR601格式的數(shù)據(jù)視頻數(shù)據(jù),從數(shù)字視頻接口輸出。

          1.2 ADV612的特性

          1.2.1 高清晰度取景框功能

          ADV612 支持一種稱(chēng)為高清晰度取景框的功能。該功能允許一幀中某一矩形區(qū)域相對(duì)于其他區(qū)域(我們稱(chēng)之為背景)有較低的壓縮比,或完全不進(jìn)行壓縮。矩形區(qū)域的位置和大小以及與背景的對(duì)比度由主機(jī)通過(guò)ADV612的主機(jī)接口輸入控制字來(lái)控制。該功能為用戶(hù)在不影響壓縮比的情況下選取某一感興趣的區(qū)域作高清晰度顯示提供了捷徑,從而使整個(gè)系統(tǒng)特別適用于監(jiān)控場(chǎng)合。

          1.2.2 精確的碼流控制

          ADV612 的自適應(yīng)量化器允許主機(jī)控制量化步長(zhǎng)。主機(jī)通過(guò)對(duì)前一幀圖像子帶編碼數(shù)據(jù)的統(tǒng)計(jì)計(jì)算出下一幀的量化步長(zhǎng),在下一幀壓縮開(kāi)始前將其寫(xiě)入量化步長(zhǎng)寄存器。通過(guò)量化步長(zhǎng)控制,主機(jī)可以獲得穩(wěn)定的壓縮碼流輸出。這對(duì)帶寬有限的網(wǎng)絡(luò)傳輸特別有利,使其不會(huì)因?yàn)閳D像內(nèi)容的劇烈變化而引起壓縮碼流的突變,造成網(wǎng)絡(luò)擁塞。

          1.2.3 硬件編碼實(shí)現(xiàn)小波變換

          考慮到小波變換龐大的計(jì)算量,ADV612的小波變換模塊采用硬件編碼的方法實(shí)現(xiàn)了以Morlet小波為正交小波基的小波變換和小波逆變換,保證了視頻信號(hào)能夠?qū)崟r(shí)處理。片內(nèi)集成了一片SRAM,用作變換進(jìn)的高速數(shù)據(jù)緩存。

          1.3 ADV612的主機(jī)接口

          為存儲(chǔ)主機(jī)設(shè)定的ADV612編解碼過(guò)程中所需參數(shù)和反映工作狀態(tài),ADV612在片內(nèi)集成了若干控制字寄存器和狀態(tài)寄存器??刂谱旨拇嫫骱蜖顟B(tài)寄存器稱(chēng)為間接寄存器,ADV612將控制字寄存器和狀態(tài)寄存器統(tǒng)一編址。主機(jī)不能直接訪(fǎng)問(wèn)間接寄存器。

          為訪(fǎng)問(wèn)間接寄存器和片內(nèi)FIFO,ADV612設(shè)置了一組可由主機(jī)直接訪(fǎng)問(wèn)的寄存器,稱(chēng)為直接寄存器。共有四個(gè)32位直接寄存器:間接地址寄存器、間接數(shù)據(jù)寄存器、壓縮數(shù)據(jù)寄存器、中斷控制和狀態(tài)寄存器。間接地址寄存器存放欲訪(fǎng)問(wèn)的間接寄存器的地址;間接數(shù)據(jù)寄存器存放從間接寄存器讀出的或欲寫(xiě)入間按寄存器的數(shù)據(jù);壓縮數(shù)據(jù)寄存器是片內(nèi)FIFO的映射,讀寫(xiě)該寄存器就會(huì)將數(shù)據(jù)讀出或?qū)懭隖IFO中;中斷控制和狀態(tài)寄存器的高16位是控制位,設(shè)置引起 ADV612向主機(jī)發(fā)出中斷的條件,低16位是狀態(tài)位,反映觸發(fā)當(dāng)前中斷的原因。

          ADV612的主機(jī)接口包括:32位數(shù)據(jù)總線(xiàn)(D31~D0)、兩位地址線(xiàn)(ADR1ADR0)、片選信號(hào)(CS)、讀信號(hào)(RD)、寫(xiě)信號(hào)(WR)、響應(yīng)信號(hào)(ACK)和中斷輸出(INT)。兩閏地址線(xiàn)用來(lái)選擇四個(gè)直接寄存器:

          ADR1,ADR0=(0,0) 間接地址寄存器

          (0,1)間接數(shù)據(jù)寄存器


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();