JPH08502397A - 圧縮されたデータを符号化しかつ復号するための方法および装置 - Google Patents

圧縮されたデータを符号化しかつ復号するための方法および装置

Info

Publication number
JPH08502397A
JPH08502397A JP7503492A JP50349295A JPH08502397A JP H08502397 A JPH08502397 A JP H08502397A JP 7503492 A JP7503492 A JP 7503492A JP 50349295 A JP50349295 A JP 50349295A JP H08502397 A JPH08502397 A JP H08502397A
Authority
JP
Japan
Prior art keywords
decoder
node
vocabulary
block
data
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
Application number
JP7503492A
Other languages
English (en)
Inventor
エイ パスコ−アンダーソン・ジェームズ
クレイマン・ジェフ
フリング・フランク
マイナー・マーク
Original Assignee
モトローラ・インコーポレーテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by モトローラ・インコーポレーテッド filed Critical モトローラ・インコーポレーテッド
Publication of JPH08502397A publication Critical patent/JPH08502397A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 データ通信における圧縮されたデータをエンコーダしかつデコードする方法および装置は、第1のものではない(ノンファースト)レベルのノード(72,78,79)における子供カウンタ(62)を使用するデコーダによるツリー構造の構成を含む。デジタル通信装置は該ツリー構造を信号の送信のために使用する。

Description

