ts,ps,mpeg2 decoder and analysis

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

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  21 随笔 :: 0 文章 :: 54 评论 :: 0 Trackbacks
<2009年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

公告

TS,MPEG2, EPG, dvbc,数字电视 专家 我是该博主的经纪人,该博主擅长数字电视EGP前端,播发,安装,调试等各类技术处理. 有意承接各类相关业务.如有需求,请与本人联系.

常用链接

留言簿(4)

随笔档案(21)

MyURL

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

golomb 变长编码算法

哥伦布编码的解析过程

golomb 编码主要是针对整数进行编码,减少整数使用的空间位数
golomb编码时,有一个可以变化的参数m

本人的算法如下,很简便的!
 

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, 对整数x = 4进行编码, 算法如下
b = 2
的m次方
q = int((x-1)/ b)
r = x - qb - 1

由此计算出 q = 1, r = 1
二进制编码为q  1,  个0, 然后是r的二进制编码
所以编码为:101

解码思路:
先算出所给整数的位数n
然后从高位--〉低位找到第一个0所在的位置i,这样就能 q = n - i, r = x的第0位到第i-1位所表示的数字(由低位--〉高位)
最终解码结果为qb + 1 + r

python
实现的 算法:
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
    #计算x的位数
    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 发表评论

文章来源:http://www.cnitblog.com/dvb-dvb/archive/2009/07/28/60423.html
posted on 2009-07-28 17:32 TS,MPEG2,dvbc专家 阅读(1216) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


ts,ps,mpeg2 decoder and analysis,ts分析.