关于求算术编码的码长
假设:p(0)=1/4,p(1)=3/4,a=11111100,p(a)=p(11111100)= 0.01112366 L==7
所得码长等于7
以上这段文字求码长用Matlab编写应该怎么编? 水平及专业有限, 没能看懂楼主的问题! 就是求概率的问题,p(11111100)就是(3/4)^6乘以(1/4)^2 L==7, 什麽意思? L==7,p(a)=为前面算出的数值.。7就是所求的码长。就是怎么用Matlab编写来求出这个7来? log(1/ 0.01112366)=7? or ln(1/ 0.01112366)=7?
好像都不是!
[ 本帖最后由 ChaChing 于 2009-1-29 22:48 编辑 ] 是log2(1/0.01112366),在把他取整~ pp=(3/4)^6*(1/4)^2;
LL=log2(1/pp); ceil(LL)
答案是7, 但不确定是否为楼主要的!?
还有建议以後问问题要明确点!
[ 本帖最后由 ChaChing 于 2009-1-29 23:03 编辑 ] 我这里只是举个例子,每次题目都不一样的。。。
回复 9楼 zhenyulu18 的帖子
没懂楼主的意思!还有使用ceil对吗? ceil是无条件进位! 我的意思是:p(a)的时候要根据p{0)、(p)1、和a的大小来求的,用ceil对的。。。
页:
[1]