【発明の詳細な説明】 圧縮されたデータを符号化しかつ復号するための方法および装置 発明の分野 この発明はデジタル通信機器に関し、かつより特定的にはデータ通信の効率お よび速度を改善するデータ圧縮システム(datacompressionsy stem)および方法に関する。 発明の背景 データ通信は伝送システムによる1つのポイントから他のポイントへのコンピ ュータ符号化された情報の移動である。データ通信は長い距離にわたりほぼ瞬時 的に情報の交換を生じさせる。 データ通信はデータを送信しまたは受信するターミナル、プリンタまたはコン ピュータのようなデータターミナル機器(DTE)をリンクする。データ通信機 器(DCE)は送信される信号またはデータを操作するDTEと通信チャネルと の間に取り付けられた装置である。DCEは通常マイクロプロセッサおよびラン ダムアクセスメモリ(RAM)を具備する。前記通信チャネルはしばしば電話ネ ットワークとされ、もちろんそれはセルラネットワーク、デジタル 通信ネットワーク、または衛星ネットワークであっても良い。 送信DTE(TXDTE)によって受信DTE(RXDTE)に送信される情 報は一連の文字またはキャラクタからなる。該情報は一般にかなりの量の冗長性 を含んでいる。したがって、前記情報は圧縮され、それによって通信チャネルに よってより短い時間で送信することができる。 知られたデータ圧縮方法のうちで、ジブ−レンペル′78アルゴリズム(Zi v−Lempel ′78 algorithm:ZL78”)がある。ZL7 8アルゴリズムにおいては、送信DCE(TXDCE)はTXDCERAMに格 納された(「ボキャブラリツリー(vocabulary tree)」とも称 される)ボキャブラリにおけるストリングを記憶することにより最近送信された データの履歴を記録する。現在のデータの引続く要素を前記ボキャブラリと比較 することにより、冗長データが検出される。TXDCEは、冗長なシーケンス全 体を送信する代わりに、前記ボキャブラリツリーの冗長データの早期の発生の位 置を指示するコードワードを送信する。データ圧縮は該コードワードを送信する ことが要求されるビットの数が前記冗長データシーケンスのビットの数より小さ い場合に行なわれる。他のデータ圧縮方法は本件出願の譲渡人に譲渡された、B rian Ta−Cheng Hou,Craig D.Cohen,Jame s A.Pacso −AndersonおよびMichael Gutmanによる係属中の米国特 許出願第07/976,298号に説明されている。この米国特許出願に含まれ る情報は本件出願に導入される。 前記チャネルの他端において、受信DCE(RXDCE)はTXDCEによっ て維持されるものと同様のRXDCE RAMにボキャブラリを維持する。TX DCEからコードワードを受信すると、RXDCEは前記ボキャブラリにおける 冗長データシーケンスを検出するために該コードワードを使用する。RXDCE は次に該データシーケンスをTXDTEに送信する。 前に述べたように、データ圧縮はコードワードを送信するのに必要なビットの 数が前記冗長データシーケンスにおけるビットの数より小さい場合に行なわれる 。前記情報がキャラクタのランダムなシーケンスに近いようないくつかの場合に おいては、前記コードワードは実際に元のデータより長く、この場合はデータ伸 張(data expansion)(データ圧縮に対して)が行なわれ得るこ とになる。データ伸張が行なわれる場合、TXDCEはRXDCEに対しデータ 圧縮なしで動作するよう通知する。データ圧縮なしのこの通信方法は「トランス ペアレントモード(TM)」と称される。TXDCEは次にTXDを監視して圧 縮が有益であるかを判定する。もし圧縮が有益であれば、TXDCEはRXDC Eに圧縮を開始し、かつ「圧縮 モード(CM)」で動作するよう通知する。通常の通信セッションにおいては、 TXDCEおよびRXDCEはCMおよびTMの間を数回切換え行き来する。他 の方法はClarkの米国特許第5,177,480号に見ることができる。 前記情報が送信されると、TXDCEは1組のルールにしたがってボキャブラ リを構築する。該ボキャブラリは種々のレベルの相互接続されたノードを備えた ツリー構造のデータベースである。該ツリーを構築し、該ツリーを更新し、該ツ リーからノードを削除しかつ該ツリーにノードを加えるための手順の完全な説明 はClarkの米国特許第5,153,591号およびWelshの米国特許第 4,558,302号に見ることができる。そのようなツリー構造はCCITT (Comite Consultatif International de Telegraphie et Telephonie)のためのV.42b isアプリケーションにおいて実施されている。 前記デコーダのボキャブラリにおける(第1のレベルのノード以外の)各々の ノードは9バイトを必要とする。すなわち、該ノードによって表わされるキャラ クタのための1バイト、ダウンポインタのための2バイト、レフトポインタのた めの2バイト、ライトポインタのための2バイト、およびアップポインタのため の2バイトである。したがって、デコーダツリー構造によって必要とされるメモ リはか なりの大きなものになる。これは1つのDCEが本願出願人に譲渡された、Br ian Ta−Cheng Hou,Craig D.Cohen,James A.Pacso−AndersonおよびMichael Gutmanによ る「フレーム多重化トラフィックの適応データ圧縮のための動的ボキャブラリ記 憶(Dynamic Vocabulary Storage for Ada ptive Data Compression of Frame−Mult iplexed Traffic)」と題する米国特許出願第07/976,2 98号に述べられているような、多数のボキャブラリの事例を含む場合には特に 当てはまる。 さらに、前記ツリーにリーフノード(leaf node)が加えられたとき 、隣接リーフノードのためのポインタが更新されなければならなず、各々のリー フに対しポインタが読み取られかつ書き込まれることが必要である。そのような 操作はマイクロプロセッサの時間を消費し、かつしたがってDCEのスループッ トを低減する。 ボキャブラリのためのRAMが満たされたとき、ノードは削除される。ノード の削除は該削除されるノードに関連する全てのポインタの修正を必要とし、これ はRXDCEによる時間の浪費およびより低速のスループットを生じる結果とな る。 従来の符号化(encoding)および復号(dec oding)方法はストリング整合手順が最も長いストリング整合の前に終了で きるようにし、その時点でいずれかの部分的に整合したストリングに対するコー ドワードが送信される。いくつかのV.42bis構成においては、これはモー ド切換またはフラッシュによって生じ得る。同期データ圧縮のためのV.42b isへのいくつかの拡張においては、これはフレーム終了(end−of−fr ame)または同期エラー(sync error)によって生じ得る。ストリ ング整合手順の時期尚早の終了はエンコーダによって不整合のキャラクタとして 取り扱われる。エンコーダは通常不整合のキャラクタを前記整合したストリング に加えかつそのキャラクタと共に新しいストリングを開始する。しかしながら、 ストリング整合手順が最も長いストリング整合の前に終了したとき、次のキャラ クタはすでにボキャブラリに入っている可能性がある。したがって、エンコーダ はボキャブラリにおいてそのキャラクタをサーチしかつ該キャラクタがすでにボ キャブラリに入っていない場合にのみ該キャラクタを加える。 デコーダが新しいストリングに対するコードワードを受信したとき、それはそ のイノベーション(innovation)キャラクタを前のストリングからの 不整合のキャラクタとして取り扱う。デコーダは通常該イノベーションキャラク タを前のストリングに加えかつ該イノベーションキャラクタと共に新しいストリ ングを開始する。しかしな がら、エンコーダは最も長いストリングの整合を検出する前にストリング整合手 順を終了することができるから、該イノベーションキャラクタはすでにボキャブ ラリに入っている可能性がある。したがって、デコーダは該ボキャブラリにおい て該イノベーションキャラクタをサーチしかつそれがすでにボキャブラリに入っ ていない場合にのみ該イノベーションキャラクタを加える。 典型的な構成では、デコーダは各々のノンルート(non−root)ノード に対し9バイトを必要とする。すなわち、キャラクタのための1バイト、ダウン ポインタのための2バイト、レフトポインタのための2バイト、ライトポインタ のための2バイト、およびアップポインタのための2バイトである。このデータ 構造はデコーダがツリー構造を下に、ツリー構造をわたって(across)、 かつツリー構造を上に移動できるようにする。 これらの構成においては、トランスペアレントモードの間に構築されたボキャ ブラリはまた圧縮モードにおいて使用される。したがってデコーダは該ボキャブ ラリをトランスペアレントモードの間にも維持しなければならない。トランスペ アレントモードの間のボキャブラリの維持はデコーダがサーチ操作を行なうこと を要求し、これはツリー構造を下に移動しかつツリー構造をわたって移動するこ とを含む。該デコーダは圧縮モードの間にノードを加える前にボキャブラリの2 重のストリングをチェックしなければな らず、かつデコーダはトランスペアレントモードの間にツリー構造を下にかつツ リー構造をわたって移動しなければならない。したがって、デコーダは圧縮モー ドの間にツリー構造全体(すなわち、ツリーを下に移動しかつツリーをわたって 移動する能力)を維持しなければならない。 トランスペアレントモードにおけるサーチ操作および圧縮モードにおける2重 のストリングのチェックはデコーダがツリーを下にかつツリーをわたって移動す ることを要求する。ノードを加えかつ削除することは全てのポインタの更新を必 要とする。したがって、ツリー構造を下に移動しかつツリー構造にわたって移動 する能力はマイクロプロセッサの使用に関して高価なものとなる。 したがって、エンコーダおよびデコーダの双方は、エスケープキャラクタがト ランスペアレントモードにおいてのみ使用される場合でも、トランスペアレント モードおよび圧縮モードの双方において該エスケープキャラクタを維持する。エ スケープキャラクタを維持するためには、エンコーダおよびデコーダは該エスケ ープキャラクタの発生に対しデータにおける各々のキャラクタをチェックしなけ れはならずかつそれがデータにおいて検出されたときに該エスケープキャラクタ を更新しなければならない。 圧縮データを符号化しかつデコードするこれらの方法はしたがって多量のメモ リおよびマイクロプロセッサの使用を必要とする。より少ないメモリおよびマイ クロプロセッ サの使用を可能にすることが価値がある。 図面の簡単な説明 図1は、DTEに取り付けられたDCEを示すブロック図である。 図2は、データ通信システムを形成する、送信および受信量モードにおけるD CEの機能ブロック図である。 図3は、アンチ伸張制御を示す説明図である。 図4は、好ましい実施例のボキャブラリノードの説明図である。 図5は、好ましい実施例のツリー構造の説明図である。 図6は、DCEにおいて使用される方法を示す流れ図である。 図7は、キャラクタの処理方法を示す流れ図である。 図8は、コマンドの処理のための方法を示す流れ図である。 図9は、圧縮をテストするための方法を示す流れ図である。 図10は、エスケープキャラクタ手順のための方法を示すフローチャートであ る。 図11は、次のキャラクタの例外処理の方法を示すフローチャートである。 図12は、データ圧縮デコーダの動作の方法を示すフローチャートである。 図13は、トランスペアレントモードの間のデコーダの動作の方法を示すフロ ーチャートである。 好ましい実施例の説明 (データ通信において通常使用されているように、“RX”の接頭辞は「受信 機」を示し、一方“TX”の接頭辞は「送信機」を示している。) 図1は、データ通信システムのブロック図を示す。DTE10はDCE12に 結合されている。DTE10は送信のための情報(TXD)をDCE12に送る 。同様に、DTE10は受信された情報(RXD)をDCE12から得る。DC E12はマイクロプロセッサ14から構成される。マイクロプロセッサ14はデ ータ圧縮エンコーダ16、送信データポンプ18、データ圧縮デコーダ20、お よび受信データポンプ22の機能を行なう。データ圧縮エンコーダ16はTXD を受け取りかつ該TXDを、もし可能であれば、コードワードへと圧縮する。送 信データポンプ18は圧縮されたTXDを通信チャネル30を介していずれか他 のロケーションにおけるDCE/DTE対に送る。 同様に、受信データポンプ22は通信チャネル24から圧縮されたRXDを得 る。データ圧縮デコーダ20は次に前記圧縮されたRXDをDTE10で使用す るためにRXDへと圧縮解除(decompresses)する。 RAM24はマイクロプロセッサ14に結合されている。 RAM24は、とりわけ、ボキャブラリおよびマイクロプロセッサを制御するプ ログラムを含む。 図2は、送信および受信量モードにおける図1のDCE12の機能ブロック図 を示す。TXDCE26は通信チャネル30によってRXDCE28と通信する 。(大部分の場合、DCEはTXDCEおよびRXDCEの双方を含む。) TXDCE26は送信DTEインタフェース(TXDTE)32を介してTX Dを受信する。TXDは次にデータ圧縮エンコーダ34およびエスケープキャラ クタハンドラ36に入る。エスケープキャラクタハンドラ36はDTEの間で送 信されるべき情報であるよりはむしろDCEへのコマンドであるエスケープキャ ラクタを処理する。 エンコーダボキャブラリ35はデータ圧縮エンコーダ34によって読み出され かつ書き込まれる。もしTXDCE26がTMで動作していれば、アンチ伸張( anti−expansio)制御部38がエスケープハンドラ36からキャラ クタを受信する。もしTXDCE26がCMで動作していれば、アンチ伸張制御 部38はデータ圧縮エンコーダ34からコードワードを受信する。 TXエラー訂正部40はアンチ伸張制御部38からデータを受信し、かつ該デ ータを、通信チャネル30を介してRXDCE28に送信するためにTXデータ ポンプ18に送る。送信アンチ伸張制御部38はリセットラインを介し てエンコーダボキャブラリ35をリセットすることができる。RXデータポンプ 22は通信チャネル30からデータを受信する。RXエラー訂正部42は該デー タを処理し、かつ該データをデコーダアンチ伸張制御部44に送る。圧縮モード (CM)においては、該データはコードワードであり、かつしたがってデータ圧 縮デコーダ46に送信される。データ圧縮デコーダ46は次に該コードワードを デコーダボキャブラリ47を使用してデコードし、かつ該コードワードによって 表わされるキャラクタストリングをRXDTEインタフェース50に送る。 トランスペアレントモード(TM)においては、データはデコーダアンチ伸張 制御部44からデコーダエスケープキャラクタハンドラ48に送られる。エスケ ープキャラクタハンドラ48による処理の後、該データはRXDTEインタフェ ース50に送られる。 V.42bisに述べられた方法に対し、エンコーダのエスケープキャラクタ ハンドラ36およびデコーダのエスケープキャラクタハンドラ48の双方はCM データに対してまたはCMにある場合に動作しない。これは他のデコーダ/エン コード方法と比較して処理サイクルのかなりの節約を行なう。 図3は、TXDCE26のためのアンチ伸張制御部38をブロック形式で示す 。アンチ伸張制御部38はトランスペアレントモードのデータ(TMデータ)お よび圧縮モー ドのデータ(CMデータ)を受信する。トランスペアレントモードのデータハン ドラ54はTMデータを解釈する。TMデータハンドラ54は該TMデータをT Xエラー訂正部40に送る。それはまたリセットメモリ(RM)をエンコーダボ キャブラリ35に送りかつエンタ圧縮モード(ENTER COMPRESSE D MODE:ECM)制御キャラクタをRXDCE28に送る。(他の制御キ ャラクタもV.42bisに述べられているようにRXDCEに送ることができ る。) 圧縮モードデータハンドラ56は前記CMデータをTXエラー訂正部40に送 り、並びにエンタトランスペアレントモード(ENTER TRANSPARE NT MODE:ETM)コマンドコードワードを送る。他のコマンドコードワ ードもまたRXDCE28に送ることができる。 図4は、好ましい実施例におけるノンファーストレベルのノード60のための データ構造を示す。ノード60は1つのキャラクタバイト66、アップポインタ 62のための2バイト、および子供カウンタ(children counte r)64のための2バイトを有する。 例示的なデコーダボキャブラリのツリー構造の一部が図5に示されている。 該ボキャブラリのツリー構造は図6に示されている。該ツリーによって表わさ れるキャラクタのストリングは“T”,“TH”,“THE”,“THI”,“ THIS”, “TO”,“TOI”,“TU”および“TUG”である。 好ましい実施例においては、TXDデータにおける可能な256の単一キャラ クタのストリングの各々は常に前記ボキャブラリツリーに表わされている。それ らは全て前記ツリーの根(ルート:root)である共通の親(parent) を共有するから、レベル1のノードはボキャブラリにおける格納を必要としない 。この実施例では、全てのレベル2のノードのアップポインタ62はその親のレ ベル1のノードのキャラクタを格納する。全てのレベル1でないまたはレベル2 のノードのアップポインタを255より大きな値で表わすことにより、アップポ インタ62の意味に対するありうるあいまいさが避けられる。前記ストリングデ コーダの手順はアップポインタの値が256より小さい場合に終了する。ストリ ング“TH”を表わすレベル2のノード72は前に述べたキャラクタ“T”を含 みかつ子供カウンタを有するレベル1のノード“T”へのアップポインタを有す る。それはストリング“TH”に対するサフィックス(suffix)キャラク タであるキャラクタ“H”を含む。 レベル2のノード“TH”72はキャラクタ“H”を含む。それは2つの子供 、“THE”および“THI”、を有しかつしたがってノード72に対する子供 カウンタは2である。該子供カウンタは子供以外の子孫(offspring) をカウントせず、かつしたがってノード72に対 する子供カウンタは孫(grandchild)ノード77を含まない。レベル 3のノード“THE”74はキャラクタ“E”を含む。それは子供(関連するレ ベル4のノード)を持たず、かつしたがってノード74に対する子供カウンタは ゼロである。その親はノード72でありかつしたがってノード74に対するアッ プカウンタはノード72のメモリアドレスを含む。レベル3のノード“THI” 76はキャラクタ“I”を含む。それはレベル4のノード“THIS”77であ る単一の子供を有し、かつしたがってノード76に対する子供カウンタは1であ る。その親はノード72でありかつしたがってノード76に対するアップカウン タはノード72のメモリアドレスを含む。レベル4のノード“THIS”77は キャラクタ“S”を含む。それは子供を持たず、かつしたがってノード77に対 する子供カウンタはゼロである。その親ノードはノード76でありかつしたがっ てノード77に対するアップポインタはノード76のメモリアドレスを含む。 ストリング“TO”78を表わすレベル2のノードはキャラクタ“O”を含む 。それは子供を持たずかつしたがってノード78に対する子供カウンタはゼロで ある。その親ノードはレベル1のノード“T”でありかつしたがってノード78 に対するアップポインタはキャラクタ値“T”を含む。レベル2のノード“TU ”79はキャラクタ“U”を含む。それはレベル3のノード“TUG”80であ る単 一の子供を持たず、かつしたがってノード79に対する子供カウンタは1である 。その親ノードはレベル1のノード“T”でありかつしたがってノード79に対 するアップポインタはキャラクタ値“T”を含む。ストリング“TUG”80を 表わすレベル3のノードはキャラクタ“G”を含む。それは子供を持たずかつし たがってノード80に対する子供カウンタはゼロである。その親ノードはノード 79でありかつしたがってノード80に対するアップポインタはノード79のメ モリアドレスを含む。 あるノードを削除するためには、上位ノードに対する子供カウンタを単に減分 すれば良い。 例えば、もしストリング“THE”を表わすレベル3のノード74が削除され るべきである場合は、レベル3のノード74の親、この場合はストリング“TH ”に対するレベル2のノード72、に対する子供カウンタが1だけゼロに低減さ れる。 いくつかの従来の参照文献は削除されるべきノードは子供(リーフノード)を 持つべきでないことを認めている。そのようなノードは好ましい本実施例ではゼ ロを含む子供カウンタを有するノードとして認められる。これは子供カウンタが 各々のノードの記憶部に含まれる理由である。レベル1のノードはこの実施例で は削除されないから、レベル1のノードに対しては子孫カウンタ(offspr ing counter)は必要とされない。 もしあるノードが加えられるべきである場合は、上位ノードに対する子供カウ ンタが増分される。例えば、もしストリング“TUGZ”がツリーに加えられる べきである場合はそれはストリング“TUG”を表わすリーフノードに続き、リ ーフノード80に対する子供カウンタは1に増分される。 ノードを加えることは単一のメモリロケーションを増分することからなり、一 方ノードを削除することは単一のメモリロケーションを減分することからなる。 良く知られているように、マイクロプロセッサによるメモリロケーションの減分 および増分はマイクロプロセッサによって行なわれるより高速の動作のうちの2 つである。したがって、ノードを加えかつ削除することの処理は非常に高速で行 なわれる。 さらに、好ましい本実施例に対するメモリのオーバヘッドも同様に小さく、そ れは各々のレベル1でないノードは5バイトを必要とするのみであるからである 。ノードごとに少ないメモリにより、与えられた量のRAM内でより多くのノー ドを保持することができる。あるいは、与えられた数のノードに対し、44%少 ないRAMが必要とされるのみである。 キャラクタごとにより少ない処理により、増大したDCEスループットが与え られた数のプロセッササイクルに対して達成できる。あるいは、与えられたスル ープットに対 し、プロセッササイクルのこの節約はマイクロプロセッサによって他の必要のた めに使用できる。これらのデータ構造の使用のシミュレーションはスループット が20%より多く増大したことを示している。 図6は、上に述べた装置において使用する方法を示す。通信が開始される(ブ ロック200)。DCEはキャラクタ(ブロック202)を待機する。もしキャ ラクタが受信されれば(ブロック204)、該キャラクタが処理される(ブロッ ク206、図7を参照)。もしフラッシュ、EOF(エンドオブフレーム)、ま たはSYNCH ERROR(同期エラー)コマンド要求が受信されれば(ブロ ック210)、該コマンドが処理される(ブロック210)図8を参照)。もし テスト圧縮要求が受信されれば(ブロック212)、現在の状態に応じて、圧縮 がスタートされるべきかあるいは終了されるべきかを判定するためテストが行な われる(図9を参照)。 図7は、キャラクタの処理を示す(ブロック206)。ストリングおよび次の キャラクタに対して辞書がサーチされる(ブロック208)。もし該ストリング および次のキャラクタが検出されなければ(ブロック210)、該ストリングは 辞書に加えられる(ブロック212)。 もし該ストリングが検出されれば(ブロック210)、該ストリングに次のキ ャラクタを加えたもの(string plus the next char acter) が調べられてそれが前に送られたストリングと同じであるか否かが判定される( ブロック214)。もし同じであれば、そのストリングが辞書に加えられる(ブ ロック212)。もし同じでなければ、該ストリングは前記ストリングに次のキ ャラクタを加えたものにセットされる(ブロック216)。 もし前記ストリングが検出されなければ、次にモードが調べられる(ブロック 211)。もしシステムが圧縮モードで動作していれば、コードワードが送られ る(ブロック213)。前記ストリングが次に辞書に加えられる(ブロック21 2)。 前記ストリングが検出されてもまたはされなくても(ブロック210)、前記 ストリングは不整合の(unmatched)キャラクタに初期化される(ブロ ック218)。 DCEは次にそれらが圧縮モードで動作しているかあるいはトランスペアレン トモードで動作しているかを判定するために調べられる(ブロック220)。も しDCEが圧縮モードで動作していれば、キャラクタの処理は終了する(ブロッ ク226)。これに対し、もしDCEがトランスペアレントモードで動作してい れば、前記キャラクタが送られ(ブロック222)かつエスケープキャラクタ手 順が適用され(ブロック224、図10を参照、以下に説明する)、そして処理 は終了する(ブロック226)。 図8は、コマンドを処理する方法を示す。(ブロック2 10)。DCEが調べられてモードを判定する(ブロック230)。もしそれら がトランスペアレントモードで動作していれば、バッファリングされた(buf fered)キャラクタが送られ(ブロック232)、かつコマンド処理が終了 する。 もしDCEが圧縮モードで動作していれば、データが調べられてストリングが 空きであるか否かが判定される(ブロック234)。もし空きであれば、キャラ クタが送られる(ブロック236)。そうでない場合は、コードワードが送られ る(ブロック238)。次にコマンドが送られ(ブロック240)、かつ次のキ ャラクタが例外処理される(ブロック242、図11を参照、後に説明する)。 次にコマンドの処理が終了する(ブロック244)。 図9は、圧縮をテストする方法を示す(ブロック212)。圧縮のテストは圧 縮がより高速の情報の伝送を行なうか否かを判定するために使用される(ブロッ ク250)。次に、モードが変更されるべきか否かが判定される(ブロック25 2)。もしモードの変更が必要でなければ、テスト圧縮手順が終了する(ブロッ ク254)。 もしモードが変更されるべきであれば、DCEの現在のモードが調べられる( ブロック256)。もし圧縮モードにあれば、ストリングが調べられて該ストリ ングが空きであるか否かが判定される(ブロック258)。もし空きでなければ 、コードワードが送られ(ブロック260)、か つトランスペアレントモードに入るためにコマンドが送られる(ブロック262 )。もしストリングが空きであれば(ブロック258)、圧縮モードに入るため のコマンドが直ちに送られる(ブロック262)。次にエスケープキャラクタが 初期化され(ブロック264)、かつトランスペアレントモードに入る(ブロッ ク266)。次に、次のキャラクタが例外処理され(ブロック268)、かつ手 順が終了する(ブロック254)。 もしトランスペアレントモードにあれば、エスケープキャラクタが送られ(ブ ロック270)、デコーダの辞書が再初期化され(ブロック272)、エンタ圧 縮モードコマンドが送られ(ブロック274)、かつ圧縮モードに入る(ブロッ ク276)。 次のキャラクタが例外処理され(ブロック268)、かつ手順が終了する(ブ ロック254)。 図10は、エスケープキャラクタ手順のための処理を示す(ブロック224、 図7を参照)。キャラクタが調べられて該キャラクタがエスケープキャラクタで あるか否かが判定される(ブロック280)。もしエスケープキャラクタでなけ れば、手順が終了する。もしエスケープキャラクタであれば、データ制御キャラ クタにおけるエスケープが送られ(ブロック282)、かつ該エスケープキャラ クタが更新される(ブロック284)。 図11は、次のキャラクタの例外処理を示す(図8のブ ロック242を参照)。DCEは次のキャラクタを待機する(ブロック290) 。もしフラッシュ(FLUSH)、EOF)または同期エラー(SYNC ER ROR)コマンド要求が受信されれば(ブロック292)、DCEは次のキャラ クタを待つ(ブロック290)。 もしキャラクタが受信されれば(ブロック294)、ストリングがそのキャラ クタに初期化される(ブロック296)。次にモードがチェックされる(ブロッ ク298)。圧縮モードにおいては、さらに何も行なわれず、かつ手順は終了す る(ブロック300)。 トランスペアレントモードにおいては、キャラクタが送られ(ブロック202 )、エスケープキャラクタが送られ(ブロック204)、かつプログラムが終了 する(ブロック200)。 図12は、圧縮モードにおけるデータ圧縮デコーダ46の動作を示す(ブロッ ク210)。デコーダ46はコードワードを待機する(ブロック212)。コー ドワードを受信すると(ブロック214)、該コードワードがチェックされて( ブロック216)それがコマンドコードワードであるか否かが判定される。もし 該コードワードがフラッシュ、EOFまたは同期エラーコマンドコードワードで あれば、該コマンドが処理される。 もし前記コードワードがTXDCE26により発生されるエンタトランスペア レントモード(ENTER TRA NSPARENT MODE:ETM)コマンドコードワードであれば(図9の 274を参照)、エスケープキャラクタが初期化され(ブロック220)、かつ トランスペアレントモードに入る(ブロック222、図13を参照、後に説明す る)。 もしストリングコードワードが受信されれば、該ストリングがコードワードか らデコードされる(ブロック224)、コードワードからデコードする方法はC larkの米国特許第5,153,591号およびWelshの米国特許第4, 558,302号に述べられている。もし前のコードワードが前記ストリングに 等しければ(ブロック326)、ボキャブラリが更新され(ブロック328)、 かつ該ストリングがTXデータポンプ18(ブロック330)に送られる。 図13は、トランスペアレントモード(ブロック322)の間のデコーダの動 作を示す。RXDCE28はキャラクタを待機する(ブロック340)。キャラ クタが受信されたとき(ブロック342)、該キャラクタが調べられて該キャラ クタがエスケープキャラクタであるか否かが判定される(ブロック344)。 もしエスケープキャラクタでなければ、該キャラクタは出力バッファに入れら れる(ブロック346)。 もしエスケープキャラクタであれば、該エスケープキャラクタは更新される( ブロック348)。RXDCE28 は次のキャラクタを待ち(ブロック350)、コマンドへ(ブロック352)、 次に該コマンドを実行する(ブロック354)。もし該コマンドがエンタ圧縮モ ード(ENTER COMPRESSED MODE:ECM)コマンドであれ ば(図9のブロック274を参照)、デコーダボキャブラリ47が再初期化され (ブロック356)、かつ手順は終了する(ブロック358)。 ボキャブラリ35,47の再初期化は現在のボキャブラリの全体の削除とする か、またはボキャブラリ35,47を外部的に識別されるツリー構造にあるいは TXDCE26はRXDCE28と間の交渉によって識別されるツリー構造へと リセットすることができる。 そうでない場合は、前のエスケープキャラクタが出力バッファに入れられ(ブ ロック344)、かつRXDCE28は再び次のキャラクタを待つ(ブロック3 24)。 図14は、デコーダボキャブラリを更新する方法を示す(ブロック400)。 候補となる(candidate)フリーノードが選択される(ブロック402 )。該候補のノードは該ノードの子供の数を判定するため調べられる(ブロック 404)。もし子供ノードがゼロでなければ、新しい候補のノードが選択される (ブロック402)。 もし子供カウンタがゼロであれば、現在のストリングの最初のキャラクタがフ リーノードのキャラクタバイトに格納され(ブロック406)、該フリーノード の子供カウン タがゼロにされ(ブロック408)、親ノードのメモリロケーションが前記フリ ーノードのアップポインタへと格納され(ブロック410)、かつ親ノードの子 供カウンタが増分される(ブロック412)。手順は次に退出する(ブロック4 14)。 <結論> 図4に示されるように、デコーダのデータ構造は少なくともキャラクタフィー ルド、アップポインタフィールド、および子供カウンタフィールドを必要とする 。デコーダは前記ツリーを下にあるいは前記ツリーにわたって移動する必要はな く、かつしたがってダウン、レフト、またはライトポインタはない。ダウンポイ ンタは子供カウンタフィールドによって置き換えられており、該子供カウンタフ ィールドはノードの子供の数のカウントであり、かつまたノードがリーフノード であるか否かを判定するために使用される。これらの改善によりデコーダによっ て必要とされるRAMが低減されかつデコーダのデータ構造を維持するためのプ ロセッサの使用が低減される。好ましい実施例では、前記キャラクタフィールド は1バイトであり、アップポインタフィールドは2バイトであり、かつ子供カウ ンタフィールドは2バイトである。子供カウンタフィールドは2バイトであるが 、それはノードは記憶のために1バイトより多くを必要とするゼロ(0)から2 56までの子供を持つ ことができるからである。他の解決方法は1バイトの子供カウンタフィールドを 使用しかつどこか他に、たぶんアップポインタフィールドに1ビットのフラグを 使用することである。 デコーダは図4に示されたもののようなデータ構造を使用することができるが 、それは該デコーダが前のストリングにイノベーションキャラクタを加える前に 2重のストリングをチェックしないからである。デコーダはトランスペアレント モードの間ボキャブラリを維持しない。該ボキャブラリはトランスペアレントモ ードから圧縮モードに切り換える場合にエンコーダおよびデコーダの双方によっ てリセットされる。あるノードの子供カウンタフィールドは「子供」が加えられ たときに増分され、かつ「子供」が削除されたときに減分され、かつ該ノードは 子供カウンタフィールドがゼロである場合はリーフノードである。 前記好ましい実施例においては、ストリング整合手順が最も長いストリングの 整合の前にエンコーダによって終了されたときは常に、新しいストリングが次の キャラクタと共にスタートされるが、該キャラクタはボキャブラリに加えられな い。これはモード切換、フラッシュ、エンドオブフレーム、または同期エラーの 後に生じることになる。エンコーダは例示的にデコーダにモード切換、フラッシ ュ、エンドオブフレーム、または同期エラーを通知する(前記「フラッシュ(F LUSH)」コードワードが各々のフラ ッシュ動作の後に送られる)。デコーダはストリングのイノベーションキャラク タを2重のストリングに対するチェックなしに前のストリングに加えるが、モー ド切換、フラッシュ、エンドオブフレーム、または同期エラーに続く第1のイノ ベーションキャラクタを除く。 他の構成では、デコーダはストリングのイノベーションキャラクタを、例え重 複が加えられても、前のストリングに加える。エンコーダはそのボキャブラリに 2重のストリングを加えても良くまたは加えなくても良い。もしエンコーダがそ のボキャブラリに2重のストリング(duplicate string)を加 えなければ、該エンコーダはあたかも該ノードが加えられたかのように加えられ ているノードに対するコードワードを確保する。エンコーダはボキャブラリのい ずれの2重のストリングに対するコードワードをも送らない。2重のストリング はより長いストリングを構築するのに使用されない。2重のストリングを表わす ノードはリーフノードを残し、かつボキャブラリのメンテナンスの間にツリーか ら削除される。 エンコーダおよびデコーダは圧縮モードの間はエスケープキャラクタを維持す る必要はない。したがって、エンコーダおよびデコーダはデータの各々のキャラ クタをエスケープキャラクタに対してチェックせずかつそれがデータに検出され た場合には該エスケープキャラクタを更新する。好ましい実施例では、エンコー ダまたはデコーダのいずれ かは圧縮モードの間にエスケープキャラクタを維持し続けることができ、かつ該 エスケープキャラクタは圧縮モードからトランスペアレントモードへ切り換わる ときにその初期値(ゼロ)へとリセットされる。他の構成ではエンコーダもデコ ーダもエスケープ文字を圧縮モードの間に変更しないことを必要とする。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 フリング・フランク アメリカ合衆国マサチューセッツ州 02703、アトルボーロ、ケルコート・ドラ イブ 13 (72)発明者 マイナー・マーク アメリカ合衆国マサチューセッツ州 02035、フォックスボーロ、ビックネル・ ロード 8

