(57)【特許請求の範囲】
【請求項１】
パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、
前記演算器における担当ステージの演算処理の終了を検知する検知手段と、
前記演算器ごとにクロックの供給／停止を制御するクロック供給制御手段とを備え、
前記クロック供給制御手段が、
前記検知手段により演算処理の終了が検知された前記演算器に対するクロック供給を停止し、
前記検知手段によりすべての前記演算器における演算処理の終了が検知されれば次のパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開するように構成されたことを特徴としたデジタルＶＬＳＩ回路。
【請求項２】
前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、
前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対するクロック供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項１に記載のデジタルＶＬＳＩ回路。
【請求項３】
前記演算処理にかかるデータが、複数のマクロブロックデータ（前記マクロブロックデータは複数個のブロックデータにより構成される）を含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、
前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対するクロック供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項１に記載のデジタルＶＬＳＩ回路。
【請求項４】
パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、
前記演算器における担当ステージの演算処理の終了を検知する検知手段と、
前記演算器ごとにクロックの供給／停止を制御するクロック供給制御手段とを備え、
前記クロック供給制御手段が、
前記検知手段により、前記パイプライン演算処理において相前後する前段演算器と次段演算器のうち次段演算器の演算処理の終了が先に検知された場合、当該次段演算器に対してクロック供給を停止し、
前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知された場合、次のパイプライン演算処理に向けて前記次段演算器に対してクロック供給を再開するように構成されたことを特徴とするデジタルＶＬＳＩ回路。
【請求項５】
前記クロック供給制御手段が、
前記検知手段により、前記前段演算器の演算処理の終了が先に検知された場合、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できるまで、当該前段演算器に対してクロック供給を停止し、
前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となれば、当該前段演算器に対してクロック供給を再開するように構成されたことを特徴とする請求項４に記載のデジタルＶＬＳＩ回路。
【請求項６】
前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、
前記クロック供給制御手段が、
前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知されても、前記次段演算器へのクロック供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項４または５に記載のデジタルＶＬＳＩ回路。
【請求項７】
前記クロック供給制御手段が、
前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前記前段演算器へのクロック供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項６に記載のデジタルＶＬＳＩ回路。
【請求項８】
前記演算処理にかかるデータが、複数のマクロブロックデータ（前記マクロブロックデータは複数個のブロックデータにより構成される）を含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、
前記クロック供給制御手段が、
前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知されても前記次段演算器へのクロック供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする請求項４または５に記載のデジタルＶＬＳＩ回路。
【請求項９】
過去における制約時間内に演算処理すべきデータ量と演算処理に要したサイクル数を記憶するサイクル数記憶手段と、
次の制約時間内に演算処理すべきデータ量と前記記憶手段に記憶されているサイクル数から、次の制約時刻までに演算処理しなければならないデータの演算処理に必要なサイクル数を予測するサイクル数予測手段と、
前記サイクル数予測手段で計算されたサイクル数から専用デジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し決定した動作周波数のクロックとこのクロックに対応した動作電源電圧、基板バイアス電圧を供給する動作周波数・電圧制御手段を備え、
前記サイクル数記憶手段が制約時間内に演算処理すべきデータ量と当該データに対して演算処理を完了するために要したサイクル数を記憶し、次の制約時間の開始直後において前記動作周波数・電圧制御手段がサイクル数記憶手段に記憶されている過去のデータの演算処理に要したサイクル数と次の制約時刻までに演算処理を完了しなければならないデータ量とから次の制約時刻までの専用デジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し専用デジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を決定した値に制御する請求項２、３、６、７、８のいずれか１項に記載のデジタルＶＬＳＩ回路。
【請求項１０】
次の制約時間内に演算処理すべきデータ量とパイプラインを少なくとも１回動作させることによって演算処理が完了するデータ量とから次のパイプライン動作時の専用デジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し決定した動作周波数のクロックとこのクロックに対応した動作電源電圧、基板バイアス電圧を供給する動作周波数・電圧制御手段を備え、
前記動作周波数・電圧制御手段が次のパイプライン演算処理において演算処理を行うデータの演算処理に必要なサイクルが想定される最悪サイクル数であっても当該データの演算処理が完了すべき時刻に間に合うように動作周波数を決定し、次のパイプライン演算処理における専用デジタルＶＬＳＩ回路のクロック、動作電源電圧、基板バイアス電圧を決定した動作周波数とこの動作周波数に対応した動作電源電圧、基板バイアス電圧に制御する請求項２、３、６、７、８のいずれか１項に記載のデジタルＶＬＳＩ回路。
【請求項１１】
パイプライン演算処理の各ステージを担い、演算処理を実行する複数の演算器と、
前記演算器における担当ステージの演算処理の終了を検知する検知手段と、
前記演算器ごとに電力の供給／停止を制御する電力供給制御手段とを備え、
前記電力供給制御手段が、
前記検知手段により演算処理終了が検知された前記演算器に対する電力供給を停止し、
前記検知手段によりすべての前記演算器における演算処理終了が検知されれば次のパイプライン演算処理に向けてすべての前記演算器への電力供給を再開するように構成されたことを特徴としたデジタルＶＬＳＩ回路。
【請求項１２】
前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、
前記電力供給制御部が、前記フレームデータ中の最後の前記マクロブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対する電力供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項１１に記載のデジタルＶＬＳＩ回路。
【請求項１３】
前記演算処理にかかるデータが、複数のマクロブロックデータ（前記マクロブロックデータは複数個のブロックデータにより構成される）を含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、
前記電力供給制御部が、前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対する電力供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項１１に記載のデジタルＶＬＳＩ回路。
【請求項１４】
パイプライン演算処理の各ステージを担い、演算処理を実行する複数の演算器と、
前記演算器における担当ステージの演算処理の終了を検知する検知手段と、
前記演算器ごとに電力の供給／停止を制御する電力供給制御手段とを備え、
前記電力供給制御手段が、
前記検知手段により、前記パイプライン演算処理において相前後する前段演算器と次段演算器のうち次段演算器の演算処理の終了が先に検知された場合、当該次段演算器に対して電力供給を停止し、
前記次段演算器への電力供給の停止後、前記前段演算器の演算処理の終了が検知された場合、次のパイプライン演算処理に向けて前記次段演算器に対して電力供給を再開するように構成されたことを特徴とするデジタルＶＬＳＩ回路。
【請求項１５】
前記電力供給制御手段が、
前記検知手段により、前記前段演算器の演算処理の終了が先に検知された場合、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できるまで、当該前段演算器に対して電力供給を停止し、
前記前段演算器への電力供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となれば、当該前段演算器に対して電力供給を再開するように構成されたことを特徴とする請求項１４に記載のデジタルＶＬＳＩ回路。
【請求項１６】
前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、
前記電力供給制御手段が、
前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記次段演算器への電力供給の停止後、前記前段演算器の演算処理の終了が検知されても、前記次段演算器への電力供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項１４または１５に記載のデジタルＶＬＳＩ回路。
【請求項１７】
前記電力供給制御手段が、
前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記前段演算器への電力供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前記前段演算器への電力供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項１６に記載のデジタルＶＬＳＩ回路。
【請求項１８】
前記演算処理にかかるデータが、複数のマクロブロックデータ（前記マクロブロックデータは複数個のブロックデータにより構成される）を含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、
前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、
前記電力供給制御手段が、
前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記次段演算器への電力供給の停止後、前記前段演算器の演算処理の終了が検知されても、前記次段演算器への電力供給の停止を継続し、
前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする請求項１４または１５に記載のデジタルＶＬＳＩ回路。
【請求項１９】
過去における制約時間内に演算処理すべきデータ量と演算処理に要したサイクル数を記憶するサイクル数記憶手段と、
次の制約時間内に演算処理すべきデータ量と前記記憶手段に記憶されているサイクル数から、次の制約時刻までに演算処理しなければならないデータの演算処理に必要なサイクル数を予測するサイクル数予測手段と、
前記サイクル数予測手段で計算されたサイクル数から専用デジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し決定した動作周波数のクロックとこのクロックに対応した動作電源電圧、基板バイアス電圧を供給する動作周波数・電圧制御手段を備え、
前記サイクル数記憶手段が制約時間内に演算処理すべきデータ量と当該データに対して演算処理を完了するために要したサイクル数を記憶し、次の制約時間の開始直後において前記動作周波数・電圧制御手段がサイクル数記憶手段に記憶されている過去のデータの演算処理に要したサイクル数と次の制約時刻までに演算処理を完了しなければならないデータ量とから次の制約時刻までの専用デジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し専用デジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を決定した値に制御する請求項１２、１３、１６、１７、１８のいずれか１項に記載のデジタルＶＬＳＩ回路。
【請求項２０】
次の制約時間内に演算処理すべきデータ量とパイプラインを少なくとも１回動作させることによって演算処理が完了するデータ量とから次のパイプライン動作時の専用デジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を決定し決定した動作周波数のクロックとこのクロックに対応した動作電源電圧、基板バイアス電圧を供給する動作周波数・電圧制御手段を備え、
前記動作周波数・電圧制御手段が次のパイプライン演算処理において演算処理を行うデータの演算処理に必要なサイクルが想定される最悪サイクル数であっても当該データの演算処理が完了すべき時刻に間に合うように動作周波数を決定し、次のパイプライン演算処理における専用デジタルＶＬＳＩ回路のクロック、動作電源電圧、基板バイアス電圧を決定した動作周波数とこの動作周波数に対応した動作電源電圧、基板バイアス電圧に制御する請求項１３、１４、１７、１８のいずれか１項に記載のデジタルＶＬＳＩ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、低消費電力デジタルＶＬＳＩ回路、特に、パイプライン演算処理を行なう内部の複数の演算器のごとにクロック供給、電力供給を制御することにより低消費電力化を図ったデジタルＶＬＳＩ回路、また、動作電源電圧と基板バイアス電圧と動作周波数をフィードバック制御またはフィードフォワード制御を行なうことにより低消費電力化を図ったデジタルＶＬＳＩ回路に関する。
さらに本発明は、低消費電力デジタルＶＬＳＩ回路を組み込んだ画像処理システム並びに携帯端末に関する。
【背景技術】
【０００２】
近年、通信ネットワークを通じて動画像の送受信を行うことや、動画像を蓄積メディアに蓄積することが広く行なわれている。一般に、動画像は情報量が大きいため、伝送ビットレートの限られた通信路を用いて動画像を伝送する場合、あるいは蓄積容量の限られた蓄積メディアに動画像を蓄積する場合には、動画像を符号化・復号化する技術が必要不可欠である。動画像の符号化・復号化方式として、ISO/IECが標準化を進めているＭＰＥＧ(Moving Picture Experts Group)やＨ.２６Ｘがある。これらは動画像を構成する経時的に連続した複数のフレームの符号化又は復号化を行うものであり、動画像の時間的相関、空間的相関を利用した冗長性の削減を行うことにより動画像の情報量を減らして符号化し、符号化された動画像を再度元の動画像に復号化する技術である。
かかる符号化・復号化技術はパーソナルコンピュータやマイクロコンピュータを内蔵する携帯電話等の情報端末機器等に適用されている。【０００３】
図２０は、Ｈ．２６４デコード処理モジュールのブロック図である。
Ｈ．２６４デコード処理モジュールを構築する方法としては専用ハードウェアにより構築する方法と、符号化・復号化の手段を記述したプログラムに基づいて汎用のプロセッサを動作させることにより構築する方法がある。【０００４】
図２１は、図２０に示したブロック図に基づき、複数の演算器を用いた専用ハードウェアによりＨ．２６４デコード処理モジュールを構築した例である。
差分画像に関する情報としてのビットストリームがビットストリームバッファ１００１に受け入れられた後、エントロピーデコード１００２（可変長復号化処理）、逆量子化処理１００３（逆Ｑ処理）、逆直交変換処理１００４（逆Ｔ処理）の順に処理が行なわれ、差分画像が生成される。一方、差分画像生成処理と並行して、現在のフレームメモリに展開されている画像を基に予測画像生成処理１００５が実行される。この差分画像と予測画像との加算処理１００６によりフレーム画像が生成される。【０００５】
これら演算処理はシーケンシャルにつながっており、これら複数の演算処理を適切に分割してパイプライン演算処理とすることができる。図２１に示した演算処理をマクロブロックレベルのパイプライン処理とする場合、図２２に示すようなパイプライン分割が考えられる。図２２の例では７段のパイプラインに分割されている。
パイプライン演算処理のハードウェア設計においてパイプラインが破綻しないように考慮しておくことが重要である。
そこで、パイプライン分割において、各段のパイプライン処理でもっとも時間がかかってしまった場合のサイクル数を最悪サイクル数Ｓｎ（ｎは自然数）として設計し、各段のパイプライン処理が破綻しないようにそれぞれのパイプラインの処理時間として最悪サイクル数Ｓｎを確保せしめておくことが一般的である。【０００６】
なお、パイプライン分割の設計において、パイプライン全体の処理性能が高くなるように各段のパイプライン処理の最悪サイクル数Ｓｎができるだけ均等になるように設計しておくことが好ましい。
つまり以下の（数式１）の式が成立するように設計しておくことが好ましい。【０００７】
〔数１〕  
Ｓｉ＝Ｓｊ  ｆｏｒ  ａｎｙｉ，ｊ【０００８】
ここで、理想的な動画像のデコード処理とは、上記（数式１）を満たし、かつ、すべての演算器の処理性能が上限まで発揮され、常に一定のサイクル数で処理が継続されていくものである。当該一定のサイクル数を最悪サイクル数と設計しておけば、演算器がまったく無駄に遊ぶことなく、演算器の処理性能の上限までパイプライン処理が実行されることとなる。
しかし、実際のパイプライン処理ではそのような理想的な状態はなく、実際のパイプライン処理のサイクル数は、常に最悪サイクル数よりも小さいものとなる。【０００９】
まず、動画像間の変化の激しさ（動きの激しさ）が小さいフレームについては、処理サイクル数は最悪サイクル数よりも小さいものとなる。なぜならば、動画像符号化・復号化処理は動画像間の変化の激しさ（動きの激しさ）などに従って演算処理量が大きくなるため、あまり動画像間の変化の激しさ（動きの激しさ）が大きくないフレームでは処理サイクル数は小さいものとなるからである。
また、動画像間の変化の激しさ（動きの激しさ）が大きいフレームであっても以下の理由から処理サイクル数は最悪サイクル数よりも小さいものとなる。【００１０】
（理由１）１マクロブロックに含まれる係数（３８４個）のうち、逆Ｑ処理が必要な０以外の値を持つ有効係数の数は３８４個よりも小さい。
（理由２）１マクロブロックに含まれるブロック（２４個）のうち、逆Ｔ処理が必要な１つ以上の有効係数を含む有効ブロックの数は２４個よりも小さい。
（理由３）１マクロブロックに含まれるブロックのうち、Ｉｎｔｒａ予測処理が必要なブロックは２４個よりも小さい。また、Ｉｎｔｒａ予測が必要なブロックでも、予測モード（画素値のコピーのみでよい場合と複数の画素から計算しなければならない場合）によって、必要な処理サイクルが変動する。
（理由４）１マクロブロックに含まれるブロックのうち、予測画像と差分画像の加算が必要な有効ブロックの数は２４個よりも小さい。
（理由５）１マクロブロックに含まれるブロックのうち、デブロッキングフィルタ処理が必要なブロックの数は２４個よりも小さい。
（理由６）１マクロブロックに含まれるブロックのうち、フレームメモリ（ＦＭ）への書き込みが必要なブロックの数は２４個よりも小さい。
上記理由から動画像間の変化の激しさ（動きの激しさ）が大きいフレームであっても処理サイクル数は最悪サイクル数よりも小さいものとなる。【００１１】
図２３は実際のパイプライン処理における演算器の動作状況を模式的に示すタイムチャートである。図２３において、ハッチングを掛けた部分が、実際に演算器が動作状態にある期間を示しており、ハッチングが掛かっていない部分が、演算器が動作していないアイドル状態にある期間を示している。図２３では３つの演算処理ステージで構成されるパイプラインを示しているが、パイプラインが３つ以上の演算処理ステージで構成される場合は、演算ステージの数に応じて演算器の個数が増えることになる。動画像データをマクロブロックパイプラインで処理するデジタルＶＬＳＩ回路の場合、図２３のデータｎをマクロブロックｎと読み替え、ブロックパイプラインで処理するデジタルＶＬＳＩ回路の場合、ブロックｎと読み替える。
図２３を見ると、すべての演算器においてハッチングが掛かっていない期間（演算器が動作していないアイドル状態の期間）が生じていることが分かる。【００１２】
上記のように、パイプラインの演算処理では、実際の演算処理よりも冗長性（余裕）を持たせた設計となっているため、演算器が動作していない冗長なサイクルが発生する。
このパイプラインの演算処理における冗長性（余裕）を利用してデジタルＶＬＳＩ回路全体の消費電力を下げる工夫としてクロックゲーティングがある（特開平１０−０２０９５９号公報）。【００１３】
クロックゲーティングとは、パイプライン演算処理実行中に、動作する必要のない演算器にはクロックを供給せず消費電力を低減する手法である。クロックに同期して動作する演算器においては、クロック系統での電流消費が大きいため、演算処理を実行している演算器のみにクロックを供給するように構成することでデジタルＶＬＳＩ回路全体の消費電力を低減することができる。図２３に示したように、パイプラインの演算処理におけるハッチングが掛かっていない期間は、演算器が動作していないアイドル状態の期間であるので、当該期間においては、演算器へのクロック供給を停止してデジタルＶＬＳＩ回路全体の消費電力を小さくする。
なお、演算処理を行わない冗長なサイクルの電力供給を制御するという観点から、クロック供給の制御に代え、演算器単位で電力供給（電流供給）のオンオフを制御するものも同様である（特開２００５−２３５２０３号公報）【００１４】
図２４は図２０に示したブロック図に基づき、復号化の手段を記述したプログラムに基づいて汎用プロセッサで動作させること（以下、ソフトウェア処理と記す）によりＨ．２６４復号化処理モジュールを構築した場合のフローチャートの例である。図２４では１フレームの処理について記載してある。フレームを構成する各マクロブロックに対し、エントロピーデコード、逆Ｑ、逆Ｔ、イントラ予測／インター予測、予測画像と差分画像の加算、デブロッキングフィルタ処理、フレームメモリへの書き込みがシーケンシャルに実行され、これらの処理がフレームを構成するマクロブロックの個数分だけ繰り返される。【００１５】
図２６はソフトウェア処理における処理に必要なサイクル数の状況を模式的に示した図である。動画像の符号化／復号化処理は、１フレームの演算処理時間が符号化方式（ＭＰＥＧ、Ｈ．２６ｘなど）の規定などによりフレーム処理時間Ｔｆに制約されている。したがって、ソフトウェア処理によって符号化／復号化処理を行う場合、どのような動画像に対しても１フレームの演算処理に必要なサイクル数が時間Ｔｆ以内に完了するようにプログラムを構築する。もしくは、プログラムが１フレームの演算処理に必要とするサイクル数が時間Ｔｆ以内に収まるようにプログラムを動作させる汎用プロセッサの動作周波数Ｆｍａｘを選択する。【００１６】
しかし、実際に動画像を符号化／復号化処理した場合、前述のごとく説明した理由からフレームに含まれる各マクロブロックの演算処理に必要なサイクル数が変動するため、フレームの演算処理に必要なサイクル数は大きく変動する。このとき、汎用プロセッサの動作周波数をＦｍａｘとしてフレームの演算処理を行った場合、図２５に示すようにプロセッサが演算処理を行わない冗長なサイクルが発生する。【００１７】
ソフトウェア処理での演算処理においては、冗長なサイクルが発生する特徴を利用した消費電力削減手法としてプロセッサの動作電源電圧、基板バイアス電圧、動作周波数を動的に制御する手法がある（例えばIEEE International Symposium on Circuits and System 2001(May,2001)の予稿集pp918-921など）。
動画像における符号化処理は、１フレームの処理時間が符号化方式（MPEGなど）の規定などによりフレーム処理時間Ｔｆに制約されており、そのフレーム処理時間Ｔf内に１フレームの符号化処理が完了することが必要とされる。逆に言えば、符号化演算処理が当該フレーム処理期間Ｔｆ中に完了すれば良いこととなる。
動作電源電圧、基板バイアス電圧、動作周波数の動的制御は、所定の制約時間内に所定数のデータ群の処理完了を保証しながら、なるべくプロセッサの動作周波数を下げ、動作周波数に合わせて電源電圧、基板バイアス電圧を動的に制御することで総合的に低消費電力化を図るものである。動画像処理においては所定の制約時間とは１フレームの時間、例えば１５（フレーム／秒）の動画像であれば１フレームの時間は１５分の１秒となり、所定数のデータ群とは１フレームに含まれるマクロブロック群と置き換えるとができる。【００１８】
【特許文献１】特開２００３−３２４７３５号公報
【特許文献２】特開２００５−２１０５２５号公報
【非特許文献１】IEICE Trans. Fundamentals, Vol.E88-A, No.12 December 2005. “Power-Minimum Frequency/Voltage Cooperative Management Method for VLSI Processor in Leakage-Dominant Technology Era.”(K. Kawakamik M. Kanamori, Y. Morita, J. Takemura, M. Miyama, and M. Yoshimoto)
【非特許文献２】IEEE International Symposium on Circuits and System 2001(May,2001)の予稿集pp918-921 " An LSI for Ｖｄｄ-Hopping and MPEG4 System Based on the Chip"(H. Kawaguchi, G. Zhang, S. Lee, and T. Sakurai)
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上記従来のクロックゲーティング手法や、演算器の動作周波数及び動作電源電圧を動的に制御する手法は、デジタルＶＬＳＩ回路全体の消費電力を低下させる技術として有効な技術ではあるが、さらなる改善の余地がある。
特定の処理に特化して設計されたＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  ＩＣ）のようなハードワイヤドロジック回路に対してクロックゲーティング手法用いた場合の改善点の一つとして、フレーム処理期間中において演算器へのクロック供給のオンオフ、演算器の動作電源電圧及び動作周波数の変更回数が多くなり当該変更回数に伴って消費電力が大きくなるという問題点を挙げることができる。また、ソフトウェア処理に適用できる動作電源電圧、基板バイアス電圧、動作周波数を動的に制御する手法は、通常のパイプライン処理化されたハードワイヤドロジック回路には適用できないという問題点を挙げることができる。【００２０】
演算器の動作状態とアイドル状態が繰り返されるパイプライン動作に対して、従来のクロックゲーティング手法を用いた場合は、演算器単位に図２３のハッチングが掛かっていないサイクルにおいてクロックゲーティングを行うこととなるが、所定の制約時間内において演算器へのクロック供給のオンオフが頻繁に繰り返されることになる。ここに改善の余地がある。【００２１】
また、従来のハードワイヤドロジック回路の設計では、パイプラインを構成する各ステージの実際に処理に必要なサイクル数が最悪サイクル数より小さくなったとしても、パイプライン処理の開始サイクルは設計時に決められたサイクルで固定されているため、すべての演算器がアイドル状態であるサイクルを省略してパイプライン処理を前倒しすることができず、ソフトウェア処理における図２５に示すようなサイクル数の大幅な削減ができなかった。図２３の例では、例えば１０番目のデータが演算器１での処理が開始されるサイクルは１から９番目のデータの処理に必要なサイクル数がどれだけ小さくなろうとも必ず９００サイクルとなるため、例えば１０番目のデータの演算器１での処理に必要なサイクルが１０サイクルとすれば、演算器１において１から１０番目のデータの処理に必要な合計サイクル数は１００×９＋１０＝９１０サイクルとなり、実際には１から１０番目のデータの処理が最悪サイクル数である場合の１００×１０＝１０００サイクルと比較して９０サイクルしか削減されないことになる。例えば１９２０×１０８８画素で構成されるＨＤＴＶ解像度の動画像では１フレームに８１６０個のマクロブロックが含まれるため、８１６０番目のマクロブロックが演算器１での処理に必要なサイクルが１０サイクルであったとすると、この場合１フレームの処理に必要なサイクル数は（１００×８１５９＋１０）／（１００×８１６０）×１００≒０．０１％しか削減されない。したがって、ハードワイヤドロジック回路の動作周波数は最大で０．０１％しか下げられず、動作周波数・電源電圧、基板バイアス電圧の動的制御による消費電力削減は全く実現できなかったと言える。【００２２】
本出願人らの研究により、デジタルＶＬＳＩ回路（汎用プロセッサ、ハードワイヤドロジック回路を含む専用デジタルＶＬＳＩ回路）において動作周波数・電源電圧、基板バイアス電圧の動的制御をもちいて制約時間内に、あるサイクル数の演算処理を実現する処理の消費電力を削減する場合、高い動作周波数での動作時間を短くすれば短くするほど消費電力が削減されることが分かっている（非特許文献１）。実行されるサイクル数は数式２で表されるため、図５、２８、３０はいずれも制約時間Ｔｆの間に同一のサイクル数Ｆｍａｘ×Ｔｆ／２を実現している。【００２３】
〔数２〕
（サイクル数）＝（動作周波数）×（動作時間）【００２４】
動作周波数・電源電圧、基板バイアス電圧の動的制御を行う場合、デジタルＶＬＳＩ回路の動作周波数の制御に合わせて動作電源電圧、基板バイアス電圧も制御される。例えば図５においては、時刻０からＴｆ／２までは動作電源電圧及び基板バイアス電圧は動作周波数ｆｍａｘを適切な電力で実現しうる電圧に設定され、時刻Ｔｆ／２からＴｆまでは動作周波数０を適切な電力で実現しうる電圧に設定される。【００２５】
上記問題点に鑑み、本発明は、実際のパイプライン演算処理において、クロックゲーティング技術を利用しつつ、所定の制約時間での演算器へのクロック供給のオンオフ切り替えを少なくすることにより低消費電力化を達成することのできるデジタルＶＬＳＩ回路を提供することを目的とする。【００２６】
また、上記問題点に鑑み、本発明は、実際のパイプライン演算処理において、演算器ごとの電力供給を制御しつつ、所定の制約時間での演算器への電力供給オンオフの切り替えを少なくすることにより低消費電力化を達成することのできるデジタルＶＬＳＩ回路を提供することを目的とする。
また、上記問題点に鑑み、本発明は、デジタルＶＬＳＩ回路においてパイプライン処理の開始サイクルを一つ前のパイプライン処理の終了サイクルに合わせて変更することでパイプラインを構成する演算器がアイドル状態である冗長なサイクルを削減することにより生じるサイクル余裕を利用して動作周波数、動作電源電圧、基板バイアス電圧の制御を行うことにより低消費電力化を達成することのできる専用デジタルＶＬＳＩ回路を提供することを目的とする。
また、本発明のデジタルＶＬＳＩ回路を組み込んだ画像処理システム、携帯端末を提供することを目的とする。
【課題を解決するための手段】
【００２７】
上記目的を達成するため、本発明の第１のデジタルＶＬＳＩ回路は、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、前記演算器における担当ステージの演算処理の終了を検知する検知手段と、前記演算器ごとにクロックの供給／停止を制御するクロック供給制御手段とを備え、前記クロック供給制御手段が、前記検知手段により演算処理の終了が検知された前記演算器に対するクロック供給を停止し、前記検知手段によりすべての前記演算器における演算処理の終了が検知されれば次のパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開するように構成されたことを特徴としたものである。
上記構成により、すべての演算器がアイドル状態に入っている期間を省略することができ、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、従来のクロックゲーティングより一層の低消費電力化を図ることができる。【００２８】
次に、上記第１のデジタルＶＬＳＩ回路において、前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、前記クロック供給制御手段が、前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対するクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする。
上記構成により、すべての演算器がアイドル状態に入っている期間を省略することができ、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、従来のクロックゲーティングより一層の低消費電力化を図ることができる。なお、パイプライン演算処理はマクロブロックデータ単位で行なうものである。【００２９】
また、上記第１のデジタルＶＬＳＩ回路において、前記演算処理にかかるデータが、複数のマクロブロックデータ（前記マクロブロックデータは複数個のブロックデータにより構成される）を含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対するクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする。
なお、マクロブロックに含まれるブロック数は例えば２４個とする。
上記構成により、すべての演算器がアイドル状態に入っている期間を省略することができ、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、従来のクロックゲーティングより一層の低消費電力化を図ることができる。なお、パイプライン演算処理はブロックデータ単位で行なうものである。【００３０】
次に、本発明の第２のデジタルＶＬＳＩ回路は、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行する複数の演算器と、前記演算器における担当ステージの演算処理の終了を検知する検知手段と、前記演算器ごとにクロックの供給／停止を制御するクロック供給制御手段とを備え、前記クロック供給制御手段が、前記検知手段により、前記パイプライン演算処理において相前後する前段演算器と次段演算器のうち次段演算器の演算処理の終了が先に検知された場合、当該次段演算器に対してクロック供給を停止し、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知された場合、次のパイプライン演算処理に向けて前記次段演算器に対してクロック供給を再開するように構成されたことを特徴とする。【００３１】
なお、上記の第２のデジタルＶＬＳＩ回路において、前記クロック供給制御手段が、前記検知手段により、前記前段演算器の演算処理の終了が先に検知された場合、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できるまで、当該前段演算器に対してクロック供給を停止し、前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となれば、当該前段演算器に対してクロック供給を再開するように構成されることが好ましい。
上記構成により、パイプライン制御において前後に並ぶ演算器間で処理済みデータの受け渡しができる限り、シームレスにどんどんパイプライン処理を実行し、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、低消費電力化を図ることができる。【００３２】
次に、上記の第２のデジタルＶＬＳＩ回路において、前記演算処理にかかるデータが、複数のマクロブロックデータから構成され、処理を完了すべき制約時間（フレーム処理時間）が定められているフレームデータから構成される動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、前記クロック供給制御手段が、前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知されても、前記次段演算器へのクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする。【００３３】
また、上記の第２のデジタルＶＬＳＩ回路において、前記クロック供給制御手段が、前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前記前段演算器へのクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とする。
上記構成により、パイプライン制御において前後に並ぶ演算器間で処理済みデータの受け渡しができる限り、シームレスにどんどんパイプライン処理を実行し、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、低消費電力化を図ることができる。なお、パイプライン演算処理はマクロブロックデータ単位で行なうものである。【００３４】
次に、上記の第２のデジタルＶＬＳＩ回路において、前記演算処理にかかるデータが、複数のマクロブロックデータ（前記マクロブロックデータは複数個のブロックデータにより構成される）を含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記ブロックデータ単位で実行し、前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータ中の最後の前記ブロックデータにかかる演算処理においては、前記次段演算器へのクロック供給の停止後、前記前段演算器の演算処理の終了が検知されても前記次段演算器へのクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とすることが好ましい。
なお、マクロブロックに含まれるブロック数は例えば２４個とする。【００３５】
また、上記の第２のデジタルＶＬＳＩ回路において、前記クロック供給制御手段が、前記フレームデータ中の最後の前記マクロブロックデータの最後の前記ブロックデータにかかる演算処理においては、前記前段演算器へのクロック供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前記前段演算器へのクロック供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器へのクロック供給を再開することを特徴とすることが好ましい。
上記構成により、パイプライン制御において前後に並ぶ演算器間で処理済みデータの受け渡しができる限り、シームレスにどんどんパイプライン処理を実行し、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングの開始回数、終了回数を減少させることができ、低消費電力化を図ることができる。なお、パイプライン演算処理はブロックデータ単位で行なうものである。【００３６】
なお、上記第１または第２のデジタルＶＬＳＩ回路において、前記パイプライン演算処理のデータ処理量を前記所定の制約時間ごとにカウントし、次の所定の制約時間の処理時における前記演算器の動作電源電圧と基板バイアス電圧と動作周波数とを決定するフィードバック制御部と、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数とを調整する演算器調整部とを備え、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードバック制御による動的制御を行なうことを特徴とする。
上記構成によれば、フィードバック制御により、適切な演算器の動作電源電圧と基板バイアス電圧と動作周波数の調整を行なうことができる。【００３７】
また、上記第１または第２のデジタルＶＬＳＩ回路において、前記パイプライン演算処理に供される前に、前記パイプライン演算処理に供される前記所定の制約時間に含まれるデータ量を検知し、前記パイプライン演算処理にかかる処理負荷を予測する処理負荷予測部と、前記処理負荷予測部による予測に基づき、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数とを決定するフィードフォワード制御部と、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数とを調整する演算器調整部とを備え、前記演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードフォワード制御による動的制御を行なうことを特徴とする。
上記構成によれば、フィードフォワード制御により、適切な演算器の動作電源電圧と基板バイアス電圧と動作周波数の調整を行なうことができる。【００３８】
上記の第１または第２のデジタルＶＬＳＩ回路は、クロックゲーティング技術を利用するものであったが、演算器への電力供給のオンオフを制御することによる低消費電力化も可能である。つまり、クロックゲーティングにおいて演算器へのクロック供給を停止するタイミングで、演算器への電力供給を停止することとしても良い。
例えば、本発明の第３のデジタルＶＬＳＩ回路は、パイプライン演算処理の各ステージを担い、演算処理を実行する複数の演算器と、前記演算器における担当ステージの演算処理の終了を検知する検知手段と、前記演算器ごとに電力の供給／停止を制御する電力供給制御手段とを備え、前記電力供給制御手段が、前記検知手段により演算処理終了が検知された前記演算器に対する電力供給を停止し、前記検知手段によりすべての前記演算器における演算処理終了が検知されれば次のパイプライン演算処理に向けてすべての前記演算器への電力供給を再開するように構成されたことを特徴としている。
上記構成により、同様に、すべての演算器がアイドル状態に入っている期間を省略することができ、低消費電力化を図ることができる。さらに、演算器でのパイプライン演算処理を詰めて行なうことにより電力供給の開始回数、終了回数を減少させることができ、より一層の低消費電力化を図ることができる。【００３９】
また、本発明の第３のデジタルＶＬＳＩ回路において、前記演算処理にかかるデータが、複数のマクロブロックデータを含み、一定の処理期間（フレーム処理期間）が定められているフレームデータを備えた動画像データであり、前記演算処理が前記動画像の符号化・復号化処理であり、前記演算器が、前記パイプライン演算処理を前記マクロブロックデータ単位で実行し、前記電力供給制御部が、前記フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、前記検知手段によりすべての前記演算器における演算処理の終了が検知されてもすべての前記演算器に対する電力供給の停止を継続し、前記フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての前記演算器への電力供給を再開することを特徴とする。【００４０】
次に、本発明の第４のデジタルＶＬＳＩ回路は、パイプライン演算処理の各ステージを担い、演算処理を実行する複数の演算器と、前記演算器における担当ステージの演算処理の終了を検知する検知手段と、前記演算器ごとに電力の供給／停止を制御する電力供給制御手段とを備え、前記電力供給制御手段が、前記検知手段により、前記パイプライン演算処理において相前後する前段演算器と次段演算器のうち次段演算器の演算処理の終了が先に検知された場合、当該次段演算器に対して電力供給を停止し、前記次段演算器への電力供給の停止後、前記前段演算器の演算処理の終了が検知された場合、次のパイプライン演算処理に向けて前記次段演算器に対して電力供給を再開するように構成されたことを特徴とする。【００４１】
また、本発明の第４のデジタルＶＬＳＩ回路において、前記電力供給制御手段が、前記検知手段により、前記前段演算器の演算処理の終了が先に検知された場合、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できるまで、当該前段演算器に対して電力供給を停止し、前記前段演算器への電力供給の停止後、前記前段演算器が前記次段演算器に対して処理済みの演算処理データを出力できる状態となれば、当該前段演算器に対して電力供給を再開するように構成されたことを特徴とする。
上記構成により、パイプライン制御において前後に並ぶ演算器間で処理済みデータの受け渡しができる限り、シームレスにどんどんパイプライン処理を実行し、演算器のアイドル状態の発生を極力抑えることができるので、低消費電力化を図ることができる。また、演算器でのパイプライン演算処理を詰めて行なうことにより電力供給の開始回数、終了回数を減少させることができ、より一層の低消費電力化を図ることができる。【００４２】
上記第３または第４のデジタルＶＬＳＩ回路において、上記第１または第２のデジタルＶＬＳＩ回路と同様の種々の変形を行なうことができる。例えば、クロック供給を電力供給と読み替え、クロック供給制御手段を電力供給制御手段とする。
【発明の効果】
【００４３】
本発明に係るデジタルＶＬＳＩ回路によれば、実際のパイプライン演算処理において、クロックゲーティング技術を利用しつつ、制約時間内における演算器へのクロック供給のオンオフ切り替えを少なくすることにより低消費電力化を達成することができる。
また、本発明に係るデジタルＶＬＳＩ回路によれば、実際のパイプライン演算処理において、演算器ごとの電力供給を制御しつつ、制約時間内における演算器への電力供給オンオフの切り替えを少なくすることにより低消費電力化を達成すること【００４４】
また、本発明に係るデジタルＶＬＳＩ回路によれば、実際のパイプライン演算処理において、制約時間内に演算処理を完了しなければならないデータの演算処理に必要なサイクル数を最悪サイクル数から削減することができ、したがって制約時間内のデジタルＶＬＳＩ回路の動作周波数を低下させても制約時間内に所定の演算処理を完了することができ、したがってデジタルＶＬＳＩ回路の動作周波数、動作電源電圧、基板バイアス電圧を適切に制御することにより低消費電力化を達成することができる。【００４５】
本発明の画像処理システムによれば、動画像のデータ処理において低消費電力化が図られており、低消費電力が求められる様々なシステムに対して組み込むことが容易となり、柔軟なシステム設計が可能となる。【００４６】
本発明の携帯端末によれば、動画像のデータ処理において低消費電力化が図られており、携帯電話のような小型の端末においても動画像の符号化復号化処理を行なうことができ、携帯端末の用途が様々に広がる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明のデジタルＶＬＳＩ回路の実施例について、図面を参照しながら詳細に説明していく。本発明はパイプライン処理を実行するデジタルＶＬＳＩ回路に広く適用できるものであるが、ここでは一例として動画像の符号化・復号化を行なう用途に使用するものを示す。
なお、信号のオンオフに関し、以下の実施例ではハイアクティブとし、論理レベルがハイのときにアクティブになるように説明しているが、ローアクティブとし、論理レベルがローのときにアクティブになる構成であっても良い。
【実施例１】
【００４８】
図１は本発明の実施例１にかかるデジタルＶＬＳＩ回路の構成を模式的に示す図である。
演算器１０ａ〜１０ｃが処理終了検知器２０と接続された構成となっており、各演算器１０と処理終了検知器２０は終了フラグライン３０と処理開始フラグライン４０により接続されている。
演算器は図示の便宜上、演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）の３つのみ示しているが、パイプラインの段数に応じて演算器の数を増減した設計とすることができることは言うまでもない。
それぞれの演算器１０ａ〜１０ｃは、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行するものである。動画像の符号化・復号化を行なうパイプライン処理を実行するのであれば、例えば、演算器１（１０ａ）がエントロピーデコードステージを担当し、演算器２（１０ｂ）が逆Ｑ処理ステージを担当し、演算器３（１０ｃ）が逆Ｔ処理ステージを担当するものとする。それ以降のパイプライン処理ステージは図示を省略している。各演算器はシーケンシャルに接続され、前後の演算器の間で処理済のデータを前段から次段へ次々と受け渡していく構成となっている。各演算器で演算処理がなされたデータは各演算器に備えられるバッファに保存され、前後の演算器はこのバッファを介してデータを受け渡す。例えば演算器１で演算処理がなされたデータは演算器１に備えられたバッファに保存され、このバッファから次段の演算器２へデータが受け渡される。バッファはフリップフロップやＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などで構成される。【００４９】
図１において、各演算器１０ａ〜１０ｃは処理終了検知器２０と接続され、各演算器が担当する演算処理が終了すると演算器は終了フラグを立てる。つまり、処理終了検知器２０と接続されている終了フラグライン３０にアクティブ信号を出力する。この例ではハイアクティブ論理としてハイ信号を出力している（ローアクティブ論理の場合はロー信号を出力すれば良い）。【００５０】
この実施例１の構成では、処理終了検知器２０が各演算器１０の終了フラグが立てられたことを検知することにより、演算器１０における担当ステージの演算処理の終了を検知することができる。本実施例１では、処理終了検知器２０は演算器１０における演算処理の終了を終了フラグを介して検知する仕組みとなっている。なお、この処理終了検知器２０は多入力のＡＮＤ回路となっている。【００５１】
演算処理が終了した演算器１０に対してクロックゲーティングが行なわれる。この実施例では、クロック供給制御手段は、各演算器１０は演算処理が終了すると終了フラグを出力するとともにクロックの供給が一時停止されるように構成されている。
図２はクロック供給制御手段の構成例を示す図である。図２に示すように、状態マシンとフリップフロップとＡＮＤ回路により自動的にクロック供給のオンオフが制御される構成となっている。状態マシン１１からフリップフロップ１２を介してＡＮＤ回路１３に接続されている。演算器１０の出力ラインの一部は状態マシン１１に接続され、一部は終了フラグライン３０に接続されている。図２（ａ）は演算器１０にクロック供給を開始する際の動作の流れの一例を示す図、図２（ｂ）は演算器１０のクロック供給を一時停止する動作の流れの一例を示す図である。いま、図２（ａ）に示すように、フリップフロップ１２がオンとなりＡＮＤ回路１３を通してクロック入力ライン１４からクロックが供給されている状態にあるとする。
図２（ｂ）において、演算器１０はパイプラインの演算処理が終了すると終了信号を出力する。当該終了信号は状態マシン１１を介してフリップフロップ１２に入力され、フリップフロップ１２を反転させてオフとなる。当該オフ信号によりＡＮＤ回路１３はオフとなる。そのため図２（ａ）の状態ではクロック入力ライン１４から供給されていたクロックの供給が停止する。
上記クロック供給の停止処理は演算器ごとに行なわれる。そのため、終了フラグを出力した演算器１０から順々にクロックの供給が停止されて行くこととなる。【００５２】
図１に戻って説明を続ける。処理終了検知器２０は、多入力のＡＮＤ回路となっており、すべての演算器１０の終了フラグを検知した場合（すべての演算器において処理が終了した場合）、次のパイプライン演算処理に向けてすべての演算器に対してクロック供給を再開するよう処理開始フラグライン４０に処理開始フラグ信号を出力する構成となっている。処理開始フラグライン４０はすべての演算器１０に対して並列に接続されており、処理開始フラグ信号はすべての演算器１０に対して一斉に通知される仕組みとなっている。各演算器１０は処理開始フラグ信号を受け取ると一斉にクロック供給の開始を受け、次のパイプライン処理の演算処理に移る。図２（ａ）に示すように、処理開始フラグ信号が処理開始フラグライン４０から状態マシン１１を介してフリップフロップ１２に入力され、フリップフロップ１２は反転する（オフからオンへ）。図２（ｂ）の状態ではフリップフロップ１２がオフでありクロックの供給が停止されていたが、図２（ａ）の状態ではフリップフロップ１２がオンとなりＡＮＤ回路１３を介して演算器１０に対してクロック供給が再開する。このクロック供給は演算器１０のすべてにおいて一斉に再開される仕組みとなっている。
本実施例１では、上記構成の制御に基づくクロック供給／停止制御の仕組みがクロック供給制御手段となっている。このように、本実施例１の構成によれば、パイプライン処理において担当ステージの演算処理が終了した演算器１０から順にクロックの供給が停止して行き、すべての演算器１０の演算処理が終了した場合、次のパイプライン処理の演算処理に向けてすべての演算器１０へのクロック供給が一斉に再開される。【００５３】
図３は実施例１のデジタルＶＬＳＩ回路によるパイプライン処理を示すタイミングチャートである。このタイミングチャートでも演算器は、演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）の３つのみ示している。
図３のタイミングチャートにおいて、第１クロックの時点では演算器１（１０ａ）においてデータ（ｎ＋２）が処理され、演算器２（１０ｂ）においてデータ（ｎ＋１）が処理され、演算器３（１０ｃ）においてデータ（ｎ）が処理されている。デジタルＶＬＳＩ回路がマクロブロックパイプラインで構成されていればデータ（ｎ）をマクロブロック（ｎ）で、ブロックパイプラインで構成されていればデータ（ｎ）をブロック（ｎ）と置き換えればよい。【００５４】
演算器１（１０ａ）におけるデータ（ｎ＋２）の処理は、図中の第１クロックで完了している。演算器１（１０ａ）はこの第１クロックで終了フラグを立て終了フラグライン３０から処理終了検知器２０に対して演算処理終了を通知するとともに、クロックゲーティングを行なう。つまり、図２（ｂ）に示したようにクロックの供給が停止される。【００５５】
演算器２（１０ｂ）におけるデータ（ｎ＋１）の処理は、図中の第３クロックで完了している。演算器２はこの第３クロックで終了フラグを立てて終了フラグライン３０から処理終了検知器２０に対して演算処理終了を通知する。この場合、後述するように処理終了検知器の処理開始信号によりクロックゲーティングに遷移することなく次マクロブロックの処理に移ることとなる。【００５６】
演算器３（１０ｃ）におけるマクロブロック（ｎ）の処理も、図中の第３クロックで完了している。演算器３はこの第３クロックで終了フラグを立てて終了フラグライン３０から処理終了検知器２０に対して演算処理終了を通知する。この場合も、後述するように処理終了検知器の処理開始信号によりクロックゲーティングに遷移することなく次マクロブロックの処理に移ることとなる。【００５７】
処理終了検知器２０は、演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）の終了フラグ信号についてＡＮＤ処理を行なう。この例では、第３クロックで演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）からの終了フラグがすべて揃うこととなりＡＮＤ条件が成立する。処理終了検知器２０は次のパイプライン演算処理に向けてすべての演算器１０へのクロック供給を再開するよう処理開始フラグライン４０に処理開始フラグ信号を出力する。処理終了検知器２０の出力ラインは演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）のすべてに対して並列に接続されているので、処理開始フラグ信号は演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）のすべてに対して一斉に通知される。演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）は処理開始フラグ信号を受け取ると一斉にクロックの供給が再開され、次のパイプライン処理の演算処理に移る。【００５８】
第４クロックにおいて、演算器１０はクロックの供給開始を受けると、まず、終了フラグを非アクティブにする。この例ではハイアクティブであるのでローに切り替える。次に、次のパイプライン処理が開始される。演算器１（１０ａ）はデータ（ｎ＋３）に対して処理の実行を開始し、演算器２（１０ｂ）はデータ（ｎ＋２）に対して処理の実行を開始し、演算器３（１０ｃ）はデータ（ｎ＋１）に対して処理の実行を開始する。【００５９】
図４は、実施例１にかかるデジタルＶＬＳＩ回路におけるパイプライン動作の進行を模式的に示す図である。
縦軸に演算器１、２、３など各演算器を模式的に並べている。演算器１（１０ａ）による処理が終了すれば、演算処理済みデータが演算器２（１０ｂ）に受け渡されて演算器２による処理が行なわれ、当該処理が終了すれば、演算処理済みデータが演算器３（１０ｃ）に受け渡されて演算器３による処理が行なわれる。このように縦軸方向にパイプライン処理の流れが展開されている。
横軸はタイミングである。第１段目には、従来技術による最悪サイクル数を確保せしめつつパイプライン処理を実行する場合のタイミング（タイミング０〜１０００）が表示されている。第２段目には本発明の実施例１にかかるデジタルＶＬＳＩ回路のパイプライン処理を実行する場合のタイミング（タイミング０〜１０００）が表示されている。図４ではハッチングが施されている部分は演算処理が実行されている期間を示しており、ハッチングがない部分は演算処理が終了し、次のデータの処理の実行までの間のクロックゲーティング期間を示している。【００６０】
図４のタイミングチャートに示すように、各演算器のデータの処理について、その開始タイミングが一斉に揃っていることがわかる。つまり、処理終了検知器２０から処理開始フラグ信号が一斉に通知されると当該タイミングを持って各演算器が担当するパイプラインステージの処理を一斉に開始することが分かる。このタイミングは処理終了検知器２０から処理開始フラグ信号が出力されたタイミング（第２段目に表示したタイミング）となっている。図４のタイミングチャートを見れば分かるように、演算器１０のうち、担当するパイプライン処理が早く終了したものは、他の演算器１０におけるパイプライン処理が終了するまでの間、クロックゲーティングが行なわれている。例えば演算器１（１０ａ）では、２７５サイクルと３００サイクルの間、４２５サイクルと４５０サイクルの間、５７５サイクルと６００サイクルの間、クロックゲーティングが行なわれる期間がある。【００６１】
図４のタイミングチャートと図２３のタイミングチャートを比較すると明らかなように、従来技術のデジタルＶＬＳＩ回路におけるパイプライン動作の進行と、本発明の実施例１のデジタルＶＬＳＩ回路におけるパイプライン動作の進行では、図４と図２３のハッチングを施した部分の面積の総合計は同じである。つまり、各演算器１０が動作している期間の総合計サイクル数は同じである。同様に、ハッチングを施していない部分の面積の総合計は同じであり、クロックゲーティングの総合計時間が同じものであることが分かる。つまり、クロックゲーティングを実行する時間を長くすることにより得られる低消費電力効果は図４の場合も図２３の場合も基本的に同じである。【００６２】
しかし、本発明の実施例１にかかる図４では、各演算器１０での演算処理をできるだけ詰めてシームレスに連続処理として実行することにより、クロックゲーティング開始によるクロックの供給停止の回数と、クロックゲーティング停止によるクロックの供給開始の回数が減少している。例えば、図４では、演算器１がデータ９の処理を完了するまでのパイプライン処理までを見た場合、演算器１におけるクロックゲーティング開始回数が３回（２７５サイクル、４２５サイクル、５７５サイクル）であり、クロックゲーティング停止回数も３回ある（３００サイクル、４５０サイクル、６００サイクル）。同様に演算器２に関してはクロックゲーティング開始回数が３回、クロックゲーティング停止回数が３回ある。演算器３に関してもクロックゲーティング開始回数が３回、クロックゲーティング停止回数が３回ある。一方、図２３の場合は、１回のパイプライン処理ごとにクロックゲーティングが発生しているので、演算器１がデータ９の処理を完了するまでのパイプライン処理を見た場合、クロックゲーティング開始回数が９回、クロックゲーティング停止回数が９回ある。同様に演算器２についてはクロックゲーティング開始回数が８回、クロックゲーティング停止回数が８回、演算器３についてもクロックゲーティング開始回数が７回、クロックゲーティング停止回数が７回ある。【００６３】
このように明らかに、クロックゲーティング開始回数およびクロックゲーティング停止回数が減少している。上記では９回のパイプライン処理実行での回数で比較したが、パイプライン処理実行回数が多くなるほどその差は広がり、本発明のデジタルＶＬＳＩ回路のクロックゲーティング開始回数、停止回数とも、従来のデジタルＶＬＳＩ回路のクロックゲーティング開始回数、停止回数がより少なくなることが理解されよう。例えば、ＨＤＴＶ画像（１９２０×１０８８画素）の１フレームは８１６０個のマクロブロックで構成されるため、ＨＤＴＶ画像の処理をマクロブロックパイプラインで実施する場合、パイプライン処理の実行回数は８１６０回となる。【００６４】
次に、フレームに含まれている最終のマクロブロックのパイプライン処理の終了時の動作について説明する。
演算器１０は動画像の符号化・復号化処理をパイプライン演算処理によりマクロブロックデータ単位で実行する演算器である場合、上記のように演算器１０におけるパイプライン処理を詰めていくので、１フレームの処理時間中に次のフレームに含まれるマクロブロックの処理を行える時間が存在する。例えば、図４において１フレームに含まれるマクロブロックが８個であるとした場合、演算器１は５７５サイクルで１フレーム分のマクロブロックの処理が完了し、最終段の演算器３が８番目のマクロブロックの処理を完了する７５０サイクルまで次フレームに含まれるマクロブロックの処理を行えるサイクルが存在する。しかし、フレームデータで構成されている動画像処理は、１フレームの処理期間が所定の制約時間内に定められているため、演算器１はフレームに含まれる最後のマクロブロックの処理を完了したのち、次のフレームに含まれるマクロブロックの処理は行わない。演算器２についても同様に次のフレームに含まれるマクロブロックの処理は行わない（図２８）。【００６５】
従って、フレームデータ中の最後のマクロブロックデータにかかる演算処理においては、処理終了検知器２０によりすべての演算器１０における演算処理の終了が検知されてもすべての演算器１０に対するクロック供給の停止を継続し、フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての演算器１０へのクロック供給を再開する仕組みとする。
例えば、演算器１０が最終マクロブロックの演算処理が終了しても終了信号を出力しないという仕組みが考えられる。この場合、処理終了検知器２０が別途、フレーム処理期間の終了の通知を制御部（図示せず）から受け、処理開始フラグラインに処理開始フラグ信号を出力すれば良い。
他には例えば、演算器１０は最終マクロブロックの演算処理が終了すれば同様に終了信号を出力するが、その際、最終マクロブロックの処理の終了という属性信号を付して出力する仕組みが考えられる。この場合、処理終了検知器２０は、フレーム処理期間の終了の通知を制御部（図示せず）から受けるまでは、処理開始フラグラインに処理開始フラグ信号を出力するのを待ち、フレーム処理期間の終了の通知を受けた後、処理開始フラグラインに処理開始フラグ信号を出力すれば良い。【００６６】
図４に示すように、最終マクロブロックの演算処理を終了した後、クロックゲーティングを継続する期間が設けられる。
上記のように、次のフレーム処理期間の開始まで、まとめてクロックゲーティングが持続的に行なわれているので、クロックゲーティングの開始回数、停止回数としては１回とカウントされる。【００６７】
以上、クロックゲーティング開始回数およびクロックゲーティング停止回数が減少することにより、より低消費電力化を図ることができる。
なお、上記の実施例１のデジタルＶＬＳＩ回路は、パイプライン演算処理をマクロブロック単位（マクロブロックデータは複数個のブロックデータにより構成される。なお２４個で構成されることが多い）で実行する構成例であったが、ブロック単位で実行する構成とすることも可能である。
ブロック単位でパイプライン処理を実行する場合は、演算器がパイプライン演算処理をブロックデータ単位で実行し、クロック供給制御手段が、フレームデータ中の最後のマクロブロックデータ中の最後のブロックデータにかかる演算処理においては、検知手段によりすべての演算器における演算処理の終了が検知されてもすべての演算器に対するクロック供給の停止を継続し、フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての演算器へのクロック供給を再開するものとする。
以上、本実施例１のデジタルＶＬＳＩ回路によれば、図４と図２３の比較から明らかなように、クロックゲーティング開始回数およびクロックゲーティング停止回数が減少しており、より一層の低消費電力化が図られていることが分かる。
【実施例２】
【００６８】
実施例２は、パイプライン処理の前後の演算器同士がハンドシェイク型の連携をもってパイプライン処理の演算処理を詰めて行ない、クロックゲーティング開始回数およびクロックゲーティング停止回数を少なくし、低消費電力化を図ったデジタルＶＬＳＩ回路の例である。なお、本実施例２では、パイプライン演算処理の単位をマクロブロック単位とする構成として説明するが、ブロック単位とする構成も可能である。
図６は本発明の実施例２にかかるデジタルＶＬＳＩ回路の構成を模式的に示す図である。
パイプライン演算処理の並びにおいて前後の演算器１０ａ〜１０ｃがシーケンシャルに接続された構成となっており、演算器同士がハンドシェイクすることにより連携する構成となっている。
演算器１０は図示の便宜上、演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）の３つのみ示しているが、パイプラインの段数に応じて演算器の数を増減した設計とすることができることは言うまでもない。
それぞれの演算器１０ａ〜１０ｃは、パイプライン演算処理の各ステージを担い、クロックに同期して演算処理を実行するものである。ここでは、動画像の符号化・復号化を行なうパイプライン処理を実行するので、例えば、演算器１（１０ａ）がエントロピーデコードステージを担当し、演算器２（１０ｂ）が逆Ｑ処理ステージを担当し、演算器３（１０ｃ）が逆Ｔ処理ステージを担当するものとする。それ以降のパイプライン処理ステージは図示を省略している。各演算器はシーケンシャルに接続され、前後の演算器の間で処理済のデータを前段から次段へ次々と受け渡していく構成となっている。各演算器で演算処理がなされたデータは各演算器に備えられるバッファに保存され、前後の演算器はこのバッファを介してデータを受け渡す。例えば演算器１で演算処理がなされたデータは演算器１に備えられたバッファに保存され、このバッファから次段の演算器２へデータが受け渡される。バッファはフリップフロップやＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などで構成される。【００６９】
図６に示すように、前段の演算器１０と次段の演算器１０は要求信号と受理信号を交換し合い、両者の信号の交換が成立した場合に前段の演算器１０から処理済みデータが次段の演算器１０に受け渡される仕組みとなっている。
各演算器はパイプライン処理の並びにおいて前後の演算器と受理信号ライン５０と要求信号ライン６０とデータライン７０の３本ずつのラインを介して接続されている。【００７０】
本実施例２のデジタルＶＬＳＩ回路の演算器およびクロック供給制御手段は、例えば、以下の７つのルールに従って動作するように構成されている。
（ルール１）当段の演算器１０は自らの処理が終了すれば、受理信号ライン５０を介して次段の演算器１０に対して受理信号を発し、自らが処理した処理済データを受け渡し準備が完了した旨を伝える。
（ルール２）次段の演算器１０は自らの処理が終了すれば、要求信号ライン６０を介して当段の演算器１０に対して要求信号を発し、当段の演算器１０からデータの受け入れ準備が完了した旨を伝える。
（ルール３）当段演算器１０と次段演算器１０が相互にデータの受け渡しに関する状況を交換し合い、両者ともデータの受け渡しの準備が出来ていることを確認できればデータの受け渡しを行なう。
（ルール４）前段演算器１０は自らの処理が終了すれば、受理信号ライン５０を介して当段の演算器１０に対して受理信号を発し、自らが処理した処理済データを受け渡し準備が完了した旨を伝える。
（ルール５）当段の演算器１０は自らの処理が終了すれば、要求信号ライン６０を介して前段の演算器１０に対して要求信号を発し、前段の演算器１０からデータの受け入れ準備が完了した旨を伝える。
（ルール６）前段演算器１０と当段演算器１０が相互にデータの受け渡しに関する状況を交換し合い、両者ともデータの受け渡しの準備が出来ていることを確認できればデータの受け渡しを行なう。
（ルール７）演算器１０は処理済データを次段の演算器１０に出力するまで、次のデータの処理を開始しない。
上記７つのルールに従って、パイプライン処理の前後の演算器同士がハンドシェイク型の連携をもってパイプライン処理の演算処理を詰めて行ない、クロックゲーティング開始回数およびクロックゲーティング停止回数を少なくし、低消費電力化を図るものである。【００７１】
クロック供給制御手段は上記ルールを実現する回路構成であれば特に限定されない。図７は、本実施例２にかかる演算器１０およびクロック供給制御手段の構成の一例を詳しく示したものである。
図７に示すように、４つの状態マシン（１１１〜１１４）と４つのフリップフロップ（１２１〜１２４）と３つのＡＮＤ回路（１３１〜１３３）により自動的にクロック供給のオンオフが制御される構成となっている。【００７２】
当段演算器１０と次段演算器１０との間の接続関係は以下のようになっている。
受理信号ライン５０ｂは状態マシン１１３からフリップフロップ１２３を介してＡＮＤ回路１３２に接続されている。また、要求信号ライン６０ｂは状態マシン１１４からフリップフロップ１２４を介してＡＮＤ回路１３２に接続されている。
受理信号ライン５０ｂと要求信号ライン６０ｂの両者がともにアクティブ（ハイ）になることにより、ＡＮＤ回路１３２がオンとなる。つまり、ＡＮＤ回路１３２がオンとなった場合、当該演算器１０と次段演算器１０との間でハンドシェイクが成立し、両者間でデータの受け渡しが行なわれ得る状態となっている。この状態で上記のルール１、ルール２、ルール３が成立する。次段演算器１０が既に処理済みデータを出力済みであればルール７も成立している。
ここで、また、ＡＮＤ回路１３２の出力が直接演算器１０に入力されており、当段演算器１０は次段演算器１０との間でハンドシェイクが成立し、両者間でデータの受け渡しが行なわれ得る状態となったことを検知できる仕組みとなっており、演算器１０は次段演算器１０に処理済みデータを受け渡すことができる構成例となっている。【００７３】
一方、当段演算器１０と前段演算器１０との間の接続関係は以下のようになっている。
受理信号ライン５０ａは状態マシン１１１からフリップフロップ１２１を介してＡＮＤ回路１３１に接続されている。また、要求信号ライン６０ａは状態マシン１１２からフリップフロップ１２２を介してＡＮＤ回路１３１に接続されている。
受理信号ライン５０ａと要求信号ライン６０ａの両者がともにアクティブ（ハイ）になることにより、ＡＮＤ回路１３１がオンとなる。つまり、ＡＮＤ回路１３１がオンとなった場合、当該演算器１０と前段演算器１０との間でハンドシェイクが成立し、両者間でデータの受け渡しが行なわれ得る状態となっている。この状態で上記のルール４、ルール５、ルール６が成立する。ただし、当段演算器１０においてルール７が成立しないと実際のデータの受け渡しは行なわれない。例えば、当段演算器１０の処理済みデータが既に次段演算器１０に出力済みであればルール７も満たされるので前段演算器と当段演算器との間でデータの受け渡しが行なわれる。【００７４】
図７に示した構成例の動作の例を２つ示す。
まず、第１の動作例は、当段演算器１０のパイプライン処理が先に終了し、次に次段演算器１０のパイプライン処理が終了し、最後に前段演算器１０のパイプライン処理が終了した場合の流れの場合の動作例である。その流れを図８から図１０に分けて説明する。【００７５】
図８は、当段演算器１０のパイプライン処理が終了した場合の処理の流れを示す図である。
当段演算器１０は処理が終了すると、当段演算器１０は状態マシン１１３に対して終了信号を発する。状態マシン１１３は次段演算器１０への受理信号ラインに対して接続されており、受理信号レベルをアクティブ（ハイ）とする。また、状態マシン１１３はフリップフロップ１２３に信号を出力し、フリップフロップ１２３を反転させる（オフ→オン）。この状態マシン１１３はこの状態遷移を維持し、出力状態を保つ。【００７６】
図９は、図８の状態から次段演算器１０のパイプライン処理が終了し、次段演算器１０の要求信号を検知した場合の処理の流れを示す図である。
次段演算器１０はパイプライン処理が終了すると、当段演算器１０への要求信号ラインをアクティブ（ハイ）とし、当段演算器１０の状態マシン１１４に対して要求信号を発する。要求信号が出されたということは次段演算器１０は既に処理済みデータを次々段以降の演算器に出力済みであることを意味する。当段演算器１０の状態マシン１１４はフリップフロップ１２４に信号を出力し、フリップフロップ１２４を反転させる（オフ→オン）。この状態マシン１１４はこの状態遷移を維持し、出力状態を保つ。【００７７】
この図９の状態において、ＡＮＤ回路１３２は両入力ともアクティブ（ハイ）となっているのでオンとなる。
ＡＮＤ回路１３２の出力は当段演算器１０に入力されており、当段演算器１０は、当段演算器１０と次段演算器１０の間でハンドシェイクが成立し、当段演算器１０の処理済みデータを次段に出力する状態となったことを検知するので、当段演算器１０の処理済データを次段演算器１０に対して出力する。
当段演算器１０は処理済データを次段に出力したので、前段から処理済データを受け入れられる状態となったので、状態マシン１１２を介して前段演算器１０に対して要求信号ラインを介して要求信号を出力する。
この図９の後、当段演算器１０はクロック供給が停止され、クロックゲーティング状態に入る。【００７８】
図１０は、図９の状態から前段演算器１０のデータ処理が終了した場合の処理の流れを示す図である。
前段演算器１０は処理が終了すると、当段演算器１０への受理信号ラインをアクティブ（ハイ）とし、当段演算器１０の状態マシン１１１に対して受理信号を発する。状態マシン１１１はフリップフロップ１２１に信号を出力し、フリップフロップ１２１を反転させる（オフ→オン）。この状態マシン１１１はこの状態遷移を維持し、出力状態を保つ。
この図１０の状態において、ＡＮＤ回路１３１は両入力ともアクティブ（ハイ）となっているのでオンとなる。前段演算器１０と当段演算器１０との間でハンドシェイクが成立していることとなる。なお、前段演算器１０と当段演算器１０との間でハンドシェイクが成立している場合は当段演算器１０は既に処理済みデータを次段に出力済みであるので、前段演算器１０から処理済みデータが当段演算器１０に受け渡される。
さらに、図１０の状態において、ＡＮＤ回路１３３は、ＡＮＤ回路１３１からの入力およびＡＮＤ回路１３２からの入力ともアクティブ（ハイ）となっているのでオンとなる。
ここで、ＡＮＤ回路１３３はクロック入力との間ではゲートとして動作し、クロックゲートがアクティブになったので、クロック供給が開始される。【００７９】
以上が、当段演算器１０のデータ処理が先に終了し、次に次段演算器１０のデータ処理が終了し、最後に前段演算器１０の処理が終了した場合の流れの場合の動作例である。このように、当段演算器１０、次段演算器１０、前段演算器１０の順序にてパイプライン処理が終了する場合、次段演算器１０のパイプライン処理終了後、前段演算器１０のパイプライン処理が終了するまでの間、クロックゲーティングが行なわれることとなる。【００８０】
次に、第２の動作例は、当段演算器１０のデータ処理が先に終了し、次に前段演算器１０のデータ処理が終了し、最後に次段演算器１０の処理が終了した場合の流れの場合の動作例である。その流れを図１１から図１３に分けて説明する。
当段演算器１０のデータ処理が終了した場合の図１１に示す動作は、図８に示したものと同じであるので、ここでの説明は省略する。【００８１】
次に、図１２は、図１１の状態から前段演算器１０のデータ処理が終了した場合の処理の流れを示す図である。前段演算器１０は処理が終了すると、当段演算器１０への受理信号ラインをアクティブ（ハイ）とし、当段演算器１０の状態マシン１１１に対して受理信号を発する。状態マシン１１１はフリップフロップ１２１に信号を出力し、フリップフロップ１２１を反転させる（オフ→オン）。この状態マシン１１１はこの状態遷移を維持し、出力状態を保つ。この図１２の状態では、ＡＮＤ回路１３１、ＡＮＤ回路１３２とも一方の信号のみがアクティブ（ハイ）であり、他方は非アクティブ（ロー）となっているのでオフのままであり、前段演算器１０と当段演算器１０との間でもハンドシェイクが成立しておらず、次段演算器１０と当段演算器１０との間でもハンドシェイクが成立していないこととなる。
この図１２の後、当段演算器１０はクロック供給が停止され、クロックゲーティング状態に入る。【００８２】
次に、図１３は、図１２の状態から次段演算器１０のパイプライン処理が終了し、次段演算器１０から要求信号が検知された場合の動作を示す図である。
次段演算器１０はパイプライン処理が終了すると、当段演算器１０への要求信号ラインをアクティブ（ハイ）とし、当段演算器１０の状態マシン１１４に対して要求信号を発する。要求信号が出されたということは次段演算器１０は既に処理済みデータを次々段以降の演算器に出力済みであることを意味する。当段演算器１０の状態マシン１１４はフリップフロップ１２４に信号を出力し、フリップフロップ１２４を反転させる（オフ→オン）。この状態マシン１１４はこの状態遷移を維持し、出力状態を保つ。
この図１３の状態において、ＡＮＤ回路１３２は両入力ともアクティブ（ハイ）となっているのでオンとなる。
ＡＮＤ回路１３２の出力は当段演算器１０に入力されており、当段演算器１０は、当段演算器１０と次段演算器１０の間でハンドシェイクが成立し、当段演算器１０の処理済みデータを次段に出力する状態となったことを検知するので、当段演算器１０の処理済データを次段演算器１０に対して出力する。【００８３】
当段演算器１０は処理済データを次段に出力したので、前段から処理済データを受け入れられる状態となったので、状態マシン１１２を介して前段演算器１０に対して要求信号ラインを介して要求信号を出力する。
前段演算器１０は、当段演算器１０からの要求信号ラインがアクティブ（ハイ）になったことを受け、当段演算器１０に対して処理済みデータを受け渡す。
この図１３の状態において、ＡＮＤ回路１３１は両入力ともアクティブ（ハイ）となっているのでオンとなる。
さらに、図１３の状態において、ＡＮＤ回路１３３は、ＡＮＤ回路１３１からの入力およびＡＮＤ回路１３２からの入力ともアクティブ（ハイ）となっているのでオンとなる。
ここで、ＡＮＤ回路１３３はクロック入力との間ではゲートとして動作し、クロックゲートがアクティブになったので、クロック供給が開始される。【００８４】
以上が、当段演算器１０のデータ処理が先に終了し、次に前段演算器１０のデータ処理が終了し、最後に次段演算器１０の処理が終了した場合の流れの場合の動作例である。このように、当段演算器１０、前段演算器１０、次段演算器１０の順序にてパイプライン処理が終了する場合、前段演算器１０のパイプライン処理終了後、次段演算器１０のパイプライン処理が終了するまでの間、クロックゲーティングが行なわれることとなる。【００８５】
図１４は実施例２のデジタルＶＬＳＩ回路によるパイプライン処理を示すタイミングチャートである。このタイミングチャートでも演算器は、演算器１（１０ａ）、演算器２（１０ｂ）、演算器３（１０ｃ）の３つのみ示している。
図１４のタイミングチャートにおいて、第１クロックの時点では演算器１（１０ａ）においてデータ（ｎ＋２）が処理され、演算器２（１０ｂ）においてデータ（ｎ＋１）が処理され、演算器３（１０ｃ）においてデータ（ｎ）が処理されている。【００８６】
演算器１（１０ａ）は、データ（ｎ＋２）のパイプライン処理を図中の第１クロックで完了しており要求信号を発している。なお、演算器２（１０ｂ）から受理信号を第３クロックに受けている。
演算器２（１０ｂ）は、データ（ｎ＋１）のパイプライン処理を図中の第４クロックで完了しており要求信号を発している。なお、演算器３（１０ｃ）から受理信号を第１クロックに受けている。
演算器３（１０ｃ）は、データ（ｎ）のパイプライン処理を図中の第２クロックで完了しており要求信号を発している。なお、次段演算器から受理信号を第４クロックに受けている。【００８７】
図１４のタイミングチャートでは、演算器１（１０ａ）では上記の第２の動作例（図１１から図１３に示した動作例）によりクロックゲーティングが第２クロックから第３クロックまで行なわれている。演算器２（１０ｂ）では演算器２（１０ｂ）での処理完了前に演算器１（１０ａ）および演算器３（１０ｃ）が処理を完了しているため、クロックゲーティングされる期間は存在せず、（ｎ＋１）番目のデータの処理が完了した次のクロックで（ｎ＋２）番目のデータの処理が開始されている。演算器３（１０ａ）では上記の第１の動作例（図１１から図１３に示した動作例）によりクロックゲーティングが第３クロックから第４クロックまで行なわれている。【００８８】
図１５は、実施例２にかかるデジタルＶＬＳＩ回路におけるパイプライン動作の進行を模式的に示す図である。図１５に示した各図の要素の説明は図４に示した各図の要素の説明と同様でありここでの説明は省略する。
図１５のタイミングチャートに示すように、演算器１０のうち、担当するパイプライン処理が早く終了したものは、前後の演算器１０におけるパイプライン処理が終了するまでの間、クロックゲーティングが行なわれている。【００８９】
例えば、演算器２（１０ｂ）の５００サイクルから５２５サイクルの間、演算器３（１０ｃ）の６２５サイクルから６５０サイクルの間にクロックゲーティングが行なわれる期間がある。この例では、前段の演算器の処理が完了した後、当段のクロックゲーティングが解除される上記動作例１の場合（図８から図１０に示した動作例）のクロックゲーティングである。
例えば、演算器１（１０ａ）の３５０サイクルから３７５サイクルの間と４２５サイクルと４５０サイクルの間、演算器２（１０ｂ）の２７５サイクルから３００サイクルの間にクロックゲーティングが行なわれる期間がある。この例では、次段の演算器の処理が完了した後、当段の演算器のクロックゲーティングが解除される上記の動作例２の場合（図１１から図１３に示した動作例）のクロックゲーティングである。【００９０】
実施例１では、同じパイプラインステージにおいてすべての演算器の処理が終了するまでクロックゲーティング期間が設けられたが、実施例２では、上記のように、同じパイプラインステージにおいて当段演算器の前後の演算器の処理が終了するまでクロックゲーティング期間が設けられているので、実施例２の方が最終マクロブロックのパイプライン処理がより早く終了し、また、クロックゲーティングの開始回数、停止回数が低減される可能性があることが分かる。
なお、上記の実施例２のデジタルＶＬＳＩ回路は、パイプライン演算処理をマクロブロック単位（マクロブロックデータは複数個のブロックデータにより構成される。なお２４個で構成されることが多い）で実行する構成例であったが、ブロック単位で実行する構成とすることも可能である。
ブロック単位でパイプライン処理を実行する場合は、演算器がパイプライン演算処理をブロックデータ単位で実行し、クロック供給制御手段が、フレームデータ中の最後のマクロブロックデータ中の最後のブロックデータにかかる演算処理においては、次段演算器へのクロック供給の停止後、前段演算器の演算処理の終了が検知されても次段演算器へのクロック供給の停止を継続し、フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての演算器へのクロック供給を再開する構成とする。
また、クロック供給制御手段が、フレームデータ中の最後のマクロブロックデータの最後のブロックデータにかかる演算処理においては、前段演算器へのクロック供給の停止後、前段演算器が次段演算器に対して処理済みの演算処理データを出力できる状態となった場合でも、前段演算器へのクロック供給の停止を継続し、フレーム処理期間の経過後、次のフレームデータのパイプライン演算処理に向けてすべての演算器へのクロック供給を再開する構成とする。
【実施例３】
【００９１】
実施例３のデジタルＶＬＳＩ回路は、演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードバック制御又はフィードフォワード制御による動的制御を行なうものである。
実施例１、実施例２に示した本発明のパイプラインで構成されるデジタルＶＬＳＩ回路では従来のパイプラインで構成されるデジタルＶＬＳＩ回路と比較して、復号化処理対象ビットストリームに含まれる有効ブロック数の大小や有効係数の数の大小に依存して、復号化処理に必要なサイクル数がフレーム単位に大きく変動する。また、符号化処理においても、動き補償処理で実行されるブロックマッチング回数や発生する有効ブロック数の大小や有効係数の大小に依存して、符号化処理に必要なサイクル数がフレーム単位に大きく変動する。したがって、実施例１、実施例２に示した本発明の専用ハードウェア構成のデジタルＶＬＳＩ回路であれば、フィードバック型の動的制御やフィードフォワード型の動的制御を適用して演算器の動作電源電圧と基板バイアス電圧を適切な値に抑えて消費電力を削減することができる。また、演算器の動作周波数を適切な値に抑えることも消費電力削減には効果的である。【００９２】
図１６は、専用ハードウェア構成のデジタルＶＬＳＩ回路に対してフィードバック型の動的制御を適用したブロック図である。
処理済マクロブロックカウンタ８０は、パイプライン演算処理のデータ処理量をフレームデータごとにカウントする部分である。
フィードバック制御部８１は、処理済マクロブロックカウンタ８０がカウントした処理済マクロブロックのカウント数に応じて現在処理中のフレームに含まれている未処理のマクロブロックの個数と現在処理中のフレームの処理を完了しなければならない時刻とから演算器の動作周波数を計算する部分である。 
演算器調整部８２は、フィードバック制御部８０の決定した動作周波数に基づき、演算器の動作電源電圧と基板バイアス電圧と動作周波数とを調整する部分である。【００９３】
図１６に示すように、実施例１または実施例２に示したデジタルＶＬＳＩ回路１００に対して、処理済マクロブロックカウンタ８０、フィードバック制御部８１、演算器調整部８２によりフィードバックループを形成することにより、デジタルＶＬＳＩ回路１００中の演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードバック制御による動的制御を行なうことができる。フィードバックループにおいて、処理済マクロブロックカウンタ８０、フィードバック制御部８１、演算器調整部８２の協働によりフィードバック制御する方法には多様な方法がある。処理済マクロブロックカウンタ８０のカウントにより経過時間ごとの処理済マクロブロックの数が分かる。例えばパイプラインを実施例１や実施例２で説明したマクロブロックパイプラインで構成した場合、実施例１や実施例２で説明したように処理時間の短いマクロブロックがあればマクロブロックパイプライン処理のサイクル余裕が生まれる。演算器調整部８１はこのサイクル余裕時間を利用して演算器の動作電源電圧と基板電圧と動作周波数を下げるように調整する。例えば、パイプラインの各段のマクロブロックの最悪サイクル数をｎとし、実際にパイプライン処理に必要なサイクル数がすべてのステージでｍサイクルであったとすると（ｎ−ｍ）サイクルの余裕が生まれる。したがって、次のパイプライン処理においてはｎ＋（ｎ−ｍ）＝２ｎ−ｍサイクル分の処理時間がある。次のパイプライン処理に必要なサイクルが最悪サイクル数であってもたかだかｎサイクルであるので、次のパイプライン処理は動作周波数を下げても制約時間内に最悪サイクル数を確保することができる。そこで、フィードバック制御部８１は演算器調整部８２に対し、演算器の動作電源電圧と基板電圧と動作周波数をｎ／（２ｎ−ｍ）となるように調整させることができる。【００９４】
図１７は、専用ハードウェア構成のデジタルＶＬＳＩ回路に対してフィードフォワード型の動的制御を適用したブロック図である。
処理負荷予測部９０は、パイプライン演算処理に供される前に、パイプライン演算処理に供されるフレームデータに含まれるマクロブロックデータ量を検知し、パイプライン演算処理にかかる処理負荷を予測する部分である。
フィードフォワード制御部９１は、処理負荷予測部９０による予測に基づき、演算器の動作電源電圧と基板バイアス電圧と動作周波数とを決定する部分である。
演算器調整部９２は、フィードフォワード制御部９１の決定に基づき、演算器の動作電源電圧と基板バイアス電圧と動作周波数とを調整する部分である。【００９５】
図１７に示すように、実施例１または実施例２に示したデジタルＶＬＳＩ回路１００に対して、処理負荷予測部９０、フィードフォワード制御部９１、演算器調整部９２によりフィードフォワードループを形成することにより、デジタルＶＬＳＩ回路１００中の演算器の動作電源電圧と基板バイアス電圧と動作周波数に関してフィードフォワード制御による動的制御を行なうことができる。処理負荷予測部９０、フィードフォワード制御部９１、演算器調整部９２の協働によりフィードフォワード制御する方法には多様な方法がある。処理負荷予測部９０は過去における制約時間内に処理すべきデータの処理に必要であった処理サイクル数を記憶しておく。例えば、ＭＰＥＧｘ、Ｈ．２６ｘによる動画像処理では制約時間は１フレームの時間であり、制約時間内に処理すべきデータとは１フレームに含まれるすべてのマクロブロックとなる。ＭＰＥＧｘやＨ．２６ｘによる動画像処理では、処理対象のフレームのフレームタイプとしてＩフレーム、Ｐフレーム、Ｂフレームのタイプがあるので、処理負荷予測部９０は各フレームタイプごとに処理サイクル数を記憶しておく。処理負荷予測部９０はこれから処理に供されるフレームのフレームタイプを調べ、フレームタイプに応じた過去の処理サイクル数を処理負荷サイクルとして予測し、フィードフォワード部９１に対して予測サイクル数を表わす信号を出力する。フィードフォワード部９１は処理負荷予測部９０の予測に基づき、演算器調整部９２に対して動作電源電圧と基板バイアス電圧と動作周波数を低下させるように制御する。最悪サイクル数をｎとし、予測サイクル数がｍとすると、ｍ／ｎに低下するように制御することができる。なお、ｍ／ｎに低下させると予測が外れ、実際の処理サイクル数がｍより大きい場合に制約時間内に処理が完了しないペナルティが発生してしまうので、このリスクを低減させるためにもｎよりも大きく見積もる工夫を施すことも可能である。例えば、処理負荷予測部９０の予測サイクル数がｍのとき、フィードフォワード部９１が（１．１）ｍに調整したり、（１．２）ｍに調整した上で演算器調整部９２に（１．１）ｍ／ｎや（１．２）ｍ／ｎに調整させる。
なお、過去の処理サイクル数に基づく予測サイクル数ｍの予測の方法には幾通りかの方法がある。第１には、同タイプのマクロブロックのうち時間的にもっとも近い過去のものを用いる方法がある。動画では時間的に近いほどマクロブロック同士の処理サイクル数が同程度になることが期待できる。第２には、同タイプのマクロブロックのうち時間的に近い数個のマクロブロックの処理サイクル数の平均値を用いる方法がある。
【実施例４】
【００９６】
実施例４は、実施例１、実施例２、実施例３に示したデジタルＶＬＳＩ回路の構成のクロック供給制御手段に替えて電力供給制御手段とした構成である。低消費電力化はクロックゲーティングの開始回数、停止回数を低減することにより図ることが可能であるが、クロックゲーティングではなく電力供給自体のオンオフを制御する構成とし、その電力供給の開始回数、停止回数を低減することにより図ることによっても同様の効果が得られる。
例えば、実施例１、２、３の説明においてクロック供給に関する部分を電力供給に関する部分に替え、また、タイミングチャートの説明においてクロックゲーティング期間を電力停止期間に替え、対応する図面も書き替えて読めば良い（例えば、クロック入力１４を電力供給ライン１４と読み替えれば良い）。
【実施例５】
【００９７】
実施例５は、上記実施例１、２、３、４に示した本発明のデジタルＶＬＳＩ回路を組み込んだ応用例である。
図１８は本発明のデジタルＶＬＳＩ回路を組み込んだ画像処理システム２００の構成例を示す図である。例えば、本発明のデジタルＶＬＳＩ回路をマイクロプロセッサに採用したパーソナルコンピュータとして構成したものでも良く、また、本発明のデジタルＶＬＳＩ回路を画像処理チップとして画像処理ボード中に組み込んでも良い。
図１９は本発明のデジタルＶＬＳＩ回路を組み込んだ携帯端末３００の構成例を示す図である。この構成例では携帯電話に組み込んだ例である。携帯電話でも近年は動画像を扱う能力を備えるものが投入されつつある一方、低消費電力化への要求は極めて強く、本発明のデジタルＶＬＳＩ回路を組み込んだ携帯電話とすれば、低消費電力化を図るとともに動画像の処理速度の向上の両面を図ることが可能となる。【００９８】
以上、本発明のデジタルＶＬＳＩ回路によれば、すべての演算器で処理が終了してアイドル状態に入っている期間を省略することができ、さらに、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングまたは電力供給の開始回数、終了回数を減少させることができ、より一層の低消費電力化を図ることができる。
また、本発明のデジタルＶＬＳＩ回路によれば、パイプライン処理の前後の演算器の処理が終了すれば演算器間で処理済データをやり取りすることによりデータ処理サイクル数（動画像処理の場合はマクロブロック処理やブロック処理のサイクル数）を小さくすることができ、さらに、演算器でのパイプライン演算処理を詰めて行なうことによりクロックゲーティングまたは電力供給の開始回数、停止回数を減少させることができ、より一層の低消費電力化を図ることができる。さらに、実際のデータに対する処理に必要となるサイクル数に応じて制約時間内に必要となるサイクル数を大幅に削減することができ、削減されたサイクルによって生ずる時間余裕を用いて動作周波数・電圧の動的制御を行うことにより、よりいっそうの低消費電力化を図ることができる。
【産業上の利用可能性】
【００９９】
本発明の画像処理システムによれば、動画像のデータ処理において低消費電力化が図られており、低消費電力が求められる様々なシステムに対して組み込むことが容易となり、柔軟なシステム設計が可能となる。
本発明の携帯端末によれば、動画像のデータ処理において低消費電力化が図られており、携帯電話のような小型の端末においても動画像の符号化復号化処理を行なうことができ、携帯端末の用途が様々に広がる。
【図面の簡単な説明】
【０１００】
【図１】本発明の実施例１にかかるデジタルＶＬＳＩ回路の構成を模式的に示す図
【図２】クロック供給制御手段の構成例を示す図
【図３】実施例１のデジタルＶＬＳＩ回路によるパイプライン処理を示すタイミングチャート
【図４】実施例１にかかるデジタルＶＬＳＩ回路におけるパイプライン動作の進行を模式的に示す図
【図５】動作周波数の制御例
【図６】本発明の実施例２にかかるデジタルＶＬＳＩ回路の構成を模式的に示す図
【図７】本実施例２にかかる演算器１０およびクロック供給制御手段の構成の一例を詳しく示す図
【図８】当段演算器１０のパイプライン処理が終了した場合の処理の流れを示す図
【図９】図８の状態から次段演算器１０のパイプライン処理が終了し、次段演算器１０の要求信号を検知した場合の処理の流れを示す図
【図１０】図９の状態から前段演算器１０のデータ処理が終了した場合の処理の流れを示す図
【図１１】当段演算器１０のパイプライン処理が終了した場合の処理の流れを示す図
【図１２】図１１の状態から前段演算器１０のデータ処理が終了した場合の処理の流れを示す図
【図１３】図１２の状態から次段演算器１０のパイプライン処理が終了し、次段演算器１０から要求信号が検知された場合の動作を示す図
【図１４】実施例２のデジタルＶＬＳＩ回路によるパイプライン処理を示すタイミングチャート
【図１５】実施例２にかかるデジタルＶＬＳＩ回路におけるパイプライン動作の進行を模式的に示す図
【図１６】専用ハードウェア構成のデジタルＶＬＳＩ回路に対してフィードバック型の動的制御を適用したブロック図
【図１７】専用ハードウェア構成のデジタルＶＬＳＩ回路に対してフィードフォワード型の動的制御を適用したブロック図
【図１８】本発明のデジタルＶＬＳＩ回路を組み込んだ画像処理システムの構成例を示す図
【図１９】本発明のデジタルＶＬＳＩ回路を組み込んだ携帯端末の構成例を示す図
【図２０】Ｈ．２６４デコード処理モジュールのブロック図
【図２１】図２０に示したブロック図に基づき、複数の演算器を用いた専用ハードウェアによりＨ．２６４デコード処理モジュールを構築した例を示す図
【図２２】パイプライン分割を示す図
【図２３】従来のパイプライン処理における演算器の動作状況を模式的に示すタイムチャート
【図２４】動画像処理ソフトウェアのフローチャート
【図２５】動画像処理ソフトウェアで、処理に必要なサイクルの実際例を示す図
【図２６】動画像処理ソフトウェアで、処理に必要な最悪サイクル数を示す図
【図２７】動作周波数の制御例を示すグラフ
【図２８】実施例２にかかるデジタルＶＬＳＩ回路におけるパイプライン動作の進行
【図２９】動作周波数の制御例を示すグラフ
【符号の説明】
【０１０１】
１０  演算器
１１，１１１，１１２，１１３，１１４  状態マシン
１２，１２１，１２２，１２３，１２４  フリップフロップ
１３，１３１，１３２，１３３  ＡＮＤ回路
１４  クロック入力ライン
２０  処理終了検知器
３０  終了フラグライン
４０  処理開始フラグライン
５０  受理信号ライン
６０  要求信号ライン
７０  データライン
８０  処理済マクロブロックカウンタ
８１  フィードバック制御部
８２  演算器調整部
９０  処理負荷予測部
９１  フィードフォワード制御部
９２  演算器調整部
１００  デジタルＶＬＳＩ回路
２００  画像処理システム
３００  携帯端末
【図１】
0004521508.tif 000002
【図２】
0004521508.tif 000003
【図３】
0004521508.tif 000004
【図４】
0004521508.tif 000005
【図５】
0004521508.tif 000006
【図６】
0004521508.tif 000007
【図７】
0004521508.tif 000008
【図８】
0004521508.tif 000009
【図９】
0004521508.tif 000010
【図１０】
0004521508.tif 000011
【図１１】
0004521508.tif 000012
【図１２】
0004521508.tif 000013
【図１３】
0004521508.tif 000014
【図１４】
0004521508.tif 000015
【図１５】
0004521508.tif 000016
【図１６】
0004521508.tif 000017
【図１７】
0004521508.tif 000018
【図１８】
0004521508.tif 000019
【図１９】
0004521508.tif 000020
【図２０】
0004521508.tif 000021
【図２１】
0004521508.tif 000022
【図２２】
0004521508.tif 000023
【図２３】
0004521508.tif 000024
【図２４】
0004521508.tif 000025
【図２５】
0004521508.tif 000026
【図２６】
0004521508.tif 000027
【図２７】
0004521508.tif 000028
【図２８】
0004521508.tif 000029
【図２９】
0004521508.tif 000030