2012年9月4日

ランレングス法をJavaScriptの正規表現で書いてみた

ランレングス法は、BMP などに使われるデータ圧縮アルゴリズムです

連続したデータが多ければ圧縮率は上がりますが、
そうでない場合、逆にデータ量が増えることもあります
  1. // ランレングス圧縮/解凍  
  2. var RunLength = {  
  3.   compress : function(s) {  
  4.     return s.replace(/([\s\S])\1{0,8}/gfunction(a, c) {  
  5.       return c + a.length;  
  6.     });  
  7.   },  
  8.   decompress : function(s) {  
  9.     return s.replace(/([\s\S])(\d)/gfunction(a, c, n) {  
  10.       return new Array(++n).join(c);  
  11.     });  
  12.   }  
  13. };  



0 件のコメント:

コメントを投稿