从品牌网站建设到网络营销策划,从策略到执行的一站式服务
C++中怎么实现算术编码,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
创新互联提供高防服务器租用、云服务器、香港服务器、绵阳电信机房机柜租用等
C++算术编码需要输入的是符号,各个符号的概率还有需要编码的符号序列,根据概率可以算出初始编码间隔,先设几个变量在后面可用:High——当前编码的上限,Low——当前编码的下限,high——中间变量,用来计算下一个编码符号的当前间隔的上限,low——中间变量,用来计算下一个编码符号的当前间隔的下限,d——当前间隔之间的距离。
第1个编码符号的当前间隔为其初始的编码间隔,第i个编码符号的当前间隔为第i-1个编码后的[Low,High),第i+1个编码符号的当前间隔算法如下:high=Low+d*第i+1个初始编码符号对应的上限,low=Low+d*第i+1个编码符号对应的下限,然后High=high,Low=low,d=d*第i个编码符号的概率。
编码程序如下:
#include#define M 100 #define N 4 class suanshu { int count,length; char number[N],n; long double chance[N],c; char code[M]; long double High,Low,high,low,d; public: suanshu() {High=0;Low=0;} void get_number(); void get_code(); void coding(); ~suanshu(){} }; void suanshu::get_number() { cout<<"please input the number and its chance."< >n>>c; number[i]=n; chance[i]=c; } if(i==20) cout<<"the number is full."< 看完上述内容,你们掌握C++中怎么实现算术编码的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
名称栏目:C++中怎么实现算术编码
URL地址:http://cdkjz.cn/article/jddpgi.html
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图