游程编码的解码逻辑

游程编码的解码逻辑
第一个字节允许值0到15,17,18。
是0到15,记录目标值,计数为1。
是16,报错。
是17,18,目标值为0。暂时不计数。
第二字节到倒数第二字节。
是0到15,分两种情况,一种是计数器,另一种是普通数值,判定条件是前一个字节的数值大于15是计数器。否则是普通数值。
如果是计数器,累加计数值
如果是普通数值,与之前的数值对比,如果相同,累加计数,如果不同,输出之前的序列,并且新数值计数为1。
是16,之前目标数值是非0值不处理,是0,则报错。
是17和18,之前目标数值是0值,不处理,是非0值,输出之前的序列。
最后一个字节,在做之前的工作后,打印这个最后字节的序列。
function  code_left()
{var input=[4,16,1,3,3,3,6,16,3,16,0,17,3,2,16,0];
var result=[];
var  target_val=0;
var  count=0;
for(var i=0;i<input.length;i++)
 {
   if(i==0)
     {
       if(input[i]<16){target_val=input[0];
       count=1;}
       else if(input[i]>16)
        {target_val=0;}
     }
   else
     {if(input[i-1]>15)
       {
          if(input[i-1]==18){count=count+input[i]+11;}
          else{count=count+input[i]+3;}
        }
      else
        {
           if(input[i]==target_val)
            {count=count+1;}
            else
{result=write_array(result,target_val,count);
count=1;
target_val=input[i];
}
         }
     }
    if(i==input.length-1)
     {
result=write_array(result,target_val,count);
     }
 }
}

//
function write_array(result,target_val,count)
{
var arr=result;
for(var i=0;i<count;i++)
{arr.push(target_val);}
return  arr;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
游程编码是一种无损压缩编码方法,在计算机科学领域中十分活跃。它可以通过将连续重复的数据序列转换为一个标记和一个计数值的方式来减少数据的存储空间。在matlab中,可以使用游程编码实现图像压缩算法。有人使用matlab编写了一个简单的游程编码解码程序,可以读入一张图片,进行游程编码,然后再解码输出显示。可以使用subplot和imshow函数将编码后的图像进行显示。例如,使用subplot(122)和imshow(uint8(unzipped)*255)函数可以将经过游程解码后的图像显示出来。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [【图像压缩】基于游程编码实现图像压缩算法附matlab代码](https://blog.csdn.net/m0_60703264/article/details/130313532)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [youchengbianma.zip_matlab游程解码_游程编码_游程编码MATLAB](https://download.csdn.net/download/weixin_42659194/86528077)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王伟1982

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值