Claims (1)

  1. 【特許請求の範囲】 1.デジタル情報を含む信号の通信のために第1および第2のデジタルターミ ナルを通信チャネルによって結合するデジタル通信システムにおいて、 第1のデジタル通信装置であって、 前記デジタル通信装置を前記第1のデジタルターミナルと結合するインタ フェース、 データ圧縮エンコーダ、 前記データ圧縮エンコーダに結合されたエンコーダボキャブラリであって 、該エンコーダボキャブラリは該エンコーダボキャブラリ内にエントリを格納す るための第1のツリー構造を使用するもの、および 前記通信チャネルに結合された送信データポンプ、を有する前記第1のデ ジタル通信装置、そして 第2のデジタル通信装置であって、 前記通信チャネルに結合された受信データポンプ、 前記第2のデジタルターミナルを前記第2のデジタル通信装置と結合する インタフェース、 データ圧縮デコーダ、および 前記データ圧縮デコーダに結合されたデコーダボキャブラリであって、該 デコーダボキャブラリは該デコーダボキャブラリにエントリを格納するための第 2のツリー構造を有するもの、 を有する前記第2のデジタル通信装置、 を具備するデジタル通信システム。 2.前記第1のデジタル通信装置は前記データ圧縮エンコーダがイネーブルさ れるか否かを制御するエンコーダアンチ伸張制御部を含む、請求項1に記載のデ ジタル通信システム。 3.前記エンコーダアンチ伸張制御部はさらに前記データ圧縮エンコーダをデ ィスエーブルするための手段を具備する、請求項2に記載のデジタル通信システ ム。 4.前記エンコーダアンチ伸張制御部はさらに前記第2のデジタル通信装置の データ圧縮デコーダをイネーブルまたはディスエーブルするための手段を具備す る、請求項3に記載のデジタル通信システム。 5.通信チャネルに結合されたデータ圧縮デコーダであって、該デコーダは圧 縮された情報を含む信号を受信し、該デコーダはデコーダボキャブラリに結合さ れ、該デコーダは情報を前記デコーダボキャブラリに格納するために階層的ツリ ー構造を構成し、該ツリー構造は複数のノードを有し、該ノードは少なくとも第 1の複数のノードが他のノードと異なる階層レベルを持ち、前記第1の複数のノ ードのいくつかはそのノードに関連するより低い階層レベルを有するノードの数 の表現を含む階層構造によって特徴付けられている、データ圧縮デコーダ。 6.データ圧縮デコーダにおけるデコーダボキャブラリ を更新する方法であって、 (a)候補のノードを選択する段階、 (b)前記ノードがいずれかの子孫のノードを有するか否かを判定する段階 、そして (c)前記候補のノードが子孫のノードを持たなければ前記候補のノード を使用して新しいボキャブラリのエントリを格納する段階、 を具備する、データ圧縮デコーダにおけるデコーダボキャブラリの更新方法。
