JP3578445B2 - Data compression recorder - Google Patents
Data compression recorder Download PDFInfo
- Publication number
- JP3578445B2 JP3578445B2 JP01770199A JP1770199A JP3578445B2 JP 3578445 B2 JP3578445 B2 JP 3578445B2 JP 01770199 A JP01770199 A JP 01770199A JP 1770199 A JP1770199 A JP 1770199A JP 3578445 B2 JP3578445 B2 JP 3578445B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- dictionary
- unit
- compression
- data compression
- 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.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、データ圧縮記録技術の分野に属する。
【0002】
【従来の技術】
一般に、従来のデータ圧縮記録装置として、入力されるデータを圧縮し、圧縮されたデータをメディア(記録媒体など)に記録する装置テープ、光ディスク、フロッピーディスク等が知られている。
【0003】
従来のデータ圧縮技術として、米国特許US4558302号、米国特許US4847619号、米国特許US4870415号、および、ヨーロッパ規格であるECMA−151規格書などに記載されたものが知られている。
【0004】
米国特許US4558302号は、LZ78、LZW型データ圧縮/伸長システムを開示している。米国特許US4847619号は、圧縮率を観測し閾値以下で辞書をリセットすることを開示している。米国特許US4870415号は、圧縮率を観測して効率良くデータ圧縮する方法を開示している。ECMA−151規格書は、辞書ベース適応データ圧縮DCLZアルゴリズムを開示している。
【0005】
【発明が解決しようとする課題】
しかしながら、上記従来のデータ圧縮記録装置は、データ圧縮処理部が生成する圧縮データの平均出力速度がメディア(記録媒体など)にデータを記録するドライブ記録速度を下回った場合、アンダーフロー状態になり、たとえばテープバックアップ装置の場合、記録すべきデータが足りなくなるためテープを一旦停止し数トラック分巻き戻し、記録すべきデータが準備された時点で再び磁気記録を開始することになり、結果的にアンダーフローによって前記機械的動作が頻繁に発生する。このため連続的にデータを記録することができなくなり、平均記録速度が低下し記録時間が増大するという問題が発生する。
【0006】
また、特に接触記録媒体テープ、ハードディスク、フロッピー等の場合、上記機械的動作が頻繁に発生すると、媒体の早期劣化のみならず記録ヘッド、ドライブモータの寿命を縮める、という問題も発生する。
【0007】
データ圧縮記録装置の上記アンダーフロー状態を引き起こす原因は、データ圧縮記録装置の記録速度、データ圧縮手段の圧縮率、および、辞書検索速度にある。ホストコンピュータの進歩とともにデータ転送速度は急速に向上しており、これに応じてデータ圧縮記録装置の記録速度を向上させる必要が生じ、データ圧縮手段が出力する圧縮データの出力速度も常に記録速度以上である必要がある。
【0008】
しかしながら、入力データストリームから辞書を作成/参照するデータ圧縮手段では、圧縮処理中に圧縮率低下に起因して辞書を初期化いわゆる辞書リセットする場合のデータ圧縮処理中断による一時的なデータ圧縮手段の出力中断、入力データストリームの性格によって一時的に圧縮率が非常に高まる場合のデータ圧縮手段の出力速度の急激な低下、辞書の登録量が増加するにつれて同一データ列が辞書内に登録されているかを検索する際の検索時間増加によるデータ圧縮手段の出力速度低下、などの状況に陥ると前記アンダーフロー状態となる。
【0009】
本発明は、上記問題点に鑑み、入力データストリームの性格、データ圧縮手段特有の性質/処理、データ書き込み速度の向上、などによる影響を受けず、機械的動作の中断なく常にストリーミングするデータ圧縮記録装置を実現することを目的とする。
【0010】
【課題を解決するための手段】
本発明のデータ圧縮記録装置は、入力されるデータ列を解析するデータ列解析手段、前記データ列解析手段によって生成されたデータが辞書に登録されているか否かを調べ、前記生成されたデータが前記辞書に未登録である場合、前記辞書に辞書登録する辞書作成・検索手段、前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る場合、前記辞書作成・検索手段に前記辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段を有するデータ圧縮手段と、前記データ圧縮手段から出力されたデータをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、前記圧縮率観測手段が前記辞書作成・検索手段に前記辞書の初期化を指示すると、前記初期化を指示した時点から前記辞書の初期化が終了するまでの期間中のみ、前記データ圧縮手段に入力されるデータ列が前記データ記録手段に転送され、そのことにより上記目的が達成される。
【0011】
このため、本発明のデータ圧縮記録装置は、従来のデータ圧縮記録装置に比べて、データ圧縮処理中の辞書リセット処理期間中でも、データ圧縮処理部の出力が途切れることなく維持でき、アンダーフロー状態の回避が容易である。
【0014】
本発明のデータ圧縮記録装置において、前記データ圧縮記録装置は、前記辞書が記憶される領域とフラグ情報が記憶される領域を有するRAMをさらに備え、前記辞書が記憶される領域が、前記フラグ情報が記憶される領域と異なり、前記辞書が記憶される領域には、アドレスに対応してエントリが格納され、前記フラグ情報が記憶される領域には、前記アドレスに従い、前記辞書にエントリが登録されたか/未登録であるかを示すフラグ情報が、テーブル化して割り付けられてもよい。
【0015】
上記本発明のデータ圧縮記録装置は、従来のデータ圧縮記録装置に比べて、データ圧縮処理中の辞書リセット処理にかかる時間を大幅に短縮できるため、データ圧縮部が非圧縮データを出力する時間が短くてすみ、圧縮率の低下を防ぎながらアンダーフロー状態の回避が可能になる。たとえば、あるデータ圧縮記録装置において、システムクロックを40MHz、辞書部1105のエントリ数M個を4096個、SRAMへの書き込み時間を50nsとすると、辞書リセット処理に約204μsかかる。本発明の別のデータ圧縮記録装置では、約12μsで辞書リセット処理が終了する。
【0016】
本発明の別のデータ圧縮記録装置は、入力されるデータ列を解析するデータ列解析手段、前記データ列解析手段によって生成されたデータが辞書に登録されているか否かを調べ、前記生成されたデータが前記辞書に未登録である場合、前記辞書に辞書登録する辞書作成・検索手段、前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る場合、前記辞書作成・検索手段に前記辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段を有するデータ圧縮手段と、前記データ圧縮手段から出力されたデータをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、前記データ圧縮手段が、前記データ記録手段における機械的動作変更による一時的記録中断状態を検出する機械的記録中断検出手段、および外部からの辞書初期化禁止信号に従い、前記圧縮率観測手段によって生成された前記辞書初期化信号を無効にし、前記一時的記録中断状態において前記機械的記録中断検出手段が生成する機械的記録中断を示す信号を受信することで前記辞書初期化信号を有効にする初期化マスク手段を有し、そのことにより上記目的が達成される。
【0017】
本発明の別のデータ圧縮記録装置では、光ディスク、フロッピーディスク、ハードディスク等のドライブにおけるピックアップや磁気ヘッドのシーク動作中、もしくは、ランダムアクセス型テープドライブのトラック移動中などの一時的なデータ記録中断期間に辞書リセット処理を行なうことが可能になる。
【0018】
ここで、機械的動作変更とは、データ記録動作状態からその他の動作状態への変更による記録系メカニズムの各部位の動作をいう。
【0019】
また、一時的記録中断状態とは、ある要因により、メディア(記録媒体)へのデータ記録が一時的に不可能になる状態をいう。
【0020】
本発明のデータ圧縮記録装置において、前記データ圧縮記録装置が、前記データ圧縮手段の前段に配置され、前記入力されるデータ列を蓄積するバッファメモリと、前記バッファメモリに蓄積されたデータを前記データ圧縮手段に入力し、前記バッファメモリ内のデータ蓄積量が、前記辞書を初期化するのに必要な時間内に前記データ圧縮手段が出力するとデータ量を上回ることを示すマスク解除信号を出力するバッファ管理手段と、外部からの辞書初期化禁止信号に従い、前記圧縮率観測手段が発行する辞書初期化信号を無効にし、前記バッファ管理手段が出力する前記マスク解除信号を受信することで、前記辞書初期化信号を有効にする初期化マスク手段とを備えてもよい。
【0021】
上記本発明のデータ圧縮記録装置では、従来のデータ圧縮記録装置に比べて、辞書リセットが発生してから比較的早い段階で、辞書リセット処理が行なえ、その辞書リセット処理中にデータ圧縮部が出力する非圧縮データ量が確実に確保される。このため、上記本発明のデータ圧縮記録装置は、従来の辞書リセット処理によるアンダーフロー状態を確実に回避可能となる。
【0022】
本発明のさらに他のデータ圧縮記録装置は、入力されるデータ列を解析するデータ列解析手段、前記データ列解析手段によって生成されたデータが辞書に登録されているか否かを調べ、前記生成されたデータが前記辞書に未登録である場合、前記辞書に辞書登録する辞書作成・検索手段、前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る場合、前記辞書作成・検索手段に前記辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段を有するデータ圧縮手段と、前記データ圧縮手段から出力されたデータをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、前記データ圧縮記録装置が、前記データ圧縮手段の後段に配置され、前記データ圧縮手段にて圧縮された圧縮データを蓄積するバッファメモリと、前記蓄積圧縮データが前記データ記録手段に送られ、前記バッファメモリに蓄積される前記圧縮データの量が、前記辞書を初期化するために必要な時間内に、前記データ圧縮手段が出力する圧縮データの量を上回ることを示すマスク解除信号を出力するバッファ管理手段と、外部からの辞書初期化禁止信号に従い、前記圧縮率観測手段が発行する辞書初期化信号を無効にし、前記バッファ管理手段が発行する前記マスク解除信号を受信することで、前記辞書初期化信号を有効にする初期化マスク手段とを備え、そのことにより上記目的が達成される。
【0023】
本発明のさらに他のデータ圧縮記録装置は、従来のデータ圧縮記録装置に比べて、データ圧縮部自身の処理によって発生するアンダーフロー状態を回避することが容易になる。
【0024】
本発明のさらに他のデータ圧縮記録装置は、入力されるデータ列を解析するデータ列解析手段、前記データ列解析手段によって生成されたデータが辞書に登録されているか否かを調べ、前記生成されたデータが前記辞書に未登録である場合、前記辞書に辞書登録する辞書作成・検索手段、前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る場合、前記辞書作成・検索手段に前記辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段を有するデータ圧縮手段と、前記データ圧縮手段から出力されたデータをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、前記データ圧縮手段が、前記データ圧縮手段から出力される圧縮データの転送速度が、前記データ記録手段がデータをメディアに書き込む速度を下回る時点を指示する予測信号を生成するアンダーフロー予測手段と、前記アンダーフロー予測手段が出力する予測信号に従って、データ圧縮率を変化させる圧縮率変更手段とを有し、そのことにより上記目的が達成される。
【0025】
本発明のさらに別のデータ圧縮記録装置は、従来のデータ圧縮記録装置に比べて、辞書リセットが発生してから比較的早い段階で辞書リセット処理が行なえ、その辞書リセット処理中にデータ圧縮部が出力する圧縮データ量が確実に確保される。このため、本発明のさらに別のデータ圧縮記録装置は、従来の辞書リセット処理によるアンダーフロー状態を確実に回避可能、常に圧縮データを記録媒体に記録可能である。また、本発明のさらに別のデータ圧縮記録装置は、サイズの小さいバッファメモリを有効に利用することができる。
【0026】
本発明のさらに別のデータ圧縮記録装置において、前記アンダーフロー予測手段が、外部から入力される時間情報および基底圧縮率に従い、予測信号を生成してもよい。
【0027】
本発明のさらに別のデータ圧縮記録装置は、従来のデータ圧縮記録装置に比べて、データ圧縮部への入力データ列の状態に依存して発生する高圧縮率状態を検出し、意図的に圧縮率を下げるように制御することができる。本発明のさらに別のデータ圧縮記録装置は、前記高圧縮率状態により発生するアンダーフローを容易に回避できる。また、本発明のさらに別のデータ圧縮記録装置では、長期的期間で考えると、圧縮率をその基底圧縮率に収束できる。
【0028】
本発明のさらに別のデータ圧縮記録装置において、前記データ圧縮記録装置が、前記データ圧縮手段の前段に配置され、前記入力されるデータ列を蓄積するバッファメモリを備え、前記アンダーフロー予測手段が、前記蓄積されたデータを前記データ圧縮手段に入力し、外部から指定入力される基底データ蓄積量に対する前記バッファメモリ内のデータ蓄積量の倍率を前記圧縮率変更手段に出力してもよい。
【0029】
本発明のさらに別のデータ圧縮記録装置は、従来のデータ圧縮記録装置に比べて、アンダーフロー状態を予測して意図的にデータ圧縮処理における圧縮率を低下させることが可能である。このことにより、本発明のさらに別のデータ圧縮記録装置では、バッファ内のデータ量不足により発生するアンダーフロー状態を容易に回避できる。
【0030】
本発明のさらに別のデータ圧縮記録装置において、前記データ圧縮記録装置が、前記データ圧縮手段の後段に配置され、前記データ圧縮手段から出力される圧縮データを蓄積するバッファメモリを備え、前記アンダーフロー予測手段が、前記蓄積されたデータを前記データ圧縮手段に入力し、外部から指定入力される基底データ蓄積量に対する前記バッファメモリ内のデータ蓄積量の倍率を前記圧縮率変更手段に出力してもよい。
【0031】
本発明のさらに別のデータ圧縮記録装置は、従来のデータ圧縮記録装置に比べて、アンダーフロー状態を予測して意図的にデータ圧縮処理における圧縮率を低下させることが可能である。このことにより、本発明のさらに別のデータ圧縮記録装置では、バッファ内のデータ量不足により発生するアンダーフロー状態を容易に回避できる。
【0034】
本発明の、さらに他のデータ圧縮記録装置は、入力されるデータ列を解析するデータ列解析手段、前記データ列解析手段によって生成されるデータ列が辞書に登録されているか否かを調べ、未登録の場合に前記辞書に辞書登録する辞書作成・検索手段、前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る時点を検出し、前記辞書作成・検出手段に辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段とを有するデータ圧縮手段と、外部からの入力データを前記データ圧縮手段によって圧縮した前記圧縮データをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、前記データ圧縮記録装置が、前記辞書の検索開始から前記辞書の検索終了までの時間を計測し、計測時間情報を生成する時間計測手段を備え、前記辞書作成・検索手段が、外部から入力された時間情報が、前記時間計測手段の計測時間情報を下回った時点で、辞書登録または検索を行う処理を強制的に中止し、前記強制中止直前に確定した圧縮コードを圧縮コード生成部に出力し、そのことにより上記目的が達成される。
【0035】
本発明の、さらに他のデータ圧縮記録装置は、辞書登録領域が少なくなるにつれて、辞書検索にかかる時間が長くなり、このために発生するアンダーフロー状態を容易に回避することができる。
【0036】
【発明の実施の形態】
(実施形態1)
以下に、図面を用いて、本発明のデータ圧縮記録装置における第1の実施形態を説明する。
【0037】
図1は、本発明のデータ圧縮記録装置における第1の実施形態を示す図である。
【0038】
図1に示すデータ圧縮記録装置1101は、コントローラ部1103、データ圧縮部1104、辞書部1105、およびフォーマッタ部1106を備えている。
【0039】
データ圧縮記録装置1101はホストコンピュータ1102と接続され、データ圧縮記録装置1101はホストコンピュータ1102と所定のプロトコルでデータのやりとりを行なう。データ圧縮記録装置1101では、データ圧縮部1104が、上記プロトコルを制御するコントローラ部1103を介してホストコンピュータ1102からのデータを受信する。受信されたデータは、通常、データ圧縮部1104にてデータ圧縮され、圧縮されたデータはフォーマッタ部1106において所定のデータ列にフォーマットされ、記録部1107に転送される。
【0040】
記録部1107は、メディア(記録媒体など)に上記フォーマットされたデータ列を書き込む。データ圧縮記録装置1101では、上述した一連の処理が行なわれる。
【0041】
辞書部1105には、データ圧縮部1104が作成した辞書の内容が格納される。なお、データ圧縮記録装置1101は記録部1107を有していてもよい。
【0042】
以下に、データ圧縮部1104の構成を説明する。
【0043】
データ圧縮部1104は、セレクタ101、データ列解析部1108、辞書作成・検索部1109、圧縮コード生成部1110、および圧縮率観測部1111を有してる。
【0044】
データ列解析部1108は、コントローラ部1103から入力されるデータ列を解析して、最低2バイトのデータ列(以後、『ユニーク列』と称する)を辞書作成・検索部1109に渡す。
【0045】
説明を簡単にするために、便宜上、辞書に登録されるユニーク列を表現する辞書コードは、264から昇順に生成されることとする。また、ユニーク列の最終バイトを『子』と呼び、最終バイトの値に+8した値を『子コード』と呼ぶ。
【0046】
ユニーク列のうち最終バイト以外を『親』と呼び、ユニーク列が2バイトの場合は先頭バイトに+8した値を『親コード』と呼ぶ。ただし、ユニーク列が3バイト以上の場合、親を代表する辞書コード自身を『親コード』と呼ぶこととする。
【0047】
『子コード』および『親コード』の詳細については、後述する。
【0048】
辞書作成・検索部1109は、ユニーク列が辞書部1105に登録されているかを調べる。
【0049】
もし、ユニーク列が辞書部1105に登録されていない場合、辞書作成・検索部1109はユニーク列を辞書部1105に所定のフォーマットで登録する。ユニーク列が辞書部1105に登録されてる場合、辞書作成・検索部1109は、ユニーク列が辞書部1105に登録されてる旨をデータ列解析部1108に知らせ、そのユニーク列に1バイト追加したデータ列を新しいユニーク列とし、辞書作成・検索部1109に渡す。上述したような処理化が繰り返され、辞書作成・検索部1109は辞書部1105に辞書を構築してゆく。
【0050】
ちなみに、ユニーク列を辞書部1105に登録する際、辞書部1105に書き込まれるデータは、辞書コード、親コード、子コード、および登録フラグの4種類であり、以後、それらをエントリと呼ぶ。登録フラグは、登録されたエントリにおけるユニーク列のバイト数を意味する。なお、ゼロ以外の数値が登録フラグに書き込まれた時点で、4種類のデータがエントリ領域に書き込まれたことを意味する。
【0051】
辞書作成・検索部1109は、辞書に新しいユニーク列を登録すると、エントリの中の親コードをセレクタ101を介して圧縮コード生成部1110に渡す。なお、セレクタ101の詳細な動作については後述する。
【0052】
圧縮コード生成部1110は、受信した親コード群やその他の制御コードを所定の圧縮データストリームに組み立てて、それらをフォーマット部1106へ出力する。
【0053】
ここで、制御コードとは、0〜7の値からなる。制御コードが0である場合、それは辞書フリーズコマンドを意味し、制御コードが1である場合、それは辞書リセットコマンドを意味し、制御コードが2〜7のうちの1つである場合、それは未使用を意味する。
【0054】
辞書フリーズコマンドとは、辞書部1105内に辞書登録すべき領域が無くなったことを辞書作成・検索部1109が検知すると、その後、辞書作成・検索部1109は辞書登録を中止することを意味する。つまり、辞書フリーズコマンドが出力された後は、現状の辞書の内容でデータ圧縮が行われる。
【0055】
辞書リセットコマンドとは、圧縮率観測部1111が辞書作成・検索部1109に辞書リセット信号1112を指示した時点で、圧縮コード生成部1110が出力する圧縮データストリームに埋め込む。
【0056】
圧縮率観測部1111は、データ圧縮部1104が受け取る入力データ量とデータ圧縮部1104が生成する圧縮出力データ量の比から圧縮率を常に計算している。圧縮率観測部1111が計算した圧縮率が外部から指定される圧縮率を下回る場合つまり、期待される圧縮率が得られない場合、圧縮率観測部1111は、辞書作成・検索部1109に対し辞書リセット信号1112を指示する。辞書リセット信号1112が発生すると、辞書部1105内の全エントリの登録フラグがゼロ値で初期化される。再び、入力データ列からユニーク列が切りだされ、辞書作成が行われる。
【0057】
以下に、辞書リセット信号1112が発行されていない期間における、データ圧縮記録装置1101のデータ圧縮部1104が受け取った入力データ列をデータ圧縮する処理(通常処理)を、図2および図3を用いて説明する。なお、データ圧縮記録装置1101がセレクタ101を有していない場合における、通常処理では、圧縮コード生成部1110が辞書作成・生成部1109から出力される信号を受け取る。
【0058】
図2は、データ圧縮部1104が受け取る入力データと、データ圧縮部1104が生成した出力データの一関係を示す図であり、図3は、辞書部の一構成を示す図である。以後、図3に示す辞書部を辞書部1105aと呼ぶ。
【0059】
図2に示す上段の数値列は、コントローラ部1103からデータ圧縮部1104へ入力されるデータ列で、左から順に入力され、16進数で表現されている。また、図2に示す下段の数値列は、その入力データ列がデータ圧縮部1104で圧縮され出力される圧縮データ列を示し、左から順に出力され、10進数で表現されている。
【0060】
図3に示す辞書部1105aは、1エントリ6バイトで構成される。辞書コード1302に2バイトが割り当てられ、親コード1303に2バイトが割り当てられ、子コード1304および登録フラグ1305に2バイトが割り当てられいる。
【0061】
エントリアドレス1301は、エントリの位置を示している。図3に示す左側の表の上から下へエントリアドレス1301が増加する。また、図3に示す右側の下が最終エントリアドレスとなる。
【0062】
以下に、図2に示す上段入力データ列に対して、データ圧縮部1104が行なう処理を説明する。
【0063】
データ圧縮処理に先立ち、辞書部1105aを辞書リセットするため、辞書作成・検索部1109は辞書部1105a内の全登録フラグ1305にゼロを書き込むとともに、圧縮コード生成部1110は辞書リセットコマンドである1201を、データ列解析部1108、セレクタ部101、および圧縮コード生成部1110に出力する。
【0064】
データ列解析部1108は、入力データ列から最初の2バイト、たとえば、0x61、0x62を切りだし、ユニーク列として辞書作成・検索部1109に渡す。辞書作成・検索部1109は、親値および子値を受け取り、親値および子値に基づいてエントリアドレス1301を生成する所定の関数(たとえば、ハッシュ関数)を用いて、親値0x61および子値0x62に対するエントリアドレスm1を得る。
【0065】
データ列解析部1108は、辞書部1105aのエントリアドレスm1の登録フラグ1305がゼロつまりこのエントリが未使用であることを確認すると(なお、図3では、すでにいくつかの辞書登録が行われた後の辞書部1105aの状態を示しているため、登録フラグには2が格納されている)、エントリアドレスm1に辞書コードの初期値である264を書き込み、エントリアドレスm1に親コード105=0x61+8を書き込み、エントリアドレスm1に子コードである106=0x62+8を書き込み、エントリアドレスm1にユニーク列バイト数である登録フラグ2を書き込む。
【0066】
辞書作成・検索部1109は、それらを辞書部1105aのエントリに書き込むとともに、圧縮コード生成部1110に圧縮データとして親コード105を渡す。
【0067】
データ列解析部1108は、先ほど子であった0x62を親として次入力0x63を子として辞書作成・検索部1109に渡す。
【0068】
辞書作成・検索部1109は、上述したように、親値0x62および子値0x63(ユニーク列)から、それに対応するエントリアドレスm2を得る。
【0069】
辞書作成・検索部1109が、エントリアドレスm2の登録フラグがゼロ(なお、図3では、すでにいくつかの辞書登録が行われた後の辞書部1105aの状態を示しているため、登録フラグには2が格納されている)、つまりこのエントリが未使用であることを確認すると、先ほどの辞書コードの初期値+1である265、親コード106=0x62+8、子コードである107=0x63+8、および、ユニーク列バイト数である登録フラグ2を、辞書部1105aのエントリアドレスm2に対応するエントリに書き込むとともに、圧縮コード生成部1110に圧縮データとして親コード106を渡す。
【0070】
同様にして、辞書作成・検索部1109は、ユニーク列0x63、0x64からエントリアドレスm3を得、ユニーク列0x64、0x61からエントリアドレスm4を得る。
【0071】
次に、ユニーク列0x61、0x62が切り出される。上述したように、切り出されるユニーク列0x61、0x62に対するエントリアドレスは、前記関数にて計算するとm1となる。エントリアドレスm1に対応する登録フラグがゼロ以外であり、かつ、エントリアドレスm1に対応するエントリ内の親コードがユニーク列0x61+8と一致し、子コードがユニーク列0x62+8と一致するので、辞書作成・検索部1109は、切り出されたユニーク列0x61、0x62が辞書内に存在していると判断する。
【0072】
辞書作成・検索部1109が、切り出されたユニーク列が辞書内に存在していると判断すると、辞書作成・検索部1109は、切り出されたユニーク列0x61、0x62を辞書コード264(10進数)で代表させ、親コードを264とし、切り出されたユニーク列0x61、0x62の次に入力される0x63を子とするユニーク列が辞書に存在するか否かを探す。
【0073】
親コード264(10進数)および子0x63(16進数)からエントリアドレスを計算すると、エントリアドレスはm5となる。
【0074】
エントリアドレスm5に対応するエントリの登録フラグはゼロなので(なお、図3では、すでにいくつかの辞書登録が行われた後の辞書部1105aの状態を示しているため、登録フラグには3が格納されている)、辞書作成・検索部1109が、エントリアドレスm5に対応するエントリの、辞書コードに268を書き込み、親コードに264を書き込み、子コードに107(10進数)=0x63+8(16進数)を書き込み、ユニーク列バイト数である登録フラグに3を書き込むとともに、圧縮コード生成部1110に圧縮データとして親コード264を渡す。
【0075】
同様にして、ユニーク列0x63、0x64、0x61はエントリアドレスm6に登録され、ユニーク列0x61、0x62、0x63、0x64はエントリアドレスm7に登録される。以下、エントリアドレスm10まで同様である。この例では、登録可能なユニーク列の最大バイト数をNバイトと決め、辞書部1105aのエントリ数はM個とする。N、Mとも自然数だが、一般には、N=128、M=4096などの例がある。
【0076】
図4は、データ圧縮処理の辞書作成・検索部1109の通常処理の一例を示す図である。
【0077】
ステップS10において、ホストコンピュータ1102からコントローラ部1103を介してデータ列解析部1108にデータが入力された場合、それを親とする。なお、データの入力は任意の時点で起きてもよい。
【0078】
ステップS20において、データが入力されたか否かが判定される。データが入力された場合、処理はステップS30に進み、データが入力されていない場合、処理はステップS40に進み、処理を終了する。
【0079】
ステップS30において、データ列解析部1108は、初期の親、子、各バイトを辞書作成・検索部1109に送る。
【0080】
ステップS50において、辞書作成・検索部1109は、前記親子が辞書内に存在するか調査するため、辞書部1105の検索を始める。
【0081】
ステップS60では、前記親子を所定関数によって演算することによって、エントリアドレスが生成される。
【0082】
ステップS70では、エントリアドレスに対応する登録フラグ1305の内容が取り出される。
【0083】
ステップS80では、エントリアドレスに対応する登録フラグ1305が0か否かが判定される。登録フラグ1305が0である場合、処理はステップS90に進み、登録フラグ1305が0でない場合、処理はステップS100に進む。
【0084】
ステップS90では、そのエントリは未使用なので、先程データ列解析部1108から入手した親子情報を辞書に登録1303、1304し、現在の親コード1303を圧縮コード生成部1110へ渡し、現在の子を次の親としておく。その後処理はステップS20に進み、ステップS20では、次に入力されるデータを子とする。
【0085】
ステップS100では、登録フラグ1305が0でない場合、たとえば、登録フラグ1305が2の場合、前記エントリアドレスが指すエントリの親子情報が取り出される。
【0086】
ステップS110では、取り出された親子情報とデータ列解析部1108から入手した親子情報が一致するかが判定される。親子情報が一致する場合、処理はステップS120に進む。また、親子情報が一致しない場合、処理はステップS60に進み、前記入手した親子情報に基づき再度所定関数を用いて新たなエントリアドレスを取得して検索を続ける。
【0087】
ステップS120では、現在の親子データ列を親とし、子バイトをデータ列解析部1108から入手して新たなユニーク列を準備して、再び、所定関数によりその親子情報からエントリアドレスを取得して検索を続ける。その後処理はステップS60に進む。なお、圧縮コード生成部1110は、圧縮ストリーム化してフォーマッタ1106に出力する、という圧縮処理(通常処理)を行なう。
【0088】
しかしながら、圧縮率観測部1111は、現在の圧縮率が外部指定圧縮率を下回る場合、辞書部1105aを初期化する処理を促す辞書リセット信号1112を生成する。前記辞書リセット信号1112が発行された場合、データ列解析部1108、および辞書作成・検索部1109が、上述した通常の処理を停止する。
【0089】
そのような場合、セレクタ部101は、圧縮コード生成部1110から出力される信号105を出力するのではなく、コントローラ部1103から送られてくるデータ値102を出力する。セレクタ部101は、辞書リセット信号1112に応じてそのような切り替えを行う。つまり、そのデータ値102を受信した圧縮コード生成部1110は、データ値102をそのままフォーマッタ部1106に出力する。このことによって、辞書部1105が初期化される時間の間、記録が途絶えることがない。
【0090】
データ値102がフォーマッタ部1106に出力されている間に、辞書作成・検索部1109は、図3に示す辞書部1105a内の全エントリの登録フラグにゼロ値を書きこんで辞書の初期化を行なう。
【0091】
辞書部1105aの初期化が終了すると、セレクタ部101は、前記辞書リセット信号1112が非アクティブとなったことに応じて、圧縮コード生成部1110に出力される値をデータ値102から辞書コード105に切り替え、かつデータ列解析部1108、辞書作成・検索部1109は、前記辞書リセット信号1112が非アクティブとなったことに応じて、上述した通常処理に戻る。
【0092】
以下に、前記辞書リセット処理に伴う、圧縮コード生成部1110の処理を説明する。
【0093】
辞書リセット信号1112が発行されると、圧縮コード生成部1110は制御コード値1を出力して、辞書が初期化されることを出力データ列に記録し、次に、制御コード値6を出力して、以降出力されるデータ列が非圧縮であることを出力データ列に記録し、以降コントローラ部1103からのデータ列102をセレクタ部101を介して圧縮コード生成部1110が出力し続ける。この時、圧縮コード生成部1110は入力データバイト値に8を足した値を出力する。引き続いて、辞書リセット処理が終了すると、圧縮コード生成部1110は、制御コード値7を出力し、その非圧縮データ列が終了することを出力データ列に記録し、以降、通常の圧縮処理がなされた圧縮データが出力される。
【0094】
図5は、辞書部1105の他の構成を示す図である。以後、図5に示す辞書部を辞書部1105bと呼ぶ。
【0095】
図5に示す辞書部1105bにおける、エントリアドレス1301、辞書コード1302、親コード1303、子コード1304の内容は、図3に示す辞書部1105aのものと同じである。ただし、図5に示す辞書部1105bおよびデータ圧縮部1104は、登録フラグ1305を格納する領域の代わりに、登録バイト数201を格納する領域およびフラグ202を格納する領域を有している。
【0096】
図3に示す登録フラグ1305および図5に示す登録バイト数201はともに、エントリ登録されたユニーク列のバイト数を示す。一方、登録フラグ1305が辞書リセット処理によってゼロ初期化されるのに対し、登録バイト数201は辞書リセット処理によってゼロ初期化されない。
【0097】
その代わり、エントリに辞書登録されたかどうかを示すフラグ202が、辞書部1105bと別に、データ圧縮部1104に内蔵されるレジスタメモリに格納される。レジスタメモリの一例を図5に示す。図5に示すレジスタメモリは、1ビット×M個のフラグを格納することができる。なお、データ圧縮記録装置1101は、レジスタメモリの1ビットを辞書部1105bにおける1つのエントリに対応づけるフラグセレクタ手段を備えていてもよい。フラグセレクタ手段は、辞書部1105bのエントリアドレス1301によって、レジスタメモリの特定の1ビットが選択される。
【0098】
図3に示す辞書部1105aのリセット処理では、辞書部1105内の全登録フラグ1305の欄にゼロ値が書き込まれる。一方、図5に示す辞書部1105bの通常圧縮処理では、エントリに登録すべきユニーク列のバイト数がそのまま辞書部1105b内の登録バイト数201に記録され、そのエントリが辞書登録に使用されると、そのエントリに対応するフラグ202に値1が記録される。図5に示す辞書部1105bのリセット処理では、辞書部1105bに対してアクセスを行うことなく、図5に示す、データ圧縮部1104内のレジスタメモリ202の全ビット記憶がゼロ値にされる。
【0099】
レジスタメモリでは、各エントリに対して1ビットのフリップフロップ型記憶素子が割り当てられている。つまり、フリップフロップ型記憶素子の数は、エントリ数と同数である。1システムクロック期間の辞書リセット信号でレジスタメモリがゼロに初期化される。たとえば、1システムクロック期間が40MHzである場合、25nsでレジスタメモリがゼロに初期化される。
【0100】
以下に、辞書部1105の別の構成を説明する。
【0101】
図6は、辞書部1105の別の構成の一部である、メモリ空間を示す図である。図6に示すメモリ空間は、図5に示すフラグ202に相当する。辞書部1105の別の構成は、図5に示す、エントリアドレス1301、辞書コード1302、親コード1303、子コード1304、および登録バイト数201と、メモリ空間202aとを有している。メモリ空間202aの大きさは、たとえばZ+0〜Z+256とする。以後、メモリ空間を登録フラグ用テーブル202aと呼ぶ。また、辞書部1105をSRAMとする。
【0102】
辞書部1105であるSRAM内で、登録フラグ用テーブル202aが、エントリアドレス1301、辞書コード1302、親コード1303および子コード1304、登録バイト数201と重ならないようにZの値が決定される。
【0103】
図5に示す、エントリアドレス1301、辞書コード1302、親コード1303、子コード1304、および登録バイト数201のMが4096である場合、図6に示す登録フラグ用テーブルは、全部で4096ビット必要である。
【0104】
データバスが16ビットのSRAMの場合、全部で256ワードの領域が必要となる。前記辞書リセット処理では、その登録フラグ用テーブルの全ビットにゼロを記録するので、256回SRAMにワードのゼロ値を書き込むことになる。
【0105】
辞書登録が始まると、たとえば、図5に示すエントリアドレス12にユニーク列が登録されると、図6に示すZ番地のビット12に1が書き込まれる。図5に示すエントリアドレス23にユニーク列が登録されると、図6に示すZ+1番地のビット7に1が書き込まれる。
【0106】
同様にして、エントリアドレスXにユニーク列が登録されると、図6においては、Xを16で割った時の商がアドレスZ番地となり、剰余がビット番号となる。
【0107】
図1に示す辞書作成・検索部1109内に、前記X÷16の商、剰余を算出する手段を設け、通常のデータ圧縮処理中は、その商によりSRAMの登録フラグ用テーブルアドレスを、その剰余によって書き込むワードデータ内に1を記録するビット番号を作り、エントリに辞書登録されたことを記録として残してゆく。また、辞書リセット処理期間中は、ゼロ値のワードデータがZ番地からZ+256番地に順時書き込まれる。
【0108】
(実施形態2)
以下に、図面を用いて、本発明のデータ圧縮記録装置における第2の実施形態を説明する。
【0109】
図7は、本発明のデータ圧縮記録装置における第2の実施形態を示す図である。
【0110】
図7に示すデータ圧縮記録装置1201は、コントローラ部1103、データ圧縮部1204、辞書部1105、フォーマッタ部1106、記録部1107、およびマスク信号生成部402を備えている。
【0111】
データ圧縮部1204は、マスク部405、データ列解析部1108、辞書作成・検索部1109、圧縮コード生成部1110、および圧縮率観測部1111を有してる。
【0112】
なお、データ圧縮記録装置1201において、データ圧縮記録装置1101と同じ構成には同じ番号を付け、基本的には説明を省略する。
【0113】
記録部1107は、マスク信号生成部402に無記録期間信号401を送る。無記録期間信号401は、記録部1107がメディア(記録媒体など)にデータを記録していない時期を示す信号である。一般には、無記録期間とは、光ディスク記録装置におけるピックアップ、フロッピーディスクドライブにおける磁気ヘッドのシーク動作期間、もしくは、磁気テープドライブにおけるテープライト中のトラック移動期間などに代表される。
【0114】
マスク信号生成部402は、無記録期間信号401および外部から入力された外部辞書リセットマスク信号403に基づいて最終マスク信号404を生成し、それをマスク部405に送る。
【0115】
最終マスク信号404は、圧縮率観測部1111が発行する辞書リセット信号1112が辞書作成・検索部1109に伝わるのをマスクする信号である。信号406は最終的な辞書リセット信号である。
【0116】
外部から入力された外部辞書リセットマスク信号403は、マスク信号生成部402に入力され、記録部1107が通常処理でデータを記録している時は、無記録期間信号401は発行されず、外部から入力された外部辞書リセットマスク信号403が有効となり最終マスク信号404としてマスク部405に入力される。
【0117】
その有効な最終マスク信号404によりマスク部405は、辞書リセット信号1112をマスクし、辞書作成・検索部1109に辞書リセット信号を伝えなくする。よって、記録部1107が通常処理でデータを記録している時は、辞書リセット処理は行なわれず、そのまま辞書を作成しながらデータ圧縮処理を引続き行なう。
【0118】
記録部1107がメディア(記録媒体など)へデータ記録を行なわない期間が発生すると、無記録期間信号401が発行され、その期間中は外部辞書リセットマスク信号403は無効となり、最終マスク信号404も解除される。
【0119】
従って、マスク部405は先程までの辞書リセット信号1112を有効にし最終辞書リセット信号406によって辞書作成・検索部1109は辞書リセット処理を行なう。
【0120】
記録部1107がメディア(記録媒体など)にデータを記録していない期間は、機械的動作が伴うことが前提であり、数百マイクロ秒から数ミリ秒のオーダーであるため、辞書をリセットする処理にかかる時間を満たしており、余裕をもって辞書をリセットすることができる。
【0121】
また、辞書リセットが発行されてから前記機械的動作が発生するまでは、通常処理で辞書を作成しながらデータ圧縮を行なっている。辞書リセットは、期待する圧縮率を下回った場合に、発行される。上述したデータ圧縮処理では急激に圧縮率が低下しないという性質があるため、この性質を利用すれば、ある程度辞書リセット処理の時期を遅らせることは可能である。
【0122】
(実施形態3)
以下に、図面を用いて、本発明のデータ圧縮記録装置における第3の実施形態を説明する。
【0123】
図8は、本発明のデータ圧縮記録装置における第3の実施形態を示す図である。
【0124】
上述したように、図1に示すデータ圧縮記録装置1101では、辞書リセット期間中のみ、入力データを非圧縮データのままフォーマット化して出力する。一方、図8に示すデータ圧縮記録装置1301は、コントローラ部1103を介してホストコンピュータ1102から出力されるデータを一時的に蓄えるバッファメモリ501などを備えている。具体的には、図8に示すデータ圧縮記録装置1301は、コントローラ部1103、データ圧縮部1304、辞書部1105、フォーマッタ部1106、記録部1107、バッファメモリ501およびマスク信号生成部503を備えている。
【0125】
データ圧縮部1304は、マスク部506、データ列解析部1108、辞書作成・検索部1109、圧縮コード生成部1110、および圧縮率観測部1111を有してる。
【0126】
なお、データ圧縮記録装置1301において、データ圧縮記録装置1101と同じ構成には同じ番号を付け、基本的には説明を省略する。
【0127】
バッファメモリ501に蓄えられたデータは、コントローラ部1103を介してデータ列解析部1108に入力される。
【0128】
外部から入力された外部辞書リセットマスク信号504はマスク信号生成部503に入力され、信号504はコントローラ部1103が発行するデータ蓄積検知信号502によって制御される。データ蓄積検知信号502は、辞書リセット処理にかかる期間中、非圧縮のままデータをフォーマッタ部1106へ出力するのに要する転送データ量以上のデータがバッファメモリ501に蓄積された場合に発行される。
【0129】
マスク信号生成部503は、データ蓄積検知信号502が発行されていない時、外部辞書リセットマスク信号504をそのまま有効最終マスク信号505として出力する。マスク信号生成部503は、データ蓄積検知信号502が発行された時、外部辞書リセットマスク信号504をマスクし、最終マスク信号505はマスク無効信号となる。
【0130】
マスク部506は、最終マスク信号505が有効の場合、辞書リセット信号1112をマスクし、最終辞書リセット信号507が無効となり、辞書作成・検索部1109は辞書作成しながらデータ圧縮処理を行なう。
【0131】
マスク部506は、最終マスク信号505が無効の場合、辞書リセット信号1112のマスクを行なわず、最終辞書リセット信号507を生成し、辞書作成・検索部1109は、最終辞書リセット信号507に応じてデータ圧縮処理をやめ、辞書部1105の登録フラグを初期化する。同時にコントローラ部からの入力データは非圧縮のまま圧縮コード生成部1110に送られ、それらはフォーマット化されて出力される。その辞書リセット処理に必要な時間分の出力データ量がバッファメモリ501に確保されていることが保証されているため、システム全体としては常に記録部1107を停止させることなくデータをストリーミングさせることが可能となる。
【0132】
また、辞書リセットが発行されてからデータ蓄積検知信号502が発行されるまでは、通常処理で辞書を作成しながらデータ圧縮を行なっている。辞書リセットは期待する圧縮率を下回った場合に発行されるものであり、上述したデータ圧縮処理では急激に圧縮率が低下しないという性質があるため、この性質を利用すれば、ある程度辞書リセット処理の時期を遅らせることは可能である。
【0133】
(実施形態4)
以下に、図面を用いて、本発明のデータ圧縮記録装置における第4の実施形態を説明する。
【0134】
図9は、本発明のデータ圧縮記録装置における第4の実施形態を示す図である。
【0135】
上述したように、図1に示すデータ圧縮記録装置1101では、辞書リセット期間中のみ、入力データを非圧縮データのままフォーマット化して出力する。
【0136】
一方、図9に示すデータ圧縮記録装置1401は、データ圧縮部1404が出力する圧縮データ列を、フォーマッタ部1106を介して蓄積するバッファメモリ601などを備えている。具体的には、図9に示すデータ圧縮記録装置1401は、コントローラ部1103、データ圧縮部1404、辞書部1105、フォーマッタ部1106、記録部1107、バッファメモリ601、およびマスク信号生成部603を備えている。
【0137】
データ圧縮部1404は、マスク部606、データ列解析部1108、辞書作成・検索部1109、圧縮コード生成部1110、および圧縮率観測部1111を有してる。
【0138】
なお、データ圧縮記録装置1401において、データ圧縮記録装置1101と同じ構成には同じ番号を付け、基本的には説明を省略する。
【0139】
バッファメモリ601に蓄えられたデータはフォーマッタ部1106を介して記録部1107に入力される。外部から入力された外部辞書リセットマスク信号604はマスク信号生成部603に入力され、信号604はフォーマッタ部1106が発行するデータ蓄積検知信号602によって制御される。データ蓄積検知信号602は、辞書リセット処理にかかる期間中、圧縮データをフォーマッタ部1106から記録部1107へ出力するのに要する転送データ量以上のデータがバッファメモリ601に蓄積された場合に発行される。
【0140】
マスク信号生成部603は、データ蓄積検知信号602が発行されていない時、外部辞書リセットマスク信号604をそのまま有効最終マスク信号605として出力する。
【0141】
マスク信号生成部603は、データ蓄積検知信号602が発行された時、外部辞書リセットマスク信号604をマスクし、最終マスク信号605はマスク無効信号となる。
【0142】
マスク部606は、最終マスク信号605が有効の場合、辞書リセット信号1112をマスクし、最終辞書リセット信号607が無効となり、辞書作成・検索部1109は辞書作成しながらデータ圧縮処理を行なう。
【0143】
マスク部606は、最終マスク信号605が無効の場合、辞書リセット信号1112のマスクを行なわず、最終辞書リセット信号607として反映し、辞書作成・検索部1109はデータ圧縮処理をやめ辞書部1105の登録フラグを初期化する。同時に、記録部1107への入力データはバッファメモリ601からフォーマッタ部1106を介して入力される。
【0144】
その辞書リセット処理に必要な時間分の出力データ量がバッファメモリ601に確保されていることが保証されているため、システム全体としては常に記録部1107を停止させることなくデータをストリーミングさせることが可能となる。
【0145】
また、辞書リセットが発行されてからデータ蓄積検知信号602が発行されるまでは、通常処理で辞書を作成しながらデータ圧縮を行なっているが、辞書リセットは期待する圧縮率を下回った場合に発行されるものであり、上述したデータ圧縮処理では急激に圧縮率が低下しないという性質があるため、この性質を利用すれば、ある程度辞書リセット処理の時期を遅らせることは可能となる。
【0146】
(実施形態5)
以下に、図面を用いて、本発明のデータ圧縮記録装置における第5の実施形態を説明する。
【0147】
図10は、本発明のデータ圧縮記録装置における第5の実施形態を示す図である。
【0148】
図10に示すデータ圧縮記録装置1501は、コントローラ部1103、データ圧縮部1504、辞書部1105、フォーマッタ部1106、および記録部1107を備えている。
【0149】
データ圧縮部1504は、アンダーフロー予測部703、圧縮率変更部705、データ列解析部1108、辞書作成・検索部1109、圧縮コード生成部1110、および圧縮率観測部1111を有してる。
【0150】
なお、データ圧縮記録装置1501において、データ圧縮記録装置1101と同じ構成には同じ番号を付け、基本的には説明を省略する。
【0151】
アンダーフロー予測部703は、外部から入力される時間情報701と基底圧縮率702に基づいて、予測情報704を生成する。たとえば、アンダーフロー予測部703は、時間情報701に示されている時間の間にデータ圧縮部1504から出力された圧縮データ量を、データ圧縮部1504に入力されたデータ量で割って局所圧縮率を求め、さらにその局所圧縮率を基底圧縮率702で割る処理を行なう。
【0152】
図11は、アンダーフロー予測部703によって生成される予測情報と、局所圧縮率÷基底圧縮率の商との関係を示す図である。
【0153】
局所圧縮率÷基底圧縮率の商が1以下の場合、2ビット表現の0が予測情報704としてアンダーフロー予測部703から圧縮率変更部705に送られ、局所圧縮率÷基底圧縮率の商が1〜2の場合2ビット表現の1が予測情報704としてアンダーフロー予測部703から圧縮率変更部705に送られ、局所圧縮率÷基底圧縮率の商が2〜4の場合2ビット表現の2が予測情報704としてアンダーフロー予測部703から圧縮率変更部705に送られ、局所圧縮率÷基底圧縮率の商が4以上の場合2ビット表現の3が予測情報704としてアンダーフロー予測部703から圧縮率変更部705に送られる。
【0154】
圧縮率変更部705は、予測情報704に基づき、上限値706を生成し、それは辞書作成・検索部1109に送られる。ここで、上限値706とは、辞書作成・検索部1109が辞書作成時に登録できるユニーク列のバイト数の上限値706、および辞書作成・検索部1109が出力辞書コードに置き換えるユニーク列のバイト数の上限値706うちの少なくとも1つを意味する。
【0155】
たとえば、図11に示すように、予測情報704が0の時はその上限値706を128にし、予測情報704が1の時は上限値706を64にし、予測情報704が2の時は上限値706を32にし、予測情報704が3の時は上限値706を16にする。
【0156】
また、局所圧縮率が基底圧縮率以下の場合、つまり予測情報=0の場合、極力圧縮率を上げる方向に働かせるため、辞書登録できるユニーク列バイト数の上限を128バイトとして、局所圧縮率の向上が図られる。しかしながら、局所圧縮率が極端に上がった場合、たとえば予測情報=3の場合、記録部1107でアンダーフローが発生する可能性がある。このため、辞書登録できるユニーク列バイト数の上限を16バイトにし、局所圧縮率をある程度低減するように制御する。
【0157】
また、前記上限値を16バイトにした場合、たとえば、辞書登録だけでなく、入力されるデータ列が上限値を無視すれば30バイトまで辞書コードとして置き換えが可能であっても、16バイトまでで辞書コードに置き換えて、圧縮コード生成部1110に渡す。上述した処理のように、局所的な圧縮率の変動に対応して、辞書作成や圧縮コードの生成方法を制御することにより、記録部1107がアンダーフローにならずに、かつ、大局的にデータ圧縮率を安定させることが可能となる。
【0158】
(実施形態6)
以下に、図面を用いて、本発明のデータ圧縮記録装置における第6の実施形態を説明する。
【0159】
図12は、本発明のデータ圧縮記録装置における第6の実施形態を示す図である。
【0160】
図12に示すデータ圧縮記録装置1601は、バッファメモリ901、アンダーフロー予測部904、コントローラ部1103、データ圧縮部1604、辞書部1105、フォーマッタ部1106、および記録部1107を備えている。
【0161】
データ圧縮部1604は、圧縮率変更部906、データ列解析部1108、辞書作成・検索部1109、圧縮コード生成部1110、および圧縮率観測部1111を有してる。バッファメモリ901は、コントローラ部1103を介してホストコンピュータ1102からのデータを一時的に蓄える。
【0162】
なお、データ圧縮記録装置1601において、データ圧縮記録装置1101と同じ構成には同じ番号を付け、基本的には説明を省略する。
【0163】
バッファメモリ901に蓄えられたデータは、コントローラ部1103を介してデータ列解析部1108に入力される。コントローラ部1103は、バッファメモリ901に蓄積されたデータ量をバッファ蓄積量情報902としてアンダーフロー予測部904に常に開示している。アンダーフロー予測部904は、外部から入力される基底データ蓄積量903および前記バッファ蓄積量情報902に基づいて、予測情報905を生成する。たとえば、アンダーフロー予測部904は、
バッファ蓄積量の基底データ蓄積量に対する倍率値を生成し、それを予測情報905として圧縮率変更部906へ渡す。
【0164】
図11に示すように、バッファ蓄積量÷基底データ蓄積量の商と予測情報905の関係は、その商が2以上の時2ビット表現は0となり、その商が1.5〜2の時2ビット表現は1となり、その商が1〜1.5の時2ビット表現は2となり、その商が1以下の時2ビット表現は3となる。
【0165】
圧縮率変更部906は、前記倍率値905に基づいて上限値907を生成する。ここで、上限値907とは、辞書作成・検索部1109が辞書作成時に登録できるユニーク列のバイト数、および出力辞書コードに置き換えるユニーク列のバイト数の少なくとも一方である。
【0166】
予測情報905が0の時、その上限値907が128となり、予測情報905が1の時、その上限値907が64となり、予測情報905が2の時、その上限値907が32に、予測情報905が3の時、その上限値907が16となり、それぞれの上限値907が辞書作成・検索部1109に送られる。
【0167】
バッファ蓄積量902が基底蓄積量903の2倍以上ある場合、たとえば予測情報=0の場合、極力、圧縮率を上げる方向に働かせるため、辞書登録できるユニーク列バイト数の上限を128バイトとして局所圧縮率向上を図るが、バッファ蓄積量が極端に減った場合、たとえば予測情報=3の場合、記録部1107でアンダーフローが発生する可能性があるため、辞書登録できるユニーク列バイト数の上限を16バイトにしてバッファ蓄積量をある程度増加させるように制御する。
【0168】
また、前記上限値を16バイトにした場合、たとえば、辞書登録だけでなく、入力されるデータ列が上限値を無視すれば30バイトまで辞書コードとして置き換えが可能であっても、16バイトまでで辞書コードに置き換えて、圧縮コード生成部1110に渡す。
【0169】
上述した処理のように、データ圧縮部1104の前段バッファメモリのデータ蓄積量の変動に対応して、辞書作成や圧縮コードの生成方法を制御することにより、記録部1107がアンダーフローにならずに、かつ、大局的にデータ圧縮率を安定させることが可能となる。
【0170】
(実施形態7)
以下に、図面を用いて、本発明のデータ圧縮記録方法における第7の実施形態を説明する。
【0171】
図13は、データ圧縮記録方法の一例を示す図である。詳しくは、図13に示す方法は、データ圧縮記録装置1101の辞書作成・検索部1109に対し、外部から時間情報=Nクロック時間が入力される。その時間情報N以内に、あるユニーク列の辞書登録ができなかった場合、もしくは、あるユニーク列を辞書から見つけられなかった場合の、方法に関する。
【0172】
ステップS10において、ホストコンピュータ1102からコントローラ部1103を介してデータ列解析部1108にデータが入力された場合、それを親とする。なお、データの入力は任意の時点で起きてもよい。
【0173】
ステップS20において、データが入力されたか否かが判定される。データが入力された場合、処理はステップS30に進み、データが入力されていない場合、処理はステップS40に進み、処理を終了する。ここで、1クロック時間とは、所定クロックにおける1周期のパルス時間とする。
【0174】
ステップS30において、データ列解析部1108は、初期の親、子、各バイトを辞書作成・検索部1109に送る。
【0175】
ステップS1001では、辞書作成・検索部1109は、初期の親、子、各バイトがデータ列解析部1108から入手されると、タイマが初期化され、クロックの立ち上がりエッジによるカウントアップがイネーブルにされる。
【0176】
ステップS50において、辞書作成・検索部1109は、前記親子が辞書内に存在するか調査するため、辞書部1105の検索を始める。
【0177】
ステップS60では、前記親子を所定関数によって演算することによって、エントリアドレスが生成される。
【0178】
ステップS70では、エントリアドレスに対応する登録フラグ1305の内容が取り出される。
【0179】
ステップS80では、エントリアドレスに対応する登録フラグ1305が0か否かが判定される。登録フラグ1305が0である場合、処理はステップS90に進み、登録フラグ1305が0でない場合、処理はステップS100に進む。
【0180】
ステップS90では、そのエントリは未使用なので、先程データ列解析部1108から入手した親子情報を辞書に登録1303、1304し、現在の親コード1303を圧縮コード生成部1110へ渡し、現在の子を次の親としておく。その後処理はステップS20に進み、ステップS20では、次に入力されるデータを子とする。
【0181】
ステップS100では、登録フラグ1305が0でない場合、たとえば、登録フラグ1305が2の場合、前記エントリアドレスが指すエントリの親子情報が取り出される。
【0182】
ステップS110では、取り出された親子情報とデータ列解析部1108から入手した親子情報が一致するかが判定される。親子情報が一致する場合、処理はステップS1004に進み、親子情報が一致しない場合、処理はステップS1002に進む。
【0183】
ステップS1002では、ステップS1001で起動したタイマー値がNクロック時間を越えたか否かが調べられる。タイマー値がNクロック時間を越えた場合、処理はステップS1003に進み、タイマー値がNクロック時間を越えない場合、処理はステップS60に進む。
【0184】
ステップS1003では、タイマー値がNクロック時間以上、つまり、現ユニーク列の検索時間がNクロック時間以上かかっている場合は、これ以上検索を続けると記録部1107へ転送する圧縮データの量が足りなくなるため、検索を強制中止し、最近親子関係が一致した時の親コードが圧縮コード生成部1110に送られ、前回一致した時の子を次の親とし、現在の子を子とし、処理はステップS1001に進む。つまり、ステップS1001において、再びタイマー初期化および起動が行われる。
【0185】
ステップS1004では、ステップS1001で起動したタイマー値がNクロック時間を越えたか否かが調べられる。タイマー値がNクロック時間を越えた場合、処理はステップS1005に進み、タイマー値がNクロック時間を越えない場合、処理はステップS120に進む。
【0186】
前記タイマー値がNクロック時間を下回る場合(ステップS120)、つまり検索時間にまだ余裕がある場合、再び、現在の親子情報を元に所定関数により新たなエントリアドレスを取得して検索を続ける。言い換えると、ステップS120では、現在の親子データ列を親とし、子バイトをデータ列解析部1108から入手して新たなユニーク列を準備して、再び、所定関数によりその親子情報からエントリアドレスを取得して検索を続ける。その後処理はステップS60に進む。
【0187】
ステップS1005では、前記タイマー値がNクロック時間以上、つまり現ユニーク列の辞書登録にかかる時間がNクロック時間以上かかっている場合には、これ以上登録のための検索を続けると記録部1107へ転送する圧縮データの量が不足しアンダーフロー状態を起こすため、検索が強制中止される。現在の親コードが圧縮コード生成部1110に出力され、現在の子を次の親とし、処理はステップS20に進み、データが入力されるとそれを子として検索が再開される。
【0188】
以上の処理を、辞書作成・検索部1109に設けることにより、外部指定した所定時間内にユニーク列の辞書登録ができなかった場合、もしくは、ユニーク列の検索ができなかった場合に、登録・検索処理を強制的に中止させ、その時点で辞書に存在した最大長のユニーク列を、辞書コードに置き換えて、圧縮コード生成部1110に渡すことが可能になり、よって、検索時間の増大に起因する記録部1107のアンダーフロー状態を回避することが可能となる。
【0189】
なお、第1の実施形態〜第6の実施形態における辞書部1105は、RAM、たとえばSRAMであってもよい。また、辞書部1105の構造は、辞書部1105aおよび辞書部1105bの構造に限られるものではない。
【0190】
上述した第1の実施形態〜第7の実施形態によれば、データ圧縮記録装置における、入力データストリームの性格、データ圧縮手段特有の性質/処理、データ書き込み速度の向上、などにより発生するアンダーフロー状態を防ぎ、機械的動作の中断なく常にストリーミングするデータ圧縮記録装置を実現することが可能となる。このため、上記機械的動作の頻繁なる発生による、記録時間の増大、メディア(記録媒体など)の早期劣化、記録ヘッド/ドライブモータなどの記録系の寿命を縮める、という問題を回避可能となる。
【0191】
【発明の効果】
本発明のデータ圧縮記録装置は、圧縮率観測手段が辞書作成・検索手段に辞書の初期化を指示すると、初期化を指示した時点から辞書の初期化が終了するまでの期間中のみ、圧縮データ装置に入力されるデータ列がデータ記録手段に転送される。
【0192】
このため、本発明のデータ圧縮記録装置は、従来のデータ圧縮記録装置に比べて、データ圧縮処理中の辞書リセット処理期間中でも、データ圧縮処理部の出力が途切れることなく維持でき、アンダーフロー状態の回避が容易である。
【図面の簡単な説明】
【図1】本発明のデータ圧縮記録装置における第1の実施形態を示す図である。
【図2】データ圧縮部1104が受け取る入力データと、データ圧縮部1104が生成した出力データの一関係を示す図である。
【図3】辞書部の一構成を示す図である。
【図4】データ圧縮処理の辞書作成・検索部1109の処理を示す図である。
【図5】辞書部1105の他の構成を示す図である。
【図6】辞書部1105の別の構成の一部である、メモリ空間を示す図である。
【図7】本発明のデータ圧縮記録装置における第2の実施形態を示す図である。
【図8】本発明のデータ圧縮記録装置における第3の実施形態を示す図である。
【図9】本発明のデータ圧縮記録装置における第4の実施形態を示す図である。
【図10】本発明のデータ圧縮記録装置における第5の実施形態を示す図である。
【図11】アンダーフロー予測部703、904が生成する予測情報と、圧縮率変更部705、906の入出力との関係を示す図である。
【図12】本発明のデータ圧縮記録装置における第6の実施形態を示す図である。
【図13】データ圧縮記録装置1101の動作の一例を示す図である。
【符号の説明】
101 セレクタ部
102 コントローラ部からセレクタ部への入力データ列
103 コントローラ部からデータ列解析部への入力データ列
104 データ列解析部から辞書作成・検索部へ渡されるユニーク列情報
105 辞書作成・検索部からセレクタ部へ渡される圧縮コード
201 登録バイト数
202 辞書に登録したことを示すフラグ
301 SRAMアドレス
401 無記録期間信号
402 マスク信号生成部
403 外部辞書リセットマスク信号
404 最終マスク信号
405 マスク部
406 最終辞書リセット信号
501 バッファメモリ
502 データ蓄積検知信号
503 マスク信号生成部
504 外部辞書リセットマスク信号
505 最終マスク信号
506 マスク部
507 最終辞書リセット信号
601 バッファメモリ
602 データ蓄積検知信号
603 マスク信号生成部
604 外部辞書リセットマスク信号
605 最終マスク信号
606 マスク部
607 最終辞書リセット信号
701 外部入力の時間情報
702 外部入力の基底圧縮率
703 アンダーフロー予測部
704 予測情報
705 圧縮率変更部
706 ユニーク列バイト数の上限値
901 バッファメモリ
902 バッファ蓄積量
903 外部入力の基底データ蓄積量
904 アンダーフロー予測部
905 予測情報
906 圧縮率変更部
907 ユニーク列バイト数の上限値[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention belongs to the field of data compression recording technology.
[0002]
[Prior art]
In general, as a conventional data compression recording device, a device tape, an optical disk, a floppy disk, or the like that compresses input data and records the compressed data on a medium (such as a recording medium) is known.
[0003]
As conventional data compression techniques, those described in U.S. Pat. No. 4,558,302, U.S. Pat. No. 4,847,619, U.S. Pat. No. 4,870,415, and ECMA-151 standard which is a European standard are known.
[0004]
U.S. Pat. No. 4,558,302 discloses an LZ78, LZW type data compression / decompression system. U.S. Pat. No. 4,847,619 discloses observing the compression ratio and resetting the dictionary below a threshold. U.S. Pat. No. 4,870,415 discloses a method for efficiently compressing data by observing the compression ratio. The ECMA-151 standard discloses a dictionary-based adaptive data compression DCLZ algorithm.
[0005]
[Problems to be solved by the invention]
However, when the average output speed of the compressed data generated by the data compression processing unit is lower than the drive recording speed for recording data on a medium (such as a recording medium), the above-described conventional data compression recording apparatus enters an underflow state, For example, in the case of a tape backup device, there is not enough data to be recorded, so the tape is temporarily stopped, rewound by several tracks, and magnetic recording is started again when the data to be recorded is prepared. The mechanical action frequently occurs due to the flow. For this reason, data cannot be continuously recorded, and a problem occurs that the average recording speed is reduced and the recording time is increased.
[0006]
In particular, in the case of a contact recording medium tape, a hard disk, a floppy disk, and the like, if the above-mentioned mechanical operation occurs frequently, there is a problem that not only early deterioration of the medium but also shortening of the life of the recording head and the drive motor occurs.
[0007]
The causes of the underflow state of the data compression recording device are the recording speed of the data compression recording device, the compression ratio of the data compression means, and the dictionary search speed. With the advancement of the host computer, the data transfer speed has been rapidly increasing, and accordingly, it has been necessary to increase the recording speed of the data compression recording device, and the output speed of the compressed data output by the data compression means is always higher than the recording speed. Need to be
[0008]
However, in a data compression unit that creates / references a dictionary from an input data stream, the dictionary is initialized due to a decrease in compression ratio during the compression process. Whether the same data string is registered in the dictionary as the output speed of the data compression means suddenly decreases when the compression ratio temporarily increases due to the nature of the input data stream due to the interruption of output, or the dictionary registration amount increases If the output speed of the data compression unit decreases due to an increase in the search time when searching for, the underflow state occurs.
[0009]
SUMMARY OF THE INVENTION In view of the above problems, the present invention is not affected by the characteristics of an input data stream, characteristics / processing peculiar to a data compression means, improvement of a data writing speed, and the like, and data compression recording that always streams without interruption of mechanical operation It is intended to realize the device.
[0010]
[Means for Solving the Problems]
The data compression recording device of the present invention is a data string analyzing means for analyzing an input data string, and checks whether or not data generated by the data string analyzing means is registered in a dictionary. A dictionary creation / search unit for registering the dictionary in the dictionary when not registered in the dictionary; a compression code generation unit for outputting a compression code generated by the dictionary creation / search unit; Obtain a data compression ratio indicating a ratio between the data amount of the input data sequence and the data amount of the compressed code output by the compressed code generation unit, When the data compression ratio is lower than a data compression ratio input from the outside, the data compression unit having a compression ratio observation unit that generates a dictionary initialization signal that instructs the dictionary creation / search unit to initialize the dictionary, A data recording unit that records data output from the data compression unit on a medium, wherein the compression ratio observation unit instructs the dictionary creation / search unit to initialize the dictionary. Only during the period from the time when the initialization is instructed to the time when the initialization of the dictionary is completed, the data string input to the data compression means is transferred to the data recording means, whereby the object is achieved. You.
[0011]
For this reason, the data compression recording apparatus of the present invention can maintain the output of the data compression processing unit without interruption even during the dictionary reset processing period during the data compression processing as compared with the conventional data compression recording apparatus, Avoidance is easy.
[0014]
In the data compression recording apparatus according to the present invention, the data compression recording apparatus further includes a RAM having an area in which the dictionary is stored and an area in which flag information is stored, and the area in which the dictionary is stored includes the flag information. Unlike the area in which is stored, an entry is stored in the area in which the dictionary is stored in correspondence with the address, and in the area in which the flag information is stored, the entry is registered in the dictionary in accordance with the address. Flag information indicating whether the data has been registered or not registered may be allocated in the form of a table.
[0015]
The data compression recording apparatus of the present invention can greatly reduce the time required for dictionary reset processing during data compression processing as compared with the conventional data compression recording apparatus, and thus the time required for the data compression unit to output uncompressed data is reduced. It is possible to avoid the underflow state while reducing the compression ratio while keeping the compression ratio low. For example, in a certain data compression recording apparatus, assuming that the system clock is 40 MHz, the number M of entries in the
[0016]
Another data compression recording apparatus of the present invention is a data string analyzing means for analyzing an input data string, and checks whether or not data generated by the data string analyzing means is registered in a dictionary. When data is not registered in the dictionary, a dictionary creation / search unit that registers the dictionary in the dictionary, a compression code generation unit that outputs a compression code generated by the dictionary creation / search unit, Obtain a data compression ratio indicating a ratio between the data amount of the input data sequence and the data amount of the compressed code output by the compressed code generation unit, When the data compression ratio is lower than a data compression ratio input from the outside, the data compression unit having a compression ratio observation unit that generates a dictionary initialization signal that instructs the dictionary creation / search unit to initialize the dictionary, A data recording unit for recording data output from the data compression unit on a medium, wherein the data compression unit is in a temporary recording interruption state due to a mechanical operation change in the data recording unit. In accordance with a mechanical recording interruption detecting means for detecting the data, and invalidating the dictionary initialization signal generated by the compression ratio observing means in accordance with an external dictionary initialization prohibiting signal. Initialization mask means for validating the dictionary initialization signal by receiving a signal indicating mechanical recording interruption generated by interruption detection means; And, the objects can be achieved.
[0017]
In another data compression recording device of the present invention, a temporary data recording interruption period such as a seek operation of a pickup or a magnetic head in a drive of an optical disk, a floppy disk, a hard disk, or the like, or a track movement of a random access tape drive. Can perform a dictionary reset process.
[0018]
Here, the mechanical operation change refers to an operation of each part of the recording system mechanism due to a change from the data recording operation state to another operation state.
[0019]
The temporary recording suspended state refers to a state in which data recording on a medium (recording medium) is temporarily disabled due to a certain factor.
[0020]
In the data compression recording apparatus according to the present invention, the data compression recording apparatus is disposed before the data compression unit, and stores a buffer memory for storing the input data sequence, and stores the data stored in the buffer memory into the data. A buffer which inputs to a compression means and outputs a mask release signal indicating that the amount of data stored in the buffer memory exceeds the data amount when the data compression means outputs the data within a time required for initializing the dictionary. The management unit, according to an external dictionary initialization prohibition signal, invalidates the dictionary initialization signal issued by the compression ratio observing unit, and receives the mask release signal output by the buffer management unit. Initialization mask means for validating the initialization signal.
[0021]
In the data compression recording apparatus of the present invention, the dictionary reset processing can be performed relatively early after the dictionary reset occurs, as compared with the conventional data compression recording apparatus, and the data compression unit outputs during the dictionary reset processing. The amount of uncompressed data to be stored is ensured. Therefore, the data compression recording apparatus of the present invention can reliably avoid an underflow state due to the conventional dictionary reset processing.
[0022]
Still another data compression recording apparatus of the present invention is a data string analyzing means for analyzing an input data string, and checks whether or not data generated by the data string analyzing means is registered in a dictionary. If the data is not registered in the dictionary, a dictionary creation / search unit that registers the dictionary in the dictionary, a compression code generation unit that outputs a compression code generated by the dictionary creation / search unit, Obtain a data compression ratio indicating a ratio between the data amount of the input data sequence and the data amount of the compressed code output by the compressed code generation unit, When the data compression ratio is lower than a data compression ratio input from the outside, the data compression unit having a compression ratio observation unit that generates a dictionary initialization signal that instructs the dictionary creation / search unit to initialize the dictionary, A data recording means for recording data output from the data compression means on a medium, wherein the data compression recording apparatus is arranged at a stage subsequent to the data compression means, And a buffer memory for storing the compressed data compressed by the above, and the amount of the compressed data stored in the buffer memory, wherein the stored compressed data is sent to the data recording means, is required for initializing the dictionary. Buffer management means for outputting a mask release signal indicating that the amount of compressed data output from the data compression means is exceeded within a short time, According to these dictionary initialization prohibition signals, the dictionary initialization signal issued by the compression ratio observation unit is invalidated, and the unmasking signal issued by the buffer management unit is received, thereby enabling the dictionary initialization signal. And an initialization mask means for achieving the above object.
[0023]
Still another data compression recording apparatus of the present invention can easily avoid an underflow state caused by processing of the data compression unit itself, as compared with a conventional data compression recording apparatus.
[0024]
Still another data compression recording apparatus of the present invention is a data string analyzing means for analyzing an input data string, and checks whether or not data generated by the data string analyzing means is registered in a dictionary. If the data is not registered in the dictionary, a dictionary creation / search unit that registers the dictionary in the dictionary, a compression code generation unit that outputs a compression code generated by the dictionary creation / search unit, Obtain a data compression ratio indicating a ratio between the data amount of the input data sequence and the data amount of the compressed code output by the compressed code generation unit, When the data compression ratio is lower than a data compression ratio input from the outside, the data compression unit having a compression ratio observation unit that generates a dictionary initialization signal that instructs the dictionary creation / search unit to initialize the dictionary, Data recording means for recording data output from the data compression means on a medium, wherein the data compression means, the transfer rate of the compressed data output from the data compression means, Underflow prediction means for generating a prediction signal indicating a point in time at which the data recording means is below the speed at which data is written to a medium; and compression ratio changing means for changing a data compression ratio in accordance with the prediction signal output by the underflow prediction means. And the above object is achieved.
[0025]
Still another data compression / recording device of the present invention can perform a dictionary reset process relatively early after a dictionary reset has occurred, as compared with a conventional data compression / recording device. The amount of compressed data to be output is ensured. For this reason, still another data compression recording apparatus of the present invention can reliably avoid an underflow state due to the conventional dictionary reset processing, and can always record compressed data on a recording medium. Further, still another data compression recording apparatus of the present invention can effectively use a small-sized buffer memory.
[0026]
In still another data compression recording apparatus according to the present invention, the underflow prediction means may generate a prediction signal according to time information and a base compression ratio input from the outside.
[0027]
Still another data compression recording apparatus of the present invention detects a high compression rate state that occurs depending on the state of an input data sequence to a data compression unit, and performs compression intentionally, compared to a conventional data compression recording apparatus. It can be controlled to lower the rate. Still another data compression recording apparatus of the present invention can easily avoid underflow caused by the high compression rate state. Further, in still another data compression recording apparatus of the present invention, the compression rate can be converged to its base compression rate in a long term.
[0028]
In still another data compression and recording device of the present invention, the data compression and recording device is provided before the data compression unit, and includes a buffer memory that stores the input data sequence, and the underflow prediction unit includes The stored data may be input to the data compression unit, and a ratio of the data storage amount in the buffer memory to a base data storage amount specified and input from the outside may be output to the compression ratio changing unit.
[0029]
Still another data compression recording apparatus according to the present invention is capable of predicting an underflow state and intentionally lowering the compression ratio in the data compression processing as compared with the conventional data compression recording apparatus. As a result, in another data compression recording apparatus according to the present invention, an underflow state caused by a shortage of data in the buffer can be easily avoided.
[0030]
In another data compression recording apparatus according to the present invention, the data compression recording apparatus includes a buffer memory disposed at a subsequent stage of the data compression means and accumulating compressed data output from the data compression means, The prediction means may input the accumulated data to the data compression means, and output to the compression ratio changing means a ratio of a data accumulation amount in the buffer memory to a base data accumulation amount designated and input from the outside. Good.
[0031]
Still another data compression recording apparatus according to the present invention is capable of predicting an underflow state and intentionally lowering the compression ratio in the data compression processing as compared with the conventional data compression recording apparatus. As a result, in another data compression recording apparatus according to the present invention, an underflow state caused by a shortage of data in the buffer can be easily avoided.
[0034]
Still another data compression and recording device of the present invention is a data string analyzing means for analyzing an input data string, and checks whether or not a data string generated by the data string analyzing means is registered in a dictionary. Dictionary creation / search means for registering a dictionary in the dictionary in the case of registration; a compressed code generation unit for outputting a compressed code generated by the dictionary creation / search means; Obtain a data compression ratio indicating a ratio between the data amount of the input data sequence and the data amount of the compressed code output by the compressed code generation unit, Data compression ratio detecting means for detecting a point in time at which the data compression ratio falls below a data compression ratio inputted from outside, and generating a dictionary initialization signal for instructing the dictionary creation / detection unit to initialize the dictionary; And a data recording means for recording the compressed data obtained by compressing the input data from the outside by the data compression means on a medium, wherein the data compression recording apparatus searches the dictionary. A time measuring means for measuring a time from the start to the end of the search of the dictionary and generating measured time information, wherein the dictionary creating / searching means determines that the time information inputted from outside is measured by the time measuring means. At the time when the information falls below the value, the dictionary registration or search processing is forcibly stopped, and the compression code determined immediately before the forced stop is output to the compression code generation unit. The above-mentioned object can be achieved by.
[0035]
In still another data compression recording apparatus according to the present invention, as the dictionary registration area decreases, the time required for dictionary search increases, and an underflow state caused by this can be easily avoided.
[0036]
BEST MODE FOR CARRYING OUT THE INVENTION
(Embodiment 1)
Hereinafter, a first embodiment of the data compression recording apparatus of the present invention will be described with reference to the drawings.
[0037]
FIG. 1 is a diagram showing a first embodiment of the data compression recording apparatus of the present invention.
[0038]
The data
[0039]
The data compression and
[0040]
The
[0041]
The
[0042]
Hereinafter, the configuration of the
[0043]
The
[0044]
The data
[0045]
For the sake of simplicity, it is assumed that, for convenience, dictionary codes representing unique columns registered in the dictionary are generated in ascending order from 264. The last byte of the unique string is called a "child", and a value obtained by adding +8 to the value of the last byte is called a "child code".
[0046]
A portion other than the last byte in the unique column is called a “parent”, and when the unique column is 2 bytes, a value obtained by adding +8 to the first byte is called a “parent code”. However, when the unique column is 3 bytes or more, the dictionary code representing the parent is referred to as “parent code”.
[0047]
Details of the “child code” and the “parent code” will be described later.
[0048]
The dictionary creation /
[0049]
If the unique column is not registered in the
[0050]
Incidentally, when a unique column is registered in the
[0051]
When a new unique column is registered in the dictionary, the dictionary creation /
[0052]
The compressed
[0053]
Here, the control code has a value of 0 to 7. If the control code is 0, it means a dictionary freeze command; if the control code is 1, it means a dictionary reset command; if the control code is one of 2-7, it is unused. Means
[0054]
The dictionary freeze command means that, when the dictionary creation /
[0055]
The dictionary reset command is embedded in the compressed data stream output by the compression
[0056]
The compression
[0057]
The process (normal process) of compressing the input data string received by the
[0058]
FIG. 2 is a diagram illustrating a relationship between input data received by the
[0059]
The upper row of numerical values shown in FIG. 2 is a data row input from the
[0060]
The
[0061]
The
[0062]
Hereinafter, the processing performed by the
[0063]
Prior to the data compression process, in order to reset the dictionary of the
[0064]
The data
[0065]
When confirming that the
[0066]
The dictionary creation /
[0067]
The data
[0068]
As described above, the dictionary creation /
[0069]
The dictionary creation /
[0070]
Similarly, the dictionary creation /
[0071]
Next, unique columns 0x61 and 0x62 are cut out. As described above, the entry address for the extracted unique columns 0x61 and 0x62 is m1 when calculated by the above function. Since the registration flag corresponding to the entry address m1 is other than zero, the parent code in the entry corresponding to the entry address m1 matches the unique column 0x61 + 8, and the child code matches the unique column 0x62 + 8, the dictionary creation / search is performed. The
[0072]
When the dictionary creating / searching
[0073]
When the entry address is calculated from the parent code 264 (decimal number) and the child 0x63 (hexadecimal number), the entry address becomes m5.
[0074]
Since the registration flag of the entry corresponding to the entry address m5 is zero (note that FIG. 3 shows the state of the
[0075]
Similarly, unique columns 0x63, 0x64, 0x61 are registered at entry address m6, and unique columns 0x61, 0x62, 0x63, 0x64 are registered at entry address m7. Hereinafter, the same applies to the entry address m10. In this example, the maximum number of bytes of the unique column that can be registered is determined to be N bytes, and the number of entries in the
[0076]
FIG. 4 is a diagram illustrating an example of a normal process of the dictionary creation /
[0077]
In step S10, when data is input from the
[0078]
In step S20, it is determined whether data has been input. If data has been input, the process proceeds to step S30. If data has not been input, the process proceeds to step S40, and the process ends.
[0079]
In step S30, the data
[0080]
In step S50, the dictionary creation /
[0081]
In step S60, an entry address is generated by calculating the parent and child by a predetermined function.
[0082]
In step S70, the contents of the
[0083]
In step S80, it is determined whether the
[0084]
In step S90, since the entry is not used, the parent and child information obtained from the data
[0085]
In step S100, when the
[0086]
In step S110, it is determined whether the extracted parent-child information matches the parent-child information obtained from data
[0087]
In step S120, the current parent-child data string is set as the parent, the child byte is obtained from the data
[0088]
However, if the current compression ratio is lower than the externally specified compression ratio, the compression
[0089]
In such a case, the
[0090]
While the
[0091]
When the initialization of the
[0092]
Hereinafter, the processing of the compressed
[0093]
When the
[0094]
FIG. 5 is a diagram showing another configuration of the
[0095]
The contents of the
[0096]
The
[0097]
Instead, the
[0098]
In the reset process of the
[0099]
In the register memory, a 1-bit flip-flop type storage element is assigned to each entry. That is, the number of flip-flop type storage elements is the same as the number of entries. The register memory is initialized to zero by the dictionary reset signal for one system clock period. For example, if one system clock period is 40 MHz, the register memory is initialized to zero in 25 ns.
[0100]
Hereinafter, another configuration of the
[0101]
FIG. 6 is a diagram showing a memory space, which is a part of another configuration of the
[0102]
In the SRAM serving as the
[0103]
If the
[0104]
If the data bus is a 16-bit SRAM, an area of 256 words in total is required. In the dictionary reset process, zero is recorded in all the bits of the registration flag table, so that the zero value of the word is written into the SRAM 256 times.
[0105]
When dictionary registration starts, for example, when a unique column is registered at the
[0106]
Similarly, when a unique column is registered at the entry address X, in FIG. 6, the quotient obtained by dividing X by 16 becomes the address Z, and the remainder becomes the bit number.
[0107]
A means for calculating the quotient and remainder of X ÷ 16 is provided in the dictionary creation /
[0108]
(Embodiment 2)
Hereinafter, a second embodiment of the data compression recording apparatus of the present invention will be described with reference to the drawings.
[0109]
FIG. 7 is a diagram showing a data compression recording apparatus according to a second embodiment of the present invention.
[0110]
The data
[0111]
The
[0112]
In the data
[0113]
The
[0114]
The mask
[0115]
The
[0116]
The external dictionary
[0117]
The
[0118]
When a period during which the
[0119]
Accordingly, the
[0120]
The period during which the
[0121]
In addition, from the issuance of the dictionary reset to the occurrence of the mechanical operation, data compression is performed while creating a dictionary by normal processing. A dictionary reset is issued when the compression ratio falls below the expected compression ratio. Since the data compression processing described above has a property that the compression ratio does not suddenly decrease, it is possible to delay the dictionary reset processing to some extent by using this property.
[0122]
(Embodiment 3)
Hereinafter, a third embodiment of the data compression recording apparatus of the present invention will be described with reference to the drawings.
[0123]
FIG. 8 is a diagram showing a third embodiment of the data compression recording apparatus of the present invention.
[0124]
As described above, in the data
[0125]
The
[0126]
In the data
[0127]
The data stored in the
[0128]
The external dictionary
[0129]
When the data
[0130]
When the
[0131]
When the
[0132]
In addition, from the time when the dictionary reset is issued to the time when the data
[0133]
(Embodiment 4)
Hereinafter, a fourth embodiment of the data compression recording apparatus of the present invention will be described with reference to the drawings.
[0134]
FIG. 9 is a diagram showing a fourth embodiment of the data compression recording apparatus of the present invention.
[0135]
As described above, in the data
[0136]
On the other hand, the data
[0137]
The
[0138]
In the data
[0139]
The data stored in the
[0140]
When the data
[0141]
When the data
[0142]
When the
[0143]
When the
[0144]
Since it is guaranteed that the output data amount for the time required for the dictionary reset processing is secured in the
[0145]
In addition, from the issuance of the dictionary reset to the issuance of the data
[0146]
(Embodiment 5)
Hereinafter, a fifth embodiment of the data compression recording apparatus of the present invention will be described with reference to the drawings.
[0147]
FIG. 10 is a diagram showing a fifth embodiment of the data compression recording apparatus of the present invention.
[0148]
The data
[0149]
The
[0150]
In the data
[0151]
The
[0152]
FIG. 11 is a diagram illustrating a relationship between prediction information generated by the
[0153]
When the quotient of the local compression ratio ÷ the base compression ratio is 1 or less, a 2-bit representation of 0 is transmitted from the
[0154]
The compression
[0155]
For example, as shown in FIG. 11, when the
[0156]
When the local compression ratio is equal to or less than the base compression ratio, that is, when the prediction information is 0, the maximum compression ratio is set to 128 bytes in order to increase the compression ratio as much as possible. Is achieved. However, when the local compression ratio rises extremely, for example, when prediction information = 3, there is a possibility that an underflow occurs in the
[0157]
Further, when the upper limit is set to 16 bytes, for example, in addition to dictionary registration, even if the input data string can be replaced as a dictionary code up to 30 bytes if the upper limit is ignored, the data string must be up to 16 bytes. It is replaced with a dictionary code and passed to the compressed
[0158]
(Embodiment 6)
Hereinafter, a data compression recording apparatus according to a sixth embodiment of the present invention will be described with reference to the drawings.
[0159]
FIG. 12 is a diagram showing a data compression recording apparatus according to a sixth embodiment of the present invention.
[0160]
12 includes a
[0161]
The
[0162]
In the data
[0163]
The data stored in the
A magnification value of the buffer accumulation amount with respect to the base data accumulation amount is generated, and is passed to the compression
[0164]
As shown in FIG. 11, the relationship between the buffer accumulation amount ÷ the quotient of the base data accumulation amount and the
[0165]
The compression
[0166]
When the
[0167]
When the
[0168]
Further, when the upper limit is set to 16 bytes, for example, in addition to dictionary registration, even if the input data string can be replaced as a dictionary code up to 30 bytes if the upper limit is ignored, the data string must be up to 16 bytes. It is replaced with a dictionary code and passed to the compressed
[0169]
As described above, by controlling the method of creating a dictionary and generating a compressed code in response to the change in the amount of data stored in the preceding buffer memory of the
[0170]
(Embodiment 7)
Hereinafter, a seventh embodiment of the data compression recording method of the present invention will be described with reference to the drawings.
[0171]
FIG. 13 is a diagram illustrating an example of a data compression recording method. Specifically, in the method shown in FIG. 13, time information = N clock time is externally input to the dictionary creation /
[0172]
In step S10, when data is input from the
[0173]
In step S20, it is determined whether data has been input. If data has been input, the process proceeds to step S30. If data has not been input, the process proceeds to step S40, and the process ends. Here, one clock time is a pulse time of one cycle in a predetermined clock.
[0174]
In step S30, the data
[0175]
In step S1001, when the initial parent, child, and each byte are obtained from the data
[0176]
In step S50, the dictionary creation /
[0177]
In step S60, an entry address is generated by calculating the parent and child by a predetermined function.
[0178]
In step S70, the contents of the
[0179]
In step S80, it is determined whether the
[0180]
In step S90, since the entry is not used, the parent and child information obtained from the data
[0181]
In step S100, when the
[0182]
In step S110, it is determined whether the extracted parent-child information matches the parent-child information obtained from data
[0183]
In step S1002, it is checked whether the timer value started in step S1001 has exceeded N clock times. If the timer value has exceeded the N clock time, the process proceeds to step S1003. If the timer value has not exceeded the N clock time, the process proceeds to step S60.
[0184]
In step S1003, if the timer value is N clock times or more, that is, if the search time of the current unique column takes N clock times or more, if the search is continued further, the amount of compressed data transferred to the
[0185]
In step S1004, it is checked whether the timer value started in step S1001 has exceeded N clock times. If the timer value has exceeded N clock times, the process proceeds to step S1005; if the timer value does not exceed N clock times, the process proceeds to step S120.
[0186]
If the timer value is less than the N clock time (step S120), that is, if there is still enough search time, a new entry address is obtained again by a predetermined function based on the current parent-child information, and the search is continued. In other words, in step S120, the current parent-child data string is set as the parent, the child byte is obtained from the data
[0187]
In step S1005, if the timer value is equal to or more than N clock times, that is, if the time required for dictionary registration of the current unique column is equal to or more than N clock times, the search for registration is continued further and transferred to the
[0188]
By providing the above processing in the dictionary creation /
[0189]
Note that the
[0190]
According to the above-described first to seventh embodiments, underflow caused by characteristics of an input data stream, characteristics / processing peculiar to data compression means, improvement of data writing speed, and the like in a data compression recording apparatus. It is possible to realize a data compression recording apparatus that prevents a state and always streams without interruption of mechanical operation. Therefore, it is possible to avoid problems such as an increase in recording time, early deterioration of a medium (such as a recording medium), and shortening of the life of a recording system such as a recording head / drive motor due to frequent occurrence of the mechanical operation.
[0191]
【The invention's effect】
When the compression ratio observation means instructs the dictionary creation / search means to initialize the dictionary, the data compression recording apparatus of the present invention provides the compressed data only during the period from when the initialization is instructed to when the dictionary initialization is completed. The data sequence input to the device is transferred to data recording means.
[0192]
For this reason, the data compression recording apparatus of the present invention can maintain the output of the data compression processing unit without interruption even during the dictionary reset processing period during the data compression processing as compared with the conventional data compression recording apparatus, Avoidance is easy.
[Brief description of the drawings]
FIG. 1 is a diagram showing a first embodiment of a data compression recording apparatus of the present invention.
FIG. 2 is a diagram illustrating a relationship between input data received by a
FIG. 3 is a diagram showing one configuration of a dictionary unit.
FIG. 4 is a diagram showing processing of a dictionary creation /
FIG. 5 is a diagram showing another configuration of the
FIG. 6 is a diagram showing a memory space which is a part of another configuration of the
FIG. 7 is a diagram showing a second embodiment of the data compression recording device of the present invention.
FIG. 8 is a diagram showing a third embodiment of the data compression recording apparatus of the present invention.
FIG. 9 is a diagram showing a fourth embodiment of the data compression recording apparatus of the present invention.
FIG. 10 is a diagram showing a data compression recording apparatus according to a fifth embodiment of the present invention.
FIG. 11 is a diagram illustrating a relationship between prediction information generated by
FIG. 12 is a diagram showing a data compression recording apparatus according to a sixth embodiment of the present invention.
FIG. 13 is a diagram showing an example of the operation of the data
[Explanation of symbols]
101 Selector section
102 Input data string from controller to selector
103 Input data string from controller to data string analyzer
104 Unique column information passed from the data column analysis unit to the dictionary creation / search unit
105 Compressed code passed from dictionary creation / search unit to selector unit
201 Number of registered bytes
202 Flag indicating that it has been registered in the dictionary
301 SRAM address
401 Non-recording period signal
402 Mask signal generator
403 External dictionary reset mask signal
404 Final mask signal
405 mask part
406 Final dictionary reset signal
501 buffer memory
502 Data accumulation detection signal
503 Mask signal generator
504 External dictionary reset mask signal
505 Final mask signal
506 Mask part
507 Final dictionary reset signal
601 buffer memory
602 Data accumulation detection signal
603 Mask signal generator
604 External dictionary reset mask signal
605 Final mask signal
606 mask part
607 Final dictionary reset signal
701 Time information of external input
702 Base compression ratio of external input
703 Underflow prediction unit
704 Forecast information
705 Compression ratio change unit
706 Upper limit of the number of unique column bytes
901 buffer memory
902 Buffer storage amount
903 Base input storage amount of external input
904 Underflow prediction unit
905 Forecast information
906 Compression ratio change unit
907 Upper limit of unique column byte count
Claims (11)
前記データ列解析手段によって生成されたデータが辞書に登録されているか否かを調べ、前記生成されたデータが前記辞書に未登録である場合、前記辞書に辞書登録する辞書作成・検索手段、
前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、
前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る場合、前記辞書作成・検索手段に前記辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段を有するデータ圧縮手段と、
前記データ圧縮手段から出力されたデータをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、
前記圧縮率観測手段が前記辞書作成・検索手段に前記辞書の初期化を指示すると、前記初期化を指示した時点から前記辞書の初期化が終了するまでの期間中のみ、前記データ圧縮手段に入力されるデータ列が前記データ記録手段に転送される、データ圧縮記録装置。Data string analysis means for analyzing an input data string,
Checking whether the data generated by the data string analysis unit is registered in a dictionary, and if the generated data is not registered in the dictionary, a dictionary creation / search unit that registers the dictionary in the dictionary;
A compression code generation unit that outputs a compression code generated by the dictionary creation / search unit;
A data compression ratio indicating a ratio between the data amount of the input data string and the data amount of the compression code output by the compression code generation unit is obtained, and the data compression ratio is calculated by calculating the data compression ratio input from the outside. If less, a data compression unit having a compression ratio observation unit that generates a dictionary initialization signal that instructs the dictionary creation / search unit to initialize the dictionary;
A data recording means for recording data output from the data compression means on a medium,
When the compression ratio observation unit instructs the dictionary creation / search unit to initialize the dictionary, the data is input to the data compression unit only during the period from when the initialization is instructed to when the initialization of the dictionary is completed. A data compression recording device, wherein a data string to be transferred is transferred to the data recording means.
前記辞書が記憶される領域が、前記フラグ情報が記憶される領域と異なり、
前記辞書が記憶される領域には、アドレスに対応してエントリが格納され、
前記フラグ情報が記憶される領域には、前記アドレスに従い、前記辞書にエントリが登録されたか/未登録であるかを示すフラグ情報が、テーブル化して割り付けられている請求項1に記載のデータ圧縮記録装置。The data compression recording device further includes a RAM having an area where the dictionary is stored and an area where flag information is stored,
The area where the dictionary is stored is different from the area where the flag information is stored,
In the area where the dictionary is stored, entries are stored corresponding to the addresses,
2. The data compression according to claim 1, wherein flag information indicating whether an entry is registered in the dictionary or not registered in the dictionary is tabulated and assigned to an area in which the flag information is stored according to the address. Recording device.
前記データ列解析手段によって生成されたデータが辞書に登録されているか否かを調べ、前記生成されたデータが前記辞書に未登録である場合、前記辞書に辞書登録する辞書作成・検索手段、
前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、
前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る場合、前記辞書作成・検索手段に前記辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段を有するデータ圧縮手段と、
前記データ圧縮手段から出力されたデータをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、
前記データ圧縮手段が、前記データ記録手段における機械的動作変更による一時的記録中断状態を検出する機械的記録中断検出手段、および
外部からの辞書初期化禁止信号に従い、前記圧縮率観測手段によって生成された前記辞書初期化信号を無効にし、前記一時的記録中断状態において前記機械的記録中断検出手段が生成する機械的記録中断を示す信号を受信することで前記辞書初期化信号を有効にする初期化マスク手段を有するデータ圧縮記録装置。Data string analysis means for analyzing an input data string,
Checking whether the data generated by the data string analysis unit is registered in a dictionary, and if the generated data is not registered in the dictionary, a dictionary creation / search unit that registers the dictionary in the dictionary;
A compression code generation unit that outputs a compression code generated by the dictionary creation / search unit;
A data compression ratio indicating a ratio between the data amount of the input data string and the data amount of the compression code output by the compression code generation unit is obtained, and the data compression ratio is calculated by calculating the data compression ratio input from the outside. If less, a data compression unit having a compression ratio observation unit that generates a dictionary initialization signal that instructs the dictionary creation / search unit to initialize the dictionary;
A data recording means for recording data output from the data compression means on a medium,
The data compression unit is generated by the compression ratio observation unit according to a mechanical recording interruption detection unit that detects a temporary recording interruption state due to a mechanical operation change in the data recording unit, and a dictionary initialization inhibition signal from outside. Initialization, in which the dictionary initialization signal is invalidated, and the dictionary initialization signal is validated by receiving a signal indicating the mechanical recording interruption generated by the mechanical recording interruption detecting means in the temporary recording interruption state. A data compression recording device having a mask means.
前記データ圧縮手段の前段に配置され、前記入力されるデータ列を蓄積するバッファメモリと、
前記バッファメモリに蓄積されたデータを前記データ圧縮手段に入力し、前記バッファメモリ内のデータ蓄積量が、前記辞書を初期化するのに必要な時間内に前記データ圧縮手段が非圧縮で出力するデータ量を上回ることを示すマスク解除信号を出力するバッファ管理手段と、
外部からの辞書初期化禁止信号に従い、前記圧縮率観測手段が発行する辞書初期化信号を無効にし、前記バッファ管理手段が出力する前記マスク解除信号を受信することで、前記辞書初期化信号を有効にする初期化マスク手段とを備えた請求項1に記載のデータ圧縮記録装置。The data compression recording device,
A buffer memory arranged before the data compression means and accumulating the input data sequence;
The data stored in the buffer memory is input to the data compression unit, and the amount of data stored in the buffer memory is output uncompressed by the data compression unit within a time required to initialize the dictionary. Buffer management means for outputting a mask release signal indicating that the data amount is exceeded,
According to a dictionary initialization prohibition signal from the outside, the dictionary initialization signal issued by the compression ratio observation unit is invalidated, and the unmasking signal output by the buffer management unit is received, thereby enabling the dictionary initialization signal. 2. The data compression recording apparatus according to claim 1, further comprising: an initialization mask means for setting the following.
前記データ列解析手段によって生成されたデータが辞書に登録されているか否かを調べ、前記生成されたデータが前記辞書に未登録である場合、前記辞書に辞書登録する辞書作成・検索手段、
前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、
前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る場合、前記辞書作成・検索手段に前記辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段を有するデータ圧縮手段と、
前記データ圧縮手段から出力されたデータをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、
前記データ圧縮記録装置が、前記データ圧縮手段の後段に配置され、前記データ圧縮手段にて圧縮された圧縮データを蓄積するバッファメモリと、
前記蓄積圧縮データが前記データ記録手段に送られ、前記バッファメモリに蓄積される前記圧縮データの量が、前記辞書を初期化するために必要な時間内に、前記データ圧縮手段が出力する圧縮データの量を上回ることを示すマスク解除信号を出力するバッファ管理手段と、
外部からの辞書初期化禁止信号に従い、前記圧縮率観測手段が発行する辞書初期化信号を無効にし、前記バッファ管理手段が発行する前記マスク解除信号を受信することで、前記辞書初期化信号を有効にする初期化マスク手段とを備えたデータ圧縮記録装置。Data string analysis means for analyzing an input data string,
Checking whether the data generated by the data string analysis unit is registered in a dictionary, and if the generated data is not registered in the dictionary, a dictionary creation / search unit that registers the dictionary in the dictionary;
A compression code generation unit that outputs a compression code generated by the dictionary creation / search unit;
A data compression ratio indicating a ratio between the data amount of the input data string and the data amount of the compression code output by the compression code generation unit is obtained, and the data compression ratio is calculated by calculating the data compression ratio input from the outside. If less, a data compression unit having a compression ratio observation unit that generates a dictionary initialization signal that instructs the dictionary creation / search unit to initialize the dictionary;
A data recording means for recording data output from the data compression means on a medium,
A buffer memory, wherein the data compression recording device is arranged at a stage subsequent to the data compression means, and stores compressed data compressed by the data compression means;
The stored compressed data is sent to the data recording means, and the amount of the compressed data stored in the buffer memory is equal to the compressed data output by the data compressing means within a time required to initialize the dictionary. Buffer management means for outputting a mask release signal indicating that the amount exceeds
According to a dictionary initialization prohibition signal from the outside, the dictionary initialization signal issued by the compression ratio observing unit is invalidated, and the unmasking signal issued by the buffer management unit is received to enable the dictionary initialization signal. A data compression recording apparatus comprising:
前記データ列解析手段によって生成されたデータが辞書に登録されているか否かを調べ、前記生成されたデータが前記辞書に未登録である場合、前記辞書に辞書登録する辞書作成・検索手段、
前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、
前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る場合、前記辞書作成・検索手段に前記辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段を有するデータ圧縮手段と、
前記データ圧縮手段から出力されたデータをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、
前記データ圧縮手段が、前記データ圧縮手段から出力される圧縮データの転送速度が、前記データ記録手段がデータをメディアに書き込む速度を下回る時点を指示する予測信号を生成するアンダーフロー予測手段と、
前記アンダーフロー予測手段が出力する予測信号に従って、データ圧縮率を変化させる圧縮率変更手段とを有するデータ圧縮記録装置。Data string analysis means for analyzing an input data string,
Checking whether the data generated by the data string analysis unit is registered in a dictionary, and if the generated data is not registered in the dictionary, a dictionary creation / search unit that registers the dictionary in the dictionary;
A compression code generation unit that outputs a compression code generated by the dictionary creation / search unit;
A data compression ratio indicating a ratio between the data amount of the input data string and the data amount of the compression code output by the compression code generation unit is obtained, and the data compression ratio is calculated by calculating the data compression ratio input from the outside. If less, a data compression unit having a compression ratio observation unit that generates a dictionary initialization signal that instructs the dictionary creation / search unit to initialize the dictionary;
A data recording means for recording data output from the data compression means on a medium,
An underflow prediction unit configured to generate a prediction signal indicating a point in time at which a transfer speed of the compressed data output from the data compression unit is lower than a speed at which the data recording unit writes data to a medium;
A data compression recording device comprising: a compression ratio changing unit that changes a data compression ratio according to a prediction signal output from the underflow prediction unit.
前記アンダーフロー予測手段が、前記蓄積されたデータを前記データ圧縮手段に入力し、外部から指定入力される基底データ蓄積量に対する前記バッファメモリ内のデータ蓄積量の倍率を前記圧縮率変更手段に出力する、請求項6に記載のデータ圧縮記録装置。The data compression recording device is provided in front of the data compression means, and includes a buffer memory for storing the input data sequence,
The underflow prediction unit inputs the stored data to the data compression unit, and outputs a ratio of a data storage amount in the buffer memory to a base data storage amount designated and input from the outside to the compression ratio changing unit. The data compression recording apparatus according to claim 6 , wherein
前記辞書作成・検索手段が、辞書登録・検索されるデータ列が前記上限値の長さ以下に収まるように辞書を作成する、請求項6に記載のデータ圧縮記録装置。The data compression unit includes a conversion unit that receives a variable data compression ratio and outputs an upper limit value of a length of a data string to be registered and searched for in a dictionary,
7. The data compression recording apparatus according to claim 6 , wherein said dictionary creating / searching means creates a dictionary such that a data string to be registered / searched in the dictionary is smaller than the length of said upper limit value.
前記データ列解析手段によって生成されるデータ列が辞書に登録されているか否かを調べ、未登録の場合に前記辞書に辞書登録する辞書作成・検索手段、
前記辞書作成・検索手段によって生成される圧縮コードを出力する圧縮コード生成部、および、
前記入力されるデータ列のデータ量と前記圧縮コード生成部が出力する前記圧縮コードのデータ量との比率を示すデータ圧縮率を求め、該データ圧縮率が、外部から入力されたデータ圧縮率を下回る時点を検出し、前記辞書作成・検出手段に辞書の初期化を指示する辞書初期化信号を生成する圧縮率観測手段とを有するデータ圧縮手段と、
外部からの入力データを前記データ圧縮手段によって圧縮した前記圧縮データをメディアに記録するデータ記録手段とを備えたデータ圧縮記録装置であって、
前記データ圧縮記録装置が、前記辞書の検索開始から前記辞書の検索終了までの時間を計測し、計測時間情報を生成する時間計測手段を備え、
前記辞書作成・検索手段が、外部から入力された時間情報が、前記時間計測手段の計測時間情報を下回った時点で、辞書登録または検索を行う処理を強制的に中止し、前記強制中止直前に確定した圧縮コードを圧縮コード生成部に出力する、データ圧縮記録装置。Data string analysis means for analyzing an input data string,
Dictionary creation / search means for checking whether or not the data string generated by the data string analysis means is registered in the dictionary, and registering the dictionary in the dictionary if not registered,
A compression code generation unit that outputs a compression code generated by the dictionary creation / search unit;
A data compression ratio indicating a ratio between the data amount of the input data string and the data amount of the compression code output by the compression code generation unit is obtained, and the data compression ratio is calculated by calculating the data compression ratio input from the outside. A data compression unit having a compression ratio observation unit that detects a point in time that falls below and generates a dictionary initialization signal that instructs the dictionary creation / detection unit to initialize the dictionary;
A data recording means for recording the compressed data obtained by compressing external input data by the data compression means on a medium,
The data compression recording device includes a time measuring unit that measures time from the start of the dictionary search to the end of the dictionary search, and generates measurement time information.
The dictionary creation / search unit forcibly stops the dictionary registration or search process when the time information input from the outside falls below the measured time information of the time measurement unit. A data compression recording device that outputs the determined compression code to a compression code generation unit.
前記データ記憶手段に転送データが非圧縮データであることを示す第1の制御コードを前記データ記録手段に転送し、かつ、前記データ圧縮手段に入力されるデータ列を前記データ記録手段に転送し、
前記データ列の転送が終了したことを示す第2の制御コードを前記データ列の転送終了後に前記データ記録手段に転送する圧縮コード生成部を有することを特徴とする請求項1または4に記載のデータ圧縮記録装置。Before transferring the data sequence input to the data compression means to the data recording means,
A first control code indicating that the transfer data is uncompressed data is transferred to the data storage means, and a data string input to the data compression means is transferred to the data storage means. ,
According to claim 1 or 4, characterized in that it has a compressed code generating unit for transferring the data recording means and the second control code indicating that the transfer of the data sequence is terminated after the end transfer of the data string Data compression recording device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01770199A JP3578445B2 (en) | 1999-01-26 | 1999-01-26 | Data compression recorder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01770199A JP3578445B2 (en) | 1999-01-26 | 1999-01-26 | Data compression recorder |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000216685A JP2000216685A (en) | 2000-08-04 |
JP3578445B2 true JP3578445B2 (en) | 2004-10-20 |
Family
ID=11951099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP01770199A Expired - Fee Related JP3578445B2 (en) | 1999-01-26 | 1999-01-26 | Data compression recorder |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3578445B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5939259B2 (en) | 2011-11-04 | 2016-06-22 | 富士通株式会社 | Collation control program, collation control device, and collation control method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2918360B2 (en) * | 1991-07-25 | 1999-07-12 | 富士通株式会社 | Inverse quantization method and image data restoration device |
US5175543A (en) * | 1991-09-25 | 1992-12-29 | Hewlett-Packard Company | Dictionary reset performance enhancement for data compression applications |
US5686912A (en) * | 1995-05-08 | 1997-11-11 | Hewlett-Packard Company | Data compression method and apparatus with optimized transitions between compressed and uncompressed modes |
JP3337633B2 (en) * | 1997-12-03 | 2002-10-21 | 富士通株式会社 | Data compression method and data decompression method, and computer-readable recording medium recording data compression program or data decompression program |
-
1999
- 1999-01-26 JP JP01770199A patent/JP3578445B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000216685A (en) | 2000-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5237460A (en) | Storage of compressed data on random access storage devices | |
US5298895A (en) | Data compression method and apparatus utilizing an adaptive dictionary | |
US5280600A (en) | Storage of compressed data with algorithm | |
US6816942B2 (en) | Storage control apparatus and method for compressing data for disk storage | |
US6360300B1 (en) | System and method for storing compressed and uncompressed data on a hard disk drive | |
US5574952A (en) | Data storage system and method for operating a disk controller including allocating disk space for compressed data | |
US6449689B1 (en) | System and method for efficiently storing compressed data on a hard disk drive | |
JP3319751B2 (en) | Tape storage | |
JP6794782B2 (en) | Information processing equipment, information processing programs, and information processing methods | |
JPH1027120A (en) | System for holding data base log | |
US20040190183A1 (en) | Disk array device | |
US20110082998A1 (en) | Reducing occupancy of digital storage devices | |
US6032148A (en) | Multilevel storage system with hybrid data compression | |
JP2003150428A (en) | File system capable of restoring defective file | |
US20100232048A1 (en) | Disk storage device | |
JP3342798B2 (en) | How to compress a stream of raw data | |
US7219259B2 (en) | Apparatus and method to preserve data integrity during a power loss | |
US7120766B2 (en) | Apparatus and method to initialize information disposed in an information storage and retrieval system | |
JP3578445B2 (en) | Data compression recorder | |
US7206908B2 (en) | Apparatus and method to convert a plurality of sectors from a first sector format to a second sector format | |
EP0490239A2 (en) | Storage of compressed data on random access storage devices | |
JP3061278B2 (en) | Bit length communication method for variable bit length codeword | |
JPH07210324A (en) | Storage device | |
CN113986604A (en) | Data storage method and data storage device | |
JP3097076B2 (en) | Trace data collection method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040301 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040310 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040510 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040525 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040622 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20040625 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040712 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040712 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070723 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080723 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090723 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090723 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100723 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110723 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |