• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            ts,ps,mpeg2 decoder and analysis

            mepg 2, iptv, stream parse,mov,mxf,gxf,ac3,aac

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              21 隨筆 :: 0 文章 :: 54 評(píng)論 :: 0 Trackbacks
            golomb 變長(zhǎng)編碼算法

            哥倫布編碼的解析過(guò)程

            golomb 編碼主要是針對(duì)整數(shù)進(jìn)行編碼,減少整數(shù)使用的空間位數(shù)
            golomb編碼時(shí),有一個(gè)可以變化的參數(shù)m

            本人的算法如下,很簡(jiǎn)便的!
             

            int My_get_se_golomb_31()

            {

                 int b = 0;

                 int nValue = 0;

                

                 b = My_get_ue_golomb_31();

                 nValue = b / 2;

                 if (b > 1 && b%2 ==0)

                 {

                     nValue = nValue * (-1);

                 }

             

                 return nValue;

            }

             

            int  My_get_ue_golomb_31()

            {

                 int b = 0;

                 int i = 0;

             

                 do

                 {

                     i ++;

                     if (i <32)

                          b = Bitstream_get(i,FALSE);

                     else

                     {

                          outlog("SPS: nreserved should is zero.");

                          break;

                     }       

                 } while(!b);

                

                 Bitstream_get(i);

             

                 b = (1 <<(i - 1)) -1 + Bitstream_get(i-1);    

                 return b;

            }





             

             

            http://ludajun.blog.sohu.com/

             

             例如:取m = 1, 對(duì)整數(shù)x = 4進(jìn)行編碼, 算法如下
            b = 2
            的m次方
            q = int((x-1)/ b)
            r = x - qb - 1

            由此計(jì)算出 q = 1, r = 1
            二進(jìn)制編碼為q 個(gè) 1,  個(gè)0, 然后是r的二進(jìn)制編碼
            所以編碼為:101

            解碼思路:
            先算出所給整數(shù)的位數(shù)n
            然后從高位--〉低位找到第一個(gè)0所在的位置i,這樣就能 q = n - i, r = x的第0位到第i-1位所表示的數(shù)字(由低位--〉高位)
            最終解碼結(jié)果為qb + 1 + r

            python
            實(shí)現(xiàn)的 算法:
            from math import log

            m = 1

            def compress(x):
                q = (x - 1) >> m
                r = x - (q << m) - 1
                result = ((((1 << q) - 1) << 1) << m) | r
                return result

            def uncompress(x):
                if x == 0:
                    return 1
                #計(jì)算x的位數(shù)
                n = int(log(x, 2))
                if n == 0:
                    return x + 1
                for i in range(n, -1, -1):
                    if (x & (1 << i)) == 0:
                        q = n - i
                        r = x & (1 << i - 1)
                        return r + 1 + (q << m)



            TS,MPEG2,dvbc專家 2009-07-28 17:32 發(fā)表評(píng)論

            文章來(lái)源:http://www.cnitblog.com/dvb-dvb/archive/2009/07/28/60423.html
            posted on 2009-07-28 17:32 TS,MPEG2,dvbc專家 閱讀(1239) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            ts,ps,mpeg2 decoder and analysis,ts分析.
            国产精品久久成人影院| 久久精品中文字幕有码| 久久午夜伦鲁片免费无码| 久久综合给久久狠狠97色| 狠狠色丁香久久婷婷综合五月| 日韩欧美亚洲综合久久影院d3| 亚洲国产精品综合久久一线| 丁香五月网久久综合| 怡红院日本一道日本久久| 久久精品亚洲AV久久久无码| 狠狠干狠狠久久| 国产69精品久久久久久人妻精品| 99久久精品国产毛片| 亚洲av成人无码久久精品| 国产精品午夜久久| 久久综合九色综合欧美狠狠| 亚洲国产精品无码久久SM| 亚洲精品无码久久久久AV麻豆| 亚洲国产天堂久久综合网站| 狠狠色婷婷久久一区二区三区 | 国产精品一区二区久久国产| 最新久久免费视频| 麻豆久久| 欧洲国产伦久久久久久久| 久久国产免费| 开心久久婷婷综合中文字幕| 国产精品99久久精品爆乳| 91久久精品国产免费直播| 久久久久综合网久久| 青青青国产成人久久111网站| 亚洲AV无码久久精品成人| 久久人人爽人人爽人人片av高请| 丁香色欲久久久久久综合网| 久久精品国产2020| 无码久久精品国产亚洲Av影片| 久久久亚洲AV波多野结衣| 伊人色综合久久天天人手人婷| 中文字幕乱码人妻无码久久| 亚洲AV日韩AV天堂久久| 麻豆精品久久精品色综合| 国内精品久久久久国产盗摄|