JP7503492A 1993-06-30 1994-06-06 圧縮されたデータを符号化しかつ復号するための方法および装置 Pending JPH08502397A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8584993A 1993-06-30 1993-06-30
US08/085,849 1993-06-30
PCT/US1994/006310 WO1995001677A1 (en) 1993-06-30 1994-06-06 Method and apparatus for encoding and decoding compressed data in data communication

Publications (1)

Publication Number Publication Date
JPH08502397A true JPH08502397A (ja) 1996-03-12

Family

ID=22194371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7503492A Pending JPH08502397A (ja) 1993-06-30 1994-06-06 圧縮されたデータを符号化しかつ復号するための方法および装置

Country Status (4)

Country Link
EP (1) EP0667064A1 (ja)
JP (1) JPH08502397A (ja)
CN (1) CN1111467A (ja)
WO (1) WO1995001677A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0723341A1 (fr) * 1995-01-18 1996-07-24 Laboratoires D'electronique Philips S.A.S. Système de compression de données
WO1998033280A1 (de) * 1997-01-24 1998-07-30 Siemens Aktiengesellschaft Verfahren zum kodieren und dekodieren von daten
ES2272429T3 (es) * 2001-07-13 2007-05-01 France Telecom Metodo para comprimir un arbol jerarquico, señal correspondiente y metodo para descodificar una señal.

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4386416A (en) * 1980-06-02 1983-05-31 Mostek Corporation Data compression, encryption, and in-line transmission system
US4843389A (en) * 1986-12-04 1989-06-27 International Business Machines Corp. Text compression and expansion method and apparatus
US5058144A (en) * 1988-04-29 1991-10-15 Xerox Corporation Search tree data structure encoding for textual substitution data compression systems
GB8815978D0 (en) * 1988-07-05 1988-08-10 British Telecomm Method & apparatus for encoding decoding & transmitting data in compressed form
GB8825780D0 (en) * 1988-11-03 1988-12-07 Microcomputer Tech Serv Digital computer
US5177480A (en) * 1988-12-07 1993-01-05 British Telecommunications Public Limited Company Data communication having transmitter-controlled mode switching from compressed-to-transparent mode but local synchronous transmitter-controlled and receiver-controlled mode switching from transparent-to-compressed mode
US5023610A (en) * 1990-06-13 1991-06-11 Cordell Manufacturing, Inc. Data compression method using textual substitution
GB2251097B (en) * 1990-12-08 1995-05-10 Dowty Information Systems An adaptive data compression system
US5245614A (en) * 1991-04-29 1993-09-14 Codex Corporation Vocabulary memory allocation for adaptive data compression of frame-multiplexed traffic

