JPH0778065A - データ列処理方法 - Google Patents
データ列処理方法Info
- Publication number
- JPH0778065A JPH0778065A JP9619891A JP9619891A JPH0778065A JP H0778065 A JPH0778065 A JP H0778065A JP 9619891 A JP9619891 A JP 9619891A JP 9619891 A JP9619891 A JP 9619891A JP H0778065 A JPH0778065 A JP H0778065A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- block
- value
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
(57)【要約】
【目的】 デジタル・データの圧縮処理に好適なデータ
列処理方法の提供。 【構成】 各ワードが夫々Mビットから成るNワードの
入力データ列132を処理するデータ列処理方法であ
り、以下のステップを含む。 (a)上記入力データ列のN個の各ワードから第1ビッ
トを順次選択することにより第1のNビットのワードを
作成し、(b)上記入力データ列のN個の各ワードから
次のビットを順次選択することにより次のNビットのワ
ードを作成し、(c)上記ステップ(b)を繰り返し、
上記入力データ列の各ワードのMビット全てに夫々対応
するM個のNビットのワードを含むデータ列134を作
成する。 【効果】 簡単な処理にもかかわらずデータの反復頻度
を格段に向上したデータ列を作成出来るので、既存の圧
縮処理アルゴリズムに応用するだけで圧縮効率を極めて
容易に改善することが可能になる。
列処理方法の提供。 【構成】 各ワードが夫々Mビットから成るNワードの
入力データ列132を処理するデータ列処理方法であ
り、以下のステップを含む。 (a)上記入力データ列のN個の各ワードから第1ビッ
トを順次選択することにより第1のNビットのワードを
作成し、(b)上記入力データ列のN個の各ワードから
次のビットを順次選択することにより次のNビットのワ
ードを作成し、(c)上記ステップ(b)を繰り返し、
上記入力データ列の各ワードのMビット全てに夫々対応
するM個のNビットのワードを含むデータ列134を作
成する。 【効果】 簡単な処理にもかかわらずデータの反復頻度
を格段に向上したデータ列を作成出来るので、既存の圧
縮処理アルゴリズムに応用するだけで圧縮効率を極めて
容易に改善することが可能になる。
Description
【0001】
【産業上の利用分野】本発明は、デジタル・データ列の
圧縮処理に好適なデータ処理方法に関する。
圧縮処理に好適なデータ処理方法に関する。
【0002】
【従来技術及び発明が解決しようとする課題】現在のデ
ジタル・データ圧縮方法には、処理速度、圧縮率及び手
法の複雑さ等において相互に関連する制限がある。デー
タ圧縮方法に必要なデータ構造が複雑となったり、多量
の計算及び記憶容量のオーバヘッドも必要となることが
ある。このようなデータ圧縮方法の中には、単一のデー
タ・ブロック内に総べての収集データを格納する必要が
あり、更に、処理中におけるデータの安定性も要求され
るものがある。また、非圧縮データの場合よりも大きな
記憶容量を必要とする出力データが生じる圧縮方法もあ
り、この場合には圧縮処理をする意味がなくなってしま
う。更に他の圧縮方法では、正確なデータ表現と圧縮率
との間で相互に妥協せざるを得ないものもある。
ジタル・データ圧縮方法には、処理速度、圧縮率及び手
法の複雑さ等において相互に関連する制限がある。デー
タ圧縮方法に必要なデータ構造が複雑となったり、多量
の計算及び記憶容量のオーバヘッドも必要となることが
ある。このようなデータ圧縮方法の中には、単一のデー
タ・ブロック内に総べての収集データを格納する必要が
あり、更に、処理中におけるデータの安定性も要求され
るものがある。また、非圧縮データの場合よりも大きな
記憶容量を必要とする出力データが生じる圧縮方法もあ
り、この場合には圧縮処理をする意味がなくなってしま
う。更に他の圧縮方法では、正確なデータ表現と圧縮率
との間で相互に妥協せざるを得ないものもある。
【0003】ランレングス・エンコーディングと呼ばれ
るデータ圧縮方法があり、この方法では入力データの量
を出力データの量が上回るという問題は生じない。しか
し、この方法では反復値を持たないデータ部分が長い
と、効率的な圧縮処理が行えない。例えば、傾斜波の場
合にはランレングス・エンコーディングで十分に圧縮す
ることは出来ない。更に、この圧縮方法で10ビットを
超えるデータ分解能を達成する際には、略近似している
データを等しいデータとして変換するようにアルゴリズ
ムを修正しない限りノイズの影響が重大な問題となる。
このようなアルゴリズムの修正を行うと、圧縮データを
復元処理した時に元のデータと異なるデータが再生され
る結果となる。
るデータ圧縮方法があり、この方法では入力データの量
を出力データの量が上回るという問題は生じない。しか
し、この方法では反復値を持たないデータ部分が長い
と、効率的な圧縮処理が行えない。例えば、傾斜波の場
合にはランレングス・エンコーディングで十分に圧縮す
ることは出来ない。更に、この圧縮方法で10ビットを
超えるデータ分解能を達成する際には、略近似している
データを等しいデータとして変換するようにアルゴリズ
ムを修正しない限りノイズの影響が重大な問題となる。
このようなアルゴリズムの修正を行うと、圧縮データを
復元処理した時に元のデータと異なるデータが再生され
る結果となる。
【0004】別の圧縮法として4分木法(quadtree)と
呼ばれるものがある。4角形の2次元配列を巡回的に圧
縮する際に、(1)配列の大きさが1である場合には単一
の非圧縮値として配列を表すことにより処理し、(2)配
列内の全ての値が近似的に等しい場合には単一の圧縮値
として配列を表すことにより処理し、(3)それ以外の場
合には配列を4つのサブ配列に分割し、角サブ配列毎に
圧縮処理を実行する。この方法の欠点は、圧縮処理中に
おけるデータ配列の安定性が必要であること、及び処理
対象の全データ配列を単一のメモリ・ブロックに記憶す
る必要のあることである。更に、この方法に含まれるデ
ータ構造は複雑であり、計算負荷及び必要な記憶容量も
大きく、ある配列の場合には圧縮データを記憶する為に
元の非圧縮データよりも大きな容量を必要とする結果を
生じたり、入力データを正確に復元する為には圧縮率を
犠牲にしなければならない等の欠点もある。
呼ばれるものがある。4角形の2次元配列を巡回的に圧
縮する際に、(1)配列の大きさが1である場合には単一
の非圧縮値として配列を表すことにより処理し、(2)配
列内の全ての値が近似的に等しい場合には単一の圧縮値
として配列を表すことにより処理し、(3)それ以外の場
合には配列を4つのサブ配列に分割し、角サブ配列毎に
圧縮処理を実行する。この方法の欠点は、圧縮処理中に
おけるデータ配列の安定性が必要であること、及び処理
対象の全データ配列を単一のメモリ・ブロックに記憶す
る必要のあることである。更に、この方法に含まれるデ
ータ構造は複雑であり、計算負荷及び必要な記憶容量も
大きく、ある配列の場合には圧縮データを記憶する為に
元の非圧縮データよりも大きな容量を必要とする結果を
生じたり、入力データを正確に復元する為には圧縮率を
犠牲にしなければならない等の欠点もある。
【0005】IEEEコンピュータ(1984年6月
刊)の8〜19頁に記載されているLZW(Limpel-Ziv
-Welch)アルゴリズムでは、繰り返しデータ列の傾向の
あるデータを圧縮している。この方法ではデータ処理中
に辞書を作成し、繰り返しデータ列に対応する単語コー
ドを作成する。このアルゴリズムの欠点は、圧縮サンプ
ルのデータ・ワードの量が元の非圧縮データの量を超え
てしまうことである。更に、疑似ランダムな入力データ
の場合には、圧縮率は低く、必要なデータの記憶容量も
大きくなってしまう。この理由は、作成した辞書を記憶
するのに必要なメモリ容量及び圧縮データの復元用のL
IFOスタックの容量が大きくなるからである。その他
の圧縮方法の場合でも、疑似ランダムな入力データの場
合には圧縮率は非常に低下してしまう。
刊)の8〜19頁に記載されているLZW(Limpel-Ziv
-Welch)アルゴリズムでは、繰り返しデータ列の傾向の
あるデータを圧縮している。この方法ではデータ処理中
に辞書を作成し、繰り返しデータ列に対応する単語コー
ドを作成する。このアルゴリズムの欠点は、圧縮サンプ
ルのデータ・ワードの量が元の非圧縮データの量を超え
てしまうことである。更に、疑似ランダムな入力データ
の場合には、圧縮率は低く、必要なデータの記憶容量も
大きくなってしまう。この理由は、作成した辞書を記憶
するのに必要なメモリ容量及び圧縮データの復元用のL
IFOスタックの容量が大きくなるからである。その他
の圧縮方法の場合でも、疑似ランダムな入力データの場
合には圧縮率は非常に低下してしまう。
【0006】従って、本発明の目的は、疑似ランダム又
は高周波数のデータを忠実に圧縮し、且つ正確な復元を
可能とすると共に、使用メモリ容量も少なく、妥当な圧
縮率が実現出来、実施が容易なデジタル・データの圧縮
処理に好適なデータ列処理方法を提供することである。
は高周波数のデータを忠実に圧縮し、且つ正確な復元を
可能とすると共に、使用メモリ容量も少なく、妥当な圧
縮率が実現出来、実施が容易なデジタル・データの圧縮
処理に好適なデータ列処理方法を提供することである。
【0007】
【課題を解決する為の手段】本発明は、各ワードが夫々
Mビットから成るNワードの入力データ列を処理する新
規なデータ列処理方法であり、以下のステップを含む。 (a)上記入力データ列のN個の各ワードから第1ビッ
トを順次選択することにより第1のNビットのワードを
作成し、(b)上記入力データ列のN個の各ワードから
次のビットを順次選択することにより次のNビットのワ
ードを作成し、(c)上記ステップ(b)を繰り返し、
上記入力データ列の各ワードのMビット全てに夫々対応
するM個のNビットのワードを作成する。
Mビットから成るNワードの入力データ列を処理する新
規なデータ列処理方法であり、以下のステップを含む。 (a)上記入力データ列のN個の各ワードから第1ビッ
トを順次選択することにより第1のNビットのワードを
作成し、(b)上記入力データ列のN個の各ワードから
次のビットを順次選択することにより次のNビットのワ
ードを作成し、(c)上記ステップ(b)を繰り返し、
上記入力データ列の各ワードのMビット全てに夫々対応
するM個のNビットのワードを作成する。
【0008】本発明のデータ列処理方法を用いた圧縮方
法によれば、入力デジタル・データ列X0,X1,・・
・,XN-1,XN,XN+1,・・・,XM(N及びMは整
数、各データ値はYビット)を以下のように圧縮する。 (a)X0,X1,・・・,XN-1の各データの第1ビッ
トを選択する。 (b)これらNビットのデータからNビット・データ・
ワードを作る。 (c)このデータ・ワードと以前に作成したデータ・ワ
ードを比較し、比較ワードが等しい場合には、反復計数
値をインクリメントする。 (d)比較ワードが等しくない場合には、反復順序を記
憶し、以前に作成したデータ・ワードを現在発生したば
かりのデータ・ワードで置換し、反復計数値を1に設定
する。 (e)上記入力デジタル・データ列の残りの全てのデー
タ値に対して上記ステップ(a)〜(d)を繰り返す。 (f)Yビットの各ビットに対して上記ステップ(a)
〜(e)を繰り返す。
法によれば、入力デジタル・データ列X0,X1,・・
・,XN-1,XN,XN+1,・・・,XM(N及びMは整
数、各データ値はYビット)を以下のように圧縮する。 (a)X0,X1,・・・,XN-1の各データの第1ビッ
トを選択する。 (b)これらNビットのデータからNビット・データ・
ワードを作る。 (c)このデータ・ワードと以前に作成したデータ・ワ
ードを比較し、比較ワードが等しい場合には、反復計数
値をインクリメントする。 (d)比較ワードが等しくない場合には、反復順序を記
憶し、以前に作成したデータ・ワードを現在発生したば
かりのデータ・ワードで置換し、反復計数値を1に設定
する。 (e)上記入力デジタル・データ列の残りの全てのデー
タ値に対して上記ステップ(a)〜(d)を繰り返す。 (f)Yビットの各ビットに対して上記ステップ(a)
〜(e)を繰り返す。
【0009】
【実施例】図1は、本発明のデータ列処理方法の一実施
例を説明する為の図である。入力信号は、図示するよう
な傾斜波信号である。傾斜波信号では、サンプル・デー
タ値のLSBは、隣接するサンプル毎に連続的に変化す
るが、MSBは、1傾斜波期間中に1度だけ変化する。
従って、本発明は、このMSBのビット値のように長い
反復周期で変化する信号を効率的に圧縮する際に好適な
データ列処理方法を提供するものであり、従来のランレ
ングス・エンコーディングのようにサンプル毎に変化す
るデータを圧縮するものより圧縮効率が高く出来る。図
1の入力傾斜波信号130は、1ワード4ビットと仮定
すると、デジタル・データ列132に変換される。即
ち、図1に示すように、0000、0001、0010、0011、010
0、0101、0110、0111、1000、1001、1010、1011、110
0、1101、1110及び1111である。
例を説明する為の図である。入力信号は、図示するよう
な傾斜波信号である。傾斜波信号では、サンプル・デー
タ値のLSBは、隣接するサンプル毎に連続的に変化す
るが、MSBは、1傾斜波期間中に1度だけ変化する。
従って、本発明は、このMSBのビット値のように長い
反復周期で変化する信号を効率的に圧縮する際に好適な
データ列処理方法を提供するものであり、従来のランレ
ングス・エンコーディングのようにサンプル毎に変化す
るデータを圧縮するものより圧縮効率が高く出来る。図
1の入力傾斜波信号130は、1ワード4ビットと仮定
すると、デジタル・データ列132に変換される。即
ち、図1に示すように、0000、0001、0010、0011、010
0、0101、0110、0111、1000、1001、1010、1011、110
0、1101、1110及び1111である。
【0010】各入力データ値のビット値を選択及びグル
ープ分けすることにより中間データ列134が生成され
る。先ず、入力データ列の各データ値のLSBを選択
し、4ビットのデータ・ワードにグループ分けして、01
01、0101、0101及び0101のデータ列を得る。次に、その
次のビットを選択及びグループ分けして、0011、0011、
0011及び0011を得る。更に次のビットを選択及びグルー
プ分けして、0000、1111、0000及び1111のデータ列を得
る。最後に、MSBを選択及びグループ分けして、000
0、0000、1111及び1111のデータ列を得る。以上の処理
をビット・パッキング処理(Bit Packing)と呼ぶこと
にする。
ープ分けすることにより中間データ列134が生成され
る。先ず、入力データ列の各データ値のLSBを選択
し、4ビットのデータ・ワードにグループ分けして、01
01、0101、0101及び0101のデータ列を得る。次に、その
次のビットを選択及びグループ分けして、0011、0011、
0011及び0011を得る。更に次のビットを選択及びグルー
プ分けして、0000、1111、0000及び1111のデータ列を得
る。最後に、MSBを選択及びグループ分けして、000
0、0000、1111及び1111のデータ列を得る。以上の処理
をビット・パッキング処理(Bit Packing)と呼ぶこと
にする。
【0011】以上のビット・パッキング処理により作成
した中間データ列にランレングス・エンコーディングの
処理を実行して、本発明による圧縮出力データ列136
が次のように作成される。即ち、REPEAT、0101、(4)、R
EPEAT、0011、(4)、0000、1111、0000、1111、0000、00
00、1111及び1111となる。ここで、「REPEAT」は、反復
マーカを示しており、括弧内の数値は反復ワードの計数
値を示している。このように、最初の16ワードから成
る入力データ列132は、14ワードの出力データ列に
圧縮されたことになる。尚、この実施例では16ワード
の入力データ列を圧縮しているが、もっと多くのワード
を含むデータ列に適用すれば、更に圧縮率が向上するこ
とに留意されたい。特に、この実施例の場合よりもMS
Bの変化頻度が少ないデータ列の場合には、その効果は
一層顕著となる。
した中間データ列にランレングス・エンコーディングの
処理を実行して、本発明による圧縮出力データ列136
が次のように作成される。即ち、REPEAT、0101、(4)、R
EPEAT、0011、(4)、0000、1111、0000、1111、0000、00
00、1111及び1111となる。ここで、「REPEAT」は、反復
マーカを示しており、括弧内の数値は反復ワードの計数
値を示している。このように、最初の16ワードから成
る入力データ列132は、14ワードの出力データ列に
圧縮されたことになる。尚、この実施例では16ワード
の入力データ列を圧縮しているが、もっと多くのワード
を含むデータ列に適用すれば、更に圧縮率が向上するこ
とに留意されたい。特に、この実施例の場合よりもMS
Bの変化頻度が少ないデータ列の場合には、その効果は
一層顕著となる。
【0012】圧縮データ列136の解読にはフレーム情
報が必要になる。即ち、出力データ列のデータ・ワード
に入力データ列のデータ・ワードのどのビットが含まれ
ているかを示す情報が必要である。このフレーム情報を
得る方法は、各データ列の前にどのビットの値が次に続
くかを示すワードを作ることである。このようなフレー
ム情報ワードを加えても、データ列の全長は数百キロバ
イト程度あるので、圧縮率に与える影響は実質的に無視
し得る。このフレーム情報を得る為の別の方法では、デ
ータ列の総サンプル数を示し、入力データ列の復元処理
の際にその総サンプル数をサンプルのビット数で除算
し、その結果に基づいて圧縮データ列のデータを分解復
元する。
報が必要になる。即ち、出力データ列のデータ・ワード
に入力データ列のデータ・ワードのどのビットが含まれ
ているかを示す情報が必要である。このフレーム情報を
得る方法は、各データ列の前にどのビットの値が次に続
くかを示すワードを作ることである。このようなフレー
ム情報ワードを加えても、データ列の全長は数百キロバ
イト程度あるので、圧縮率に与える影響は実質的に無視
し得る。このフレーム情報を得る為の別の方法では、デ
ータ列の総サンプル数を示し、入力データ列の復元処理
の際にその総サンプル数をサンプルのビット数で除算
し、その結果に基づいて圧縮データ列のデータを分解復
元する。
【0013】図1の圧縮データ列136では、「REPEA
T」は、入力データ列のどのデータとも対応しないよう
に選択されている。しかし、この反復マーカ「REPEAT」
が中間データ列の何れか1つのデータと等しい値を有し
ている場合には、復元処理の際に中間データ列のデータ
であるか反復マーカ「REPEAT」であるか区別出来ないの
で、復元結果が変化する。これを防ぐ為に例えば、「RE
PEAT」を「0000」に選択した場合、中間データ列134
に基づき以下のような圧縮出力データ列138が作成さ
れる。即ち、REPEAT、0101、(4)、REPEAT、0011、(4)、
ELISION、0000、1111、ELISION、0000、1111、ELISIO
N、0000、ELISION、0000、1111及び1111というデータ列
となる。ここで「ELISION」を表すデータ値として「101
0」が選択されており、データ値「0000」の前にこの「E
LISION」マークを置くことにより、次のデータ「0000」
が「REPEAT」でないことを示す(ELISIONは削除又は省
略を意味する)。従って、これら「REPEAT」及び「ELIS
ION」のデータ値は注意深く選択すべきであり、圧縮デ
ータ列に追加されるこれらのマーカ・ワードの挿入が過
度にならないようにすべきである。図1の出力データ列
138の場合、18個のデータ・ワードを含むので、1
6ワードの入力データ列132よりワード数が多くなっ
ている。
T」は、入力データ列のどのデータとも対応しないよう
に選択されている。しかし、この反復マーカ「REPEAT」
が中間データ列の何れか1つのデータと等しい値を有し
ている場合には、復元処理の際に中間データ列のデータ
であるか反復マーカ「REPEAT」であるか区別出来ないの
で、復元結果が変化する。これを防ぐ為に例えば、「RE
PEAT」を「0000」に選択した場合、中間データ列134
に基づき以下のような圧縮出力データ列138が作成さ
れる。即ち、REPEAT、0101、(4)、REPEAT、0011、(4)、
ELISION、0000、1111、ELISION、0000、1111、ELISIO
N、0000、ELISION、0000、1111及び1111というデータ列
となる。ここで「ELISION」を表すデータ値として「101
0」が選択されており、データ値「0000」の前にこの「E
LISION」マークを置くことにより、次のデータ「0000」
が「REPEAT」でないことを示す(ELISIONは削除又は省
略を意味する)。従って、これら「REPEAT」及び「ELIS
ION」のデータ値は注意深く選択すべきであり、圧縮デ
ータ列に追加されるこれらのマーカ・ワードの挿入が過
度にならないようにすべきである。図1の出力データ列
138の場合、18個のデータ・ワードを含むので、1
6ワードの入力データ列132よりワード数が多くなっ
ている。
【0014】図2は、本発明の一実施例の一部の処理を
示す流れ図である。例えばビデオ信号を表すデジタル・
データ列が信号処理装置に入力される。このデータ列を
圧縮する為に信号処理装置はビット番号「BIT*」を0に
設定する(ブロック12)。こビット番号「BIT*」は、
処理中のビット数を表している。ブロック14でこのビ
ット番号がワード・サイズ「WORDSIZE」より小さいか否
かが判断される。この「WORDSIZE」は、圧縮データを転
送したり記憶したりするデータ・ワードの大きさをビッ
ト数で表したものである。このビット番号がワード・サ
イズ以上(ノー)の場合には、処理が終了となる。それ
以外(イエス)の場合には、ブロック16でビット圧縮
処理が実行される。このビット圧縮処理に関しては図3
を参照して詳細に後述する。その後ブロック18でビッ
ト番号「BIT*」がインクリメントされる。処理は判断ブ
ロック14に戻るループ処理を形成しており、ビット番
号「BIT*」がワード・サイズWORDSIZEより小さくない、
即ちノーと判断されるまでこのループ処理が繰り返され
た後、この処理が終了する。
示す流れ図である。例えばビデオ信号を表すデジタル・
データ列が信号処理装置に入力される。このデータ列を
圧縮する為に信号処理装置はビット番号「BIT*」を0に
設定する(ブロック12)。こビット番号「BIT*」は、
処理中のビット数を表している。ブロック14でこのビ
ット番号がワード・サイズ「WORDSIZE」より小さいか否
かが判断される。この「WORDSIZE」は、圧縮データを転
送したり記憶したりするデータ・ワードの大きさをビッ
ト数で表したものである。このビット番号がワード・サ
イズ以上(ノー)の場合には、処理が終了となる。それ
以外(イエス)の場合には、ブロック16でビット圧縮
処理が実行される。このビット圧縮処理に関しては図3
を参照して詳細に後述する。その後ブロック18でビッ
ト番号「BIT*」がインクリメントされる。処理は判断ブ
ロック14に戻るループ処理を形成しており、ビット番
号「BIT*」がワード・サイズWORDSIZEより小さくない、
即ちノーと判断されるまでこのループ処理が繰り返され
た後、この処理が終了する。
【0015】図3は、本発明の方法の一部分であるビッ
ト圧縮処理(図2のブロック16)の手順を示す流れ図
であり、ブロックBからブロックZまでの処理を含んで
いる。ブロック19では、圧縮データ列を受ける装置に
送られるビット番号「BIT*」を指示し、これによりフレ
ーム情報を得る。ブロック20では、このビット圧縮処
理の初期設定として、前のループ処理で発生した記憶済
みデータ値を表す「PREVIOUS VALUE」を無効「INVALI
D」に設定し、処理中の入力データ列上の現在の位置を
表す「ARRAY INDEX」を0に設定し、特定の発生データ
値の反復回数カウンタの計数値を表す「*REPETITIONS」
を0に設定する。この「PREVIOUS VALUE」を「INVALI
D」に設定するには、「PREVIOUS VALUE」の現在値の無
効を示すようにフラグをセットしても良いし、別の方法
として、「PREVIOUS VALUE」のワード・サイズを入力デ
ータのワード・サイズより大きくし、その高位の1ビッ
トをセットすることにより行っても良い。この場合、入
力データのワード・サイズと異なるので、この「PREVIO
US VALUE」は必ず無効となる。
ト圧縮処理(図2のブロック16)の手順を示す流れ図
であり、ブロックBからブロックZまでの処理を含んで
いる。ブロック19では、圧縮データ列を受ける装置に
送られるビット番号「BIT*」を指示し、これによりフレ
ーム情報を得る。ブロック20では、このビット圧縮処
理の初期設定として、前のループ処理で発生した記憶済
みデータ値を表す「PREVIOUS VALUE」を無効「INVALI
D」に設定し、処理中の入力データ列上の現在の位置を
表す「ARRAY INDEX」を0に設定し、特定の発生データ
値の反復回数カウンタの計数値を表す「*REPETITIONS」
を0に設定する。この「PREVIOUS VALUE」を「INVALI
D」に設定するには、「PREVIOUS VALUE」の現在値の無
効を示すようにフラグをセットしても良いし、別の方法
として、「PREVIOUS VALUE」のワード・サイズを入力デ
ータのワード・サイズより大きくし、その高位の1ビッ
トをセットすることにより行っても良い。この場合、入
力データのワード・サイズと異なるので、この「PREVIO
US VALUE」は必ず無効となる。
【0016】ブロック22では、この時点で発生したデ
ータ値を記憶している「NEXT VALUE」を「PACKBITS」の
値に等しく設定する。この「PACKBITS」は、図4のパッ
キング処理から返される値であり、詳細は後述する。次
の判断ブロック24では、「NEXT VALUE」が「PREVIOUS
VALUE」に等しいか否かが判断される。ここで、イエス
であれば、ブロック26で反復回数値「*REPETITIONS」
がインクリメントされる。更に、ブロック27で「*REP
ETITIONS」が2の「WORDSIZE」乗の値以上であるか否か
が判断され、反復計数値がデータ・ワード・サイズ「WO
RDSIZE」の値を超えていないかどうかが確認される。こ
こでイエスであれば、ブロック29で反復データ列の格
納処理が実行される。この処理の詳細に関しては図5を
参照して後述する。その後、ブロック31で「*REPETIT
IONS」の値を0に設定する。判断ブロック27でノーで
あれば、ブロック29及び31の処理は無視される。そ
の後、ブロック28で「ARRAY INDEX」に「ARRAY INDE
X」と「WORDSIZE」との和の値が代入される。そしてブ
ロック30で「ARRAY INDEX」が入力データ列内のデー
タ・ワード数を表す「ARRAY SIZE」より小さいか否かが
判断される。この比較結果がイエスであれば、処理はブ
ロック22に戻り、更にデータ処理が開始される。
ータ値を記憶している「NEXT VALUE」を「PACKBITS」の
値に等しく設定する。この「PACKBITS」は、図4のパッ
キング処理から返される値であり、詳細は後述する。次
の判断ブロック24では、「NEXT VALUE」が「PREVIOUS
VALUE」に等しいか否かが判断される。ここで、イエス
であれば、ブロック26で反復回数値「*REPETITIONS」
がインクリメントされる。更に、ブロック27で「*REP
ETITIONS」が2の「WORDSIZE」乗の値以上であるか否か
が判断され、反復計数値がデータ・ワード・サイズ「WO
RDSIZE」の値を超えていないかどうかが確認される。こ
こでイエスであれば、ブロック29で反復データ列の格
納処理が実行される。この処理の詳細に関しては図5を
参照して後述する。その後、ブロック31で「*REPETIT
IONS」の値を0に設定する。判断ブロック27でノーで
あれば、ブロック29及び31の処理は無視される。そ
の後、ブロック28で「ARRAY INDEX」に「ARRAY INDE
X」と「WORDSIZE」との和の値が代入される。そしてブ
ロック30で「ARRAY INDEX」が入力データ列内のデー
タ・ワード数を表す「ARRAY SIZE」より小さいか否かが
判断される。この比較結果がイエスであれば、処理はブ
ロック22に戻り、更にデータ処理が開始される。
【0017】判断ブロック24でノー、即ち、「NEXT V
ALUE」が「PREVIOUS VALUE」と等しくない場合には、ブ
ロック32で「*REPETITIONS」が0より大きいか否かが
判断される。ここでノー、即ち「*REPETITIONS」が0よ
り大きくない場合には、ブロック38で「PREVIOUS VAL
UE」を「NEXT VALUE」に設定すると共に「*REPETITION
S」を1に設定する。その後、ブロック28に入り、上
述と同様の処理を実行する。しかし、ブロック32でイ
エス、即ち「*REPETITIONS」が0を超えている場合に
は、ブロック36で上述の反復データ列の格納処理が実
行される。その後はブロック38及び28の処理へと上
述のように続く。
ALUE」が「PREVIOUS VALUE」と等しくない場合には、ブ
ロック32で「*REPETITIONS」が0より大きいか否かが
判断される。ここでノー、即ち「*REPETITIONS」が0よ
り大きくない場合には、ブロック38で「PREVIOUS VAL
UE」を「NEXT VALUE」に設定すると共に「*REPETITION
S」を1に設定する。その後、ブロック28に入り、上
述と同様の処理を実行する。しかし、ブロック32でイ
エス、即ち「*REPETITIONS」が0を超えている場合に
は、ブロック36で上述の反復データ列の格納処理が実
行される。その後はブロック38及び28の処理へと上
述のように続く。
【0018】再びブロック30の判断ブロックにおいて
ノー、即ち「ARRAY INDEX」が「ARRAY SIZE」より小さ
くないと判断された場合には、ブロック40で「*REPET
ITIONS」が0より大きいか否かが判断され、イエスなら
ばブロック42で反復データ列の格納処理が実行され
る。また、ブロック40でノーと判断されると、それ以
上の処理を実行することなく、図3の処理を終了して図
2の処理に戻る。
ノー、即ち「ARRAY INDEX」が「ARRAY SIZE」より小さ
くないと判断された場合には、ブロック40で「*REPET
ITIONS」が0より大きいか否かが判断され、イエスなら
ばブロック42で反復データ列の格納処理が実行され
る。また、ブロック40でノーと判断されると、それ以
上の処理を実行することなく、図3の処理を終了して図
2の処理に戻る。
【0019】図4は、本発明の一実施例の一部の処理を
示す流れ図であり、図3のブロック22のビット・パッ
キング処理を示している。先ずブロック44で「PACKED
VALUE」及び「BIT INDEX」を共に0に設定し、「BIT M
ASK」を2の「BIT*」乗の値に設定する。判断ブロック
46で「BIT INDEX」が「WORDSIZE」より小さいか否か
が判断され、ノーであれば、ブロック48で「PACKED V
ALUE」を返して図3のブロック22に処理が戻り、この
返された値がブロック22の「PACKBITS」として「NEXT
VALUE」に代入される。ブロック46でイエスであれ
ば、ブロック50に進み、「VALUE MASK」の値を2の
「BIT INDEX」乗に設定する。その後、ブロック52で
は、「ARRAY INDEX」+「BIT INDEX」の値に対応する
データ列の記憶値と「BIT MASK」の値との論理積(アン
ド/&)の値を一時値「TEMP」に設定する。ブロック5
4でこの「TEMP」が1か否かが判断され、1であれば、
ブロック56で「PACKED VALUE」と「VALUE MASK」との
和を「PACKED VALUE」に代入する。その後ブロック58
で「BIT INDEX」の値がインクリメントされ、処理は判
断ブロック46に戻ってループ処理が繰り返される。ブ
ロック54でノー、即ち「TEMP」が1でなければ、ブロ
ック56は無視され、ブロック58のインクリメント処
理が実行される。
示す流れ図であり、図3のブロック22のビット・パッ
キング処理を示している。先ずブロック44で「PACKED
VALUE」及び「BIT INDEX」を共に0に設定し、「BIT M
ASK」を2の「BIT*」乗の値に設定する。判断ブロック
46で「BIT INDEX」が「WORDSIZE」より小さいか否か
が判断され、ノーであれば、ブロック48で「PACKED V
ALUE」を返して図3のブロック22に処理が戻り、この
返された値がブロック22の「PACKBITS」として「NEXT
VALUE」に代入される。ブロック46でイエスであれ
ば、ブロック50に進み、「VALUE MASK」の値を2の
「BIT INDEX」乗に設定する。その後、ブロック52で
は、「ARRAY INDEX」+「BIT INDEX」の値に対応する
データ列の記憶値と「BIT MASK」の値との論理積(アン
ド/&)の値を一時値「TEMP」に設定する。ブロック5
4でこの「TEMP」が1か否かが判断され、1であれば、
ブロック56で「PACKED VALUE」と「VALUE MASK」との
和を「PACKED VALUE」に代入する。その後ブロック58
で「BIT INDEX」の値がインクリメントされ、処理は判
断ブロック46に戻ってループ処理が繰り返される。ブ
ロック54でノー、即ち「TEMP」が1でなければ、ブロ
ック56は無視され、ブロック58のインクリメント処
理が実行される。
【0020】図5は、図3のブロック29、36及び4
2の反復データ列の格納処理の一実施例を示す流れ図で
ある。ブロック60で「*REPETITIONS」が3より小さい
か否かが判断され、イエスであれば、ブロック66で
「*REPETITIONS」が0より大きいか否かが判断される。
ここでもしノーであればリターンが実行され、図5の処
理は終了する。イエスであれば、ブロック62で値の転
送処理が実行され、図3の「PREVIOUS VALUE」が記憶又
は転送される。この処理の詳細に関しては図6を参照し
て後述する。次にブロック64で「*REPETITIONS」がデ
クリメントされると、判断ブロック66へ処理が戻り、
そこでノーと判断されるまでループ処理が繰り返され
る。判断ブロック60においてノー、即ち「*REPETITIO
NS」が3より小さくないと判断されると、ブロック68
で反復マーカが転送され、その反復マーカ以後のデータ
が圧縮データであることが示される。圧縮された値(図
3の「PREVIOUS VALUE」)がブロック70で転送され
る。上述のようにこの値の転送処理は図6に対応してい
る。図3の処理で求めた「*REPETITIONS」の値がブロッ
ク72で転送された後、図5の処理が終了しリターンが
実行される。このように、以上の処理では、反復ワード
が3個より少ない場合には圧縮処理が実行されずにその
まま記憶されることが判る。データ圧縮をする場合の最
少反復データ・ワードの数は3であるので、3より少な
い反復ワード数に対して上述の圧縮処理を実行すると、
出力データの量は入力データの量より多くなってしま
う。
2の反復データ列の格納処理の一実施例を示す流れ図で
ある。ブロック60で「*REPETITIONS」が3より小さい
か否かが判断され、イエスであれば、ブロック66で
「*REPETITIONS」が0より大きいか否かが判断される。
ここでもしノーであればリターンが実行され、図5の処
理は終了する。イエスであれば、ブロック62で値の転
送処理が実行され、図3の「PREVIOUS VALUE」が記憶又
は転送される。この処理の詳細に関しては図6を参照し
て後述する。次にブロック64で「*REPETITIONS」がデ
クリメントされると、判断ブロック66へ処理が戻り、
そこでノーと判断されるまでループ処理が繰り返され
る。判断ブロック60においてノー、即ち「*REPETITIO
NS」が3より小さくないと判断されると、ブロック68
で反復マーカが転送され、その反復マーカ以後のデータ
が圧縮データであることが示される。圧縮された値(図
3の「PREVIOUS VALUE」)がブロック70で転送され
る。上述のようにこの値の転送処理は図6に対応してい
る。図3の処理で求めた「*REPETITIONS」の値がブロッ
ク72で転送された後、図5の処理が終了しリターンが
実行される。このように、以上の処理では、反復ワード
が3個より少ない場合には圧縮処理が実行されずにその
まま記憶されることが判る。データ圧縮をする場合の最
少反復データ・ワードの数は3であるので、3より少な
い反復ワード数に対して上述の圧縮処理を実行すると、
出力データの量は入力データの量より多くなってしま
う。
【0021】図6は、データ値の転送処理の流れ図であ
り、図5のブロック62及び70に対応するものであ
る。判断ブロック74で、転送すべきデータる値「VALU
E」が「REPEAT MARKER」又は「ELISION MARK」の何れか
の値に等しいか否かが判断される。ここでイエスである
と、ブロック76で「ELISION MARK」の値が転送され、
更にブロック78で値「VALUE」が転送される。これで
図6の処理が終了し、図5の元のブロックに戻る為のリ
ターンが実行される。判断ブロック74でノーと判断さ
れると、ブロック76は無視され、ブロック78でデー
タ値「VALUE」のみが転送され、図6の処理が終了す
る。このように、データ値が「REPEAT MARKER」か又は
「ELISION MARK」かを試験することにより、「REPEAT」
又は「ELISION」のマーカの前に「ELISION」を挿入し、
これにより「REPEAT」又は「ELISION」のマーカと同じ
値のデータ・ワードを復元処理の際に誤って解釈しない
ようにすることが出来る。これら「REPEAT」及び「ELIS
ION」がデータとして発生すると記憶されるデータが追
加されたことになるので、出来れば、これらの追加デー
タの発生頻度が高くならないようにデータ・ワード値を
適切に選択し、追加される記憶データ量が最少となるよ
うにすべきである。アナログ波形をデジタル化した信号
を圧縮する場合には、例えば「REPEAT」及び「ELISIO
N」のデータ値として0と1が交互に現れるパターンに
する。このような0と1が交互のパターンは他のパター
ンより発生頻度が少ないと予想される。これに対し、例
えば全て0や全て1のパターンのように最も発生頻度が
高いと思われるパターンは最も選択してはいけないパタ
ーンである。
り、図5のブロック62及び70に対応するものであ
る。判断ブロック74で、転送すべきデータる値「VALU
E」が「REPEAT MARKER」又は「ELISION MARK」の何れか
の値に等しいか否かが判断される。ここでイエスである
と、ブロック76で「ELISION MARK」の値が転送され、
更にブロック78で値「VALUE」が転送される。これで
図6の処理が終了し、図5の元のブロックに戻る為のリ
ターンが実行される。判断ブロック74でノーと判断さ
れると、ブロック76は無視され、ブロック78でデー
タ値「VALUE」のみが転送され、図6の処理が終了す
る。このように、データ値が「REPEAT MARKER」か又は
「ELISION MARK」かを試験することにより、「REPEAT」
又は「ELISION」のマーカの前に「ELISION」を挿入し、
これにより「REPEAT」又は「ELISION」のマーカと同じ
値のデータ・ワードを復元処理の際に誤って解釈しない
ようにすることが出来る。これら「REPEAT」及び「ELIS
ION」がデータとして発生すると記憶されるデータが追
加されたことになるので、出来れば、これらの追加デー
タの発生頻度が高くならないようにデータ・ワード値を
適切に選択し、追加される記憶データ量が最少となるよ
うにすべきである。アナログ波形をデジタル化した信号
を圧縮する場合には、例えば「REPEAT」及び「ELISIO
N」のデータ値として0と1が交互に現れるパターンに
する。このような0と1が交互のパターンは他のパター
ンより発生頻度が少ないと予想される。これに対し、例
えば全て0や全て1のパターンのように最も発生頻度が
高いと思われるパターンは最も選択してはいけないパタ
ーンである。
【0022】図1の入力データ列132の処理動作を更
に説明する。尚、これらのデータは2進数値で表されて
いる。「BIT*」を0000に設定し(図2のブロック1
2)、「WORDSIZE」と比較する(ブロック14)。この
例では「WORDSIZE」は4(0100)なので、処理は図3の
ビット圧縮処理へ進む。ビット0が処理中なので、ビッ
ト0の記憶が指示される(ブロック19)。ブロック2
0では、「PREVIOUS VALUE」を「INVALID」に、「ARRAY
INDEX」及び「*REPETITIONS」を0000に夫々設定する。
次に「PACKBITS」を返す図4のビット・パッキング処理
に入る。ここで「PACKED VALUE」及び「BIT INDEX」を
夫々0000に設定し、「BIT MASK」を2の「BIT*」乗に設
定する(ブロック44)。よって、「BIT MASK」は0001
(0010の0乗)となる。「BIT INDEX」(0000)はブロ
ック46で「WORDSIZE」(0100)と比較され、イエスと
判断されて「VALUE MASK」が2の「BIT INDEX」乗(010
0の0乗で0001)に設定される(ブロック50)。ブロ
ック52で、一時値「TEMP」を「ARRAY[ARRAY INDEX+BI
T INDEX]」(ARRAY[0000+0000]=0000、データ列の第1
要素のビット0の値)と「BIT MASK」との論理積の値に
設定する(0000&0001=0000)。この「TEMP」は1と比較
される(ブロック52)。ノーと判断されるので、ブロ
ック58で「BIT INDEX」がインクリメントされ、0001
の値となる。ループにより処理がブロック46に戻り、
「WORDSIZE」(0100)と比較される。またイエスなので
「VALUE MASK」が2の「BIT INDEX」乗(0010の1乗で
2(0010))に設定される(ブロW)、図4の処理が終わ
る。
に説明する。尚、これらのデータは2進数値で表されて
いる。「BIT*」を0000に設定し(図2のブロック1
2)、「WORDSIZE」と比較する(ブロック14)。この
例では「WORDSIZE」は4(0100)なので、処理は図3の
ビット圧縮処理へ進む。ビット0が処理中なので、ビッ
ト0の記憶が指示される(ブロック19)。ブロック2
0では、「PREVIOUS VALUE」を「INVALID」に、「ARRAY
INDEX」及び「*REPETITIONS」を0000に夫々設定する。
次に「PACKBITS」を返す図4のビット・パッキング処理
に入る。ここで「PACKED VALUE」及び「BIT INDEX」を
夫々0000に設定し、「BIT MASK」を2の「BIT*」乗に設
定する(ブロック44)。よって、「BIT MASK」は0001
(0010の0乗)となる。「BIT INDEX」(0000)はブロ
ック46で「WORDSIZE」(0100)と比較され、イエスと
判断されて「VALUE MASK」が2の「BIT INDEX」乗(010
0の0乗で0001)に設定される(ブロック50)。ブロ
ック52で、一時値「TEMP」を「ARRAY[ARRAY INDEX+BI
T INDEX]」(ARRAY[0000+0000]=0000、データ列の第1
要素のビット0の値)と「BIT MASK」との論理積の値に
設定する(0000&0001=0000)。この「TEMP」は1と比較
される(ブロック52)。ノーと判断されるので、ブロ
ック58で「BIT INDEX」がインクリメントされ、0001
の値となる。ループにより処理がブロック46に戻り、
「WORDSIZE」(0100)と比較される。またイエスなので
「VALUE MASK」が2の「BIT INDEX」乗(0010の1乗で
2(0010))に設定される(ブロW)、図4の処理が終わ
る。
【0023】図3のブロック22で「NEXT VALUE」が図
4から戻された「PACKED VALUE」に設定され、判断ブロ
ック24で「PREVIOUS VALUE」と比較される。この時点
で「PREVIOUS VALUE」が無効「INVALID」なので、ノー
と判断されて次の判断ブロック32で「*REPETITIONS」
(現在値0)が0(0000)より大きいか否かが判断され
る。ここでノーと判断されるので、ブロック38に進
み、「PREVIOUS VALUE」が「NEXT VALUE」(1010)に設
定されると共に「*REPETITIONS」が1(0001)に設定さ
れる。「ARRAY INDEX」(現在値0)が「ARRAY INDEX+W
ORDSIZE」(0000+0100=0100)に設定され(ブロック2
8)、この「ARRAY INDEX」が「ARRAY SIZE」(より小
さいか否かが判断される(ブロック30)。尚、実施例
ではデータ列の大きさは16であり、「ARRAY INDEX」
は0000〜1111の16個の数値でデータ列上の位置を表す
ので、「ARRAY SIZE」は1111である。ここでイエスと判
断されるので処理はブロック22に戻り、ビット・デー
タのパッキング処理を続け、図1の中間データ列134
の4ビットを含む第1データ・ワードが作成される。以
上の処理が繰り返され、「ARRAY INDEX」の値が「ARRAY
SIZE」より小さくないとブロック30で判断される
と、ブロック40で「*REPETITIONS」(この時の値4)
が0より大きいか否かが判断され、イエスなのでブロッ
ク42に進み、図5の反復データ列の格納処理が実行さ
れる。
4から戻された「PACKED VALUE」に設定され、判断ブロ
ック24で「PREVIOUS VALUE」と比較される。この時点
で「PREVIOUS VALUE」が無効「INVALID」なので、ノー
と判断されて次の判断ブロック32で「*REPETITIONS」
(現在値0)が0(0000)より大きいか否かが判断され
る。ここでノーと判断されるので、ブロック38に進
み、「PREVIOUS VALUE」が「NEXT VALUE」(1010)に設
定されると共に「*REPETITIONS」が1(0001)に設定さ
れる。「ARRAY INDEX」(現在値0)が「ARRAY INDEX+W
ORDSIZE」(0000+0100=0100)に設定され(ブロック2
8)、この「ARRAY INDEX」が「ARRAY SIZE」(より小
さいか否かが判断される(ブロック30)。尚、実施例
ではデータ列の大きさは16であり、「ARRAY INDEX」
は0000〜1111の16個の数値でデータ列上の位置を表す
ので、「ARRAY SIZE」は1111である。ここでイエスと判
断されるので処理はブロック22に戻り、ビット・デー
タのパッキング処理を続け、図1の中間データ列134
の4ビットを含む第1データ・ワードが作成される。以
上の処理が繰り返され、「ARRAY INDEX」の値が「ARRAY
SIZE」より小さくないとブロック30で判断される
と、ブロック40で「*REPETITIONS」(この時の値4)
が0より大きいか否かが判断され、イエスなのでブロッ
ク42に進み、図5の反復データ列の格納処理が実行さ
れる。
【0024】図5の反復データ列の格納処理は以下のよ
うに実行される。ブロック60で、「*REPETITIONS」
(現在値4)が3より小さいか否かが判断され、ノーな
のでブロック68に進み、図1の圧縮データ列の最初の
反復マーカ「REPEAT」に対応するデータが転送される。
次のブロック70では、図1の圧縮データ列136の第
2データ・ワードに対応するデータ値(1010)を転送
し、ブロック72では、図1の圧縮データ列136の第
3ワードに対応する反復回数値「*REPETITIONS」が転送
される。ここでリターンが実行された後、処理は図2の
ブロック18に進み、ビット番号「BIT*」がインクリメ
ントされる。以上のような処理の反復実行により、図1
の入力データ列132の残りのデータ・ワードが処理さ
れ、圧縮出力データ列136が作成される。
うに実行される。ブロック60で、「*REPETITIONS」
(現在値4)が3より小さいか否かが判断され、ノーな
のでブロック68に進み、図1の圧縮データ列の最初の
反復マーカ「REPEAT」に対応するデータが転送される。
次のブロック70では、図1の圧縮データ列136の第
2データ・ワードに対応するデータ値(1010)を転送
し、ブロック72では、図1の圧縮データ列136の第
3ワードに対応する反復回数値「*REPETITIONS」が転送
される。ここでリターンが実行された後、処理は図2の
ブロック18に進み、ビット番号「BIT*」がインクリメ
ントされる。以上のような処理の反復実行により、図1
の入力データ列132の残りのデータ・ワードが処理さ
れ、圧縮出力データ列136が作成される。
【0025】図7は、圧縮データ列から元の入力データ
列を復元するシステムの構成を示すブロック図である。
図7のシステムは、ビデオ信号に適用しているが他の信
号に適用することも出来る。通信リンク・バス82を介
して圧縮データ列が通信ポート84に供給され、この圧
縮データ列はプロセッサ86に入力される。プロセッサ
86は、ビット・データ出力線88を介して多数のビッ
トRAM90、92、94及び96に接続されている。
これらビットRAMの数は、復元されるデータのワード
・サイズ「WORDSIZE」によって決まる。図7の例では一
般化してNビットの場合の構成である。プロセッサ86
は、更に書込みイネーブル線98、100、102及び
104が接続されており、これらは夫々個々のビットR
AM90〜96に接続されている。これらビットRAM
は、データ線108、110、112及び114を介し
てデータをビデオ・シフタ106に供給する。ビデオ・
シフタ106からのデータはデジタル・アナログ変換器
D/A116によりアナログ出力信号に変換され、出力
線126から出力される。尚、データ線118、12
0、122及び124のデータは、デジタル・データ列
のビット番号0から(N−1)のビット・データに夫々
対応している。
列を復元するシステムの構成を示すブロック図である。
図7のシステムは、ビデオ信号に適用しているが他の信
号に適用することも出来る。通信リンク・バス82を介
して圧縮データ列が通信ポート84に供給され、この圧
縮データ列はプロセッサ86に入力される。プロセッサ
86は、ビット・データ出力線88を介して多数のビッ
トRAM90、92、94及び96に接続されている。
これらビットRAMの数は、復元されるデータのワード
・サイズ「WORDSIZE」によって決まる。図7の例では一
般化してNビットの場合の構成である。プロセッサ86
は、更に書込みイネーブル線98、100、102及び
104が接続されており、これらは夫々個々のビットR
AM90〜96に接続されている。これらビットRAM
は、データ線108、110、112及び114を介し
てデータをビデオ・シフタ106に供給する。ビデオ・
シフタ106からのデータはデジタル・アナログ変換器
D/A116によりアナログ出力信号に変換され、出力
線126から出力される。尚、データ線118、12
0、122及び124のデータは、デジタル・データ列
のビット番号0から(N−1)のビット・データに夫々
対応している。
【0026】通信リンク・バス82にデータが供給され
ると、このデータを通信ポート84がプロセッサ86に
送る。プロセッサ86は、入力圧縮データをデコードし
て元のデータを復元し、ビット0のデータをビット0の
RAM90にビット1のデータをビット1のRAM92
にというように夫々対応するRAMに分配供給する。プ
ロセッサ86は、図3のブロック19からの指示に応じ
て転送されるビット番号データに応じて書込みイネーブ
ル線98〜104を選択し、種々のビット・データを書
き込む際に適当なビットRAMをイネーブルする。ビデ
オ・シフタ106は、N個のビットRAMの各々から適
当にビット・データを選択し、データ線118〜124
を介してデジタル・アナログ変換器116に供給する。
このデジタル・アナログ変換器116の出力データは、
圧縮処理がされる以前の最初の入力アナログ信号(例え
ば図1の傾斜波信号)となる。
ると、このデータを通信ポート84がプロセッサ86に
送る。プロセッサ86は、入力圧縮データをデコードし
て元のデータを復元し、ビット0のデータをビット0の
RAM90にビット1のデータをビット1のRAM92
にというように夫々対応するRAMに分配供給する。プ
ロセッサ86は、図3のブロック19からの指示に応じ
て転送されるビット番号データに応じて書込みイネーブ
ル線98〜104を選択し、種々のビット・データを書
き込む際に適当なビットRAMをイネーブルする。ビデ
オ・シフタ106は、N個のビットRAMの各々から適
当にビット・データを選択し、データ線118〜124
を介してデジタル・アナログ変換器116に供給する。
このデジタル・アナログ変換器116の出力データは、
圧縮処理がされる以前の最初の入力アナログ信号(例え
ば図1の傾斜波信号)となる。
【0027】上述の実施例ではランレングス・エンコー
ディングの場合で説明したが、本発明の方法は、別の圧
縮アルゴリズムに適用可能であること勿論である。例え
ば、本発明による上述のビット選択技法をLZW(Limp
el-Ziv-Welch)技法に適用して通常のLZW技法の圧縮
率を改善することも出来る。更に、別の実施例としてワ
ード数Nの倍数であるM個のワードを含む入力データ列
にも適用可能である。また、Nの倍数ではないM個のワ
ードを含む圧縮データ列を処理する場合でも、例えば、
データ列のワード数ではなく全データ・サンプル数をヘ
ッダで指示し、データの受信システムでは、指示された
データ・サンプル数に応じて供給されたデータ・ワード
内の一部のデータ・サンプルのみを使用するようにして
も良い。
ディングの場合で説明したが、本発明の方法は、別の圧
縮アルゴリズムに適用可能であること勿論である。例え
ば、本発明による上述のビット選択技法をLZW(Limp
el-Ziv-Welch)技法に適用して通常のLZW技法の圧縮
率を改善することも出来る。更に、別の実施例としてワ
ード数Nの倍数であるM個のワードを含む入力データ列
にも適用可能である。また、Nの倍数ではないM個のワ
ードを含む圧縮データ列を処理する場合でも、例えば、
データ列のワード数ではなく全データ・サンプル数をヘ
ッダで指示し、データの受信システムでは、指示された
データ・サンプル数に応じて供給されたデータ・ワード
内の一部のデータ・サンプルのみを使用するようにして
も良い。
【0028】以上本発明の好適実施例について説明した
が、本発明はここに説明した実施例のみに限定されるも
のではなく、本発明の要旨を逸脱することなく必要に応
じて種々の変形及び変更を実施し得ることは当業者には
明らかである。
が、本発明はここに説明した実施例のみに限定されるも
のではなく、本発明の要旨を逸脱することなく必要に応
じて種々の変形及び変更を実施し得ることは当業者には
明らかである。
【0029】
【発明の効果】本発明のデータ列処理方法によれば、各
々Mビットから成るN個のワードを含むデジタル・デー
タ列のビット・データを順次選択して再配列することに
よりデータの反復頻度を極めて容易に向上したデータ列
を作成出来るので、既存の圧縮処理アルゴリズムに応用
すれば、圧縮効率を格段に改善することが可能になる。
々Mビットから成るN個のワードを含むデジタル・デー
タ列のビット・データを順次選択して再配列することに
よりデータの反復頻度を極めて容易に向上したデータ列
を作成出来るので、既存の圧縮処理アルゴリズムに応用
すれば、圧縮効率を格段に改善することが可能になる。
【図1】本発明のデータ処理方法の一実施例を説明する
為の図である。
為の図である。
【図2】本発明のデータ処理方法の一実施例の動作手順
を示す流れ図である。
を示す流れ図である。
【図3】図2の処理の一部分を更に詳細に示す流れ図で
ある。
ある。
【図4】図3の処理の一部分を更に詳細に示す流れ図で
ある。
ある。
【図5】図3の処理の一部分を更に詳細に示す流れ図で
ある。
ある。
【図6】図5の処理の一部分を更に詳細に示す流れ図で
ある。
ある。
【図7】圧縮データ列を復元するシステムの一実施例の
構成を示すブロック図である。
構成を示すブロック図である。
130 入力アナログ信号波形 132 入力デジタル・データ列 134 中間データ列 136 圧縮出力データ列
Claims (1)
- 【請求項1】 各ワードが夫々Mビットから成るNワー
ドの入力データ列を処理する際に、 (a)上記入力データ列のN個の各ワードから第1ビッ
トを順次選択することにより第1のNビットのワードを
作成し、 (b)上記入力データ列のN個の各ワードから次のビッ
トを順次選択することにより次のNビットのワードを作
成し、 (c)上記ステップ(b)を繰り返し、上記入力データ
列の各ワードのMビット全てに夫々対応するM個のNビ
ットのワードを作成することを特徴とするデータ列処理
方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9619891A JPH0778065A (ja) | 1991-04-02 | 1991-04-02 | データ列処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9619891A JPH0778065A (ja) | 1991-04-02 | 1991-04-02 | データ列処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0778065A true JPH0778065A (ja) | 1995-03-20 |
Family
ID=14158593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9619891A Pending JPH0778065A (ja) | 1991-04-02 | 1991-04-02 | データ列処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0778065A (ja) |
-
1991
- 1991-04-02 JP JP9619891A patent/JPH0778065A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5293164A (en) | Data compression with pipeline processor having separate memories | |
US5272478A (en) | Method and apparatus for entropy coding | |
US5175543A (en) | Dictionary reset performance enhancement for data compression applications | |
KR100498457B1 (ko) | 메모리를 감소시키는 개선된 룩업 테이블 압축방법 및이를 이용하여 압축된 룩업 테이블을 가지는 비선형 함수발생장치 및 그 발생방법 | |
KR940023249A (ko) | 디지탈 신호의 부호화 방법, 부호화용 테이블 생성 방법, 부호화 장치 및 부호화 방법 | |
US5832037A (en) | Method of compressing and expanding data | |
JPH0879092A (ja) | データを圧縮及び圧縮解除するための方法及び装置 | |
US5049880A (en) | Bit-wise run-length encoding for data compression | |
EP0736205A1 (en) | Method and apparatus for performing a fast hadamard transform | |
JP2005503056A (ja) | 最小限の視覚的歪みでイメージのLempel−Ziv圧縮率を増大させる変換 | |
CA2131823A1 (en) | Method for data compression having an improved encoding algorithm which utilizes a token stacking technique | |
CA2117720C (en) | Data compression method and apparatus for waveforms having recurring features | |
EP0409871B1 (en) | Apparatus for decoding variable-length encoded data | |
JPH05241777A (ja) | データ圧縮方式 | |
JPH11514165A (ja) | 損失を伴わない波形データ圧縮装置及び方法 | |
JP2536422B2 (ja) | デ―タ圧縮装置及びデ―タ復元装置 | |
JPH0778065A (ja) | データ列処理方法 | |
US5739778A (en) | Digital data formatting/deformatting circuits | |
JPH06350398A (ja) | デジタル信号をろ波する方法及びデジタル・フィルタ | |
JP2001211082A (ja) | Pcm信号符号化方法及び復号化方法 | |
JP2956636B2 (ja) | 波形処埋装置 | |
JP3166218B2 (ja) | データ圧縮伸張装置およびそれを用いた電子楽器 | |
US6326907B1 (en) | Coding device | |
JPH05241775A (ja) | データ圧縮方式 | |
JP3603070B2 (ja) | 圧縮コード生成方法、および圧縮コード展開方法 |