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

          新聞中心

          視頻壓縮

          作者: 時間:2010-10-09 來源:網(wǎng)絡(luò) 收藏

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

          2. 算術(shù)編碼
          霍夫曼編碼的每個代碼都要使用一個整數(shù)位, 如果一個符號只需要用2.5位就能表示, 但在霍夫曼編碼中卻必須用3個符號來表示, 因此它的效率較低。 與其相比, 算術(shù)編碼并不是為每個符號產(chǎn)生一個單獨的代碼, 而是使整條信息共用一個代碼, 增加到信息上的每個新符號都遞增地修改輸出代碼。

          假設(shè)信源由4個符號S1、 S2、 S3和S4組成, 其概率模型如表6-1所示。 把各符號出現(xiàn)的概率表示在如圖6-3所示的單位概率區(qū)間之中, 區(qū)間的寬度代表概率值的大小, 各符號所對應(yīng)的子區(qū)間的邊界值, 實際上是從左到右各符號的累積概率。 在算術(shù)編碼中通常采用二進(jìn)制的小數(shù)來表示概率, 每個符號所對應(yīng)的概率區(qū)間都是半開區(qū)間, 如S1對應(yīng)[0, 0.001), S2對應(yīng)[0.001, 0.011)。 算術(shù)編碼所產(chǎn)生的碼字實際上是一個二進(jìn)制小數(shù)值的指針, 該指針指向所編的符號所對應(yīng)的概率區(qū)間。

          表6-1 信源概率模型和算術(shù)編碼過程

          圖 6-3 算術(shù)編碼過程示意圖

          若將符號序列S3S3S2S4進(jìn)行算術(shù)編碼, 序列的第一個符號為S3, 我們用指向圖6-3中第3個子區(qū)間的指針來代表這個符號, 由此得到碼字0.011。 后續(xù)的編碼將在前面編碼指向的子區(qū)間內(nèi)進(jìn)行。 將[0.011, 0.111)區(qū)間再按符號的概率值劃分成4份, 對第二個符號S3, 指針指向0.1001,碼 字串變?yōu)?.1001。 然后S3所對應(yīng)的子區(qū)間又被劃分為4份, 開始對第3個符號進(jìn)行編碼……。

          算術(shù)編碼的基本法則如下:
          (1) 初始狀態(tài): 編碼點(指針?biāo)柑?C0=0, 區(qū)間寬度A0=1。
          (2) 新編碼點: Ci= Ci-1 + Ai-1×Pi。
          式中, Ci-1是原編碼點; Ai-1是原區(qū)間寬度; 
          Pi所編符號對應(yīng)的累積概率。
          新區(qū)間寬度Ai= Ai-1×pi
          式中, pi為所編符號對應(yīng)的概率。

          根據(jù)上述法則, 對序列S3S3S2S4進(jìn)行算術(shù)編碼的過程如下:
          第一個符號S3:
          C1=C0+A0×P1=0+1×0.011=0.011
          A1=A0×p1=1×0.1=0.1
          [0.011,0.111]



          關(guān)鍵詞: 壓縮 視頻

          評論


          相關(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); })();