(57)【要約】【課題】データの劣化と引き換えに高スループットを確保してデータ処理システム全体の処理性能を保ったり、デッドラインサイクル数を超過しないようにできるデータ圧縮伸長装置を提供する。【解決手段】データ処理モジュール２から入力された書き込みデータを圧縮して外部メモリ４へ格納するとともに、外部メモリ４から読み出した圧縮データを伸長してデータ処理モジュール２へ出力するデータ圧縮伸長装置１であって、圧縮率が同じでスループットが異なる圧縮アルゴリズムを実装した第１及び第２の圧縮器１１、１２と、各々の圧縮器の圧縮アルゴリズムに対応する伸長アルゴリズムをそれぞれ実装した第１及び第２の伸長器２１、２２と、データ処理モジュール２におけるデータ処理の進捗状況に応じて、書き込みデータの圧縮に用いる圧縮器及び圧縮データの伸長に用いる伸長器を切り替えるアルゴリズム選択回路３０とを有する。【選択図】図１
2011049764.tif 000002
【特許請求の範囲】
【請求項１】
データ処理モジュールから入力された書き込みデータを圧縮して外部メモリへ格納するとともに、前記外部メモリから読み出した圧縮データを伸長して前記データ処理モジュールへ出力するデータ圧縮伸長装置であって、
圧縮率が同じでスループットが異なる圧縮アルゴリズムを実装した複数の圧縮モジュールと、
前記圧縮モジュールの各々の前記圧縮アルゴリズムに対応する伸長アルゴリズムをそれぞれ実装した複数の伸長モジュールと、
前記データ処理モジュールにおけるデータ処理の進捗状況に応じて、前記書き込みデータの圧縮に用いる圧縮モジュール及び前記圧縮データの伸長に用いる伸長モジュールを切り替えるアルゴリズム切替手段とを有することを特徴とするデータ圧縮伸長装置。
【請求項２】
前記アルゴリズム切替手段は、スループットに基づいた序列において隣接する圧縮モジュールからなる対のそれぞれに設定された処理時間に関しての閾値と、前記データ処理モジュールが前記書き込みデータを生成するのに要した時間との比較結果に応じて、前記圧縮モジュールを切り替えることを特徴とする請求項１記載のデータ圧縮伸長装置。
【請求項３】
前記アルゴリズム切替手段は、前記圧縮モジュール及び前記伸長モジュールを時間単位で切り替えることを特徴とする請求項１又は２記載のデータ圧縮伸長装置。
【請求項４】
前記アルゴリズム切替手段は、
前記データ処理モジュールにおけるデータ処理の進捗状況に応じて、前記圧縮モジュールを切り替える回路と、
前記書き込みデータの圧縮時に前記圧縮モジュールによってデータブロックごとに付加された各々の圧縮モジュールに固有の識別子に基づいて、前記伸長モジュールを選択する回路とを有することを特徴とする請求項１又は２記載のデータ圧縮伸長装置。
【請求項５】
前記圧縮モジュールを二つ備え、一方には、圧縮単位ごとの相関が無い固定長符号化を用いた圧縮アルゴリズムが実装され、他方には、隣接する圧縮単位との相関を利用した可変長符号化を用いた圧縮アルゴリズムが実装されていることを特徴とする請求項１から４のいずれか１項記載のデータ圧縮伸長装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの処理進捗状況に応じて、圧縮率が同じでスループットの異なる圧縮伸長アルゴリズムを選択的に使用するデータ圧縮伸長装置に関する。
【背景技術】
【０００２】
従来、画像データに対して、固定長／可変長に関わらず、前後の画素との相関を利用して１画素（例えば非圧縮で８ｂｉｔのデータ）ずつ逐次的に圧縮伸長を行う圧縮伸長アルゴリズムがある。このようなアルゴリズムでは逐次的な処理であるために、１サイクルに１画素しか圧縮／伸長処理できないことが多い。
【０００３】
それに対して、ほとんどのバスのスループットは１サイクルに複数画素分である。
【０００４】
逐次的に圧縮伸長を行う圧縮伸長アルゴリズムをチップ内のバスのＩ／Ｆ部分に使用する場合、圧縮や伸長にかかるサイクル数によって他のアクセスが待たされることがあり、データ処理モジュールの処理のサイクル数的な余裕の度合いによっては、圧縮伸長のレイテンシが画像処理システム全体の処理性能を束縛してしまうことがある。
【０００５】
一方で、固定長符号化で、かつ前後の画素との相関を利用しない圧縮伸長アルゴリズムは、複数画素を並列に圧縮伸長することが可能であるため、バスのスループットと同等の高い圧縮／伸長スループットを実現することが容易である。しかし、前後の画素との相関を利用する場合に比べて圧縮効率が低いため、同じ圧縮率ではより多くの圧縮ロスが発生する。
【０００６】
また、特定の圧縮率を前提としてメモリサイズを決定している場合にはその圧縮率での圧縮処理は必須であり、スループットを向上させるために圧縮処理自体を行わないようにしたり、圧縮率を下げたりするという選択はできない。したがって、特許文献１に開示されているような、混雑度に応じて圧縮処理を行うか否かを選択的に切り替える手法は適用できない。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２９３６９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、データの劣化と引き換えに高スループットを確保してデータ処理システム全体の処理性能を保ったり、デッドラインサイクル数を超過しないようにできるデータ圧縮伸長装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、データ処理モジュールから入力された書き込みデータを圧縮して外部メモリへ格納するとともに、外部メモリから読み出した圧縮データを伸長してデータ処理モジュールへ出力するデータ圧縮伸長装置であって、圧縮率が同じでスループットが異なる圧縮アルゴリズムを実装した複数の圧縮モジュールと、圧縮モジュールの各々の圧縮アルゴリズムに対応する伸長アルゴリズムをそれぞれ実装した複数の伸長モジュールと、データ処理モジュールにおけるデータ処理の進捗状況に応じて、書き込みデータの圧縮に用いる圧縮モジュール及び圧縮データの伸長に用いる伸長モジュールを切り替えるアルゴリズム切替手段とを有することを特徴とするデータ圧縮伸長装置が提供される。
【発明の効果】
【００１０】
本発明によれば、データの劣化と引き換えに高スループットを確保してデータ処理システム全体の処理性能を保ったり、デッドラインサイクル数を超過しないようにできるデータ圧縮伸長装置を提供できるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の第１の実施の形態にかかるデータ圧縮伸長装置の構成を示す図。
【図２】図２は、従来のデータ圧縮伸長装置の構成を示す図。
【図３】図３は、可変長符号化を用いた圧縮データ及び固定長符号化を用いた圧縮データの一例を示す図。
【図４】図４は、アルゴリズム選択回路の構成の一例を示す図。
【図５】図５は、処理サイクル数の変化及び選択信号の更新の一例を示す図。
【図６】図６は、本発明の第２の実施の形態にかかるデータ圧縮伸長装置の構成を示す図。
【図７】図７は、本発明の第３の実施の形態にかかるデータ圧縮伸長装置の構成を示す図。
【図８】図８は、スループットに基づいた圧縮・伸長アルゴリズムの序列における隣接する２要素間にそれぞれ上限閾値と下限閾値とを設定した様子を示す図。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照して、本発明の実施の形態にかかるデータ圧縮伸長装置を詳細に説明する。なお、この実施の形態により本発明が限定されるものではない。
【００１３】
（第１の実施の形態）
図１は、本発明の第１の実施の形態にかかるデータ圧縮伸長装置の構成を示す図である。また、比較のために、従来のデータ圧縮伸長装置の構成を図２に示す。本実施の形態のデータ圧縮伸長装置１は、データ処理モジュール２とバス３とに接続され、バス３を介してさらに外部メモリ４へ接続されることによって画像処理システムに適用される点については従来のデータ圧縮伸長装置１’と同様である。従来のデータ圧縮伸長装置１’とは、二つの圧縮器１１、１２及びセレクタ１３が圧縮部１０を、二つの伸長器２１、２２及びセレクタ２３が伸長部２０をそれぞれ構成している点と、アルゴリズム選択回路３０を有する点とで相違する。
【００１４】
圧縮部１０は、第１の圧縮器１１、第２の圧縮器１２及びセレクタ１３を有する。
【００１５】
第１の圧縮器１１は、隣接画素との相関を利用した可変長符号化による圧縮アルゴリズムを実装した圧縮モジュールであり、第２の圧縮器１２と共通する所定の圧縮率が設定されている。第１の圧縮器１１は、第２の圧縮器１２と比べると圧縮ロスが小さい（画質劣化が小さい）が、１画素ずつ順次処理していく必要があるために圧縮スループットは１画素／サイクルと低い。第１の圧縮器１１は、データ処理モジュール２から入力される８画素分の入力データを入力バッファ１１１に蓄積し、１画素分ずつ取り出して順に処理する。すなわち、第１の圧縮器１１の圧縮スループットは、データ処理モジュール２の出力スループットである８画素／サイクルと比較すると１／８の処理スループットであるため、データ処理モジュール２の出力を待たせることがある。第１の圧縮器１１は、圧縮データを出力バッファ１１２に蓄積し、６４bitになったら１データをセレクタ１３へ出力する。第１の圧縮器１１は、可変長符号化による圧縮を行う際に、伸長時に参照されるヘッダをデータブロック単位で付加する。
【００１６】
第２の圧縮器１２は、他の画素とは独立して固定長に圧縮する圧縮アルゴリズムを実装した圧縮モジュールであり、第１の圧縮器１１と共通する所定の圧縮率が設定されている。第２の圧縮器１２は、第１の圧縮器１１と比べると圧縮ロスが大きい（画質劣化が大きい）が、複数の画素を同時に処理可能であるため、圧縮スループットは８画素／サイクルと高い。すなわち、第２の圧縮器１２は、固定長符号化を用いた圧縮アルゴリズムを実装することによって、高スループットが容易に実現されている。第２の圧縮器１２は、データ処理モジュール２から入力される８画素分の入力データを並行して処理する。すなわち、第２の圧縮器１２の圧縮スループットは、データ処理モジュール２の出力スループットと等しいため、データ処理モジュール２の出力を待たせることは無い。第２の圧縮器１２は、圧縮データを出力バッファ１２１に蓄積し、６４bitになったら１データをセレクタ１３へ出力する。圧縮データのビット長は固定長であり、圧縮率に基づいて決定され、伸長部２０側では既知である。そのため、第２の圧縮器１２での圧縮処理では、ヘッダを付加する必要がない。
【００１７】
伸長部２０は、第１の伸長器２１、第２の伸長器２２及びセレクタ２３を有する。
【００１８】
第１の伸長器２１は、第１の圧縮器１１の圧縮アルゴリズムに対応した伸長アルゴリズムを備えており、１画素／サイクルの伸長スループットで伸長処理を行う。第１の伸長器２１は、バス３から入力される６４bitの入力データを入力バッファ２１１に蓄積し、１画素分ずつ取り出して順に処理する。第１の伸長器２１は、伸長データを出力バッファ２１２に蓄積し、８画素分になったらデータ処理モジュール２に対して１データを出力する。
【００１９】
第２の伸長器２２は、第２の圧縮器１２の圧縮アルゴリズムに対応した伸長アルゴリズムを備えており、８画素／サイクルの伸長スループットで伸長処理を行う。第２の伸長器２２は、バス３から入力される６４bitの入力データを入力バッファ２２１に蓄積し、８画素分ずつ取り出して処理する。伸長スループットとデータ処理モジュール２への転送スループットとが同じであるため、第２の伸長器２は伸長処理を行って得た伸長データをそのままデータ処理モジュール２へ出力する。
【００２０】
ここで、８×４画素のデータブロックを例として、可変長符号化を用いた圧縮アルゴリズム及び固定長符号化を用いた圧縮アルゴリズムについて説明を補足する。図３に示すように、可変長符号化を用いた圧縮アルゴリズムの場合には、圧縮データは、データブロック全体としては、ビット長が圧縮前データの１／２となるが、各画素の圧縮データは、ビット長が一定ではない。このため、可変長符号化による圧縮データを伸長するには、画素区切りを特定するために、元データと符号との対応関係を示す情報が必要となる。したがって、第１の圧縮器１１は、元データと符号との対応を特定するために必要となる情報をヘッダとして圧縮データに付加し、第１の伸長器２１はヘッダを参照して伸長処理を行う。
一方、固定長符号化を用いた圧縮アルゴリズムの場合は、圧縮データは、データブロック全体としても各画素としてもビット長が圧縮前データの１／２となり、各画素の圧縮データのビット長が一定である。このため、固定長符号化を用いた圧縮アルゴリズムの場合は、圧縮率さえ既知であれば、圧縮データにおける画素の区切りを特定可能である。したがって、第２の圧縮器１２は、圧縮処理の際に圧縮データにヘッダは付加せず、第２の伸長器２２もヘッダを参照することなく画素区切りを特定して伸長処理を行う。
【００２１】
外部メモリ４のメモリサイズは、第１及び第２の圧縮器１１、１２における圧縮処理での圧縮率に基づいて設定されている。
【００２２】
データ処理モジュール２は、動画処理を行い、１フレームの処理が完了した際に、そのフレームの処理に要したサイクル数（処理サイクル数）をアルゴリズム選択回路３０へ出力する。
【００２３】
図４に、アルゴリズム選択回路３０の構成を示す。
アルゴリズム選択回路３０は、上限閾値比較器３１、下限閾値比較器３２、選択信号レジスタ３３、第１のＡＮＤ回路３４、第２のＡＮＤ回路３５及びＯＲ回路３６を有する。上限閾値比較器３１は、入力された処理サイクル数が上限閾値以上である場合に“１”を出力する。下限閾値比較器３２は、入力された処理サイクル数が下限閾値以上である場合に“１”を出力する。上限閾値比較器３１の出力は、第１のＡＮＤ回路３４に入力される。第１のＡＮＤ回路３４には選択信号レジスタ３３の値が反転入力され、上限閾値比較器３１の出力との論理積演算結果をＯＲ回路３６に出力する。一方、下限閾値比較器３２の出力は、第２のＡＮＤ回路３５に入力される。第２のＡＮＤ回路３５には、選択信号レジスタ３３の値が入力され、下限閾値比較器３２の出力との論理積演算結果をＯＲ回路３６に出力する。ＯＲ回路３６は、第１のＡＮＤ回路３４の出力と第２のＡＮＤ回路３５の出力との論理和演算結果を選択信号レジスタ３３に出力する。選択信号レジスタ３３の値は、選択信号としてセレクタ１３、２３へ出力される。セレクタ１３、２３へ送られる選択信号は、“０”のときは第１の圧縮器１１、第１の伸長器２１をセレクタ１３、２３に選択させ、“１”のときは第２の圧縮器１２、第２の伸長器２２をセレクタ１３、２３に選択させる。
【００２４】
一般的には、上限閾値は処理スループットの低い第１の圧縮器１１及び第１の伸長器２１を使用していても処理サイクル数が上限閾値以下となるような値が設定される。なお、データ処理モジュール２から入力される処理サイクル数が上限閾値を超えるということは、処理サイクル数がデッドラインを超える可能性があることを示す。下限閾値は上限閾値よりも小さい値であり、それよりも小さい値が処理サイクル数としてデータ処理モジュールから入力されているときに低スループットの圧縮伸長器（第１の圧縮器１１及び第１の伸長器２１）を使用するように切り替えても、すぐには上限閾値には到達しないように値が設定される。
【００２５】
次に、データ圧縮伸長装置１の動作について説明する。
データ処理モジュール２から外部メモリ３への書き込みデータは、１画素当たり８bitの画像データであり、データ処理モジュール２からは、８×８画素のデータブロックを単位とし、８画素（６４bit）／サイクルのスループットで圧縮部１０へ入力される。
圧縮部１０において、第１の圧縮器１１及び第２の圧縮器１２は、圧縮対象のデータブロックの圧縮を同時に開始する。第１の圧縮器１１及び第２の圧縮器１２の出力は、アルゴリズム選択回路３０から出力される選択信号に従ってセレクタ１３で選択され、一方のみがバス３へ送られる。ここで、バス３のスループットは第１の圧縮器１１及び第２の圧縮器１２の圧縮データの出力スループット（圧縮器のスループット×圧縮率）よりも高いため、バス３に起因してデータ処理モジュール２の出力が制限されることはないものとする。
【００２６】
外部メモリ４からデータ処理モジュール２へのデータの読み出しの際には、６４bit／サイクルで外部メモリ４から読み出されたデータがバス３を介して伸長部２０へ入力される。伸長部２０において、第１の伸長器２１及び第２の伸長器２２は、圧縮データの伸長を同時に開始する。第１の伸長器２１及び第２の伸長器２２の出力は、アルゴリズム選択回路３０から出力される選択信号に従ってセレクタ２３で選択され、一方のみがデータ処理モジュール２へ送られる。
【００２７】
選択信号レジスタ３３の初期値は“０”で、第１の圧縮器１１及び第１の伸長器２１が選択されるようになっている。処理サイクル数は、動画処理で１フレームの処理が完了した際にデータ処理モジュールから送られてくる。なお、次のフレームでは、外部メモリ４に格納されている前のフレームについての圧縮データは読み出されることなく上書きされるとする。換言すると、あるフレームの圧縮データの伸長処理の際に前のフレームの圧縮データが用いられることはないものとする。
【００２８】
処理サイクル数がデータ処理モジュール２からアルゴリズム選択回路３０へ入力されると、上限閾値比較器３１及び下限閾値比較器３２において、上限閾値及び下限閾値のそれぞれと大小比較が行われる。
選択信号レジスタ３３が“０”の状態で処理サイクル数が上限閾値を上回ると、上限閾値比較器３１及び下限閾値比較器３２の双方から“１”が出力される。その結果、第１のＡＮＤ回路３４からは“１”が、第２のＡＮＤ回路３５からは“０”が出力されるため、ＯＲ回路３６からは“１”が出力され、選択信号レジスタ３３が“１”に更新される。その結果、選択される圧縮伸長器が高スループットの第２の圧縮器１２及び第２の伸長器２２に変更され、画質劣化は大きくなるが、圧縮伸長にかかるサイクル数が低く抑えられるようになる。
【００２９】
一方、選択信号レジスタ３３が“１”の状態で処理サイクル数が下限閾値を下回ると、上限閾値比較器３１及び下限閾値比較器３２の双方から“０”が出力される。その結果、第１のＡＮＤ回路３４及び第２のＡＮＤ回路３５の双方から“０”が出力されるため、ＯＲ回路３６からは“０”が出力され、選択信号レジスタ３３が“０”に更新される。その結果、選択される圧縮伸長器が圧縮ロスの少ない第１の圧縮器１１及び第１の伸長器２１に変更されて、処理サイクル数は大きくなるが画質劣化が抑えられる。
【００３０】
図５に、処理サイクル数の変化及び選択信号の更新の一例を示す。
時刻ｔ１において、処理サイクル数は上限閾値よりも小さいため、上限閾値比較器３１からは“０”が、下限閾値比較器３２からは“１”が出力される。時刻ｔ１における選択信号は“０”であるから、第１のＡＮＤ回路３４及び第２のＡＮＤ回路３５の双方から“０”が出力され、ＯＲ回路３６からは“０”が出力される。したがって、選択信号レジスタ３３は“０”のまま維持される。
【００３１】
時刻ｔ２において、処理サイクル数は上限閾値を上回るため、上限閾値比較器３１及び下限閾値比較器３２の双方から“１”が出力される。時刻ｔ２における選択信号は“０”であるから、第１のＡＮＤ回路３４からは“１”が、第２のＡＮＤ回路３５からは“０”が出力され、ＯＲ回路３６からは“１”が出力される。したがって、選択信号レジスタ３３は“１”に変更される。
【００３２】
時刻ｔ３において、処理サイクル数は下限閾値よりも大きい値であるため、上限閾値比較器３１からは“０”が、下限閾値比較器３２からは“１”が出力される。時刻ｔ３における選択信号は“１”であるから、第１のＡＮＤ回路３４からは“０”が、第２のＡＮＤ回路３５からは“１”が出力され、ＯＲ回路３６からは“１”が出力される。したがって、選択信号レジスタ３３は“１”のまま維持される。
【００３３】
時刻ｔ４において、処理サイクル数は下限閾値を下回るため、上限閾値比較器３１及び下限閾値比較器３２の双方から“０”が出力される。時刻ｔ４における選択信号は“１”であるから、第１のＡＮＤ回路３４及び第２のＡＮＤ回路３５の双方から“０”が出力され、ＯＲ回路３６からは“０”が出力される。したがって、選択信号レジスタ３３は“０”に変更される。
【００３４】
時刻ｔ５において、処理サイクル数は下限閾値を上回るため、上限閾値比較器３１からは“０”が、下限閾値比較器３２からは“１”が出力される。時刻ｔ５における選択信号は“０”であるから、第１のＡＮＤ回路３４及び第２のＡＮＤ回路３５の双方から“０”が出力され、ＯＲ回路３６からは“０”が出力される。したがって、選択信号レジスタ３３は“０”のまま維持される。
【００３５】
時刻ｔ４で選択信号レジスタ３３が“０”になると処理スループットの低い第１の圧縮器１１及び第１の伸長器２１が使用されるため、処理サイクル数が大きくなるが、時刻ｔ５における処理サイクル数は上限閾値を上回っておらず、選択信号は“０”のまま維持されている。
【００３６】
本実施の形態にかかるデータ圧縮伸長装置は、通常時にはスループットは低いが圧縮ロスの少ない圧縮・伸長アルゴリズムを用いて圧縮伸長処理を行うが、画像処理システムの処理サイクル数が上限値よりも大きくなってしまった場合は、圧縮ロスは大きいが処理スループットの高い圧縮・伸長アルゴリズムに切り替えて圧縮伸長処理のサイクル数を減少させ、画像処理システムのサイクル数の低減に寄与させる。その状態で画像処理システムの処理サイクル数が下限値よりも小さくなったら通常の圧縮・伸長アルゴリズムに戻して圧縮ロスの小ささを優先する。したがって、本実施の形態にかかるデータ圧縮伸長装置によれば、圧縮伸長のスループットの低さやレイテンシによって画像処理システム全体の処理性能が低下してしまいそうな場合、又は処理のデッドラインサイクル数を超過してしまいそうな場合に、データの劣化と引き換えに高スループットを確保して画像処理システム全体の処理性能を保ったり、デッドラインサイクル数を超過しないようにできる。
また、圧縮・伸長アルゴリズムを時間単位で（フレームごとに）切り替えるため、アルゴリズム切り替えのための情報ビットを圧縮データに追加する必要がない。
なお、１フレームで急激に処理サイクル数が大きくなった場合には、高スループットの圧縮・伸長アルゴリズムに切り替える前にデッドラインを超えてしまうこともありうるが、動画に対する処理の場合、一般的には隣接するフレームは処理に要する処理サイクル数が似たレベルになるため、１フレームで急激に処理サイクル数が変化する可能性は小さい。よって、本実施の形態の切り替え制御を行うことで、デッドラインサイクル数を超過する可能性を低減できる。
【００３７】
（第２の実施の形態）
図６は、本発明の第２の実施の形態にかかるデータ圧縮伸長装置の構成を示す図である。第１の実施の形態と同様に、データ圧縮伸長装置１は、圧縮部１０、伸長部２０及びアルゴリズム選択回路３０を備えており、データ処理モジュール２とバス３とに接続され、バス３を介してさらに外部メモリ４へ接続されている。
【００３８】
圧縮部１０は、セレクタ１３を備えていない点と、第１の圧縮器１１及び第２の圧縮器１２の上流側（データ処理モジュール２側）にデマルチプレクサ１４が配置されている点とで第１の実施の形態と相違する。
【００３９】
伸長部２０はセレクタ２３を備えていない点と、第１の伸長器２１及び第２の伸長器２２の上流側（バス３側）にデマルチプレクサ２４が配置されている点とで第１の実施の形態と相違する。
【００４０】
アルゴリズム選択回路３０は、第１の実施の形態と同様である。ただし、選択信号はデマルチプレクサ１４、２４へ出力される。
【００４１】
本実施の形態においては、アルゴリズム選択回路３０から出力される選択信号に基づいて、データ処理モジュール２から外部メモリ４への書き込みデータを第１の圧縮器１１及び第２の圧縮器１２の一方のみに入力する。また、外部メモリ４からデータ処理モジュール２への圧縮データを第１の伸長器１１及び第２の伸長器１２の一方のみに入力する。したがって、第１、第２の圧縮器１１、１２の一方及び第１、第２の伸長器２１、２２の一方（書き込みデータや圧縮データを入力しない方）への入力値を一定に保つことで、回路の動作を抑えて消費電力の低減を図ることが可能となる。
【００４２】
この他の点については第１の実施の形態と同様であるため、重複する説明は割愛する。
【００４３】
（第３の実施の形態）
図７は、本発明の第３の実施の形態にかかるデータ圧縮伸長装置の構成を示す図である。本実施の形態にかかるデータ圧縮伸長装置は、伸長部２０がフラグ保持回路２５をさらに有する点と、アルゴリズム選択回路３０の出力する選択信号が圧縮部１０のみに入力される点とで第１の実施の形態と相違する。また、圧縮部１０内において選択信号は第１及び第２の圧縮器１１、１２にも入力されるようになっており、後述するようにフラグを付加するために用いられる。データ転送速度や処理単位は第１の実施の形態と同様である。
【００４４】
第１の圧縮器１１は、ヘッダ生成時に選択信号の値をフラグとして保持するようになっており、圧縮データに付加されるヘッダ長は第１の実施の形態と比較すると１ビット長い。ただし、圧縮データそのものは第１の実施の形態と同様である。
【００４５】
第２の圧縮器１２は、データブロックの圧縮データの先頭にフラグとして選択信号の値を保持するようになっており、ブロックの先頭の画素の圧縮データが残りの画素の圧縮データよりも１ビット短くなる。すなわち、ブロック先頭の画素だけが残りの画素よりも１ビット分余分に圧縮され、その分がフラグに置き換えられる。具体的には、ブロック先頭以外の画素が４ビットに圧縮される場合には、ブロック先頭の画素のみは３ビットに圧縮されることとなり、余った１ビット分にフラグが割り当てられる。ブロック先頭の画素を他の画素よりも１ビット分余分に圧縮する方法の一例として、先頭以外の画素と同じ圧縮アルゴリズムを適用して同じビット長に圧縮した後で最下位ビットを切り捨てる方法が挙げられるが、この方法に限定されることはない。
【００４６】
外部メモリ４からデータ処理モジュール２へのデータの読み出しの際には、６４bit／サイクルで外部メモリ４から読み出されたデータが、バス３を介して第１の伸長器２１及び第２の伸長器２２の両方に入力され、同時に伸長処理が開始される。
【００４７】
第１の伸長器２１には、第１の実施の形態と比較してヘッダ長が１ビット長い圧縮データが入力されるが、保持されているフラグ（選択信号の値）は無視して伸長処理を行うため、出力される伸長データは第１の実施の形態のものと同じである。
【００４８】
第２の伸長器２２は、ブロック先頭画素の圧縮データが、保持されている選択信号の分１ビット短くなることに対応していることを除いては第１の実施の形態と同じであり、保持されているフラグ（選択信号の値）は無視して伸長処理を行う。なお、ブロック先頭画素の１ビット短い圧縮データに対応する方法の一例としては、圧縮データの下位に０又は１を付加して他の画素と同じビット長に揃えた上で同じ伸長アルゴリズムを適用して伸長する方法が挙げられるが、この方法に限定されることはない。
【００４９】
データブロックごとに保持されているフラグは、そのデータブロックの伸長処理が完了するまでフラグ保持回路２５に保持され、第１の伸長器２１及び第２の伸長器２２の出力のいずれをデータ処理モジュール２に送るかを選択するためにセレクタ２３へ送られる。フラグ保持回路２５は、公知のラッチ回路を用いて構成可能であるため、回路構成についての詳細な説明は割愛する。
【００５０】
アルゴリズム選択回路３０の構成及び動作は、第１の実施の形態と同様である。ただし、第１の実施の形態では１フレームの処理が完了した際にデータ処理モジュール２から処理サイクル数が入力されていたが、本実施の形態ではより細かい区切り（例えば、データブロック単位）で入力することが可能である。
【００５１】
データブロックごとにフラグを付加することで、選択信号の値を変化させる前後にまたがって圧縮及び伸長を行っても処理が破綻することはなくなるため、データブロック単位を最小としたより細かい粒度での制御が可能となる。また、前のフレームで作成された圧縮データを次のフレームで伸長して使用することも可能となる。
【００５２】
本実施の形態にかかるデータ圧縮伸長装置によっても、圧縮伸長のスループットの低さやレイテンシによって画像処理システム全体の処理性能が低下してしまいそうな場合、又は処理のデッドラインサイクル数を超過してしまいそうな場合に、データの劣化と引き換えに高スループットを確保して画像処理システム全体の処理性能を保ったり、デッドラインサイクル数を超過しないようにできる。
【００５３】
なお、上記各実施の形態は本発明の好適な実施の一例であり、本発明はこれらに限定されることはない。
例えば、上記各実施形態においては、二つの圧縮・伸長アルゴリズムを切り替えて用いる構成を例としたが、３以上の圧縮・伸長アルゴリズムを切り替えて用いる構成とすることも可能である。この場合には、図８に示すように、スループットに基づいた圧縮・伸長アルゴリズムの序列において隣接する圧縮・伸長アルゴリズムからなる対のそれぞれに上限閾値と下限閾値とを設定して、データ処理モジュールから入力される処理サイクル数をそれらの閾値と比較して圧縮・伸長器を切り替えるようにすればよい。
また、上記各実施の形態においては、動画像データを処理の対象とした例について説明したが、必ずしも動画像データに対する処理に限定されることはなく、動画像以外のデータを圧縮・伸長する目的で適用することも可能である。
このように、本発明は様々な変形が可能である。
【符号の説明】
【００５４】
１  データ圧縮伸長装置、２  データ処理モジュール、４  外部メモリ、１１  第１の圧縮器、１２  第２の圧縮器、２１  第１の伸長器、２２  第２の伸長器、２５  フラグ保持回路、３０  アルゴリズム選択回路。
【図１】
2011049764.tif 000003
【図２】
2011049764.tif 000004
【図３】
2011049764.tif 000005
【図４】
2011049764.tif 000006
【図５】
2011049764.tif 000007
【図６】
2011049764.tif 000008
【図７】
2011049764.tif 000009
【図８】
2011049764.tif 000010