Also Published As

Publication number Publication date
WO1995001677A1 (en) 1995-01-12
EP0667064A1 (en) 1995-08-16
CN1111467A (zh) 1995-11-08

Similar Documents

Publication Publication Date Title
US5323155A (en) Semi-static data compression/expansion method
JP3571079B2 (ja) データ圧縮方法及びシステム
US7167593B2 (en) System and method for incremental and continuous data compression
US7403136B2 (en) Block data compression system, comprising a compression device and a decompression device and method for rapid block data compression with multi-byte search
JP2771324B2 (ja) データ圧縮
US5293379A (en) Packet-based data compression method
US20060071822A1 (en) Method and apparatus for adaptive data compression
AU2001277914A1 (en) Incremental and continuous data compression
US5463389A (en) Data compression method and device utilizing children arrays
JPH08502397A (ja) 圧縮されたデータを符号化しかつ復号するための方法および装置
US5564045A (en) Method and apparatus for string searching in a linked list data structure using a termination node at the end of the linked list
US7580429B1 (en) System and methods for improving data compression
JP2940948B2 (ja) データ圧縮方式
US6658026B1 (en) Method in connection with serial data transfer to recognize a fixed pattern
US20020093978A1 (en) Synchronous protocol encoding and decoding method
US7272663B2 (en) Method and system for delineating data segments subjected to data compression
US6674374B1 (en) Data compressor utilizing switched input coincidence elements
AU678942B2 (en) Data compression encoder/decoder and method for efficient duplicate string handling
KR100245036B1 (ko) 개선된 모뎀용 부호화 시스템 및 그 코드워드 생성방법
JP4128152B6 (ja) データ圧縮方法及びシステム
JPH07334344A (ja) データ符号化装置
JPH08265167A (ja) データ圧縮装置