補足資料 GRIB2で使用するランレングス符号化法の解説 ランレングス符号化法とは、同一階調が連続する特性を持ったデータを圧縮する場合によ く用いられるデータ圧縮手法であり、G3ファックスにおける画像圧縮の基礎にも用いられて いる。レーダー観測に基づく降水量のデータは、降水のない領域が連続して広がる特性をもっ ているため、データ圧縮手法としてはランレングス符号化法が最適である。気象庁では、降 水短時間予報関連のGPV(国内二進形式格子点資料通報式)等でもこの手法を取りいれたデータ 圧縮を行っている。 1. ランレングス(runlength)符号化法とは 1次元に連続したデータがある場合、同じ値のデータの継続する長さがランレングスと呼ば れている。ある値とその値が連続する数(ランレングス)を1つのセットとし、セットをつなげ ることによって1次元に連続したデータを表現する手法がランレングス符号化法である。この セットの作り方(符号化手法)には何種類かの手法が提案されている。一般的なランレングス符 号化法については、市販されているデータ圧縮や画像処理のテキストを参考にされたいが、こ こでは気象庁がGRIB2資料で利用している符号化手法について簡単に説明する。 2. 気象庁のGRIB2における符号化手法 a. 格子点値の取りうる値(M) 値は2次元矩形領域の格子点上に存在し、0以上M以下の整数を取る。ここでMは、第5節 第13〜14オクテットにて設定されている。 b. 2次元データの1次元化 主走査方向を2次元矩形領域の左から右(通常西から東)、副走査方向を上から下(通常 北から南)として、2次元データを1次元化する。 c. 圧縮後の1格子点値当りのビット数(N) 圧縮されたデータ列の中で、1格子点値が占めるビット数であり、ランレングスのデータも このビット数が用いられる。Nは第5節第12オクテットに設定されている。 d. 1セット内の値とランレングスの配置 圧縮されたデータ列の中で0以上M以下のデータは各格子点の値とし、Mよりも大きなデー タはランレングスの値とする。1セットは、まず値を配置し、もしその値が連続するようで あれば後ろにランレングスを付加することによって作られる。Mよりも大きなデータが続く 場合はすべてそのセットのランレングスの情報であり、M以下のデータが現れた時点でその セットは終了し、このM以下のデータは次のセットの値となる。また、同じ値が連続しない 場合はランレングスは付加されず、次のセットに移る。 e. ランレングスの作成手法 (2^N−M)よりも大きなランレングスが必要となった場合、1データでは表現することがで きない。そのような場合、2データ以上を連続させてランレングスの情報を表すが、連続し たデータの単純な総和をランレングスとするのでは圧縮効率があがらないため、 L(=2^N−1−M)進数を用いてランレングスを表現している。値のすぐ後に続くデータをL進数 の1桁目R1={L^(1-1)×(data1−(M+1))}、それ以降n番目に続くデータはL進数n桁目 Rn={L^(n-1)×(datan-(M+1))}の情報とし、ランレングスはそれらの総和+1(R=ΣRi+1)とな る。 3. 圧縮データ例 N=4, M=10とした場合、L=5となり、 圧縮データ列= {3 9 12 6 4 15 2 1 0 13 12 2 3}は {3 9 9 6 4 4 4 4 4 2 1 0 0 0 0 0 0 0 0 2 3} と展開される。