(57)【要約】【課題】効率のよいバスアービトレーションを実現させる。【解決手段】カウンタ３，５は、それぞれ符号化部１、および、復号部２からリクエスト信号が入力されるとカウントを開始し、カウンタ３がカウンタ値Ｚ１をコンパレータ４−１，４−２に、カウンタ５がコンパレータ６−１，６−２にそれぞれ出力する。コンパレータ４−１，６−１は、所定の値Ｃ１と、コンパレータ４−２，６−２は、所定の値Ｃ２と、それぞれカウンタ値Ｚ１，Ｚ２を比較し、比較結果をアービトレーションコントローラ７に出力する。アービトレーションコントローラ７は、このコンパレータ４−１，４−２，６−１，６−２から入力される信号に基づいて、符号化部１と復号部２のモジュールの優先順位を決定し、最も優先順位の高いモジュールに確認信号を出力する。本発明は、ＬＳＩに適応することができる。【選択図】　　　図２
2004126873.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュール毎にバスの取得を要求するリクエスト信号を受信する複数の受信手段と、
前記複数の受信手段毎に受信されたリクエスト信号に基づいて、前記複数のモジュール毎の待ち時間を計測する計測手段と、
前記計測手段により計測された待ち時間に応じて、前記複数のモジュールのバス取得の優先順位を決定する優先順位決定手段と、
前記優先順位決定手段により決定された優先順位に基づいて、前記複数のモジュールにバスを取得するように制御する制御手段と
を含むことを特徴とする情報処理装置。
【請求項２】
前記計測手段により計測された前記待ち時間が同一である複数のモジュールが存在する場合、前記優先順位決定手段は、前記優先順位をラウンドロビン方式により決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
複数のモジュール毎にバスの取得を要求するリクエスト信号を受信する複数の受信ステップと、
前記複数の受信ステップの処理毎に受信されたリクエスト信号に基づいて、前記複数のモジュール毎の待ち時間を計測する計測ステップと、
前記計測ステップの処理により計測された待ち時間に応じて、前記複数のモジュールのバス取得の優先順位を決定する優先順位決定ステップと、
前記優先順位決定ステップの処理で決定された優先順位に基づいて、前記複数のモジュールにバスを取得するように制御する制御ステップと
を含むことを特徴とする情報処理方法。
【請求項４】
複数のモジュール毎に受信されるバスの取得を要求するリクエスト信号に基づいて、前記複数のモジュール毎の待ち時間を計測する計測ステップと、
前記計測ステップの処理により計測された待ち時間に応じて、前記複数のモジュールのバス取得の優先順位を決定する優先順位決定ステップと、
前記優先順位決定ステップの処理で決定された優先順位に基づいて、前記複数のモジュールにバスを取得するように制御する制御ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項５】
複数のモジュール毎に受信されるバスの取得を要求するリクエスト信号に基づいて、前記複数のモジュール毎の待ち時間を計測する計測ステップと、
前記計測ステップの処理により計測された待ち時間に応じて、前記複数のモジュールのバス取得の優先順位を決定する優先順位決定ステップと、
前記優先順位決定ステップの処理で決定された優先順位に基づいて、前記複数のモジュールにバスを取得するように制御する制御ステップと
を含むことを特徴とする処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、記録媒体、並びにプログラムに関し、特に、複数のモジュールが１つのバスを利用した処理をする際に、そのバスを複数のモジュール間で効率よく取得できるように調停する情報処理装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
大規模集積回路（ＬＳＩ：Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｉｏｎ）により制御される電子機器が一般に普及してきている。
【０００３】
ＬＳＩにおいては、複数のＩＣ（Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）からなるモジュール（エンジン）が様々な処理を実行する。この際、ＬＳＩの各モジュールが処理を実行する上で、処理に応じて外部メモリに対してデータを記憶させ、または、記憶させたデータを適宜読み出す処理が必要となる。
【０００４】
このため、モジュール毎に、外部メモリと接続されたバスの取得順序を調停する、いわゆる、バスアービトレーションを制御する機能が設けられており、各モジュールのバスの取得を制御している。
【０００５】
バスアービトレーションの方法としては、ラウンドロビン方式や、固定プライオリティ（固定優先順位）方式が採用されている。
【０００６】
ラウンドロビン方式とは、複数のモジュールに対して均等にバスを取得できるようにさせる方式であり、換言すれば、複数のモジュールが順番にバスを取得できるようにするように制御する方式である。
【０００７】
図１Ａ，Ｂは、第１モジュールと第２モジュールの２個のモジュールが、バスを取得するタイミングを、ラウンドロビン方式で制御するときのタイミングチャートの例を示している。
【０００８】
ここで、図１Ａは、第１モジュールがバスの取得を要求するリクエスト信号を送信するタイミングと、バスを取得して所定の第１の処理を実行するタイミングを示しており、図１Ｂは、第２モジュールがバスの取得を要求するリクエスト信号を送信するタイミングと、バスを取得して所定の第２の処理を実行するタイミングを示している。
【０００９】
第１モジュールは、時刻ｔ１において、バスの取得を要求するリクエスト信号Ｒ１を送信し、時刻ｔ１乃至ｔ２において、バスが取得されると、第１の処理１（図中においては、○中に「１」を付して表示している：尚、以下、図中の処理を示す表記においては、○中に番号を付すものとする）を実行し、その処理が終了したタイミングの時刻ｔ２において、リクエスト信号Ｒ２を送信する。このとき、ラウンドロビン方式では、第１モジュールと第２モジュールが交互にバスが取得されるように制御されるため、第２モジュールが第２の処理１１を完了させるまで、第１モジュールはバスを取得することができない。そこで、その次の第１の処理２は、実行されず、待ちの状態となる。
【００１０】
ここで、時刻ｔ３において、第２モジュールはリクエスト信号Ｒ１１を送信し、そのタイミングでは、第２モジュールがバスを取得し、時刻ｔ３乃至ｔ４において、第２の処理１１を実行する。
【００１１】
この第２の処理１１が終了する時刻ｔ４において、第１モジュールはバスを取得することができるので、時刻ｔ４乃至ｔ５において、第１の処理２を実行し、さらに、その第１の処理２が終了する時刻ｔ５において、バスの取得を要求するリクエスト信号Ｒ３を送信する。
【００１２】
このときも、ラウンドロビン法においては、第１モジュールは、第２モジュールの処理が完了するまでバスを取得することができない。
【００１３】
この状態で、時刻ｔ６において、第２モジュールがバス取得のリクエスト信号Ｒ１２を送信すると、そのタイミングでバスを取得することができるので、時刻ｔ６乃至ｔ７において、第２の処理１２を実行する。
【００１４】
この処理１２が終了する時刻ｔ７において、第１モジュールはバスを取得することができるので、時刻ｔ７乃至ｔ８において、第１の処理３を実行し、さらに、時刻ｔ８において、バスの取得を要求するリクエスト信号Ｒ４を送信する。
【００１５】
このときも、第１モジュールは、ラウンドロビン法においては、第２モジュールの処理が完了するまでバスを取得することができない。
【００１６】
この状態で、時刻ｔ９において、第２モジュールがバス取得のリクエスト信号Ｒ１３を送信すると、そのタイミングでバスを取得することができるので、時刻ｔ９乃至ｔ１０において、第２の処理１３を実行し、さらに、このタイミングでバスの取得を要求するリクエスト信号Ｒ１４を送信する。このとき、第２モジュールは、ラウンドロビン法において、第１モジュールの処理が完了するまでバスを取得することができない。
【００１７】
一方、この第２の処理１３が実行されたタイミングである時刻ｔ１０において、第１モジュールはバスを取得することができるので、時刻ｔ１０乃至ｔ１１において、第１の処理４を実行する。このとき、バス取得のリクエストは送信されない。
【００１８】
この第１の処理４が終了する時刻ｔ１１において、第２モジュールはバスを取得することができるので、時刻ｔ１１乃至ｔ１２において、第２の処理１４を実行し、さらに、時刻ｔ１２において、バスの取得を要求するリクエスト信号Ｒ１５を送信する。このときも、第２モジュールは、ラウンドロビン法において、第１モジュールの処理が完了するまでバスを取得することができない。
【００１９】
この状態で、時刻ｔ１３において、第１モジュールがバスの取得を要求するリクエスト信号Ｒ５を送信すると、そのタイミングでバスを取得することができるので、時刻ｔ１３乃至ｔ１４において、第１の処理５を実行する。
【００２０】
この第１の処理５が終了する時刻ｔ１４において、第２モジュールはバスを取得することができるので、時刻ｔ１４乃至ｔ１５において、第２の処理１５を実行し、さらに、時刻ｔ１５において、バスの取得を要求するリクエスト信号Ｒ１６を送信する。このときも、第２モジュールは、ラウンドロビン法において、第１モジュールの処理が完了するまでバスを取得することができない。
【００２１】
この状態で、時刻ｔ１６において、第１モジュールがバスの取得を要求するリクエスト信号Ｒ６を送信すると、そのタイミングでバスを取得することができるので、時刻ｔ１６乃至ｔ１７において、第１の処理６を実行する。
【００２２】
この第１の処理６が終了する時刻ｔ１７において、第２モジュールはバスを取得することができるので、時刻ｔ１７乃至ｔ１８において、第１の処理１６を実行する。
【００２３】
上述のように、ラウンドロビン方式とは、第１モジュールと第２モジュールが交互にバスを取得して処理を行う方式である。
【００２４】
また、固定プライオリティ方式（固定優先順位方式）とは、複数のモジュールが存在する場合に、そのモジュール毎に、優先順位を予め設定し、各モジュールからバスの取得を要求するリクエストがあった場合、その優先順位に応じてバスを取得させる方式である。
【００２５】
また、従来のアービトレーション装置には、１つの共有資源を複数のマスタで使用する際に、優先度を算出して算出結果に基づいて共有資源の使用許可を設定するものがある（例えば、特許文献１参照）。
【００２６】
【特許文献１】
特開２００２−５５９４４号公報（段落［００５８］、図３，図４）
【００２７】
【発明が解決しようとする課題】
ところで、上述の図１Ａ，Ｂで示したように、各モジュールの外部メモリへのアクセスの頻度は、処理状態により変化するのが一般的である。
【００２８】
しかしながら、例えば、図１Ａ，Ｂにおいては、例えば、時刻ｔ２，ｔ３，ｔ４において、第１モジュールがバスの取得を要求するリクエスト信号Ｒ２，Ｒ３，Ｒ４を送信しているのに対して、第２モジュールがバスの取得を要求していないにもかかわらず、第２モジュールの処理が終わるタイミングである時刻ｔ４，ｔ７，ｔ１０まで、その処理を待たなければならず、時刻ｔ１２，ｔ１５において、第２モジュールがバスを取得するリクエストＲ１５，Ｒ１６を送信しているのに対して、第１モジュールがバスの取得を要求していないにもかかわらず、第１モジュールの処理が終わるタイミングである時刻ｔ１４，ｔ１７まで、その処理を待たなければならないため、効率のよいバスアービトレーション処理（バスの取得を調整する処理）が実現できず、結果として無駄な待ち時間が発生し、処理速度がＬＳＩ全体として低減してしまうという課題があった。
【００２９】
また、固定優先順位方式においては、多くのモジュールが存在する場合、優先順位の高いモジュールは、優先的にバスを取得して処理を実行させることができるが、優先順位の低いモジュールは、優先順位の高い処理が実行され続けている限り、バスを取得することができないことになってしまうため、モジュール毎の処理状態が変化したときに適正なバスの取得ができない恐れがあり、結果として処理速度を低下させてしまう恐れがあるという課題があった。
【００３０】
本発明はこのような状況に鑑みてなされたものであり、優先順位を変化させて適正なバスアービトレーション処理を実現させるものである。
【００３１】
【課題を解決するための手段】
本発明の情報処理装置は、複数のモジュール毎にバスの取得を要求するリクエスト信号を受信する複数の受信手段と、複数の受信手段毎に受信されたリクエスト信号に基づいて、複数のモジュール毎の待ち時間を計測する計測手段と、計測手段により計測された待ち時間に応じて、複数のモジュールのバス取得の優先順位を決定する優先順位決定手段と、優先順位決定手段により決定された優先順位に基づいて、複数のモジュールにバスを取得するように制御する制御手段とを含むことを特徴とする。
【００３２】
前記計測手段により計測された待ち時間が同一である複数のモジュールが存在する場合、優先順位決定手段には、優先順位をラウンドロビン方式により決定させるようにすることができる。
【００３３】
本発明の情報処理方法は、複数のモジュール毎にバスの取得を要求するリクエスト信号を受信する複数の受信ステップと、複数の受信ステップの処理毎に受信されたリクエスト信号に基づいて、複数のモジュール毎の待ち時間を計測する計測ステップと、計測ステップの処理により計測された待ち時間に応じて、複数のモジュールのバス取得の優先順位を決定する優先順位決定ステップと、優先順位決定ステップの処理で決定された優先順位に基づいて、複数のモジュールにバスを取得するように制御する制御ステップとを含むことを特徴とする。
【００３４】
本発明の記録媒体のプログラムは、複数のモジュール毎に受信されるバスの取得を要求するリクエスト信号に基づいて、複数のモジュール毎の待ち時間を計測する計測ステップと、計測ステップの処理により計測された待ち時間に応じて、複数のモジュールのバス取得の優先順位を決定する優先順位決定ステップと、優先順位決定ステップの処理で決定された優先順位に基づいて、複数のモジュールにバスを取得するように制御する制御ステップとを含むことを特徴とする。
【００３５】
本発明のプログラムは、複数のモジュール毎に受信されるバスの取得を要求するリクエスト信号に基づいて、複数のモジュール毎の待ち時間を計測する計測ステップと、計測ステップの処理により計測された待ち時間に応じて、複数のモジュールのバス取得の優先順位を決定する優先順位決定ステップと、優先順位決定ステップの処理で決定された優先順位に基づいて、複数のモジュールにバスを取得するように制御する制御ステップとを含むことを特徴とする。
【００３６】
本発明の情報処理装置および方法、並びプログラムにおいては、複数のモジュール毎にバスの取得を要求するリクエスト信号が受信され、複数に受信されたリクエスト信号に基づいて、複数のモジュール毎の待ち時間が計測され、計測された待ち時間に応じて、複数のモジュールのバス取得の優先順位が決定され、決定された優先順位に基づいて、複数のモジュールにバスが取得されるように制御される。
【００３７】
【発明の実施の形態】
図２は、本発明に係るＬＳＩの一実施の形態の構成を示す図である。
【００３８】
本発明におけるＬＳＩは、入力画像をＭＰＥＧ方式で符号化して出力すると共に、入力されたＭＰＥＧ方式の符号化信号を復号して画像として出力する処理を同時に実行することができるものである。
【００３９】
まず、符号化部１の構成について説明する。符号化部１は、入力画像を符号化し、符号化信号として出力するものである。
【００４０】
符号化部１の画像入力部２１は、入力されてくる画像を符号化で用いる空間解像度に変換し、Ｉピクチャ（イントラ画像）、Ｐピクチャ（前方向予測画像）、および、Ｂピクチャ（前後方向予測画像）のそれぞれのピクチャタイプに合わせて画面を並べ替えて、動き予測部２２、および、符号化処理部２３に出力する。より詳細には、画像入力部２１は、ピクチャタイプ毎にバス８を介して一旦外部メモリ９に出力して、記憶させた後、これを動き予測部２２、および、符号化処理部２３が読み出す。このとき、画像入力部２１は、符号化制御部２５に対してバス８を取得するように要求し、この要求に応じて、符号化制御部２５からバス８が取得されたことを示す確認の通知を受信すると、バス８を介して外部メモリ９に対して所定の処理を実行させる。
【００４１】
動き予測部２２は、Ｂピクチャ、または、Ｐピクチャのピクチャタイプとして入力された画像と、その基準となるＩピクチャ、または、Ｐピクチャとの差分を求め、動きベクトルを求めて符号化処理部２３に出力する。より詳細には、動き予測部２２は、外部メモリ９に入力画像として記憶されている画像と相関のある、Ｉピクチャ、または、Ｐピクチャを外部メモリ９から読み出して、比較し、動きベクトルを求めて符号化処理部２３が読み出せるように、外部メモリ９に記憶させる。このとき、動き予測部２２は、符号化制御部２５に対してバス８を取得するように要求し、この要求に応じて、符号化制御部２５からバス８が取得されたことを示す確認の通知を受信すると、バス８を介して外部メモリ９に対して所定の処理を実行させる。
【００４２】
符号化処理部２３は、画像入力部２１より入力された入力画像と、動き予測部２２より入力された動きベクトルに基づいて、ピクチャタイプに応じて符号化信号を生成してビットストリーム出力部２４に出力する。より詳細には、外部メモリ９に記憶されている画像入力部２１より入力された入力画像と、動き予測部２２により生成された動きベクトルとを用いて、Ｉピクチャの場合、入力画像となった画像をそのまま符号化し、Ｐピクチャ、または、Ｂピクチャの場合、その動きベクトルを符号化することにより符号化信号を生成してビットストリーム出力部２４により読出し可能な情報として、外部メモリ９に記憶させる。このとき、符号化処理部２３は、符号化制御部２５に対してバス８を取得するように要求し、この要求に応じて、符号化制御部２５からバス８が取得されたことを示す確認の通知を受信すると、バス８を介して外部メモリ９に対して所定の処理を実行させる。
【００４３】
ビットストリーム出力部２４は、符号化処理部２３により符号化された符号化信号を外部メモリ９から読み出し、ビットストリームとして符号化出力信号を出力する。このとき、ビットストリーム出力部２４は、符号化制御部２５に対してバス８を取得するように要求し、この要求に応じて、符号化制御部２５からバス８が取得されたことを示す確認の通知を受信すると、バス８を介して外部メモリ９に対して所定の処理を実行させる。
【００４４】
符号化制御部２５は、符号化部１の全体の動作を制御しており、画像入力部２１、動き予測部２２、符号化処理部２３、またはビットストリーム出力部２４からバス８を取得するように要求があった場合、バスの取得を要求するリクエスト信号（Ｒｅｑｕｅｓｔ）を端子２５ａからカウンタ３の端子３ａおよびアービトレーションコントローラ７の端子７ｅに出力する。また、このリクエスト信号に応じてバス８の取得が認められたとき、アービトレーションコントローラ７の端子７ｄから送信されてくる確認信号（Ａｃｋｎｏｗｌｅｄｇｅ）を端子２５ｂで受信すると共に、この確認信号が受信されたとき、画像入力部２１、動き予測部２２、符号化処理部２３、またはビットストリーム出力部２４に対して、バス８が取得されたことを示す通知を出力して、各種の処理を実行させる。
【００４５】
カウンタ３は、端子３ａに符号化部１より入力されるバス８の取得を要求するリクエスト信号を受信すると、所定の時間間隔で値をカウントし、そのカウント値Ｚ１をコンパレータ４−１，４−２に出力する。また、カウンタ３は、アービトレーションコントローラ７の端子７ｄから端子３ｂを介して確認信号が入力されると、それまでのカウントを停止し、カウント値をリセットする。尚、この状態でも、カウンタ３は、カウント値をコンパレータ４−１，４−２に出力している。
【００４６】
コンパレータ４−１，４−２は、それぞれカウンタ３から入力されたカウント値Ｚ１と、所定の値Ｃ１，Ｃ２とを比較して、カウント値Ｚ１の方が大きいと判定するとき、Ｔｒｕｅの信号をアービトレーションコントローラ７の端子７ｂ，７ｃにそれぞれ出力し、それ以外のときＦａｌｓｅの信号をアービトレーションコントローラ７の端子７ｂ，７ｃにそれぞれ出力する。尚、所定の値Ｃ１，Ｃ２は、Ｃ１≠Ｃ２であるため、例えば、Ｃ１＜Ｃ２である場合、カウンタ３のカウント値が継続されている状態のとき、まず、カウント値Ｚ１が所定の値Ｃ１を越えたタイミングで、コンパレータ４−１からＴｒｕｅの信号が出力され、さらに、カウント値Ｚ１が所定の値Ｃ２を超えたタイミングで、コンパレータ４−２からもＴｒｕｅの信号が出力されることになる。従って、アービトレーションコントローラ７は、コンパレータ４−１，４−２から端子７ｂ，７ｃに入力される信号のパターン（組み合わせ）により符号化部１がバス８の取得を要求するリクエスト信号が送信されてから、バス８の取得を確認する確認信号が入力されるまでの時間を把握することができる。尚、以下の説明においては、Ｃ１＜Ｃ２であるものとするが、もちろん、Ｃ１＞Ｃ２であってもよい。
【００４７】
次に、復号部２の構成について説明する。
【００４８】
復号部２のビットストリーム入力部４２は、入力符号化信号をバス８を介して外部メモリ９に順次記憶させる。このとき、ビットストリーム入力部４２は、復号制御部４１に対してバス８を取得するように要求し、この要求に応じて、復号制御部４１からバス８が取得されたことを示す確認の通知を受信すると、バス８を介して外部メモリ９に対して所定の処理を実行させる。
【００４９】
復号処理部４３は、ビットストリーム入力部４２から順次外部メモリ９に記憶された符号化信号を読み出し、動き補償部４４に出力する。このとき、復号処理部４３は、一度復号したＩピクチャ、または、Ｐピクチャを外部メモリ９に記憶させた後、ＰピクチャやＢピクチャの予測に用いるため再び外部メモリ９から読出す。また、復号処理部４３は、入力符号化信号に含まれている予測モードや動きベクトルの情報を動き補償部４４に出力し、この情報に基づいて、動き補償部４４により生成された動き補償予測情報を用いて画像を復号する。このとき、復号処理部４３は、復号制御部４１に対してバス８を取得するように要求し、この要求に応じて、復号制御部４１からバス８が取得されたことを示す確認の通知を受信すると、バス８を介して外部メモリ９に対して所定の処理を実行させる。
【００５０】
動き補償部４４は、復号処理部４３から入力される復号された画像、動きベクトル、および、予測モードの情報に基づいて、予測モードが動き補償予測モードであるとき、動き補償予測情報を生成して復号された画像に動き補償予測を行い、復号処理部４３に出力すると共に、復号処理部４３から入力された画像を画像出力部４５に出力する。より詳細には、復号処理部４３から入力された画像を一旦バス８を介して外部メモリ９に記憶させて、外部出力部４５から読み出せるように記憶させる。このとき、動き補償部４４は、復号制御部４１に対してバス８を取得するように要求し、この要求に応じて、復号制御部４１からバス８が取得されたことを示す確認の通知を受信すると、バス８を介して外部メモリ９に対して所定の処理を実行させる。
【００５１】
画像出力部４５は、バス８を介して外部メモリ９に記憶されている復号された画像を順次読み出して、出力画像として出力する。このとき、画像出力部４５は、復号制御部４１に対してバス８を取得するように要求し、この要求に応じて、復号制御部４１からバス８が取得されたことを示す確認の通知を受信すると、バス８を介して外部メモリ９に対して所定の処理を実行させる。
【００５２】
復号制御部４１は、復号部２の全体の動作を制御しており、ビットストリーム入力部４２、復号処理部４３、動き補償部４４、または画像出力部４５からバス８を取得するように要求があった場合、バスの取得を要求するリクエスト信号（Ｒｅｑｕｅｓｔ）を端子４１ａからカウンタ５の端子５ａおよびアービトレーションコントローラ７の端子７ｇに出力する。また、このリクエストに応じてバス８の取得が認められたとき、アービトレーションコントローラ７の端子７ｆから送信されてくる確認信号（Ａｃｋｎｏｗｌｅｄｇｅ）を端子４１ｂで受信すると共に、この確認信号が受信されたとき、ビットストリーム入力部４２、復号処理部４３、動き補償部４４、または画像出力部４５に対して、バス８が取得されたことを示す通知を出力して、各種の処理を実行させる。
【００５３】
カウンタ５は、カウンタ３と同様のものである。すなわち、カウンタ５は、端子５ａに復号部２より入力されるバス８の取得を要求するリクエスト信号を受信すると、所定の時間間隔で値をカウントし、そのカウント値Ｚ２をコンパレータ６−１，６−２に出力する。また、カウンタ５は、アービトレーションコントローラ７から端子５ｂを介して確認信号が入力されると、それまでカウントを停止して、カウント値Ｚ２をリセットする。尚、この状態でも、カウンタ３は、カウント値をコンパレータ６−１，６−２に出力している。
【００５４】
コンパレータ６−１，６−２は、コンパレータ４−１，４−２と同様のものである。すなわち、コンパレータ６−１，６−２は、それぞれカウンタ５から入力されたカウント値Ｚ２と、所定の値Ｃ１，Ｃ２とを比較して、カウント値Ｚ２の方が大きいと判定するとき、Ｔｒｕｅの信号をアービトレーションコントローラ７の端子７ｈ，７ｉにそれぞれ出力し、それ以外のときＦａｌｓｅの信号をアービトレーションコントローラ７の端子７ｈ，７ｉにそれぞれ出力する。尚、所定の値Ｃ１，Ｃ２は、Ｃ１≠Ｃ２であるため、例えば、Ｃ１＜Ｃ２である場合、カウンタ５のカウント値Ｚ２が継続されている状態のとき、まず、カウント値Ｚ２が所定の値Ｃ１を越えたタイミングで、コンパレータ６−１からＴｒｕｅの信号が出力され、さらに、カウント値Ｚ２が所定の値Ｃ２を超えたタイミングで、コンパレータ６−２からＴｒｕｅの信号が出力されることになる。従って、アービトレーションコントローラ７は、端子７ｈ，７ｉに入力されるコンパレータ６−１，６−２から入力される信号のパターンにより復号部２がバス８の取得を要求するリクエスト信号を送信してから、バス８の取得を確認する確認信号が入力されるまでの時間を把握することができる。
【００５５】
アービトレーションコントローラ７は、符号化部１、および、復号部２から端子７ｅ，７ｇを介して入力されるバス８の取得を要求するリクエスト信号、並びに、端子７ｂ，７ｃ，７ｈ、および７ｉから入力されるコンパレータ４−１，４−２，６−１，６−２のそれぞれの判定結果に基づいて、符号化部１、および、復号部２のいずれにバス８の取得させるかを調整し、取得を認めるとき、確認信号を端子７ｄ，７ｆより出力すると共に、確認信号を送信した符号化部１、または、復号部２のいずれかのモジュールに対してバス８を取得させるようにし、外部メモリ９へのデータの書込みと、読出しを可能な状態にする。また、アービトレーションコントローラ７は、メモリ７ａを内蔵しており、バス８の取得を認めたモジュールの情報を記憶し、ラウンドロビン方式によりバス８の取得を決定する際にその情報を利用し、直前にバス８を取得したタイミングが最も古いモジュールがバス８を取得できるように調整する。すなわち、モジュールが、符号化部１と復号部２の２個の場合、直前にバス８を取得したモジュールが符号化部１であったときには、復号部２がバス８を取得できるように調整し、逆に、復号部２が直前にバスを取得していたとき、符号化部１がバス８を取得できるように調整する。
【００５６】
尚、図２において、太線はデータの流れを示すものであり、一点鎖線は、符号化部１によるデータをアービトレーションコントローラ７がバス８を介して外部メモリ９に授受する経路を示しており、２点鎖線は、復号部２によるデータをアービトレーションコントローラ７がバス８を介して外部メモリ９に授受する経路を示している。
【００５７】
次に、図３のフローチャートを参照して、符号化制御部２５による符号化制御処理について説明する。
【００５８】
ステップＳ１において、符号化制御部２５は、画像入力部２１、動き予測部２２、符号化部２３、または、ビットストリーム出力部２４のいずれかからバス８の取得が要求されているか否かを判定し、画像入力部２１、動き予測部２２、符号化部２３、または、ビットストリーム出力部２４のいずれかからバス８の取得が要求されるまでその処理を繰り返す。ステップＳ１において、画像入力部２１、動き予測部２２、符号化部２３、または、ビットストリーム出力部２４のいずれかからバス８の取得が要求された場合、バス８の取得が要求されたと判定され、ステップＳ２において、符号化制御部２５は、端子２５ａからカウンタ３の端子３ａ、および、アービトレーションコントローラ７の端子７ｅにバス８の取得を要求するリクエスト信号を送信する。
【００５９】
ステップＳ３において、符号化制御部２５は、アービトレーションコントローラ７の端子７ｄから自らの端子２５ｂに確認信号が送信されてきたか否かを判定し、確認信号が送信されてくるまで、その処理を繰り返し、例えば、確認信号が送信されてきた、すなわち、バス８の取得が認められたと判定した場合、その処理は、ステップＳ４に進む。
【００６０】
ステップＳ４において、符号化制御部２５は、バス８の取得を要求してきた、画像入力部２１、動き予測部２２、符号化部２３、または、ビットストリーム出力部２４のいずれかに対して、バス８の取得が認められたことを示す信号を送信し、各種の処理を実行させると共に、その処理は、ステップＳ１に戻り、それ以降の処理が繰り返される。
【００６１】
次に、図４のフローチャートを参照して、カウンタ３によるカウント処理について説明する。
【００６２】
ステップＳ１１において、カウンタ３は、リクエスト信号が端子３ａに入力されたか否かを判定する。例えば、図３のフローチャートを参照して説明したステップＳ２の処理により、リクエスト信号が送信されてきた場合、リクエスト信号が端子３ａに入力されたと判定し、ステップＳ１２において、カウンタ３は、カウントを開始する。
【００６３】
ステップＳ１３において、カウンタ３は、今現在カウントしているカウント値Ｚ１をコンパレータ４−１，４−２に出力する。
【００６４】
ステップＳ１４において、カウンタ３は、端子３ｂにアービトレーションコントローラ７の端子７ｄから確認信号が入力されたか否かを判定し、確認信号が入力されていないと判定した場合、その処理は、ステップＳ１３に戻り、再び、カウント中のカウント値Ｚ１をコンパレータ４−１，４−２に出力する。すなわち、確認信号が入力されるまで、ステップＳ１３，Ｓ１４の処理が繰り替えされ、時々刻々と変化して、カウントされていくカウント値Ｚ１がコンパレータ４−１，４−２に出力され続ける。
【００６５】
ステップＳ１４において、アービトレーションコントローラ７の端子７ｄから確認信号が入力されたと判定された場合、ステップＳ１５において、カウンタ３は、それまで続けていたカウントを停止すると共に、カウント値Ｚ１をクリアして（Ｚ１＝０にして）出力し、その処理は、ステップＳ１１に戻る。
【００６６】
すなわち、カウンタ３は、符号化部１からリクエスト信号が出力されてから、これに対応してアービトレーションコントローラ７から確認信号が入力されるまでの間、カウント値Ｚ１をカウントアップし続け、確認信号が入力されるとカウントを停止して、カウント値Ｚ１をクリア（リセット）する。
【００６７】
次に、図５のフローチャートを参照して、コンパレータ４−１による比較処理について説明する。
【００６８】
ステップＳ２１において、コンパレータ４−１は、カウンタ３より入力されるカウント値Ｚ１を取得する。
【００６９】
ステップＳ２２において、コンパレータ４−１は、カウンタ３より取得したカウント値Ｚ１と所定の値Ｃ１とを比較し、カウント値Ｚ１＞Ｃ１であるか否かを判定する。例えば、カウント値Ｚ１のカウントが進んでおらず、Ｚ１＞Ｃ１ではないと判定された場合、ステップＳ２３において、コンパレータ４−１は、ｆａｌｓｅの信号をアービトレーションコントローラ７の端子７ｂに出力し、その処理は、ステップＳ２１に戻る。
【００７０】
ステップＳ２２において、Ｚ１＞Ｃ１であると判定された場合、ステップＳ２４において、コンパレータ４−１は、Ｔｒｕｅの信号をアービトレーションコントローラ７の端子７ｂに出力し、その処理は、ステップＳ２１に戻り、それ以降の処理が繰り返される。
【００７１】
すなわち、カウンタ３のカウント値Ｚ１が、所定の値Ｃ１を超えるまでカウントが進んだとき、すなわち、リクエスト信号が送信されたタイミングから、アービトレーションコントローラ７から確認信号が送信されてくるまでの待ち時間が所定の値Ｃ１に対応する時間を超えたとき、アービトレーションコントローラ７の端子７ｂにＴｒｕｅ信号が入力されることになる。
【００７２】
同様にして、コンパレータ４−２においても同様の処理がなされ、Ｔｒｕｅ、または、Ｆａｌｓｅの信号が、アービトレーションコントローラ７の端子７ｃに入力される。ただし、所定の値Ｃ１，Ｃ２は、Ｃ１≠Ｃ２であるので、例えば、Ｃ１＜Ｃ２の場合、カウント値Ｚ１の値がＣ１を超えた直後は、コンパレータ４−１からはＴｒｕｅ信号が出力されるが、コンパレータ４−２からはＦａｌｓｅ信号が出力されることになる。さらに、待ち時間が進み、カウント値Ｚ１が所定の値Ｃ２を超えると、コンパレータ４−１，４−２のいずれからもＴｒｕｅ信号が出力されることになる。結果として、アービトレーションコントローラ７には、カウント値Ｚ１の進度に応じて、コンパレータ４−１，４−２から入力されるＴｒｕｅ、または、ｆａｌｓｅの組み合わせが変化して入力される。
【００７３】
次に、図６のフローチャートを参照して、復号部２の復号制御部４１による復号制御処理について説明する。
【００７４】
ステップＳ３１において、復号制御部４１は、ビットストリーム入力部４２、復号処理部４３、動き補償部４４、または、画像出力部４５のいずれかからバス８の取得が要求されているか否かを判定し、復号制御部４１は、ビットストリーム入力部４２、復号処理部４３、動き補償部４４、または、画像出力部４５のいずれかからバス８の取得が要求されるまでその処理を繰り返す。ステップＳ３１において、復号制御部４１は、ビットストリーム入力部４２、復号処理部４３、動き補償部４４、または、画像出力部４５のいずれかからバス８の取得が要求された場合、バス８の取得が要求されたと判定され、ステップＳ３２において、復号制御部４１は、端子４１ａからカウンタ５の端子５ａ、および、アービトレーションコントローラ７の端子７ｇにバス８の取得を要求するリクエスト信号を送信する。
【００７５】
ステップＳ３３において、符号化制御部２５は、アービトレーションコントローラ７の端子７ｆから自らの端子４１ｂに確認信号が送信されてきたか否かを判定し、確認信号が送信されてくるまで、その処理を繰り返し、例えば、確認信号が送信されてきた、すなわち、バス８の取得が認められたと判定した場合、その処理は、ステップＳ３４に進む。
【００７６】
ステップＳ３４において、復号制御部４１は、バス８の取得を要求してきたビットストリーム入力部４２、復号処理部４３、動き補償部４４、または、画像出力部４５のいずれかに対して、バス８の取得が認められたことを示す信号を送信し、各種の処理を実行させると共に、その処理は、ステップＳ３１に戻り、それ以降の処理が繰り返される。
【００７７】
尚、カウンタ５によるカウント処理、および、コンパレータ６−１，６−２による比較処理は、図４を参照して説明したカウンタ３によるカウント処理、および、図５を参照して説明して比較処理と同様であるので、その説明は省略する。ただし、カウンタ５によるカウント値Ｚ２は、コンパレータ６−１，６−２にそれぞれ入力され、コンパレータ６−１，６−２の比較結果となる信号は、アービトレーションコントローラ７の端子７ｈ，７ｉに入力される。
【００７８】
次に、図７のフローチャートを参照して、アービトレーションコントローラ７による調停処理について説明する。
【００７９】
ステップＳ５１において、アービトレーションコントローラ７は、符号化部１のみからリクエスト信号を受信しているか否かを判定する。すなわち、アービトレーションコントローラ７は、端子７ｅに符号化部１からリクエスト信号が入力され、かつ、復号部２からリクエスト信号が入力されていない状態であるか否かを判定する。例えば、ステップＳ５１において、符号化部１からのみのリクエスト信号はないと判定された場合、その処理は、ステップＳ５２に進む。
【００８０】
ステップＳ５２において、アービトレーションコントローラ７は、復号部２のみからリクエスト信号を受信しているか否かを判定する。すなわち、アービトレーションコントローラ７は、端子７ｇに復号部２からリクエスト信号が入力され、かつ、符号化部１からリクエスト信号が入力されていない状態であるか否かを判定する。例えば、ステップＳ５２において、復号部２からのみのリクエスト信号はないと判定された場合、その処理は、ステップＳ５３に進む。
【００８１】
ステップＳ５３において、アービトレーションコントローラ７は、符号化部１、および、復号部２のいずれからもリクエスト信号が受信されているか否かを判定する。すなわち、アービトレーションコントローラ７は、端子７ｅに符号化部１からリクエスト信号が入力され、かつ、復号部２からリクエスト信号が入力されている状態であるか否かを判定する。例えば、ステップＳ５３において、符号化部１、および、復号部２のいずれからもリクエスト信号はないと判定された場合、その処理は、ステップＳ５１に戻り、それ以降の処理が繰り返される。リクエスト信号は、符号化部１、および、復号部２のいずれのモジュールからも入力されていないので、その処理は、ステップＳ５１乃至Ｓ５３の処理を繰り返す。
【００８２】
ステップＳ５３において、符号化部１、および、復号部２のいずれのモジュールからもリクエスト信号が入力されていると判定された場合、ステップＳ５４において、アービトレーションコントローラ７は、コンパレータ４−１から端子７ｂにＴｒｕｅの信号が入力されているか否かを判定し、例えば、Ｔｒｕｅの信号が入力されていると判定した場合、その処理は、ステップＳ５５に進む。
【００８３】
ステップＳ５５において、アービトレーションコントローラ７は、コンパレータ４−２から端子７ｃにＴｒｕｅの信号が入力されているか否かを判定し、例えば、Ｔｒｕｅの信号が入力されていると判定した場合、その処理は、ステップＳ５６に進む。
【００８４】
ステップＳ５６において、アービトレーションコントローラ７は、コンパレータ６−１から端子７ｈにＴｒｕｅの信号が入力されているか否かを判定し、例えば、Ｔｒｕｅの信号が入力されていると判定した場合、その処理は、ステップＳ５７に進む。
【００８５】
ステップＳ５７において、アービトレーションコントローラ７は、コンパレータ６−２から端子７ｉにＴｒｕｅの信号が入力されているか否かを判定し、例えば、Ｔｒｕｅの信号が入力されていると判定した場合、その処理は、ステップＳ５８に進む。
【００８６】
ステップＳ５８において、アービトレーションコントローラ７は、ラウンドロビン方式によりメモリ７ａに記憶されている過去の記録から、最近バス８が取得されていないモジュールを優先して優先順位を設定する。すなわち、ステップＳ５４乃至Ｓ５８の処理により、符号化部１、および、復号部２は、それぞれ所定の値Ｃ２に対応する時間以上にリクエスト信号を出力してから確認信号を待ち続けていることになるので、いずれも待ち時間は同一であると判断し、待ち時間での比較をせずに、過去のバス８の取得状況に応じて優先順位を設定する。
【００８７】
すなわち、今の場合、モジュールは、符号化部１と復号部２の２個であるので、直前で、符号化部１にバス８を取得させた場合、復号部２の優先順位が優先され、優先順位の第１位が復号部２に設定され、第２位に符号化部１が設定される。また、逆に、直前に復号部２にバス８を取得させた場合、符号化部１の優先順位が優先的に設定され、優先順位の第１位に符号化部１が設定され、第２位に復号部２が設定される。
【００８８】
ステップＳ５９において、アービトレーションコントローラ７は、設定された優先順位の情報に基づいて、最も優先順位の高いモジュール、すなわち、優先順位が第１位のモジュールに対して確認信号を送信し、バス８の取得させる。すなわち、図２の場合、最も優先順位の高いモジュールが符号化部１であった場合、端子７ｄから符号化部１に対して確認信号を出力する。また、逆に、最も優先順位の高いモジュールが復号部２であった場合、端子７ｆから復号部２に対して確認信号を出力する。
【００８９】
ステップＳ５１において、符号化部１からのみリクエスト信号が入力されていると判定された場合、ステップＳ６０において、符号化部１に優先順位が優先して設定される。すなわち、ステップＳ５１において、符号化部１からのみリクエスト信号が受信されていると言うことは、調停の必要が無く、符号化部１に優先的に優先順位が設定される。
【００９０】
ステップＳ５２において、復号部２からのみリクエスト信号が入力されていると判定された場合、ステップＳ６１において、復号部１に優先順位が優先して設定される。すなわち、ステップＳ５２において、復号部２からのみリクエスト信号が受信されていると言うことは、調停の必要が無く、復号部２に優先的に優先順位が設定される。
【００９１】
ステップＳ５４において、コンパレータ４−１から端子７ｂに入力される信号がＴｒｕｅではないと判定された場合、ステップＳ６２において、アービトレーションコントローラ７は、コンパレータ６−１から端子７ｇに入力される信号がＴｒｕｅであるか否かを判定する。例えば、コンパレータ６−１から端子７ｇに入力される信号がＴｒｕｅではないと判定された場合、その処理は、ステップＳ５８に進み、ラウンドロビン方式で優先順位が設定される。
【００９２】
すなわち、ステップＳ５４，Ｓ６２において、いずれも判定がＮｏとなるということは、符号化部１、および、復号部２のいずれもリクエスト信号を出力してから、所定の値Ｃ１に対応する待ち時間を経過しておらず、待ち時間が同一であると判定されるため、待ち時間による比較をせずに、ラウンドロビン方式で優先順位が設定される。
【００９３】
ステップＳ６２において、コンパレータ６−１から端子７ｇに入力される信号がＴｒｕｅであると判定された場合、その処理は、ステップＳ６１に進み、復号部２に優先的に優先順位が設定される。すなわち、ステップＳ５４において、Ｎｏで、ステップＳ６２において、Ｙｅｓであるということは、符号化部１では、リクエスト信号を送信してから所定の値Ｃ１に対応する待ち時間が発生していないことになるが、復号部２では、リクエスト信号を送信してから所定の値Ｃ１に対応する待ち時間が発生していることになるため、復号部２の方が、符号化部１よりもリクエスト信号を送信してからの待ち時間が長いことになるので、復号部２に対して優先的に優先順位が設定される。
【００９４】
ステップＳ５５において、コンパレータ４−２から端子７ｃに入力される信号がＴｒｕｅではないと判定された場合、ステップＳ６３において、アービトレーションコントローラ７は、コンパレータ６−１から端子７ｈに入力される信号がＴｒｕｅであるか否かを判定し、コンパレータ６−１から端子７ｈに入力される信号がＴｒｕｅではないと判定した場合、その処理は、ステップＳ６０に進む。すなわち、ステップＳ５６において、Ｎｏで、かつ、ステップＳ６３において、Ｎｏであるということは、符号化部１は、所定の値Ｃ１に対応する時間以上の待ち時間が発生していることになるが、復号部２は、所定の値Ｃ１に対応する時間にも満たない時間しか待ち時間が発生しないことになり、符号化部１の方がリクエスト信号を出力してからより長い待ち時間が発生しているので、ステップＳ６０において、符号化部１に対して優先的に優先順位が設定される。
【００９５】
ステップＳ６３において、コンパレータ６−１から端子７ｈに入力される信号がＴｒｕｅであると判定した場合、ステップＳ６４において、アービトレーションコントローラ７は、コンパレータ６−２から端子７ｉ入力される信号がＴｒｕｅであるか否かを判定し、コンパレータ６−２から端子７ｉに入力される信号がＴｒｕｅではないと判定した場合、その処理は、ステップＳ５８に進む。すなわち、ステップＳ５５において、Ｎｏで、かつ、ステップＳ６４において、Ｎｏであるということは、符号化部１、および、復号部２のいずれも、リクエスト信号を送信してから、所定の値Ｃ１に対応する時間までの待ち時間が発生し、所定の値Ｃ２に対応する時間までの待ち時間は発生していないことになるため、発生している待ち時間は同一であると判定し、待ち時間による比較を行わずに、ステップＳ５８において、ラウンドロビン方式により優先順位が設定される。
【００９６】
ステップＳ５６、または、Ｓ５７において、コンパレータ６−１から端子７ｈにＴｒｕｅの信号が入力されていない、または、コンパレータ６−２から端子７ｉにＴｒｕｅの信号が入力されていないと判定された場合、その処理は、ステップＳ６０に進み、符号化部１に優先的に優先順位が設定される。すなわち、ステップＳ５６またはＳ５７がＮｏであるということは、符号化部１は、所定の値Ｃ２に対応する以上の待ち時間が発生しているにもかかわらず、符号化部２は、所定の値Ｃ１に対応する時間にも満たない待ち時間である（ステップＳ５６がＮｏの場合）か、または、所定の値Ｃ２に対応する時間にも満たない待ち時間しか発生していないことになるので、いずれにおいても、待ち時間は、復号部２よりも符号化部１の方が長いことになるので、符号化部１に優先的に優先順位を設定する。
【００９７】
以上の処理により、複数の複数のモジュールが存在する場合でも、リクエスト信号を送信してからの待ち時間に応じて、効率よく優先順位を設定することができるので、例えば、図１で示したようなタイミングで符号化部１と復号部２の処理が実行されるようなとき、処理効率を向上させることができる。
【００９８】
図８Ａ，Ｂは、上述の処理により優先順位を設定して、バス８の取得をモジュール毎に調整したときのリクエスト信号の送信タイミングと各モジュールの処理状態を示すタイミングチャートである。
【００９９】
尚、図８Ａ，Ｂにおいては、説明の都合上、図８Ａが符号化部１の処理を示し、図８Ｂが復号部２の処理を示すタイミングチャートであるものとするが、入れ替わっても同様である。また、図８Ａ，Ｂにおいては、実線で示す処理のタイミングは、ラウンドロビン方式でバスアービトレーションを行った場合のタイミングチャートであり、図１で示したタイミングチャートと同様のものであり、ここでは、第１モジュールが符号化部１を示し、第２モジュールが復号部２に相当する。また、点線で示した処理のタイミングは、図７のフローチャートを参照して説明した方法によりバスアービトレーション処理（バス取得の調停処理）を行った場合のタイミングチャートである。さらに、点線で示す図７のフローチャートに準じた方法で実行されたバスアービトレーションによりなされた処理やリクエスト信号を送信するタイミングには、「’」を付している。
【０１００】
すなわち、時刻ｔ１でリクエスト信号Ｒ１’が送信されると、このときは、符号化部１からのリクエストだけであるので（図７のステップＳ５１がＹｅｓの場合）、符号化部１に確認信号が送信されて、処理１’が実行され、その処理が終了する時刻ｔ２のタイミングで、新たにリクエスト信号Ｒ２’が送信されると、このときも、符号化部１からのリクエストだけであるので（図７のステップＳ５１がＹｅｓの場合）、符号化部１に確認信号が送信されて、処理２’が実行される。さらに、処理２’が終了する時刻ｔ３において、符号化部１からリクエスト信号Ｒ３’が送信されると同時に、復号部２がリクエスト信号Ｒ１１’を送信する。このとき、いずれも所定の値Ｃ１に対応する時間だけリクエスト信号が送信されてから経過していないので（ステップＳ５４がＮｏ、でかつ、ステップＳ６２がＮｏ）、ラウンドロビン方式で優先順位が設定されて、復号部２に確認信号が送信されて（直前では符号化部１が優先されるように優先順位が設定されているため）、処理１１’が実行される。処理１１’が終了する時刻ｔ４においては、リクエスト信号を送信しているのは、符号化部１だけとなるので（ステップＳ５１がＹｅｓ）、符号化部１に確認信号を送信し、処理３’が実行される。
【０１０１】
処理３’が実行された後のタイミングである時刻ｔ５において、符号化部１がリクエスト信号Ｒ４’を出力すると、そのタイミングでリクエスト信号を出力しているモジュールは、符号化部１のみであるので（ステップＳ５１がＹｅｓ）、符号化部１に確認信号が送信されて、処理４’が実行される。
【０１０２】
処理４’が終了する時刻ｔ６において、復号部２は、リクエスト信号Ｒ１２’を出力する。このとき、リクエスト信号を送信しているモジュールは、復号部２だけである（ステップＳ５２がＹｅｓ）ので、復号部２に確認信号が送信されて、処理１２’が実行される。
【０１０３】
処理４’が終了する時刻ｔ６から２タイミング（時刻ｔ６と時刻ｔ８との時間差）遅れた時刻ｔ８において、符号化部１は、リクエスト信号Ｒ５’を出力する（図１においても、処理４の後、２タイミング遅れてリクエスト信号Ｒ５が出力されている）。このとき、リクエスト信号を送信しているモジュールは、符号化部１だけである（ステップＳ５１がＹｅｓ）ので、符号化部１に確認信号が送信されて、処理５’が実行される。
【０１０４】
処理５’が終了する時刻ｔ９のタイミングで、復号部２は、リクエスト信号Ｒ１３’を出力する。このとき、リクエスト信号を送信しているモジュールは、復号部２だけである（ステップＳ５２がＹｅｓ）ので、復号部２に確認信号が送信されて、処理１２’が実行される。
【０１０５】
さらに、処理１３’が終了する時刻ｔ１０において、復号部２はリクエスト信号Ｒ１４’を出力する。このときも、リクエスト信号を送信しているモジュールは、復号部２だけである（ステップＳ５２がＹｅｓ）ので、復号部２に確認信号が送信されて、処理１４’が実行される。
【０１０６】
処理１４’が終了する時刻ｔ１１において、復号部２は、リクエスト信号Ｒ１５’を出力する。同時に、符号化部１も、リクエスト信号Ｒ６’を出力する。このとき、いずれもリクエスト信号が送信されてから所定の値Ｃ１に対応する時間だけ経過していないので（ステップＳ５４がＮｏ、でかつ、ステップＳ６２がＮｏ）、ラウンドロビン方式で優先順位が設定されて、符号化部１に確認信号が送信されて（直前では復号部２が優先されるように優先順位が設定されて、処理１４’が実行されているため）、処理６’が実行される。処理６’が終了する時刻ｔ１２においては、リクエスト信号を送信しているのは、復号部２だけとなるので（ステップＳ５２がＹｅｓ）、復号部２に確認信号が送信され、処理１５’が実行される。さらに、処理１５’が終了する時刻ｔ１３において、復号部２はリクエスト信号Ｒ１６’を出力するが、このときも、リクエスト信号を出力しているモジュールは、復号部２のみであるので、復号部２に確認信号が送信されて、処理１６’が実行されて処理が終了する。
【０１０７】
結果として、ラウンドロビン方式で優先順位を設定するようにしたときには、図１Ａ，Ｂの双方の処理を同時に実行すると、その処理時間は、時間ｔ１乃至ｔ１８であったのに対して、図７のフローチャートを参照して説明した処理によると、処理時間は、時間ｔ１乃至ｔ１４となる。
【０１０８】
このようにバスアービトレーションを効率よく行うようにすることができるので、ＬＳＩ全体として処理時間を短縮することができ、結果的に、処理速度を向上させるようにすることができる。
【０１０９】
また、図７のフローチャートを参照して説明した優先順位の設定方法は、リクエスト信号が複数のモジュールから入力されていた場合、コンパレータ４−１，４−２，６−１，６−２から端子７ｂ，７ｃ，７ｈ，７ｉに入力される信号のパターンにより分けられることになる。
【０１１０】
図９は、これらのパターン毎に設定される優先順位をまとめたものである。尚、図９においては、Ｔｒｕｅの信号が「１」、Ｆａｌｓｅの信号が「０」としてそれぞれ示されている。また、符号化部１をモジュールＭ０、復号部２をモジュールＭ１として示している。さらに。図中左列は、優先順位の設定状態を示しており、左から優先順位が第１位、第２位を示しており、Ｒ（Ｍ０，Ｍ１）は、モジュールＭ０，Ｍ１の優先順位をラウンドロビン方式で設定することを示している。
【０１１１】
図９においては、コンパレータ（Ｃｏｍｐ）４−１，４−２，６−１，６−２の出力信号が、（０，０，０，０），（１，０，１，０），（１，１，１，１）の場合、ラウンドロビン方式で優先順位が設定され、（１，０，０，０），（１，１，０，０），（１，１，１，０）の場合、モジュールＭ０が優先順位第１位に設定され、モジュールＭ１が第２位に設定され、（１，０，１，１），（０，０，１，１），（０，０，１，０）の場合、モジュールＭ１が優先順位第１位に設定され、モジュールＭ０が第２位に設定されることが示されている。
【０１１２】
尚、上述の（＊１，＊２，＊３，＊４）は、＊１がコンパレータ４−１から出力される信号を、＊２がコンパレータ４−２から出力される信号を、＊３がコンパレータ６−１から出力される信号を、＊４がコンパレータ６−２から出力される信号をそれぞれ示している。
【０１１３】
従って、アービトレーションコントローラ７は、これらのパターンをテーブルとして予め記憶しておき、このパターンに応じて確認信号を各モジュール、すなわち、今の場合、符号化部１、または、復号部２に送信するようにしてもよい。
【０１１４】
また、以上の例においては、モジュールとして、符号化部１、および、復号部２の２個から構成されるＬＳＩの構成例について説明してきたが、モジュールの数は、それ以上の数であってもよく、例えば、図１０で示すように、モジュールが３個のＬＳＩの構成であってもよい。
【０１１５】
図１０において、モジュール１０１乃至１０３は、図２の符号化部１、または、復号部２に対応するものであり、以下においては、モジュールＭ０乃至Ｍ２とも称する。また、カウンタ１０４乃至１０６は、図２のカウンタ３または５と対応するものである。さらに、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３は、図２のコンパレータ４−１，４−２，６−１、または６−２と対応するものである。ただし、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３は、コンパレータ１０７−１乃至１０９−１が所定の値Ｃ１とカウント値を比較し、コンパレータ１０７−２乃至１０９−２が所定の値Ｃ２とカウント値を比較し、コンパレータ１０７−３乃至１０９−３が所定の値Ｃ３とカウント値を比較しており、ここでは、Ｃ１＜Ｃ２＜Ｃ３であるものとする。また、アービトレーションコントローラ１１０は、図２のアービトレーションコントローラ７に対応するものであり、バス１１１は、バス８に対応するものであり、外部メモリ１１２は、外部メモリ９に対応するものである。
【０１１６】
このような構成の場合、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３から出力される信号に対応して、図１１乃至図１３で示されるようにアービトレーションコントローラ１１１が優先順位を設定し、バス１１１を取得させて、外部メモリ１１２を適宜利用して各種の処理を実行させる。
【０１１７】
すなわち、図１１で示すように、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（０，０，０，０，０，０，０，０，０），（１，０，０，１，０，０，１，０，０），（１，１，０，１，１，０，１，１，０），　（１，１，１，１，１，１，１，１，１）の場合、モジュールＭ０乃至Ｍ２はラウンドロビン方式により優先順位が設定される。
【０１１８】
また、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（１，０，０，０，０，０，０，０，０），（１，１，０，０，０，０，０，０，０），（１，１，０，１，０，０，１，０，０），（１，１，１，０，０，０，０，０，０），（１，１，１，１，０，０，１，０，０），　（１，１，１，１，１，０，１，１，０）の場合、第１位が、モジュールＭ０であり、第２位、および、第３位は、モジュールＭ１，Ｍ２からラウンドロビン方式により設定される。
【０１１９】
さらに、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（０，０，０，１，０，０，１，０，０），（０，０，０，１，１，０，１，１，０），（０，０，０，１，１，１，１，１，１），（１，０，０，１，１，０，１，１，０），（１，０，０，１，１，１，１，１，１），　（１，１，０，１，１，１，１，１，１）の場合、第１位、および、第２位は、モジュールＭ１，Ｍ２からラウンドロビン方式により設定され、第３位が、モジュールＭ０として設定される。
【０１２０】
また、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（１，１，０，１，０，０，０，０，０），（１，１，１，１，１，０，１，０，０），（１，１，１，１，１，０，１，１，０），（１，１，１，１，１，０，０，０，０）の場合、第１位はモジュールＭ０、第２位は、モジュールＭ１、第３位はモジュールＭ２として設定される。
【０１２１】
さらに、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（１，１，０，０，０，０，１，０，０），（１，１，１，０，０，０，１，０，０），（１，１，１，０，０，０，１，１，０），（１，１，１，１，０，０，１，１，０）の場合、第１位はモジュールＭ０、第２位は、モジュールＭ２、第３位はモジュールＭ１として設定される。
【０１２２】
また、図１２で示すように、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（０，０，０，１，０，０，０，０，０），（０，０，０，１，１，０，０，０，０），（１，０，０，１，１，０，１，０，０），（０，０，０，１，１，１，０，０，０），（１，０，０，１，１，１，１，０，０），　（１，１，０，１，１，１，１，１，０）の場合、第１位が、モジュールＭ１であり、第２位、および、第３位は、モジュールＭ０，Ｍ２からラウンドロビン方式により設定される。
【０１２３】
さらに、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（１，０，０，０，０，０，１，０，０），（１，１，０，０，０，０，１，１，０），（１，１，１，０，０，０，１，１，１），（１，１，０，１，０，０，１，１，０），（１，１，１，１，０，０，１，１，１），　（１，１，１，１，１，０，１，１，１）の場合、第１位、および、第２位は、モジュールＭ０，Ｍ２からラウンドロビン方式により設定され、第３位が、モジュールＭ１として設定される。
【０１２４】
また、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（１，０，０，１，１，０，０，０，０），（１，０，０，１，１，１，０，０，０），（１，１，０，１，１，１，０，０，０），（１，１，０，１，１，１，１，０，０）の場合、第１位はモジュールＭ１、第２位は、モジュールＭ０、第３位はモジュールＭ２として設定される。
【０１２５】
さらに、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（０，０，０，１，１，０，１，０，０），（０，０，０，１，１，１，１，０，０），（０，０，０，１，１，１，１，１，０），（１，０，０，１，１，１，１，１，０）の場合、第１位はモジュールＭ１、第２位は、モジュールＭ２、第３位はモジュールＭ０として設定される。
【０１２６】
また、図１３で示すように、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（０，０，０，０，０，０，１，０，０），（０，０，０，０，０，０，１，１，０），（１，０，０，１，０，０，１，１，０），（０，０，０，０，０，０，１，１，１），（１，０，０，１，０，０，１，１，１），　（１，１，０，１，１，０，１，１，１）の場合、第１位が、モジュールＭ２であり、第２位、および、第３位は、モジュールＭ０，Ｍ１からラウンドロビン方式により設定される。
【０１２７】
さらに、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（１，０，０，１，０，０，０，０，０），（１，１，０，１，１，０，０，０，０），（１，１，１，１，１，１，０，０，０），（１，１，０，１，１，０，１，０，０），（１，１，１，１，１，１，１，０，０），　（１，１，１，１，１，１，１，１，０）の場合、第１位、および、第２位は、モジュールＭ０，Ｍ１からラウンドロビン方式により設定され、第３位が、モジュールＭ２として設定される。
【０１２８】
また、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（１，０，０，０，０，０，１，１，０），（１，０，０，０，０，０，１，１，１），（１，１，０，０，０，０，１，１，１），（１，１，０，１，０，０，１，１，１）の場合、第１位はモジュールＭ２、第２位は、モジュールＭ０、第３位はモジュールＭ１として設定される。
【０１２９】
さらに、コンパレータ１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３からの出力信号が、（０，０，０，１，０，０，１，１，０），（０，０，０，１，０，０，１，１，１），（１，０，０，１，１，０，１，１，１），（０，０，０，１，１，０，１，１，１）の場合、第１位はモジュールＭ２、第２位は、モジュールＭ１、第３位はモジュールＭ０として設定される。
【０１３０】
このような処理により、図１０においては、リクエスト信号を送信してから確認信号が送信されてくるまでの待ち時間が、所定の値Ｃ１に対する待ち時間Ｓ、所定の値Ｃ２に対応する待ち時間Ｍ、所定の値Ｃ３に対応する待ち時間Ｌが設定され、Ｃ１＜Ｃ２＜Ｃ３であることからＳ＜Ｍ＜Ｌとなるので、各モジュールＭ０乃至Ｍ２毎の待ち時間の組み合わせに応じて、モジュールＭ０乃至Ｍ２の優先順位が設定されて、その中で第１位に設定されているモジュールに対してバス１１１が取得されるようになり、外部メモリ１１２に対してデータを記録させると共に読み出せるように調停を行うことができるので、ＬＳＩ内の各モジュールの処理を全体として効率よく実行させることが可能となり、結果として、処理速度を向上させることが可能となる。
【０１３１】
尚、以上の例においては、符号化部１と復号部２をモジュールとして設定した場合のＬＳＩの構成例について説明してきたが、モジュールはこれ以外のものであってもよい。また、以上においては、ＬＳＩにおける各モジュールを例として説明してきたが、ＬＳＩ上のモジュールに限らず、例えば、プログラム上の処理を実行する際に、ＣＰＵにより処理の優先順位を設定する場合に応用してもよい。
【０１３２】
さらに、図２の構成例における、画像入力部２１、動き予測部２２、符号化処理部２３、ビットストリーム出力部２４、ビットストリーム入力部４２、復号処理部４３、動き補償部４４、および、画像出力部４５のそれぞれをモジュールとして構成するようにしてもよい。
【０１３３】
以上によれば、リクエスト信号を送信してから確認信号が送信されてくるまでの待ち時間の長さに応じて、モジュールが取得するバスの優先順位が設定されるので、適正な優先順位を設定することができ、効率のよいバスアービトレーション（バスの取得を調停する処理）を実現させることが可能となる。
【０１３４】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
【０１３５】
図１２は、図２で示したＬＳＩを、それぞれソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのＣＰＵ２０１は、パーソナルコンピュータの動作の全体を制御する。また、ＣＰＵ２０１は、バス２０４および入出力インタフェース２０５を介してユーザからキーボードやマウスなどからなる入力部２０６から指令が入力されると、それに対応してＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）２０２に格納されているプログラムを実行する。あるいはまた、ＣＰＵ２０１は、ドライブ２１０に接続された磁気ディスク２２１、光ディスク２２２、光磁気ディスク２２３、または半導体メモリ２２４から読み出され、記憶部２０８にインストールされたプログラムを、ＲＡＭ（ＲａｎｄｏｍＡｃｃｅｓｓ　Ｍｅｍｏｒｙ）２０３にロードして実行し、出力部２０７が実行結果を出力する。さらに、ＣＰＵ２０１は、通信部２０９を制御して、外部と通信し、データの授受を実行する。
【０１３６】
プログラムが記録されている記録媒体は、図１２に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２２１（フレキシブルディスクを含む）、光ディスク２２２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ−Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）を含む）、光磁気ディスク２２３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｃ）を含む）、もしくは半導体メモリ２３４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているＲＯＭ２０２や、記憶部２０８に含まれるハードディスクなどで構成される。
【０１３７】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【０１３８】
【発明の効果】
本発明によれば、適正な優先順位を設定することができ、効率のよいバスアービトレーション（バスの取得を調停する処理）を実現させることが可能となる。
【図面の簡単な説明】
【図１】従来のバスアービトレーションによる複数のモジュールによる処理のタイミングを示すタイミングチャートである。
【図２】本発明を適用したＬＳＩの構成を示すブロック図である。
【図３】符号化制御処理を説明するフローチャートである。
【図４】カウント処理を説明するフローチャートである。
【図５】比較処理を説明するフローチャートである。
【図６】復号制御処理を説明するフローチャートである。
【図７】調停処理を説明するフローチャートである。
【図８】本発明を適用したバスアービトレーションによる複数のモジュールによる処理のタイミングを示すタイミングチャートである。
【図９】図２のコンパレータの出力信号のパターンと優先順位の関係を示す図である。
【図１０】モジュールが３個の場合のＬＳＩの構成例を示すブロック図である。
【図１１】図１０のコンパレータの出力信号のパターンと優先順位の関係を示す図である。
【図１２】図１０のコンパレータの出力信号のパターンと優先順位の関係を示す図である。
【図１３】図１０のコンパレータの出力信号のパターンと優先順位の関係を示す図である。
【図１４】媒体を説明する図である。
【符号の説明】
１　符号化部，　２　復号部，３　カウンタ，　３ａ，３ｂ　端子，　４−１，４−２　コンパレータ，５　カウンタ，　５ａ，５ｂ　端子，　６−１，６−２　コンパレータ，　７　アービトレーションコントローラ，　７ａ　メモリ，７ｂ乃至７ｉ　端子，　８　バス，　９　外部メモリ，　２１　画像入力部，２２　動き予測部，　２３　符号化処理部，　２４　ビットストリーム出力部，２５　符号化制御部，　２５ａ，２５ｂ　端子，　４１　復号制御部，　４２ビットストリーム入力部，　４３　復号処理部，　４４　動き補償部，　４５画像出力部，　１０１乃至１０３　モジュール，　１０４乃至１０６　カウンタ，　１０７−１乃至１０７−３，１０８−１乃至１０８−３，１０９−１乃至１０９−３　コンパレータ，　１１０　アービトレーションコントローラ，　１１１　バス，　１１２　外部メモリ
【図１】
2004126873.tif 000003
【図２】
2004126873.tif 000004
【図３】
2004126873.tif 000005
【図４】
2004126873.tif 000006
【図５】
2004126873.tif 000007
【図６】
2004126873.tif 000008
【図７】
2004126873.tif 000009
【図８】
2004126873.tif 000010
【図９】
2004126873.tif 000011
【図１０】
2004126873.tif 000012
【図１１】
2004126873.tif 000013
【図１２】
2004126873.tif 000014
【図１３】
2004126873.tif 000015
【図１４】
2004126873.tif 000016