JP3578445B2 - Data compression recorder - Google Patents

Data compression recorder Download PDF

Info

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
Application number
JP01770199A
Other languages
Japanese (ja)
Other versions
JP2000216685A (en
Inventor
貴生 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP01770199A priority Critical patent/JP3578445B2/en
Publication of JP2000216685A publication Critical patent/JP2000216685A/en
Application granted granted Critical
Publication of JP3578445B2 publication Critical patent/JP3578445B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 dictionary unit 1105 is 4096, and the writing time to the SRAM is 50 ns, the dictionary reset process takes about 204 μs. In another data compression recording apparatus of the present invention, the dictionary reset process ends in about 12 μs.
[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 compression recording device 1101 shown in FIG. 1 includes a controller unit 1103, a data compression unit 1104, a dictionary unit 1105, and a formatter unit 1106.
[0039]
The data compression and recording device 1101 is connected to the host computer 1102, and exchanges data with the host computer 1102 according to a predetermined protocol. In the data compression recording device 1101, the data compression unit 1104 receives data from the host computer 1102 via the controller unit 1103 that controls the above protocol. The received data is usually subjected to data compression by a data compression unit 1104, and the compressed data is formatted into a predetermined data string by a formatter unit 1106, and transferred to a recording unit 1107.
[0040]
The recording unit 1107 writes the formatted data string on a medium (such as a recording medium). In the data compression recording device 1101, the above-described series of processing is performed.
[0041]
The dictionary unit 1105 stores the contents of the dictionary created by the data compression unit 1104. Note that the data compression recording device 1101 may include a recording unit 1107.
[0042]
Hereinafter, the configuration of the data compression unit 1104 will be described.
[0043]
The data compression section 1104 has a selector 101, a data string analysis section 1108, a dictionary creation / search section 1109, a compression code generation section 1110, and a compression ratio observation section 1111.
[0044]
The data string analysis unit 1108 analyzes the data string input from the controller unit 1103 and passes a data string of at least 2 bytes (hereinafter, referred to as a “unique string”) to the dictionary creation / search unit 1109.
[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 / search unit 1109 checks whether the unique column is registered in the dictionary unit 1105.
[0049]
If the unique column is not registered in the dictionary unit 1105, the dictionary creation / search unit 1109 registers the unique column in the dictionary unit 1105 in a predetermined format. If the unique column is registered in the dictionary unit 1105, the dictionary creation / search unit 1109 notifies the data column analysis unit 1108 that the unique column is registered in the dictionary unit 1105, and adds a byte to the unique column. As a new unique column and passed to the dictionary creation / search unit 1109. The processing described above is repeated, and the dictionary creation / search unit 1109 constructs a dictionary in the dictionary unit 1105.
[0050]
Incidentally, when a unique column is registered in the dictionary unit 1105, there are four types of data written in the dictionary unit 1105: a dictionary code, a parent code, a child code, and a registration flag, and these are hereinafter referred to as entries. The registration flag means the number of bytes of the unique column in the registered entry. It should be noted that, when a value other than zero is written to the registration flag, it means that four types of data have been written to the entry area.
[0051]
When a new unique column is registered in the dictionary, the dictionary creation / search unit 1109 passes the parent code in the entry to the compressed code generation unit 1110 via the selector 101. The detailed operation of the selector 101 will be described later.
[0052]
The compressed code generation unit 1110 assembles the received parent code group and other control codes into a predetermined compressed data stream and outputs them to the format unit 1106.
[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 / search unit 1109 detects that there is no longer any area in the dictionary unit 1105 to be registered in the dictionary, the dictionary creation / search unit 1109 stops dictionary registration. That is, after the dictionary freeze command is output, data compression is performed using the current dictionary contents.
[0055]
The dictionary reset command is embedded in the compressed data stream output by the compression code generation unit 1110 when the compression ratio observation unit 1111 instructs the dictionary creation / retrieval unit 1109 of the dictionary reset signal 1112.
[0056]
The compression ratio observation unit 1111 always calculates the compression ratio from the ratio of the amount of input data received by the data compression unit 1104 to the amount of compressed output data generated by the data compression unit 1104. When the compression ratio calculated by the compression ratio observation unit 1111 is lower than the compression ratio specified from the outside, that is, when the expected compression ratio cannot be obtained, the compression ratio observation unit 1111 sends a dictionary to the dictionary creation / search unit 1109. A reset signal 1112 is indicated. When the dictionary reset signal 1112 is generated, the registration flags of all entries in the dictionary unit 1105 are initialized with zero values. Again, a unique column is cut out from the input data sequence, and a dictionary is created.
[0057]
The process (normal process) of compressing the input data string received by the data compression unit 1104 of the data compression recording device 1101 during the period in which the dictionary reset signal 1112 is not issued will be described below with reference to FIGS. explain. In the normal processing when the data compression recording device 1101 does not have the selector 101, the compression code generation unit 1110 receives a signal output from the dictionary creation / generation unit 1109.
[0058]
FIG. 2 is a diagram illustrating a relationship between input data received by the data compression unit 1104 and output data generated by the data compression unit 1104, and FIG. 3 is a diagram illustrating a configuration of the dictionary unit. Hereinafter, the dictionary unit shown in FIG. 3 is referred to as a dictionary unit 1105a.
[0059]
The upper row of numerical values shown in FIG. 2 is a data row input from the controller 1103 to the data compressor 1104, and is input in order from the left and expressed in hexadecimal. The lower numerical sequence shown in FIG. 2 indicates a compressed data sequence in which the input data sequence is compressed and output by the data compression unit 1104, and is output in order from the left and is represented by a decimal number.
[0060]
The dictionary unit 1105a shown in FIG. 3 is composed of one entry and six bytes. Two bytes are allocated to the dictionary code 1302, two bytes are allocated to the parent code 1303, and two bytes are allocated to the child code 1304 and the registration flag 1305.
[0061]
The entry address 1301 indicates the position of the entry. The entry address 1301 increases from the top to the bottom of the left table shown in FIG. Further, the lower part on the right side in FIG. 3 is the last entry address.
[0062]
Hereinafter, the processing performed by the data compression unit 1104 on the upper input data string shown in FIG. 2 will be described.
[0063]
Prior to the data compression process, in order to reset the dictionary of the dictionary unit 1105a, the dictionary creation / retrieval unit 1109 writes zero to all the registration flags 1305 in the dictionary unit 1105a, and the compression code generation unit 1110 sends the dictionary reset command 1201 , The data string analysis unit 1108, the selector unit 101, and the compressed code generation unit 1110.
[0064]
The data string analysis unit 1108 cuts out the first two bytes, for example, 0x61 and 0x62, from the input data string and passes them to the dictionary creation / search unit 1109 as unique strings. The dictionary creation / search unit 1109 receives the parent value and the child value, and uses a predetermined function (for example, a hash function) that generates the entry address 1301 based on the parent value and the child value, and uses the parent value 0x61 and the child value 0x62. To obtain the entry address m1.
[0065]
When confirming that the registration flag 1305 of the entry address m1 of the dictionary unit 1105a is zero, that is, the entry is not used (in FIG. 3, after the data dictionary analysis unit 1108 has already registered some dictionaries, The register flag stores 2 in the registration flag, and 264, which is the initial value of the dictionary code, is written in the entry address m1, and the parent code 105 = 0x61 + 8 is written in the entry address m1. Then, the child code 106 = 0x62 + 8 is written into the entry address m1, and the registration flag 2 which is the number of unique column bytes is written into the entry address m1.
[0066]
The dictionary creation / retrieval unit 1109 writes them into the entry of the dictionary unit 1105a and passes the parent code 105 as compressed data to the compressed code generation unit 1110.
[0067]
The data sequence analysis unit 1108 passes the child 0x62 as a parent and the next input 0x63 as a child to the dictionary creation / search unit 1109.
[0068]
As described above, the dictionary creation / search unit 1109 obtains the entry address m2 corresponding to the parent value 0x62 and the child value 0x63 (unique column).
[0069]
The dictionary creation / search unit 1109 determines that the registration flag of the entry address m2 is zero (note that FIG. 3 shows the state of the dictionary unit 1105a after some dictionaries have already been registered. 2 is stored), that is, when it is confirmed that this entry is not used, the initial value of the dictionary code is 265, the parent code 106 = 0x62 + 8, the child code 107 = 0x63 + 8, and the unique code. The registration flag 2 which is the number of bytes in the column is written into the entry corresponding to the entry address m2 of the dictionary unit 1105a, and the parent code 106 is passed to the compression code generation unit 1110 as compressed data.
[0070]
Similarly, the dictionary creation / search unit 1109 obtains the entry address m3 from the unique columns 0x63 and 0x64, and obtains the entry address m4 from the unique columns 0x64 and 0x61.
[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 unit 1109 determines that the extracted unique columns 0x61 and 0x62 exist in the dictionary.
[0072]
When the dictionary creating / searching unit 1109 determines that the extracted unique column exists in the dictionary, the dictionary creating / searching unit 1109 converts the extracted unique columns 0x61 and 0x62 into a dictionary code 264 (decimal number). As a representative, the parent code is set to 264, and a search is made as to whether a unique column having 0x63 as a child input after the extracted unique columns 0x61 and 0x62 exists in the dictionary.
[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 dictionary unit 1105a after some dictionaries have already been registered, so that 3 is stored in the registration flag. The dictionary creation / search unit 1109 writes 268 to the dictionary code, 264 to the parent code, and 107 (decimal) = 0x63 + 8 (hexadecimal) to the child code of the entry corresponding to the entry address m5. Is written to the registration flag, which is the number of unique column bytes, and the parent code 264 is passed to the compression code generation unit 1110 as compressed data.
[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 dictionary unit 1105a is set to M. Both N and M are natural numbers, but in general there are examples such as N = 128 and M = 4096.
[0076]
FIG. 4 is a diagram illustrating an example of a normal process of the dictionary creation / search unit 1109 in the data compression process.
[0077]
In step S10, when data is input from the host computer 1102 to the data sequence analysis unit 1108 via the controller unit 1103, the data is set as a parent. Note that data input may occur at any time.
[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 string analysis unit 1108 sends the initial parent, child, and each byte to the dictionary creation / search unit 1109.
[0080]
In step S50, the dictionary creation / search unit 1109 starts searching the dictionary unit 1105 to check whether the parent and child exist in the dictionary.
[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 registration flag 1305 corresponding to the entry address are extracted.
[0083]
In step S80, it is determined whether the registration flag 1305 corresponding to the entry address is 0 or not. If the registration flag 1305 is 0, the process proceeds to step S90. If the registration flag 1305 is not 0, the process proceeds to step S100.
[0084]
In step S90, since the entry is not used, the parent and child information obtained from the data sequence analysis unit 1108 is registered in the dictionary 1303 and 1304, the current parent code 1303 is passed to the compression code generation unit 1110, and the current child is Keep as parents. Thereafter, the process proceeds to step S20, where the next data to be input is set as a child.
[0085]
In step S100, when the registration flag 1305 is not 0, for example, when the registration flag 1305 is 2, the parent-child information of the entry indicated by the entry address is extracted.
[0086]
In step S110, it is determined whether the extracted parent-child information matches the parent-child information obtained from data sequence analysis unit 1108. If the parent and child information match, the process proceeds to step S120. If the parent-child information does not match, the process proceeds to step S60, where a new entry address is acquired again using a predetermined function based on the acquired parent-child information, and the search is continued.
[0087]
In step S120, the current parent-child data string is set as the parent, the child byte is obtained from the data string analysis unit 1108, a new unique string is prepared, and the entry address is again obtained from the parent-child information by a predetermined function and searched. Continue. Thereafter, the process proceeds to step S60. Note that the compression code generation unit 1110 performs a compression process (normal process) of forming a compressed stream and outputting it to the formatter 1106.
[0088]
However, if the current compression ratio is lower than the externally specified compression ratio, the compression ratio observation unit 1111 generates a dictionary reset signal 1112 that prompts a process for initializing the dictionary unit 1105a. When the dictionary reset signal 1112 is issued, the data string analysis unit 1108 and the dictionary creation / search unit 1109 stop the above-described normal processing.
[0089]
In such a case, the selector unit 101 does not output the signal 105 output from the compressed code generation unit 1110, but outputs the data value 102 transmitted from the controller unit 1103. The selector unit 101 performs such switching according to the dictionary reset signal 1112. That is, the compressed code generation unit 1110 that has received the data value 102 outputs the data value 102 to the formatter unit 1106 as it is. Thus, recording is not interrupted during the time when the dictionary unit 1105 is initialized.
[0090]
While the data value 102 is being output to the formatter unit 1106, the dictionary creation / search unit 1109 writes a zero value to the registration flags of all entries in the dictionary unit 1105a shown in FIG. 3 to initialize the dictionary. .
[0091]
When the initialization of the dictionary unit 1105a is completed, the selector unit 101 converts the value output to the compressed code generation unit 1110 from the data value 102 to the dictionary code 105 in response to the dictionary reset signal 1112 being inactive. The switching and the data sequence analysis unit 1108 and the dictionary creation / search unit 1109 return to the above-described normal processing in response to the dictionary reset signal 1112 becoming inactive.
[0092]
Hereinafter, the processing of the compressed code generation unit 1110 accompanying the dictionary reset processing will be described.
[0093]
When the dictionary reset signal 1112 is issued, the compression code generation unit 1110 outputs a control code value 1, records that the dictionary is initialized in an output data string, and then outputs a control code value 6. Then, the fact that the data sequence to be output thereafter is uncompressed is recorded in the output data sequence, and thereafter the compressed code generation unit 1110 continues to output the data sequence 102 from the controller unit 1103 via the selector unit 101. At this time, the compression code generation unit 1110 outputs a value obtained by adding 8 to the input data byte value. Subsequently, when the dictionary reset processing ends, the compression code generation unit 1110 outputs a control code value 7 and records the end of the uncompressed data string in the output data string, and thereafter, the normal compression processing is performed. Compressed data is output.
[0094]
FIG. 5 is a diagram showing another configuration of the dictionary unit 1105. Hereinafter, the dictionary unit shown in FIG. 5 is referred to as a dictionary unit 1105b.
[0095]
The contents of the entry address 1301, dictionary code 1302, parent code 1303, and child code 1304 in the dictionary unit 1105b shown in FIG. 5 are the same as those of the dictionary unit 1105a shown in FIG. However, the dictionary unit 1105b and the data compression unit 1104 shown in FIG. 5 have an area for storing the number of registered bytes 201 and an area for storing the flag 202, instead of the area for storing the registration flag 1305.
[0096]
The registration flag 1305 shown in FIG. 3 and the registered byte number 201 shown in FIG. 5 both indicate the number of bytes of the unique column registered in the entry. On the other hand, while the registration flag 1305 is initialized to zero by the dictionary reset processing, the registration byte number 201 is not initialized to zero by the dictionary reset processing.
[0097]
Instead, the flag 202 indicating whether or not the entry has been registered in the dictionary is stored in a register memory incorporated in the data compression unit 1104 separately from the dictionary unit 1105b. FIG. 5 shows an example of the register memory. The register memory shown in FIG. 5 can store 1 bit × M flags. Note that the data compression recording device 1101 may include a flag selector unit that associates one bit of the register memory with one entry in the dictionary unit 1105b. The flag selector selects one specific bit of the register memory according to the entry address 1301 of the dictionary unit 1105b.
[0098]
In the reset process of the dictionary unit 1105a shown in FIG. 3, a zero value is written in the column of the all registration flags 1305 in the dictionary unit 1105. On the other hand, in the normal compression processing of the dictionary unit 1105b shown in FIG. 5, the number of bytes of the unique column to be registered in the entry is directly recorded in the number of registered bytes 201 in the dictionary unit 1105b, and when the entry is used for dictionary registration. , The value 1 is recorded in the flag 202 corresponding to the entry. In the reset processing of the dictionary unit 1105b shown in FIG. 5, without accessing the dictionary unit 1105b, all bits stored in the register memory 202 in the data compression unit 1104 shown in FIG. 5 are set to zero values.
[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 dictionary unit 1105 will be described.
[0101]
FIG. 6 is a diagram showing a memory space, which is a part of another configuration of the dictionary unit 1105. The memory space shown in FIG. 6 corresponds to the flag 202 shown in FIG. Another configuration of the dictionary unit 1105 includes an entry address 1301, a dictionary code 1302, a parent code 1303, a child code 1304, the number of registered bytes 201, and a memory space 202a shown in FIG. The size of the memory space 202a is, for example, Z + 0 to Z + 256. Hereinafter, the memory space is referred to as a registration flag table 202a. The dictionary unit 1105 is an SRAM.
[0102]
In the SRAM serving as the dictionary unit 1105, the value of Z is determined so that the registration flag table 202a does not overlap with the entry address 1301, the dictionary code 1302, the parent code 1303, the child code 1304, and the number of registered bytes 201.
[0103]
If the entry address 1301, dictionary code 1302, parent code 1303, child code 1304, and M of the number of registered bytes 201 shown in FIG. 5 are 4096, the registration flag table shown in FIG. 6 requires a total of 4096 bits. is there.
[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 entry address 12 shown in FIG. 5, 1 is written to the bit 12 at the address Z shown in FIG. When the unique column is registered in the entry address 23 shown in FIG. 5, 1 is written to the bit 7 at the address Z + 1 shown in FIG.
[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 / retrieval unit 1109 shown in FIG. 1, and during normal data compression processing, the quotient is used to store the SRAM registration flag table address by the quotient and the remainder. A bit number for recording 1 is created in the word data to be written, and the fact that the entry has been registered in the dictionary is left as a record. During the dictionary reset process, zero-value word data is sequentially written from address Z to address Z + 256.
[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 compression recording device 1201 shown in FIG. 7 includes a controller unit 1103, a data compression unit 1204, a dictionary unit 1105, a formatter unit 1106, a recording unit 1107, and a mask signal generation unit 402.
[0111]
The data compression unit 1204 includes a mask unit 405, a data string analysis unit 1108, a dictionary creation / search unit 1109, a compression code generation unit 1110, and a compression ratio observation unit 1111.
[0112]
In the data compression recording device 1201, the same components as those of the data compression recording device 1101 are given the same numbers, and the description is basically omitted.
[0113]
The recording unit 1107 sends the non-recording period signal 401 to the mask signal generation unit 402. The non-recording period signal 401 is a signal indicating a time when the recording unit 1107 is not recording data on a medium (such as a recording medium). In general, the non-recording period is represented by a pickup operation in an optical disk recording device, a seek operation period of a magnetic head in a floppy disk drive, or a track movement period during tape writing in a magnetic tape drive.
[0114]
The mask signal generation unit 402 generates a final mask signal 404 based on the non-recording period signal 401 and the external dictionary reset mask signal 403 input from outside, and sends it to the mask unit 405.
[0115]
The final mask signal 404 is a signal for masking transmission of the dictionary reset signal 1112 issued by the compression ratio observation unit 1111 to the dictionary creation / search unit 1109. Signal 406 is the final dictionary reset signal.
[0116]
The external dictionary reset mask signal 403 input from outside is input to the mask signal generation unit 402, and when the recording unit 1107 is recording data by normal processing, the non-recording period signal 401 is not issued, The input external dictionary reset mask signal 403 becomes valid and is input to the mask unit 405 as the final mask signal 404.
[0117]
The mask unit 405 masks the dictionary reset signal 1112 with the effective final mask signal 404, and does not transmit the dictionary reset signal to the dictionary creation / search unit 1109. Therefore, when the recording unit 1107 is recording data in the normal processing, the dictionary reset processing is not performed, and the data compression processing is continuously performed while creating the dictionary.
[0118]
When a period during which the recording unit 1107 does not perform data recording on a medium (such as a recording medium) occurs, a non-recording period signal 401 is issued. During that period, the external dictionary reset mask signal 403 becomes invalid and the final mask signal 404 is also released. Is done.
[0119]
Accordingly, the mask unit 405 validates the dictionary reset signal 1112 up to the point described above, and the dictionary creation / search unit 1109 performs dictionary reset processing according to the final dictionary reset signal 406.
[0120]
The period during which the recording unit 1107 does not record data on a medium (such as a recording medium) is premised on that a mechanical operation accompanies it, and is on the order of several hundred microseconds to several milliseconds. And the dictionary can be reset with a margin.
[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 compression recording device 1101 shown in FIG. 1, only during the dictionary reset period, the input data is formatted and output as uncompressed data. On the other hand, the data compression recording apparatus 1301 shown in FIG. 8 includes a buffer memory 501 for temporarily storing data output from the host computer 1102 via the controller 1103. Specifically, the data compression recording device 1301 shown in FIG. 8 includes a controller unit 1103, a data compression unit 1304, a dictionary unit 1105, a formatter unit 1106, a recording unit 1107, a buffer memory 501, and a mask signal generation unit 503. .
[0125]
The data compression unit 1304 includes a mask unit 506, a data string analysis unit 1108, a dictionary creation / search unit 1109, a compression code generation unit 1110, and a compression ratio observation unit 1111.
[0126]
In the data compression recording device 1301, the same components as those of the data compression recording device 1101 are given the same numbers, and the description is basically omitted.
[0127]
The data stored in the buffer memory 501 is input to the data string analyzer 1108 via the controller 1103.
[0128]
The external dictionary reset mask signal 504 input from the outside is input to the mask signal generation unit 503, and the signal 504 is controlled by the data accumulation detection signal 502 issued by the controller unit 1103. The data accumulation detection signal 502 is issued when data larger than the transfer data amount required to output data to the formatter unit 1106 without being compressed is accumulated in the buffer memory 501 during the period of the dictionary reset process.
[0129]
When the data accumulation detection signal 502 has not been issued, the mask signal generation unit 503 outputs the external dictionary reset mask signal 504 as a valid final mask signal 505 as it is. When the data accumulation detection signal 502 is issued, the mask signal generation unit 503 masks the external dictionary reset mask signal 504, and the final mask signal 505 becomes a mask invalid signal.
[0130]
When the final mask signal 505 is valid, the mask unit 506 masks the dictionary reset signal 1112 and invalidates the final dictionary reset signal 507, and the dictionary creation / search unit 1109 performs data compression while creating a dictionary.
[0131]
When the final mask signal 505 is invalid, the mask unit 506 generates a final dictionary reset signal 507 without masking the dictionary reset signal 1112, and the dictionary creation / retrieval unit 1109 generates data in accordance with the final dictionary reset signal 507. The compression processing is stopped, and the registration flag of the dictionary unit 1105 is initialized. At the same time, the input data from the controller unit is sent to the compressed code generation unit 1110 without being compressed, and they are formatted and output. Since it is guaranteed that the output data amount for the time required for the dictionary reset processing is secured in the buffer memory 501, the entire system can always stream data without stopping the recording unit 1107. It becomes.
[0132]
In addition, from the time when the dictionary reset is issued to the time when the data accumulation detection signal 502 is issued, data compression is performed while creating a dictionary by normal processing. The dictionary reset is issued when the compression rate falls below the expected compression rate, and the above-described data compression processing has a property that the compression rate does not decrease sharply. It is possible to delay the time.
[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 compression recording device 1101 shown in FIG. 1, only during the dictionary reset period, the input data is formatted and output as uncompressed data.
[0136]
On the other hand, the data compression recording device 1401 shown in FIG. 9 includes a buffer memory 601 and the like that accumulates a compressed data string output from the data compression unit 1404 via the formatter unit 1106. Specifically, the data compression recording device 1401 illustrated in FIG. 9 includes a controller unit 1103, a data compression unit 1404, a dictionary unit 1105, a formatter unit 1106, a recording unit 1107, a buffer memory 601, and a mask signal generation unit 603. I have.
[0137]
The data compression unit 1404 includes a mask unit 606, a data string analysis unit 1108, a dictionary creation / search unit 1109, a compression code generation unit 1110, and a compression ratio observation unit 1111.
[0138]
In the data compression recording device 1401, the same components as those of the data compression recording device 1101 are given the same numbers, and the description is basically omitted.
[0139]
The data stored in the buffer memory 601 is input to the recording unit 1107 via the formatter unit 1106. The external dictionary reset mask signal 604 input from the outside is input to the mask signal generation unit 603, and the signal 604 is controlled by the data accumulation detection signal 602 issued by the formatter unit 1106. The data accumulation detection signal 602 is issued when data larger than the transfer data amount required to output compressed data from the formatter unit 1106 to the recording unit 1107 is accumulated in the buffer memory 601 during the period of the dictionary reset process. .
[0140]
When the data accumulation detection signal 602 has not been issued, the mask signal generation unit 603 outputs the external dictionary reset mask signal 604 as a valid final mask signal 605 as it is.
[0141]
When the data accumulation detection signal 602 is issued, the mask signal generation unit 603 masks the external dictionary reset mask signal 604, and the final mask signal 605 becomes a mask invalid signal.
[0142]
When the final mask signal 605 is valid, the mask unit 606 masks the dictionary reset signal 1112, invalidates the final dictionary reset signal 607, and the dictionary creation / search unit 1109 performs data compression while creating a dictionary.
[0143]
When the final mask signal 605 is invalid, the mask unit 606 does not mask the dictionary reset signal 1112 and reflects it as the final dictionary reset signal 607. The dictionary creation / search unit 1109 stops data compression processing and registers the dictionary unit 1105. Initialize flags. At the same time, input data to the recording unit 1107 is input from the buffer memory 601 via the formatter unit 1106.
[0144]
Since it is guaranteed that the output data amount for the time required for the dictionary reset processing is secured in the buffer memory 601, the data can be streamed without stopping the recording unit 1107 as a whole system. It becomes.
[0145]
In addition, from the issuance of the dictionary reset to the issuance of the data accumulation detection signal 602, data compression is performed while creating a dictionary in the normal processing. However, the 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.
[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 compression recording device 1501 shown in FIG. 10 includes a controller unit 1103, a data compression unit 1504, a dictionary unit 1105, a formatter unit 1106, and a recording unit 1107.
[0149]
The data compression section 1504 includes an underflow prediction section 703, a compression rate change section 705, a data string analysis section 1108, a dictionary creation / search section 1109, a compression code generation section 1110, and a compression rate observation section 1111.
[0150]
In the data compression recording device 1501, the same components as those of the data compression recording device 1101 are given the same numbers, and the description is basically omitted.
[0151]
The underflow prediction unit 703 generates prediction information 704 based on time information 701 and a base compression ratio 702 input from the outside. For example, the underflow prediction unit 703 divides the amount of compressed data output from the data compression unit 1504 during the time indicated by the time information 701 by the amount of data input to the data compression unit 1504 to calculate the local compression ratio. , And a process of dividing the local compression ratio by the base compression ratio 702 is performed.
[0152]
FIG. 11 is a diagram illustrating a relationship between prediction information generated by the underflow prediction unit 703 and a quotient of the local compression ratio / the base compression ratio.
[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 underflow prediction unit 703 to the compression ratio changing unit 705 as prediction information 704, and the quotient of the local compression ratio ÷ the base compression ratio is calculated as In the case of 1 to 2, the 2-bit representation 1 is sent from the underflow prediction unit 703 to the compression ratio changing unit 705 as the prediction information 704, and when the quotient of the local compression ratio / the base compression ratio is 2 to 4, 2 in the 2-bit expression. Is transmitted from the underflow prediction unit 703 to the compression ratio changing unit 705 as the prediction information 704, and when the quotient of the local compression ratio / the base compression ratio is 4 or more, 3 in the 2-bit representation is transmitted from the underflow prediction unit 703 as the prediction information 704. The data is sent to the compression ratio changing unit 705.
[0154]
The compression ratio changing unit 705 generates an upper limit value 706 based on the prediction information 704, and sends the upper limit value 706 to the dictionary creation / search unit 1109. Here, the upper limit value 706 is the upper limit value 706 of the number of bytes of the unique column that can be registered when the dictionary creation / search unit 1109 creates the dictionary, and the number of bytes of the unique column that the dictionary creation / search unit 1109 replaces with the output dictionary code. It means at least one of the upper limit values 706.
[0155]
For example, as shown in FIG. 11, when the prediction information 704 is 0, the upper limit 706 is set to 128, when the prediction information 704 is 1, the upper limit 706 is set to 64, and when the prediction information 704 is 2, the upper limit is set. When the prediction information 704 is 3, the upper limit value 706 is set to 16.
[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 recording unit 1107. Therefore, the upper limit of the number of unique column bytes that can be registered in the dictionary is set to 16 bytes, and control is performed so that the local compression ratio is reduced to some extent.
[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 code generation unit 1110. As described above, by controlling the dictionary creation and the compression code generation method in response to local fluctuations in the compression ratio, the recording unit 1107 does not underflow, and the data It is possible to stabilize the compression ratio.
[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 buffer memory 901, an underflow prediction unit 904, a controller unit 1103, a data compression unit 1604, a dictionary unit 1105, a formatter unit 1106, and a recording unit 1107.
[0161]
The data compression section 1604 includes a compression rate change section 906, a data string analysis section 1108, a dictionary creation / search section 1109, a compression code generation section 1110, and a compression rate observation section 1111. The buffer memory 901 temporarily stores data from the host computer 1102 via the controller unit 1103.
[0162]
In the data compression recording device 1601, the same components as those of the data compression recording device 1101 are given the same numbers, and the description is basically omitted.
[0163]
The data stored in the buffer memory 901 is input to the data sequence analysis unit 1108 via the controller unit 1103. The controller unit 1103 always discloses the amount of data stored in the buffer memory 901 to the underflow prediction unit 904 as buffer storage amount information 902. The underflow prediction unit 904 generates prediction information 905 based on the base data accumulation amount 903 and the buffer accumulation amount information 902 input from the outside. For example, the underflow prediction unit 904
A magnification value of the buffer accumulation amount with respect to the base data accumulation amount is generated, and is passed to the compression ratio changing unit 906 as prediction information 905.
[0164]
As shown in FIG. 11, the relationship between the buffer accumulation amount ÷ the quotient of the base data accumulation amount and the prediction information 905 is such that the 2-bit representation is 0 when the quotient is 2 or more, and 2 when the quotient is 1.5 to 2. The bit representation is 1, and when the quotient is 1 to 1.5, the 2-bit representation is 2, and when the quotient is 1 or less, the 2-bit representation is 3.
[0165]
The compression ratio changing unit 906 generates an upper limit value 907 based on the magnification value 905. Here, the upper limit value 907 is at least one of the number of bytes of a unique column that can be registered by the dictionary creation / retrieval unit 1109 at the time of dictionary creation and the number of bytes of a unique column to be replaced with an output dictionary code.
[0166]
When the prediction information 905 is 0, the upper limit 907 is 128, when the prediction information 905 is 1, the upper limit 907 is 64, and when the prediction information 905 is 2, the upper limit 907 is 32, and the prediction information 905 is 32. When 905 is 3, the upper limit 907 is 16, and each upper limit 907 is sent to the dictionary creation / search unit 1109.
[0167]
When the buffer storage amount 902 is more than twice the base storage amount 903, for example, when the prediction information = 0, local compression is performed by setting the upper limit of the number of unique column bytes that can be registered in the dictionary to 128 bytes in order to maximize the compression ratio. Although the rate is improved, when the buffer storage amount is extremely reduced, for example, when prediction information = 3, an underflow may occur in the recording unit 1107. Therefore, the upper limit of the number of unique column bytes that can be registered in the dictionary is set to 16 bytes. The buffer is controlled so as to increase the buffer accumulation amount to some extent.
[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 code generation unit 1110.
[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 data compression unit 1104, the recording unit 1107 can be prevented from underflowing. In addition, the data compression rate can be globally stabilized.
[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 / retrieval unit 1109 of the data compression recording device 1101. It relates to a method when a dictionary of a certain unique column cannot be registered within the time information N or a certain unique column cannot be found in the dictionary.
[0172]
In step S10, when data is input from the host computer 1102 to the data sequence analysis unit 1108 via the controller unit 1103, the data is set as a parent. Note that data input may occur at any time.
[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 string analysis unit 1108 sends the initial parent, child, and each byte to the dictionary creation / search unit 1109.
[0175]
In step S1001, when the initial parent, child, and each byte are obtained from the data string analysis unit 1108, the dictionary creation / search unit 1109 initializes a timer, and enables counting up by the rising edge of the clock. .
[0176]
In step S50, the dictionary creation / search unit 1109 starts searching the dictionary unit 1105 to check whether the parent and child exist in the dictionary.
[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 registration flag 1305 corresponding to the entry address are extracted.
[0179]
In step S80, it is determined whether the registration flag 1305 corresponding to the entry address is 0 or not. If the registration flag 1305 is 0, the process proceeds to step S90. If the registration flag 1305 is not 0, the process proceeds to step S100.
[0180]
In step S90, since the entry is not used, the parent and child information obtained from the data sequence analysis unit 1108 is registered in the dictionary 1303 and 1304, the current parent code 1303 is passed to the compression code generation unit 1110, and the current child is Keep as parents. Thereafter, the process proceeds to step S20, where the next data to be input is set as a child.
[0181]
In step S100, when the registration flag 1305 is not 0, for example, when the registration flag 1305 is 2, the parent-child information of the entry indicated by the entry address is extracted.
[0182]
In step S110, it is determined whether the extracted parent-child information matches the parent-child information obtained from data sequence analysis unit 1108. If the parent-child information matches, the process proceeds to step S1004. If the parent-child information does not match, the process proceeds to step S1002.
[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 recording unit 1107 becomes insufficient. Therefore, the search is forcibly stopped, the parent code when the parent-child relationship is recently matched is sent to the compressed code generation unit 1110, the child when the previous match is made the next parent, the current child is made the child, and The process proceeds to S1001. That is, in step S1001, the timer is initialized and started again.
[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 string analysis unit 1108, a new unique string is prepared, and the entry address is obtained again from the parent-child information by the predetermined function. And continue searching. Thereafter, the process proceeds to step S60.
[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 recording unit 1107. Since the amount of compressed data to be executed is insufficient and an underflow condition occurs, the search is forcibly stopped. The current parent code is output to the compressed code generation unit 1110, the current child is set as the next parent, and the process proceeds to step S20. When data is input, the search is restarted using the data as a child.
[0188]
By providing the above processing in the dictionary creation / search unit 1109, registration / searching can be performed when a unique column dictionary cannot be registered within a predetermined time specified externally or when a unique column cannot be searched. The processing is forcibly stopped, and the maximum-length unique string existing in the dictionary at that time can be replaced with the dictionary code and passed to the compression code generation unit 1110, thereby resulting in an increase in search time. An underflow state of the recording unit 1107 can be avoided.
[0189]
Note that the dictionary unit 1105 in the first to sixth embodiments may be a RAM, for example, an SRAM. The structure of the dictionary unit 1105 is not limited to the structures of the dictionary units 1105a and 1105b.
[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 data compression unit 1104 and output data generated by the data compression unit 1104.
FIG. 3 is a diagram showing one configuration of a dictionary unit.
FIG. 4 is a diagram showing processing of a dictionary creation / search unit 1109 in data compression processing.
FIG. 5 is a diagram showing another configuration of the dictionary unit 1105.
FIG. 6 is a diagram showing a memory space which is a part of another configuration of the dictionary unit 1105.
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 underflow prediction units 703 and 904 and inputs and outputs of compression ratio change units 705 and 906.
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 compression recording device 1101.
[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.
前記データ圧縮記録装置は、前記辞書が記憶される領域とフラグ情報が記憶される領域を有するRAMをさらに備え、
前記辞書が記憶される領域が、前記フラグ情報が記憶される領域と異なり、
前記辞書が記憶される領域には、アドレスに対応してエントリが格納され、
前記フラグ情報が記憶される領域には、前記アドレスに従い、前記辞書にエントリが登録されたか/未登録であるかを示すフラグ情報が、テーブル化して割り付けられている請求項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に記載のデータ圧縮記録装置。7. The data compression recording apparatus according to claim 6 , wherein the underflow prediction means generates a prediction signal according to externally input time information and a base compression ratio. 前記データ圧縮記録装置が、前記データ圧縮手段の前段に配置され、前記入力されるデータ列を蓄積するバッファメモリを備え、
前記アンダーフロー予測手段が、前記蓄積されたデータを前記データ圧縮手段に入力し、外部から指定入力される基底データ蓄積量に対する前記バッファメモリ内のデータ蓄積量の倍率を前記圧縮率変更手段に出力する、請求項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またはに記載のデータ圧縮記録装置。
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.
JP01770199A 1999-01-26 1999-01-26 Data compression recorder Expired - Fee Related JP3578445B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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