(57)【要約】【課題】内部メモリを最大限有効に使用することで展開速度を向上させたデータ展開装置及びデータ展開方法を提供すること。【解決手段】データ展開装置１０は、以前の展開結果を辞書とし以前と同一データを出力する際は当該辞書を参照してデータを伸張するＬＺ７７展開部３と、ＬＺ７７展開部３の展開結果と直前に出力した画像データとで算術演算を行ない画像データを出力するＰＮＧ逆フィルタ４と、ＬＺ７７展開部３が参照する以前の展開結果を格納する内部辞書領域及びＰＮＧ逆フィルタ４が使用する直前に出力した画像データを格納するラインデータ領域を有する共有メモリ２とを有する。共有メモリ２は、入力データを解析した解析結果に基づき内部辞書領域及びラインデータ領域の容量が設定される。【選択図】図１
2008278258.tif 000002
【特許請求の範囲】
【請求項１】
以前の展開結果を辞書とし以前と同一データを出力する際は当該辞書を参照してデータを伸張する展開部と、
前記展開部の展開結果と直前に出力した画像データとで算術演算を行ない画像データを出力する演算部と、
前記展開部が参照する以前の展開結果を格納する内部辞書領域及び前記演算部が使用する直前に出力した画像データを格納するラインデータ領域を有する共有メモリとを有し、
前記共有メモリは、入力データを解析した解析結果に基づき前記内部辞書領域及び前記ラインデータ領域の容量が設定されるデータ展開装置。
【請求項２】
前記共有メモリは、画像データごとに前記内部辞書領域及びラインデータ領域の容量が設定される
ことを特徴とする請求項１記載のデータ展開装置。
【請求項３】
前記展開部はハフマン復号結果を展開し、
前記共有メモリは、ＰＮＧ方式で圧縮されたＰＮＧデータを解析した解析結果に基づき前記内部辞書領域及び前記ラインデータ領域の容量が設定される
ことを特徴とする請求項１又は２記載のデータ展開装置。
【請求項４】
ＰＮＧデータをハフマン復号するハフマン復号部を有し、
前記展開部は、前記ハフマン復号部の復号結果をＬＺ７７展開するＬＺ７７展開部でありる
ことを特徴とする請求項１乃至３のいずれか１項記載のデータ展開装置。
【請求項５】
前記演算部は、前記ＬＺ７７展開結果と前記共有メモリに保存されている直前に出力した１ライン分の画像データとをＰＮＧ逆フィルタ処理するＰＮＧ逆フィルタ処理部である
ことを特徴とする請求項４記載のデータ展開装置。
【請求項６】
前記内部辞書領域と共に、前記ＬＺ７７展開部の展開結果が格納される外部辞書領域を有する外部メモリと接続され、
前記ＬＸ７７展開部は、必要に応じて外部辞書領域を参照する
ことを特徴とする請求項４又は５記載のデータ展開装置。
【請求項７】
前記ＬＺ７７展開部は、前記ＬＺ７７展開部の展開結果を前記内部辞書領域に書き込み、
前記ＰＮＧ逆フィルタは、前記内部辞書領域にアクセスして前記展開結果を読み出す
ことを特徴とする請求項４乃至６のいずれか１項記載のデータ展開装置。
【請求項８】
入力データを解析し、共有メモリにおける内部辞書領域及びラインデータ領域を設定し、
前記共有メモリの前記内部辞書領域に格納された以前の展開結果を辞書とし以前と同一データを出力する際は当該内部辞書領域に格納されている内部辞書を参照して入力データを展開し、
この展開結果と、前記共有メモリの前記ラインデータ領域に格納された直前に出力した画像データとで算術演算を行ない画像データを出力するデータ展開方法。
【請求項９】
画像データごとに前記内部辞書領域及びラインデータ領域の容量が設定される
ことを特徴とする請求項８記載のデータ展開方法。
【請求項１０】
ＰＮＧデータをハフマン復号し、
前記ハフマン復号結果を前記内部辞書領域に保存されている前記内部辞書を参照してＬＺ７７展開し、
ＬＺ７７展開結果と前記ラインデータ領域に保存されている前記直前に出力した１ライン分の画像データとをＰＮＧ逆フィルタ処理して前記画像データを出力する
ことを特徴とする請求項８又は９記載のデータ展開方法。
【請求項１１】
必要に応じて、前記内部辞書領域と共に、前記ＬＺ７７展開結果が格納される外部辞書領域を有する外部メモリにアクセスし、当該外部辞書領域に格納された外部辞書を参照してＬＺ７７展開する
ことを特徴とする請求項１０記載のデータ展開方法。
【請求項１２】
前記ＬＺ７７の展開結果を前記内部辞書領域に書き込み、
前記内部辞書領域にアクセスして前記展開結果を読み出しＰＮＧ逆フィルタ処理する
ことを特徴とする請求項１０又は１１記載のデータ展開方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ｗｅｂ、ＨＤ  ＤＶＤ、Ｂｌｕ−ｒａｙディスクなどの光ディスク再生装置で用いられる、ＰＮＧ方式にて圧縮された画像データを展開するためのデータ展開装置及びデータ展開方法に関する。
【背景技術】
【０００２】
近年、新たな画像データのフォーマットとしてＰＮＧ（Portable Network Graphics）フォーマットが知られるようになった。このフォーマットは、ｗｅｂ、次世代ＤＶＤなどに広く用いられている。ＰＮＧデータの展開は、ハフマン（Huffman）復号、ＬＺ７７展開、ＰＮＧ逆フィルタ演算の各処理を行うことで実現される（例えば特許文献１参照）。
【０００３】
図１２は、従来のＬＺ７７展開装置を示す図である。ＬＺ７７展開装置７００は、ＬＺ７７展開部７０１、ＤＭＡ７０２、内部辞書メモリ７０３、及びＤＭＡ７０４を有する。ＬＺ７７展開部７０１は、ハフマン復号結果が入力される。ＬＺ７７展開部７０１は、以前の復号結果をメモリに辞書として蓄え、以前と同一のデータを出力する際はその辞書を参照することで、データを伸長する。これより、ＬＺ７７展開装置は、辞書に相当するメモリを備える必要がある。
【０００４】
加えて、辞書の容量は最大３２ＫＢであり、たとえばＬＳＩなどの用途では、辞書用メモリをすべてＬＳＩに内蔵することはコストの面で現実的ではない。そこで、図１２に示すように、辞書メモリの一部をＬＳＩ内部辞書メモリ７０３に、残りを外部メモリ７１０の外部辞書領域７１１に格納する手法が考えられる。こうすることで、性能劣化をできるだけ少なくした上でＬＳＩのコストを抑制することができる。
【０００５】
ＤＭＡ７０２は、ＬＺ７７展開部７０１が外部辞書を参照する際にデータを読み出す。ＤＭＡ７０４は、内部辞書メモリ７０３に書き込まれた内容の一部又は全部を外部辞書領域７１１に書き込む（フラッシュ）する。
【０００６】
図１３は、従来のＰＮＧ逆フィルタ演算装置を示す図である。ＰＮＧ逆フィルタ演算装置８００は、ＰＮＧ逆フィルタ８０１、ラインメモリ８０２及びＤＭＡ８０３を有する。ＰＮＧ逆フィルタ８０１は、直前に出力した１ライン分の画像データと、ＬＺ７７展開結果との間で算術演算を行う。これより、ＰＮＧ逆フィルタ演算装置８００は、直前に出力した１ライン分のデータを蓄えておくラインメモリ８０２を備える必要がある。ＬＳＩなどの用途では、コスト抑制の観点から、直前に出力した１ライン分のデータは外部メモリ８１０上に置くことも考えられるが、処理性能の観点からは、図１３に示すように、できるだけＬＳＩの内蔵メモリとすることが望ましい。なお、ＰＮＧ逆フィルタ演算処理結果は画像データとして外部メモリ８１０の画像データ出力領域８１１に格納される。
【０００７】
このような背景に基づき、特に高い処理性能を求める場合は、ＰＮＧ展開装置は、ＬＺ７７用辞書メモリの一部（以下、内部辞書という。）と、ＰＮＧ逆フィルタ演算用ラインメモリ（以下、ラインメモリという。）を備えることが処理性能向上の観点から大きな意義がある。
【０００８】
図１４は、従来のＰＮＧデータ展開装置を示す図である。ＰＮＧデータ展開装置９００は、ＬＺ７７展開部９０１、ＤＭＡ９０２、内部辞書メモリ９０３、ＤＭＡ９０４、逆ＰＮＧフィルタ９０５、ＤＭＡ９０６、及びラインメモリ９０７を有する。このＰＮＧデータ展開装置９００は、外部辞書領域９１１及び画像データ出力領域９１２を有する外部メモリ９１０に接続されている。上述したように、ＰＮＧデータ展開装置９００は、ＬＺ７７展開結果を辞書として格納する内部辞書メモリ９０３、及び直前に出力した画像データを格納するラインンメモリ９０７を有している。内部辞書メモリ９０３に保存できないデータは、ＤＭＡ９０４により外部辞書領域９１１に書き込まれる。ＬＺ７７展開部９０１は、外部辞書領域９１１又は内部辞書メモリ９０３にアクセスして以前の展開結果を参照する。ＰＮＧ逆フィルタ９０５は、ラインメモリ９０７から直前に出力した画像データを読み出し、当該データとＬＺ７７展開部９０１の展開結果とを逆ＰＮＧフィルタ処理して画像データを生成する。
【特許文献１】特開２００３−９２６８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＰＮＧデータ展開装置に、内部辞書としてＬＺ７７辞書用メモリの一部と、ＰＮＧ逆フィルタ演算用ラインメモリを備える場合、いくつかの問題点がある。第１に、ＰＮＧ逆フィルタ演算用メモリに未使用領域が生じることである。この問題が発生する原因は、扱う画像毎に１ライン分のデータ量が可変であるにもかかわらず、メモリ容量は一定のためである。
【００１０】
第２に、処理性能が遅いことである。この問題が発生する原因は、ＬＺ７７辞書用メモリの一部分のみを内部辞書として備えるため、辞書参照時に内部辞書にヒットしない場合、外部メモリへのアクセスが生じるためである。
【課題を解決するための手段】
【００１１】
本発明に係るデータ展開装置は、以前の展開結果を辞書とし以前と同一データを出力する際は当該辞書を参照してデータを伸張する展開部と、前記展開部の展開結果と直前に出力した画像データとで算術演算を行ない画像データを出力する演算部と、前記展開部が参照する以前の展開結果を格納する内部辞書領域及び前記演算部が使用する直前に出力した画像データを格納するラインデータ領域を有する共有メモリとを有し、前記共有メモリは、入力データを解析した解析結果に基づき前記内部辞書領域及び前記ラインデータ領域の容量が設定されるものである。
【００１２】
本発明にかかるデータ展開方法は、入力データを解析し、共有メモリにおける内部辞書領域及びラインデータ領域を設定し、前記共有メモリの前記内部辞書領域に格納された以前の展開結果を辞書とし以前と同一データを出力する際は当該内部辞書領域に格納されている内部辞書を参照して入力データを展開し、この展開結果と、前記共有メモリの前記ラインデータ領域に格納された直前に出力した画像データとで算術演算を行ない画像データを出力するものである。
【００１３】
本発明においては、入力データを解析し、共有メモリにおける内部辞書領域及びラインデータ領域を設定するため、入力データに応じて異なる大きさのラインデータを格納する領域として適切な容量を割り当てることができ、共有メモリに未使用領域は発生するのを防止し、内部辞書領域を最大限大きな容量とすることができる。
【発明の効果】
【００１４】
本発明によれば、内部メモリを最大限有効に使用することで展開速度を向上させたデータ展開装置及びデータ展開方法を提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、ＰＮＧ方式で圧縮されたＰＮＧデータを伸張するデータ展開装置に適用したものである。本実施の形態においては、ラインメモリのうち未使用領域を内部辞書として用いることで、可能な限り内部辞書の容量を大きくすることにより、展開速度を向上させるものである。
【００１６】
図１は、本発明の実施の形態にかかるＰＮＧデータ展開装置を示すブロック図である。ＰＮＧデータ展開装置１０は、内部メモリ２、ＬＺ７７展開部３、ＰＮＧ逆フィルタ４、及びＤＭＡ５、６、７を有する。
【００１７】
ＬＺ７７展開部３は、以前の展開結果を辞書とし以前と同一データを出力する際はその辞書を参照してデータを伸張するもので、内部メモリ２に以前の展開結果を保存する。
【００１８】
ＰＮＧ逆フィルタ４は、ＬＺ７７展開部３の展開結果と、自身が直前に出力した１ライン分の画像データとで算術演算を行ない１ライン分の画像データを出力する。自身が直前に出力した１ライン分の画像データは、内部メモリ２のラインデータ領域に格納されている。
【００１９】
内部メモリ２は、内部辞書領域及びラインデータ領域を有する。ＬＺ７７展開部３は、内部メモリ２を辞書の用途で使用する。ＰＮＧ逆フィルタ４は、内部メモリ２をラインメモリの用途で使用する。ＬＺ７７展開部３、ＰＮＧ逆フィルタ４が内部メモリ２を使用する領域の容量、すなわち、使用開始位置及びそのサイズは画像ごとに、ＰＮＧデータ展開装置１０に接続された制御装置１により設定される。
【００２０】
ＤＭＡ５は、外部メモリのデータを内部メモリ２へ読み込むための装置である。ＬＺ７７展開部３が外部辞書のデータを参照する際に使用する。ＤＭＡ５は、ＬＺ７７展開部３又は制御装置１により制御される。
【００２１】
ＤＭＡ６、ＤＭＡ７は、内部メモリ２に保存されているデータを外部メモリへ書き出すためのＤＭＡである。ＤＭＡ６は、内部メモリ２又は制御装置１により制御される。ＤＭＡ７は、ＰＮＧ逆フィルタ４又は制御装置１により制御される。ＤＭＡ６は、内部辞書領域があふれないように、適宜内部辞書領域の内容を外部メモリの外部辞書領域へ書き出す（フラッシュする）。ＤＭＡ７は、ＰＮＧ逆フィルタ４により生成された画像データを、外部メモリの画像出力領域へ書き出す。
【００２２】
次に、ＰＮＧデータ展開装置の動作について説明する。図２は、制御装置の動作を示すフローチャート、図３は、ＬＸ７７展開部の動作を示すフローチャート、図４は、ＰＮＧ逆フィルタの動作を示すフローチャートである。先ず、制御装置１の動作について説明する。図２に示すように、制御装置１は、ＰＮＧデータ展開装置の動作開始に先立ち、ＰＮＧデータを解析し、１ラインのデータ量を算出する。制御装置１は、この１ラインのデータ量に必要十分なメモリ領域を、ＰＮＧ逆フィルタ４に対し設定する（ステップＳ１）。内部メモリ２の当該メモリ領域は、ラインメモリとしてＰＮＧ逆フィルタ４が使用する。また、内部メモリ２の総容量から１ラインのデータ量を引いた残りのメモリ領域を、ＬＸ７７展開部３に対し設定する。内部メモリ２の当該メモリ領域は、内部辞書としてＬＺ７７展開部３が使用する。
【００２３】
次に、内部辞書の外部メモリへの書き出し（フラッシュ）が必要か否かを判断し（ステップＳ３）、必要でない場合は、ＬＺ７７展開部３及びＰＮＧ逆フィルタを起動する。一方、内部辞書のグラッシュが必要の場合は、外部メモリの外部辞書領域に内部辞書領域のデータを書き出す（ステップＳ７）。そして、ＬＺ７７展開部３に対し、外部メモリの外部辞書領域に書き出した容量を設定する（ステップＳ８）。その後、ＬＺ７７展開部３及びＰＮＧ逆フィルタ４の起動を行なう。そして、１ライン処理完了したら（ステップＳ５）、次のラインの処理を行い、全ライン処理が終わるまでステップＳ３からの処理を繰り返す。
【００２４】
次に、ＬＺ７７展開部３の動作について説明する。ＬＺ７７展開部３は、動作開始すると（ステップＳ１１）、辞書参照中か否かを判断し（ステップＳ１２）、参照中でない場合は、ハフマン復号結果を受け取る。そして、ＬＺ７７展開するために辞書参照が必要か否かを判断する（ステップＳ１４）。辞書参照が必要である場合、内部辞書に目的のデータがあるか否かを判断する（ステップＳ１８）。内部辞書に目的のデータがある場合は、内部辞書領域から１バイトを読み出す（ステップＳ２０）。一方、目的のデータが外部メモリの外部辞書領域にある場合は、ＤＭＡ５を介して外部メモリにアクセスし、外部辞書領域から１バイトを読み出す（ステップＳ１９）。そして。内部辞書の参照結果に基づきＬＺ７７展開を行なうと、その展開結果（１バイト）を内部メモリ２の内部辞書領域に書き込む（ステップＳ１５）。同時に、ＰＮＧ逆フィルタ４にも１バイト出力する（ステップＳ１６）。こうして１ラインの処理が終了するまで、ステップＳ１２からの処理を繰り返す。
【００２５】
内部メモリ２の内部辞書の領域は、ＬＸ７７展開を繰り返していくとそのうち一杯になってあふれてしまう。そこでこれを防止するため、制御装置１又は内部メモリ２の制御のもと、適宜内部メモリ２の内部辞書の内容の全部又は一部を、ＤＭＡ６を通じて外部メモリの外部辞書領域へ書き出す（フラッシュする）。この結果、外部辞書領域へ書き出しが完了した内部辞書の領域は上書きが可能となる。これにより、ＬＺ７７展開部３は再びこの領域を新たな内部辞書領域として使用することができる。
【００２６】
次に、ＰＮＧ逆フィルタ４の動作について説明する。ＰＮＧ逆フィルタ４は、動作開始する（ステップＳ２１）と、現在の入力データが第１のラインか否か判断し（ステップＳ２２）、第１のラインでない場合は、直前のラインデータが格納されている内部メモリ２のラインデータ領域にアクセスする。そして、１バイトを読み出す（ステップＳ２３）。同時に、ＬＺ７７展開部３より展開結果を１バイト受け取る。なお、第１のラインの場合は、内部メモリ２にはデータが格納されていないため、ＬＺ７７展開部３より展開結果を受け取る。
【００２７】
そして、これらのデータに基づきＰＮＧ逆フィルタ演算を行なって現在のラインデータを算出する（ステップＳ２５）。演算結果（１バイト）は、内部メモリ２のラインデータ領域へ出力する（ステップＳ２６）と共に、ＤＭＡ７を介して外部メモリの画像出力領域に１バイト書き込む（ステップＳ２７）。そして、１ラインが終了するまでステップＳ２２からの処理を繰り返す。
【００２８】
ここで、１ラインのデータ量は、展開するＰＮＧ画像データ毎に異なる。そのため、制御装置１による内部メモリ２の領域振り分けは、ＰＮＧ画像データごとに行う。
【００２９】
本実施の形態においては、次の２つの効果を奏する。先ず、第１の効果は、展開する画像によらず、メモリ空間の未使用領域を発生させないことである。この理由は、ＬＺ７７展開部３、ＰＮＧ逆フィルタ４共に、使用するメモリ領域の先頭位置とサイズを可変とすること、及び両メモリ空間を共有のメモリである内部メモリ２上に有することにより、ラインデータを格納する領域は、画像データごとに１ライン分のデータ量に設定することができ、残りをすべての領域を内部辞書領域として割り振ることができるためである。
【００３０】
第２の効果としては、ＰＮＧデータ展開性能を向上させることができることである。この理由は、ＬＺ７７展開時に内部辞書を参照する確率が増大し、外部辞書参照時のメモリレーテンシによる性能低下を抑制できるためである。具体的には、１ラインのデータ量が小さい画像を扱う際は、ラインデータ領域に割り当てる領域は小さくて済み、結果として内部辞書領域を大きくとることができ、これにより内部辞書を参照する確率が増大する。また、一般に、外部メモリにある辞書を参照する際は、装置と外部メモリとの間にメモリバスなどが介在するためデータ転送時に相応のレーテンシがかかり、内部辞書の参照に対して性能が劣化するためである。
【００３１】
次に、本実施の形態の具体例について説明する。図５は、本実施の形態の具体例にかかるＰＮＧデータ展開装置１００を示す図である。ＰＭＧデータ展開装置１００は、制御装置２００及び外部メモリ３００と接続されている。
【００３２】
ＰＮＧデータ展開装置１００は、ＰＮＧ元データを読み出し、ハフマン復号を行うハフマン復号部１０１、内部メモリ１０２、ＬＺ７７展開部１０３、ＰＮＧ逆フィルタ１０４及びＤＭＡ１０５〜１０７を有する。ＤＭＡ１０５は、外部メモリ３００の外部辞書領域３０１から辞書を読み出すための装置であり、ＤＭＡ１０６は、内部辞書を、外部辞書領域３０１へフラッシュするための装置であり、ＤＡＭ１０７は、ＰＮＧ逆フィルタ１０４が生成した画像データを、画像データ出力領域３０２へ書き出すための装置である。内部メモリ１０２のメモリ容量は、例えば１６ＫＢである。
【００３３】
次に、本具体例にかかるＰＮＧデータ展開装置の動作について説明する。図６乃至９は、ＰＮＧデータ展開装置がデータ展開中の内部メモリの様子を示す図である。本具体例においては、１ラインのデータ量が４ＫＢの画像を展開する場合を考える。制御装置２００は、展開しようとしているＰＮＧ画像を解析し、１ラインの容量が４ＫＢであることがわかる。これは、実際にＰＮＧデータの展開をせずとも、ＰＮＧ規格に従ったごく簡単な解析で求めることができる。
【００３４】
次に、制御装置２００は、ＰＮＧ逆フィルタ１０４に対し、ラインデータ領域として開始位置０、容量４ＫＢのメモリ領域を使うように指示する。また、ＬＺ７７展開部１０３に対し、内部辞書として開始位置４ＫＢ、容量１２ＫＢのメモリ領域を使うように指示する。
【００３５】
制御装置２００は、第１のラインを展開するため、ハフマン復号部１０１、ＬＺ７７展開部１０３及びＰＮＧ逆フィルタ１０４の動作を開始させる。ハフマン復号部１０１は、ＰＮＧ元データを読み出し、ハフマン復号結果をＬＸ７７展開部１０３へ出力する。ＬＸ７７展開部１０３は、ハフマン復号結果を受け取り、これをＬＺ７７展開し、結果を内部メモリ１０２の内部辞書領域へ書き出す。ＬＺ７７展開の際、辞書を引く必要が生じた場合、内部辞書領域より適宜辞書内容を読み出し、展開動作を進める。ＰＮＧ逆フィルタ１０４は、第１のラインのＰＮＧ逆フィルタ演算を行うため、ＬＸ７７展開部１０３より第１のラインのＬＺ７７展開結果を入力し、ＰＮＧ逆フィルタ演算を行う。
【００３６】
演算結果は、ＤＭＡ１０７経由で外部メモリ３００の画像データ出力領域３０２へ書き出す。また、同じデータを、内部メモリ１０２のラインデータ領域へ書き出す。
【００３７】
ＬＸ７７展開部１０３、ＰＮＧ逆フィルタ１０４が第１のラインのＰＮＧ逆フィルタ演算を行った後、内部メモリ１０２は図６のようになる。ラインデータ領域には、画像データの第１のラインと等しい、４ＫＢのデータ（第１のラインＰＮＧ逆フィルタ演算結果）が書き込まれている。内部辞書領域には４Ｋ＋１Ｂのデータ（第１のラインＬＺ７７展開結果）が書き込まれている。内部辞書領域に存在するデータ容量は、ＰＮＧ規格より、１ライン分のデータ量＋１バイトとなる。また、外部メモリ３００の画像データ出力領域には、画像データ（第１のラインＰＮＧ逆フィルタ演算結果）の第１ラインとして４ＫＢのデータが書き込まれる。
【００３８】
続いて、第２のラインを展開するため、制御装置２００はハフマン復号部１０１とＬＸ７７展開部１０３、ＰＮＧ逆フィルタ１０４の動作を開始させる。ＬＸ７７展開部１０３は、ＬＺ７７展開結果を内部メモリ１０２の内部辞書へ書き込む際、第１のラインを処理した結果の続きから書き込む。これは、直前３２ＫＢの領域が辞書として参照される可能性があるため、第１のラインを処理した結果を残しておく必要があるためである。また、第１のライン同様、辞書を引く必要が生じた場合、内部辞書より適宜辞書内容を読み出し、展開動作を進める。
【００３９】
ＰＮＧ逆フィルタ１０４は、第２のラインのＰＮＧ逆フィルタ演算を行うため、ＬＸ７７展開部１０３より第２のラインのＬＺ７７展開結果を受け取り、さらに、内部メモリ１０２のラインデータ領域より、第１のラインのデータを読み出す。これら２つのデータよりＰＮＧ逆フィルタ演算を行う。
【００４０】
演算結果は、ＤＭＡ１０７経由で外部メモリ３００の画像出力領域へ書き出す。また、同じデータを、内部メモリ１０２のラインデータ領域へ書き出す。このとき、内部メモリ１０２のラインデータ領域への書き込みは、すでにある第１ラインのデータへ上書きしてもかまわない。なぜなら、上書きされるデータは、すでにＰＮＧ逆フィルタ１０４により読み出され、ＰＮＧ逆フィルタ処理に用いられた後のデータだからである。
【００４１】
ＬＸ７７展開部１０３、ＰＮＧ逆フィルタ１０４が第２のラインのＰＮＧ逆フィルタ演算を行った後、内部メモリ１０２の内容は図７のようになる。ラインデータ領域には、画像の第２のラインと等しい４ＫＢのデータ（第２のラインＰＮＧ逆フィルタ演算結果）が書き込まれている。内部辞書領域には８Ｋ＋２Ｂのデータ（第１のラインＬＺ７７展開結果、第２のラインＬＺ７７展開結果）が書き込まれている。また、外部メモリ３００の画像データ出力領域３０２には、画像の第１のラインとして４ＫＢのデータ（第１のラインＰＮＧ逆フィルタ演算結果）が、第２のラインとして４ＫＢのデータ（第２のラインＰＮＧ逆フィルタ演算結果）が書き込まれる。
【００４２】
続いて、第３のラインを展開するが、内部メモリ１０２の内部辞書領域には、第３のラインを展開するための十分なスペースがない。具体的には、第３のラインを展開するには内部辞書領域に４Ｋ＋１Ｂの空領域が必要だが、内部辞書領域には４Ｋ−２Ｂの空き領域しかない。このため、制御装置２００は、内部辞書の一部を外部メモリ３００の外部辞書領域３０１へフラッシュする。本具体例においては、ここでは内部辞書領域のデータのうちもっとも前に書き込まれた５１２バイトをフラッシュする。フラッシュ動作完了後の内部メモリは図８のようになる。
【００４３】
この結果、ＬＺ７７の辞書は外部メモリ３００の外部辞書領域３０１と内部メモリ１０２の内部辞書領域に分割して置かれる。したがって、これ以降、ＬＸ７７展開部１０３は、ＬＺ７７展開時に辞書を参照する場合、所望のデータが内部辞書領域にあるか、外部辞書領域にあるかを判定し、読み出す辞書を選択する。内部辞書を参照する場合は第２のラインまでの処理と同様だが、外部辞書を参照する場合はＤＭＡ１０５を介して外部メモリ３００の外部辞書領域３０１からデータを読み出す。
【００４４】
内部辞書のフラッシュ動作後、第３のラインを展開するため、制御装置２００は、ハフマン復号部１０１とＬＸ７７展開部１０３、ＰＮＧ逆フィルタ１０４の動作を開始させる。ＬＸ７７展開部１０３は、ＬＺ７７展開結果を内部メモリ１０２の内部辞書領域へ書き込む際、第２のラインを処理した結果の続きから書き込む。内部辞書下端まで書き込み終わると、ＬＸ７７展開部１０３は、内部メモリ１０２の内部辞書領域をリングバッファの要領で、上端より書き込みを継続する。内部辞書上端の領域は、外部メモリ３００の外部辞書領域へフラッシュ済みなので上書きして構わない。また、辞書を引く必要が生じた場合、前述の通り、外部辞書領域３０１、又は内部辞書領域より適宜辞書内容を読み出し、展開動作を進める。
【００４５】
ＰＮＧ逆フィルタ１０４は、第２のラインに対する動作同様、第３のラインのＰＮＧ逆フィルタ演算を行うため、ＬＸ７７展開部１０３より第３のラインのＬＺ７７展開結果を受け取り、さらに、内部メモリ１０２のラインデータ領域より、第２のラインのデータを読み出す。これら２つのデータよりＰＮＧ逆フィルタ演算を行う。
【００４６】
演算結果は、第２のラインに対する動作同様、ＤＭＡ１０７経由で外部メモリ３００の画像データ出力領域３０２へ書き出す。また、同じデータを、内部メモリ１０２のラインデータ領域へ書き出す。このとき、内部メモリ１０２のラインデータ領域への書き込みは、すでにある第２のラインのデータへ上書きしてもかまわない。なぜなら、上書きされるデータは、すでにＰＮＧ逆フィルタ１０４により読み出され、ＰＮＧ逆フィルタ処理に用いられた後のデータだからである。
【００４７】
ＬＸ７７展開部１０３、ＰＮＧ逆フィルタ１０４が第３のラインのＰＮＧ逆フィルタ演算を行った後の内部メモリ１０２は、図９のようになる。ラインデータ領域には、画像の第３のラインと等しい４ＫＢのデータ（第３のラインＰＮＧ逆フィルタ演算結果）が書き込まれている。内部辞書領域には１２Ｋ＋３−５１２Ｂのデータ（第１のラインＬＺ７７展開結果の一部、第２のラインＬＺ７７展開結果、第３のラインＬＺ７７展開結果）が存在する。ここで、５１２Ｂは、第３のライン展開開始前に外部辞書領域３０１へフラッシュされた容量である。また、外部メモリ３００の画像データ出力領域３０２には、画像の第１のラインとして４ＫＢのデータ（第１のラインＰＮＧ逆フィルタ演算結果）が、第２のラインとして４ＫＢのデータ（第２のラインＰＮＧ逆フィルタ演算結果）が、第３のラインとして４ＫＢのデータ（第３のラインＰＮＧ逆フィルタ演算結果）が書き込まれる。また、外部メモリ３００の外部辞書領域３０１には、５１２Ｂのデータが書き込まれている。以降、ＰＮＧデータの全ラインを展開するまで処理を継続する。
【００４８】
本具体例においては、ＰＮＧデータ展開装置１００は、内部辞書領域及びラインデータ領域を有する内部メモリと、内部辞書領域の容量と開始位置を画像ごとに可変とできるようなＬＺ７７展開部１０３と、ラインデータ領域の容量と開始位置を画像ごとに可変とできるようなＰＮＧ逆フィルタ１０４とを有する。さらに、ＬＸ７７展開部１０３及びＰＮＧ逆フィルタ１０４に対し、内部辞書領域の開始位置及び容量、ラインデータ領域の開始位置及び容量を画像ごとに設定する制御装置２００に接続される。
【００４９】
このことにより、ＰＮＧデータ展開装置１００は、ＰＮＧデータ展開開始に先立ち、制御装置２００がＰＮＧデータを解析し、出力画像の１ラインのデータ量を算出する。制御装置２００は、この１ラインのデータ量を元に、過不足なく内部メモリ１０２をラインデータ領域の用途で使うよう、ＰＮＧ逆フィルタ１０４のラインデータ領域開始位置及び容量を設定する。さらに、制御装置２００は、内部メモリの総容量より、１ラインのデータ量を減算した分の容量のメモリ領域を内部辞書領域として用いるようＬＺ７７展開部１０３の内部辞書開始位置及び容量を設定する。その結果、内部メモリ１０２を未使用領域なく使用でき、内部辞書領域の容量を可能な限り大きく取ることができる。よって展開する画像によらず、メモリ空間の未使用領域を発生させないばかりでなく、ＰＮＧデータ展開性能を向上させることができる。
【００５０】
図１０は本実施の形態にかかる変形例を示す図である。本例は、１ラインのデータ量が２ＫＢの画像を展開するものである。制御装置２００は、展開しようとしているＰＮＧ画像を解析し、１ラインの容量が２ＫＢであることを認識する。次に、制御装置２００は、ＰＮＧ逆フィルタ１０４に対し、ラインデータ領域として開始位置０、容量２ＫＢのメモリ領域を使用するように指示する。また、ＬＸ７７展開部１０３に対し、内部辞書領域として開始位置２ＫＢ、容量１４ＫＢのメモリ領域を使用するように指示する。その他は、上述と同様に、ＰＮＧ画像の展開を行う。ラインデータ領域を４ＫＢにするのに比べ内部辞書領域を大きく確保することができ、ＬＺ７７展開の辞書参照時に内部辞書へのヒット率が高くなり、高速なＰＮＧ展開処理を期待することができる。
【００５１】
図１１は、本実施の形態にかかる他の変形例を示す図である。本変形例においては、ＰＮＧ逆フィルタ４０４への入力が、内部メモリ４０２からの読み出しで実現する。本例においては、ＬＸ７７展開部４０３が内部辞書領域へ書き出すデータとＰＮＧ逆フィルタ４０４へ出力するデータが、ともにＬＺ７７展開結果であり等しいことを利用する。すなわち、内部メモリ４０３の内部辞書領域が、ＬＸ７７展開部４０３とＰＮＧ逆フィルタ４０４の間の入出力バッファを兼ねる。つまり、ＬＸ７７展開部４０３からＰＮＧ逆フィルタ４０４へのＬＺ７７展開結果出力信号線が省略され、逆フィルタ４０４は内部メモリ４０２の内部辞書より適宜ＬＺ７７展開結果を読み出し、ＰＮＧ逆フィルタ演算を実行する。ＰＮＧ逆フィルタ４０４がＰＮＧ逆フィルタ演算を開始する際は、制御装置２００により、適切な内部メモリ４０２の読み出し開始位置及び容量、並びに動作開始タイミングが指示される。
【００５２】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【００５３】
【図１】本発明の実施の形態にかかるＰＮＧデータ展開装置を示すブロック図である。
【図２】本発明の実施の形態にかかるＰＮＧデータ展開装置における制御装置の動作を示すフローチャート、
【図３】本発明の実施の形態にかかるＰＮＧデータ展開装置におけるＬＸ７７展開部の動作を示すフローチャートである。
【図４】本発明の実施の形態にかかるＰＮＧデータ展開装置におけるＰＮＧ逆フィルタの動作を示すフローチャートである。
【図５】本発明の実施の形態の具体例にかかるＰＮＧデータ展開装置を示す図である。
【図６】ＰＮＧデータ展開装置がデータ展開中の内部メモリの様子を示す図である。
【図７】同じく、ＰＮＧデータ展開装置がデータ展開中の内部メモリの様子を示す図である。
【図８】同じく、ＰＮＧデータ展開装置がデータ展開中の内部メモリの様子を示す図である。
【図９】同じく、ＰＮＧデータ展開装置がデータ展開中の内部メモリの様子を示す図である。
【図１０】本発明の実施の形態にかかる変形例を示す図である。
【図１１】本発明の実施の形態にかかる他の変形例を示す図である。本
【図１２】従来のＬＺ７７展開装置を示す図である。
【図１３】従来のＰＮＧ逆フィルタ演算装置を示す図である。
【図１４】従来のＰＮＧデータ展開装置を示す図である。
【符号の説明】
【００５４】
１、２００  制御装置
２、１０２、４０３  内部メモリ
３、１０３  ＬＺ７７展開部
４、１０４、４０４  ＰＮＧ逆フィルタ
１０、１００  データ展開装置
１０１  ハフマン復号部
１０５〜１０７  ＤＭＡ
３００  外部メモリ
３０１  外部辞書領域
３０２  画像データ出力領域
【図１】
2008278258.tif 000003
【図２】
2008278258.tif 000004
【図３】
2008278258.tif 000005
【図４】
2008278258.tif 000006
【図５】
2008278258.tif 000007
【図６】
2008278258.tif 000008
【図７】
2008278258.tif 000009
【図８】
2008278258.tif 000010
【図９】
2008278258.tif 000011
【図１０】
2008278258.tif 000012
【図１１】
2008278258.tif 000013
【図１２】
2008278258.tif 000014
【図１３】
2008278258.tif 000015
【図１４】
2008278258.tif 000016