(57)【要約】【課題】  復号回路のラインメモリとして廉価なメモリを使用可能にする。【解決手段】  コマンド比較器102は、圧縮データをメモリアクセスが必要な第一のコマンドと、メモリアクセスが不要な第二のコマンドに分離して、キャッシュ104と105に送る。デコーダは、キャッシュ104に格納された第一のコマンドの伸長に必要な既に伸長済みのデータのメモリ読出を要求し、伸長済みのデータに基づき第一のコマンドを復号し、復号によって得た伸長データのメモリ書込を要求する。RAMアクセスコントローラ106は、RAMキャッシュ107およびラインメモリ108の読み書きを制御して、デコーダ109の要求に応じたメモリ読出およびメモリ書込を実行する。【選択図】  図1
2008193146.tif 000002
【特許請求の範囲】
【請求項１】
ロスレス圧縮符号化された圧縮データを伸長する復号回路であって、
コマンドテーブルを参照して、前記圧縮データをメモリアクセスが必要な第一のコマンドと、メモリアクセスが不要な第二のコマンドに分離する分離手段と、
前記第一のコマンドの伸長に必要な既に伸長済みのデータのメモリ読出を要求し、前記伸長済みのデータに基づき前記第一のコマンドを復号し、前記復号によって得られた伸長データのメモリ書込を要求する復号手段と、
キャッシュメモリおよびラインメモリの読み書きを制御して、前記復号手段の要求に応じたメモリ読出およびメモリ書込を実行するメモリ制御手段とを有することを特徴とする復号回路。
【請求項２】
前記復号手段は、前記第二のコマンドを復号し、前記復号によって得られた伸長データのメモリ書込を前記メモリ制御手段に要求することを特徴とする請求項1に記載された復号回路。
【請求項３】
前記メモリ制御手段は、前記復号手段のメモリ読出要求に対して、該当するデータが前記キャッシュメモリにある場合は前記キャッシュメモリから読み出したデータの少なくとも一部を前記復号手段に供給し、該当するデータが前記キャッシュメモリにない場合は前記ラインメモリから連続したアドレスのデータを読み出し、前記読み出したデータの少なくとも一部を前記復号手段に供給することを特徴とする請求項1に記載された復号回路。
【請求項４】
前記メモリ制御手段は、前記復号手段のメモリ読出要求に対して、該当するデータが前記キャッシュメモリにある場合は前記キャッシュメモリから読み出したデータの少なくとも一部を前記復号手段に供給し、該当するデータが前記キャッシュメモリにない場合は前記ラインメモリからバーストリードしたデータの少なくとも一部を前記復号手段に供給することを特徴とする請求項1に記載された復号回路。
【請求項５】
前記メモリ制御手段は、前記復号手段のメモリ書込要求に対して、前記復号手段から受信した伸長データを前記キャッシュメモリに保存し、前記キャッシュメモリに予め定められたサイズのデータが溜ると、前記予め定められたサイズのデータを前記ラインメモリの連続したアドレスに書き込むことを特徴とする請求項1または請求項2に記載された復号回路。
【請求項６】
前記メモリ制御手段は、前記復号手段のメモリ書込要求に対して、前記復号手段から受信した伸長データを前記キャッシュメモリに保存し、前記キャッシュメモリにバーストライトが可能なサイズのデータが溜ると、前記予め定められたサイズのデータを前記ラインメモリにバーストライトすることを特徴とする請求項1または請求項2に記載された復号回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロスレス圧縮符号化された圧縮データを伸長する復号回路に関する。
【背景技術】
【０００２】
復号回路は、ロスレス圧縮符号化されたデータを復号する際、圧縮データを各コマンドに分解した後、ラインメモリに格納されたデータ（既に伸長されたデータなど）を参照して復号作業を行う。
【０００３】
図1は復号回路の一例を示すブロック図である。
【０００４】
入力バッファ201は、復号回路外から入力した圧縮データを一時記憶する。入力バッファ201は、圧縮データに規定された最大符号長より大きなメモリサイズをもち、復号回路の後段の処理がスムーズに行われるようにする。
【０００５】
入力バッファ201に接続されたコマンド比較器202は、コマンドテーブル203を備える。コマンドテーブル203は、ROMなどで構成され、各コマンドの種類と属性、コマンド長など、圧縮データの伸長に必要な情報を記録する。
【０００６】
コマンド比較器202は、コマンドテーブル203からコマンドのパターンを読み出し、入力バッファ201から入力される圧縮データと、コマンドのパターンを比較する。そして、コマンド長を実際に復号したデータ長として入力バッファ201に通知するとともに、比較結果の、コマンドの種類と属性をデコーダ204に送信する。
【０００７】
入力バッファ201は、コマンド比較器202から通知されたデータ長分のデータを、復号されたデータとして破棄し、必要があれば新しいデータを外部に要求する。
【０００８】
デコーダ204は、ラインメモリ205を備える。ラインメモリ205は、RAMなどで構成され、圧縮データの伸長時にデータの読み書きが行われる一時記憶回路である。また、デコーダ204は、伸長したデータを一時的に蓄える出力バッファ206に接続する。
【０００９】
デコーダ204は、コマンドの種類と属性から、RAWデータの復号か、ラインメモリ205に対する読み出しが必要なコマンドの復号かを判断する。そして、RAWデータの復号の場合は、コマンドから分離したRAW成分を出力バッファ206に送信する。その際、ラインメモリ205に復号結果としてRAW成分を書き込む。
【００１０】
また、デコーダ204は、ラインメモリ205に対する読み出しが必要なコマンドの復号（圧縮データの伸長）の場合、ラインメモリ205から圧縮データの伸長に必要なデータを読み出して所定の処理を行い、伸長したデータを出力バッファ206に送信する。その際、伸長したデータをラインメモリ205に書き込む点は、RAWデータの復号の場合と同様である。
【００１１】
ラインメモリ205に対する読み出しが必要なコマンドの復号（圧縮データの伸長）の場合、ラインメモリ205に対するアクセスが発生するのは、コマンドがコマンド比較器202を経由してデコーダ204に入力されてからになる。その際、ラインメモリ205に対するアクセスは連続したものにはならず、離散的に行われる。SRAMは、このようなアクセスに対応できるため、通常、ラインメモリ205にはSRAMを用いる。しかし、SRAMは、SDRAMなど、他の方式のRAMに比較して高価であるという欠点がある。
【００１２】
【特許文献１】特開2001-274989号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明は、復号回路のラインメモリとして廉価なメモリを使用可能にすることを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１５】
本発明にかかる復号回路は、ロスレス圧縮符号化された圧縮データを伸長する復号回路であって、コマンドテーブル（コマンドテーブル103）を参照して、前記圧縮データをメモリアクセスが必要な第一のコマンドと、メモリアクセスが不要な第二のコマンドに分離する分離手段（コマンド比較器102）と、前記第一のコマンドの伸長に必要な既に伸長済みのデータのメモリ読出を要求し、前記伸長済みのデータに基づき前記第一のコマンドを復号し、前記復号によって得られた伸長データのメモリ書込を要求する復号手段（デコーダ109）と、キャッシュメモリ（RAMキャッシュ107）およびラインメモリ（ラインメモリ108）の読み書きを制御して、前記復号手段の要求に応じたメモリ読出およびメモリ書込を実行するメモリ制御手段（RAMアクセスコントローラ106）とを有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、復号回路のラインメモリとして廉価なメモリを使用可能にすることができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明にかかる実施例の復号回路を図面を参照して詳細に説明する。
【実施例１】
【００１８】
図2は実施例1の復号回路の構成例を示すブロック図である。
【００１９】
入力バッファ101は、復号回路の外部から入力したロスレス圧縮符号化されたデータである圧縮データを一時記憶する。入力バッファ101は、圧縮データに規定された最大符号長より大きなメモリサイズをもち、復号回路の後段の処理がスムーズに行われるようにする。
【００２０】
入力バッファ101に接続されたコマンド比較器102は、コマンドテーブル103を備える。コマンドテーブル103は、ROMなどで構成され、各コマンドの種類と属性、コマンド長など、圧縮データの伸長に必要な情報を記録する。また、コマンド比較器102は、RAMアクセスを伴うコマンド（以下、RAMアクセスコマンドと呼ぶ）用のキャッシュ104と、RAMアクセスを伴わないコマンド（以下、RAM非アクセスコマンドと呼ぶ）用のキャッシュ105を備える。
【００２１】
コマンド比較器102は、コマンドテーブル103からコマンドのパターンを読み出し、入力バッファ201から入力される圧縮データと、コマンドのパターンを比較する。そして、コマンド長を実際に復号したデータ長として入力バッファ101に通知するとともに、比較結果に基づき、RAMアクセスコマンドとRAM非アクセスコマンドに分離して、キャッシュ104と105に送る。
【００２２】
入力バッファ101は、コマンド比較器102から通知されたデータ長分のデータを、復号されたデータとして破棄し、必要があれば新しいデータを外部に要求する。
【００２３】
キャッシュ104は、ラインメモリ108のアクセスが必要なコマンドを所定数まとめて記憶する。キャッシュ104は、RAMアクセスコントローラ106に接続する。RAMアクセスコントローラ106は、RAMキャッシュ107とラインメモリ108を備える。
【００２４】
RAMアクセスコントローラ106は、キャッシュ104に蓄えられたRAMアクセスコマンドを読み込み、ラインメモリ108の実アドレスに関して連続したアクセスを抽出する。ラインメモリ108からデータを読み出す場合は、アドレスが連続した読出動作をバーストサイクルを用いて行い（バーストリード）、ラインメモリ108からデータを読み出す。そして、読み出したデータをRAMキャッシュ107に保存する。また、ラインメモリ108にデータを書き込む場合は、RAMキャッシュ107に保存したデータのサイズがバーストサイクルを用いた書き込み（バーストライト）が可能になるのを待つ。そして、RAMキャッシュ107にバーストライト可能なサイズのデータが溜ると、RAMキャッシュ107から連続するアドレスのデータを読み出して、アドレスが連続した書込動作（バーストライト）を行い、ラインメモリ108にデータを書き込む。
【００２５】
デコーダ109は、キャッシュ104、105、RAMアクセスコントローラ106に接続する。デコーダ109は、RAMアクセスコマンドを復号する場合は、RAMアクセスコントローラ106にアクセスして圧縮データの伸長を行う。
【００２６】
RAMアクセスコントローラ106は、デコーダ109のデータ読出要求に対して、RAMキャッシュ107に該当するデータがあればRAMキャッシュ107にアクセスする。また、RAMキャッシュ107に該当するデータがなければラインメモリ108にアクセスする。そして、該当するデータをRAMキャッシュ107またはラインメモリ108から読み出してデコーダ109に供給する。さらに、RAM アクセスコントローラ106は、デコーダ109の伸長データの書込要求に対して、伸長データをRAMキャッシュ107に書き込む。
【００２７】
また、デコーダ109は、RAM非アクセスコマンドを復号する場合は、キャッシュ105から読み込んだコマンドからRAW成分を分離する。その際、復号結果として分離したRAW成分の書き込みをRAMアクセスコントローラ106に要求する。この書込要求を受けたRAMアクセスコントローラ106の動作は、RAMアクセスコマンドの復号の場合と同様である。
【００２８】
デコーダ109は、伸長データまたは分離したRAW成分を出力バッファ110に書き込む。復号されたデータは、出力バッファ110を経由して復号回路の外部に出力される。
【００２９】
図4はRAMアクセスコントローラ106のメモリアクセス動作を示すフローチャートである。
【００３０】
RAMアクセスコントローラ106は、デコーダ109からRAMアクセス要求を受信すると(S401)、RAMキャッシュ107が現在保持するラインメモリ108の内容にヒットするか否かを判断する(S402)。そして、ヒットした場合はRAMキャッシュ107の該当するデータを読み出す(S403)。また、ヒットしなかった場合はラインメモリ108のバーストリードを実行し(S404)、バーストリードしたデータをRAMキャッシュ107に書き込む(S405)。
【００３１】
そして、RAMアクセスコントローラ106は、ステップ403またはS404で読み出したデータのうち、RAMアクセス要求に指定されているデータをデコーダ109に出力する(S406)。
【００３２】
このように、RAMアクセスコマンドをキャッシュに蓄え、RAMキャッシュを介して、ラインメモリに対する、アドレスが連続した読出動作と書込動作をバーストサイクルを用いて行う。従って、圧縮データの伸長に使用するラインメモリとして、高価なSRAMではなく、バーストアクセスが行える廉価なSDRAMなどを利用することができ、復号回路のコストを軽減することができる。
【実施例２】
【００３３】
以下、本発明にかかる実施例2の復号回路を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００３４】
図3は実施例2の復号回路の構成例を示すブロック図である。
【００３５】
コマンドキャッシュ304は、コマンド比較器102から出力される各コマンドの種類と属性、コマンド長などの伸長に必要な情報を時系列に一時記憶する。
【００３６】
デコーダ109は、コマンドキャッシュ304に蓄えられたコマンド列を読み出し、RAMアクセスコマンドについては、RAMアクセスコントローラ106にメモリアクセスを要求する。
【００３７】
RAMアクセスコントローラ106は、デコーダ109のデータ読出要求に対して、RAMキャッシュ107に該当するデータがあればRAMキャッシュ107にアクセスする。また、RAMキャッシュ107に該当するデータがなければラインメモリ108にアクセスする。そして、該当するデータをRAMキャッシュ107またはラインメモリ108から読み出してデコーダ109に供給する。さらに、RAM アクセスコントローラ106は、デコーダ109の伸長データの書込要求に対して、伸長データをRAMキャッシュ107に書き込む。
【００３８】
また、デコーダ109は、RAM非アクセスコマンドを復号する場合は、コマンドキャッシュ304から読み込んだコマンドからRAW成分を分離する。その際、復号結果として分離したRAW成分の書き込みをRAMアクセスコントローラ106に要求する。この書込要求を受けたRAMアクセスコントローラ106の動作は、RAMアクセスコマンドの復号の場合と同様である。
【００３９】
実施例1と同様に、RAM アクセスコントローラ106は、RAMキャッシュ107とラインメモリ108の間でバーストサイクルを用いてデータの読み書きを行う。
【００４０】
このように、RAMキャッシュを介して、ラインメモリに対する、アドレスが連続した読出動作と書込動作をバーストサイクルを用いて行う。従って、圧縮データの伸長に使用するラインメモリとして、高価なSRAMではなく、バーストアクセスが行える廉価なSDRAMなどを利用することができ、復号回路のコストを軽減することができる。
【００４１】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【００４２】
また、本発明の目的は、上記実施例の機能を実現するコンピュータプログラムを記録した記憶媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記コンピュータプログラムを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのコンピュータプログラムを記憶した記憶媒体は本発明を構成する。
【００４３】
また、前記コンピュータプログラムの実行により上記機能が実現されるだけではない。つまり、そのコンピュータプログラムの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００４４】
また、前記コンピュータプログラムがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれていてもよい。つまり、そのコンピュータプログラムの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【００４５】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムが格納される。
【図面の簡単な説明】
【００４６】
【図１】復号回路の一例を示すブロック図、
【図２】実施例1の復号回路の構成例を示すブロック図、
【図３】実施例2の復号回路の構成例を示すブロック図、
【図４】RAMアクセスコントローラのメモリアクセス動作を示すフローチャートである。
【図１】
2008193146.tif 000003
【図２】
2008193146.tif 000004
【図３】
2008193146.tif 000005
【図４】
2008193146.tif 000006