/*---------------------------------------------------------------------------*/
/*  ランレングス圧縮、展開関数
＜圧縮＞
      書式：int rl_arc_b(source,dist,size);
      引数：     char *source;     圧縮元のデータの先頭アドレス
                 char *dist;       圧縮先バッファの先頭アドレス
                 int  size;        圧縮元データのサイズ
    戻り値：int 圧縮後のサイズ
      機能：バイト単位でランレングス圧縮を実行します。


      書式：int rl_arc_w(source,dist,size);
      引数：     short *source;     圧縮元のデータの先頭アドレス
                 short *dist;       圧縮先バッファの先頭アドレス
                 int   size;        圧縮元データのサイズ
    戻り値：int 圧縮後のサイズ
      機能：ワード単位でランレングス圧縮を実行します。


      書式：int rl_arc_l(source,dist,size);
      引数：     int *source;     圧縮元のデータの先頭アドレス
                 int *dist;       圧縮先バッファの先頭アドレス
                 int  size;       圧縮元データのサイズ
    戻り値：int 圧縮後のサイズ
      機能：ロングワード単位でランレングス圧縮を実行します。

＜展開＞
      書式：int rl_ext_b(source,dist,size);
      引数：     char *source;     展開元のデータの先頭アドレス
                 char *dist;       展開先バッファの先頭アドレス
                 int  size;        展開元のデータのサイズ
    戻り値：int 展開後のサイズ
      機能：バイト単位でランレングス展開を実行します。


      書式：int rl_ext_w(source,dist,size);
      引数：     short *source;     展開元のデータの先頭アドレス
                 short *dist;       展開先バッファの先頭アドレス
                 int   size;        展開元のデータのサイズ
    戻り値：int 展開後のサイズ
      機能：ワード単位でランレングス展開を実行します。


      書式：int rl_ext_l(source,dist,size);
      引数：     int *source;     展開元のデータの先頭アドレス
                 int *dist;       展開先バッファの先頭アドレス
                 int size;        展開元のデータのサイズ
    戻り値：int 展開後のサイズ
      機能：ロングワード単位でランレングス展開を実行します。

  注）size が int 型のため、ファイルサイズは圧縮後、展開後共に
      2147483648バイトまでしか扱えません.


  p.s.殆ど圧縮ききません(^^;;;    ・・・
      というより、めったに元サイズ以下になることないです(^^;;;;;;
      ほとんど「ランレングス膨張、復活関数」ｸｻｲ(笑ｴﾈｰ(ｫ
      （gtnlib.a の前verの gtn.a とのデータ互換以外には使い道なさそう(^^;）
*/

extern int rl_arc_b(char* source, char* dist, int size);
extern int rl_ext_b(char* source, char* dist, int size);
extern int rl_arc_w(short* source, short* dist, int size);
extern int rl_ext_w(short* source, short* dist, int size);
extern int rl_arc_l(int* source, int* dist, int* size);
extern int rl_ext_l(int* source, int* dist, int* size);
