説明

バス制御装置及び情報処理装置

【課題】外部からバス使用量を制御できない管理外モジュールを有する場合であっても、バス上のデータ転送量がバス帯域を超えることを抑制可能なバス制御装置を提供する。
【解決手段】本発明にかかるバス制御装置は、情報処理装置に対してバス制御を行うバス制御装置であり、バス監視部と、制御部を有する。情報処理装置は、バスと、外部によりバスの使用量が制御できない管理外モジュールを1つ以上含む管理外ブロックと、外部によりバスの使用量が制御できる管理内モジュールを1つ以上含む管理内ブロックとを備える。制御部は、バス監視部が得たデータ転送量と、管理内ブロックによるバスの使用量とから管理外ブロックによるバスの使用量を算出すると共に、算出した管理外ブロックのバスの使用量と、管理内ブロックによるバスの使用量との和が第1の閾値以下になるように、管理内ブロックによるバスの使用量を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バス制御、具体的には、バス上を流れるデータ量の制御技術に関する。
【背景技術】
【0002】
近年、多くのデジタルAV機器には、複数の画像処理モジュールが搭載されている。これらの画像処理モジュールは、処理を行う際に、夫々メモリへアクセスする。画像のHD(High Defination)化などに伴う画像サイズの増大やAV機器の多機能化により、AV機器における画像処理モジュールによるメモリ使用量が、従来より増大し、従ってメモリバス上の単位時間当たりのデータ転送量も増大している。
【0003】
メモリバス上の単位時間当たりのデータ転送量が、メモリの転送能力、すなわち、メモリバス帯域を超える(以下、帯域の破綻という。)と、画像処理が規定時間内に終了しないなどの問題が発生して、画乱れなどの症状が発生する。そのため、バス帯域が破綻しないように、あるいは、破綻した場合でも短時間にて回復できるように、メモリへのアクセスを行う各モジュールを制御する必要がある。
【0004】
特許文献1に記載の技術は、処理毎に処理モードにおける動作パス情報から、バスに転送されるデータ転送量を予測し、予測されたデータ転送量に応じて符号化パラメータを変更することにより、バスのデータ転送量を調整する。
【0005】
図11は、特許文献1に記載の高速データ転送制御装置が適用された画像処理装置を示すブロック図である。画像処理装置は、データを転送するためのバス1001と、バス1001を介して送受信する画像入力モジュール1002と、画像回転処理モジュール1003と、画像処理モジュール1004と、画像出力モジュール1005と、画像符号化/復号化モジュール1006と、メモリ1007と、バス制御部1008等から構成される。
【0006】
図12は、バス制御部1008の内部構成を示す模式図である。バス制御部1008は、同時動作パス情報発生部1009と、転送データ量演算部1010とを有する。同時動作パス情報発生部1009は、ジョブ毎あるいは制御タイミング毎に、同時動作モジュールの処理パス情報を発生する。転送データ量演算部1010は、同時動作モジュールの処理パス情報から、バス1001を転送されるデータ量を演算する。
【0007】
バス制御部1008からの同時動作パス情報及び処理パス情報は、バス1001を介して画像符号化/復号化モジュール1006内の画像符号化/復号化部1011に供給され、画像符号化/復号化部1011は、符号化/復号化の際の符号化パラメータ、すなわち、スケールファクタ及び量子化テーブルを変更する。
【0008】
図13は、高速データ転送制御装置の動作を説明するためのフローチャートである。同時動作パス情報発生部1009においては、同時に動作するモジュールの動作パスが判別される(ステップS1103)。次に、バス1001を転送されるデータ量が転送データ量演算部1010により演算される(ステップS1104)。次に、転送データの量が判別される(ステップS1105)。転送データ量が、予め設定された量より少なく、所定時間での転送が終了するとバス制御部1008において予測された場合は、そのままジョブを実行する(ステップS1106)。コマンドが終了する迄はステップS1103に戻る(ステップS1106)。コマンドが終了したらステップS1102に戻る。
【0009】
特許文献1に記載のバス制御部1008は、動作パス情報から、バスに転送される全データ転送量を予測する。そして、予測されたデータ転送量が、予め設定されたデータ転送量以下となるよう、画像の符号化パラメータを変更してバスに転送されるデータ量を調整し、バス帯域が破綻しないように制御している。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平10−224532号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
特許文献1に記載の技術では、データ転送開始前に、データ転送量を予測して、処理パス情報を作成し、データ転送量を調整している。
【0012】
しかしながら、例えばネットワークTVなど、インターネットに接続されるデジタルAV機器においては、ユーザまたはシステムによって追加のアプリケーションをインターネット経由でダウンロードして動作させる場合がある。
【0013】
このような、製品出荷後にハードウェアやソフトウェアを追加及び変更する場合には、これら追加及び変更されたモジュール(以下、追加モジュールという。)の動作に伴うメモリアクセスが追加及び変更される。追加モジュールによるバス上のデータ転送量は、追加モジュール毎に異なるために、バスの全データ転送量は予測できない。
【0014】
すなわち、特許文献1に記載のシステムの場合、追加モジュールによるバス上のデータ転送量が予測できないために、バス1001上に転送されるデータ転送量が予測できない。データ転送量が正しく予測できない場合、バス制御部1008は各モジュールが使用するバス1001の帯域を適正に決定できず、処理パス情報が定義できない。そのため、バスの使用量がバス帯域を上回り、バスが破綻する可能性がある。
【課題を解決するための手段】
【0015】
本発明の1つの態様は、情報処理装置に対してバス制御を行うバス制御装置であり、バス監視部と、制御部を有する。情報処理装置は、バスと、モジュール部を有する。モジュール部は、バスを共有し、外部とのデータの送受信にバスを使用する複数の機能モジュールであって、管理外ブロックと管理内ブロックを備える。管理内ブロックは、外部によりバスの使用量が制御できる管理内モジュールを1つ以上含む。管理外ブロックは、外部によりバスの使用量が制御できない管理外モジュールを1つ以上含む。
【0016】
バス制御装置におけるバス監視部は、該情報処理装置に対し、管理内ブロックのバス使用量と管理外ブロックのバス使用量の和であるバス上のデータ転送量を監視する。制御部は、バス監視部が得たデータ転送量と、管理内ブロックによるバスの使用量とから管理外ブロックによるバスの使用量を算出すると共に、算出した管理外ブロックのバスの使用量と、管理内ブロックによるバスの使用量との和が第1の閾値以下になるように、管理内ブロックによるバスの使用量を制御する。
【0017】
該バス制御装置は、外部からバスの使用量が制御不能な管理外モジュールを有する情報処理装置に対しても、バス上のデータ転送量を制御することができる。
【発明の効果】
【0018】
本発明にかかる技術によれば、外部からバスの使用量が制御不能な管理外モジュールを有する情報処理装置に対して、バスの破綻の回避、または、バスの破綻後の早めの復帰を図ることができる。
【図面の簡単な説明】
【0019】
【図1】実施の形態にかかる画像処理装置100を示す図である。
【図2】実施の形態にかかるデータ転送量削減手段を示す図である。
【図3】実施の形態にかかる画像処理装置100が有する動作モードを示す表である。
【図4】実施の形態にかかるデータ転送量変化イベントが発生した場合のバス101上のデータ転送量を示す図である。
【図5】実施の形態にかかるデータ転送量超過イベントの場合のバス101のデータ転送量の変化を示す図である。
【図6】実施の形態にかかる動作状態変化イベントの際のデータ転送量の変化を示す図である。
【図7】実施の形態にかかる動作状態変化イベントの際のデータ転送量の変化を示す図である。
【図8】実施の形態にかかる画像処理装置100の動作を示すフローチャートである。
【図9】実施の形態にかかるバス監視部103の処理(ステップS2)を、より詳細に記したフローチャートである。
【図10】実施の形態にかかる本実施の形態にかかる制御部109の動作を示すフローチャートである。
【図11】従来技術にかかる画像処理装置を示すブロック図である。
【図12】従来技術にかかるバス制御部の内部構成を示す模式図である。
【図13】従来技術にかかる高速データ転送制御装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【0020】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、画像処理装置に対するバス制御装置に適用したものである。
【0021】
図1は、本実施の形態にかかる画像処理装置100を示す図である。画像処理装置100は、バス101と、メモリ102と、バス制御装置110と、管理内ブロック111と、管理外ブロック112と、を有する。
【0022】
バス制御装置110は、バス監視部103と、動作状態管理部108と、制御部109と、を有する。管理内ブロック111は、管理内モジュールとしての画像処理モジュール104〜106を有し、管理外ブロック112は、管理外モジュールとしての追加アプリ用モジュール107を有する。
【0023】
画像処理モジュール104乃至106及び追加アプリ用モジュール107は、画像の変換や圧縮など画像に関わる処理を行う。また、バス101及びメモリ102を介して外部と画像データを入出力する。図1の各モジュールの数等の構成は一例であり、他に管理内モジュールや管理外モジュールがあってもよい。
【0024】
バス101は、メモリ102と、メモリアクセスを行うモジュールである画像処理モジュール104〜106及び追加アプリ用モジュール107とを接続し、メモリ102とバス101に接続されている各構成要素間で入出力される転送データを中継する。
【0025】
管理内モジュールとしての画像処理モジュール104乃至106は、異なる動作モードで処理を実行し得るものであり、実行する処理と動作モードによってメモリ102の使用量が異なる。なお、管理内モジュールが実行する処理は、例えば処理対象となる画像の種類(画像のサイズを含む)、ユーザ操作によるOSD表示のオン・オフ、や処理内容(例えば鮮鋭化処理やシャープネス処理等の、処理の種類、処理をするか否か)など、制御部109により変更できないものである。以下、管理内モジュールが実行する処理を管理内モジュールの「動作状態」という。各管理内モジュールの動作状態を示す情報は、動作状態管理部108に出力される。また、制御部109は、各管理内モジュールの動作モードを設定することができる。本実施の形態において、制御部109の動作モードの設定に従って、データ転送量削減手段のオン・オフを切り替える。
【0026】
データ転送量削減手段とは、管理内ブロック111のデータ転送量を削減するための処理であり、制御部109により、設定が切り替えられる。本実施の形態においては、管理内ブロック111の管理内モジュール毎に、データ転送量削減手段のオン・オフが切り替えられるものとする。データ転送量削減手段とは、例えば、画素間引きによる画像データの縮小処理や、減色処理による画像データの縮小処理である。また、間引きは単純に2画素毎に1画素を間引いて、半分のサイズにするものであるが、間引き処理ではなく、スケーリング処理により画像サイズを小さくするようにしてもよい。さらにまた、圧縮技術を使用してデータ量を減らすようにしてもよいし、処理自体をスキップするようにしてもよい。例えば、シャープネス処理のみを実行する画像処理モジュールが存在した場合、その画像処理モジュール自体の処理をスキップすることで、その画像処理モジュールからのバスアクセスがなくなるため、データ転送量を削減することができる。なお、データ転送量削減手段に、データの削減量が異なる複数のレベルを設定し、制御部109はレベルを切り替えるようにしてもよい。例えば、上述スケーリング処理などにおいては、スケーリング率を変えることにより、データ削減量の異なる複数のレベル設定をすることができる。
【0027】
図2は、データ転送量削減手段を示す図である。本実施の形態においては、画像処理モジュール104は、データ転送量削減手段1041として、間引き処理を実行し、画像処理モジュール105は、データ転送量削減手段1051として、減色処理を実行する。また、データ転送量削減手段は、制御部109により、オン・オフが切り替えられる。
【0028】
管理外モジュールとしての追加アプリ用モジュール107は、例えば、ソフトウェアを追加されたことにより動作するモジュールである。追加アプリ用モジュール107は、その動作状態を示す情報が動作状態管理部108に出力されず、また、その動作モードも、制御部109により制御されない。
【0029】
バス監視部103は、管理内ブロック111のバス101使用量と管理外ブロック112のバス101の使用量の和である、バス101上のデータ転送量を監視して測定し、制御部109に出力する。
【0030】
バス監視部103は、バス101を常時監視し、バス101に流れる単位時間当たりのデータ転送量、すなわち画像処理装置100全体の単位時間当たりのデータ転送量を計測する。バス監視部103は、例えば、各モジュールからメモリへのアクセスを調停するための、メモリインターフェースとなるユニットを有する。当該メモリインターフェースユニットには、各モジュールから、リードやライトのリクエスト、およびアクセスするアドレスとサイズとが伝達される。このようにして伝達されるデータに基づき、各モジュールからのアクセス・データ量をカウントして、単位時間当たりのバス101上のデータ転送量を計測する。また、例えば、バス監視部103は、メモリインターフェースユニットを含まず、各モジュールのデータ転送量に関する情報(リードライトのリクエスト等)をメモリ102の有する、メモリ・インターフェース・モジュールから取得し、単位時間当たりのデータ転送量を計測するようにしてもよい。なお、上記の単位時間当たりのデータ転送量を計測する方法は一例であり、これに限られるものではない。
【0031】
動作状態管理部108は、管理内ブロック111の画像処理モジュール104〜106から出力された動作状態に基づいて、管理内ブロック111の動作状態を管理する。そして、管理内ブロック111のデータ転送量の増加を伴って動作状態が変化した場合、制御部109に動作状態が変化することを出力する。
【0032】
制御部109は、バス監視部103が測定したバス101上のデータ転送量と、動作状態管理部108から得た管理内ブロック111の動作状態から想定したバスの使用量とから、管理外ブロック112によるバス101の使用量を算出する。そして、バス101上のデータ転送量を、管理内ブロック111の管理内モジュールそれぞれのデータ転送量削減手段のオン・オフを切り替えることによって動作モード(動作モードについては後述する。)を変更することにより、予め定められた閾値以下となるように制御する。これにより、本実施の形態にかかるバス制御装置110は、バス101上に転送されるデータ量を制御し、バス帯域の破綻を防ぐことができる。
【0033】
本実施の形態において、制御部109は、管理内ブロック111の動作モードを制御することにより、バス101上のデータ転送量を制御するため、以下、制御部109を「動作モード決定部」ともいう。
【0034】
ここで、本実施の形態においては、動作モードは、管理内モジュールにおける、データ転送量削減手段の設定状態である。管理内ブロックが複数の管理内モジュールを有する場合は、それぞれの管理内モジュールのデータ転送量削減手段の設定の組み合わせにより設定される。データ転送量削減処理の設定が、動作モード毎に異なるので、動作モード毎に、管理内ブロック111のデータ転送量は異なる。
【0035】
図3は、動作モードを示す表である。一例として、管理内ブロック111が、画像処理モジュール104及び画像処理モジュール105のふたつの管理内モジュールを有するものとする。画像処理モジュール104は、データ転送量削減手段として画素間引き処理を行う。画像処理モジュール105は、データ転送手段として減色処理を行う。制御部109は、画像処理モジュール104及び105のデータ転送量削減手段のオン・オフの組み合わせにより、動作モード1〜4のうち1つを選択する。
【0036】
動作モード1は、画像処理モジュール104の間引き処理がオフで、画像処理モジュール105の減色処理がオフであるため、画像処理モジュール104及び105のどちらも画質がもっとも良く、バス101のデータ転送量は最も多い。
【0037】
動作モード2は、画像処理モジュール104の間引き処理がオフで、画像処理モジュール105の減色処理がオンであるため、画像処理モジュール104の画質は最も良く、画像処理モジュール105の画質は動作モード1の場合よりも劣化する。データ転送量は、動作モード1に比べて減少する。
【0038】
動作モード3は、画像処理モジュール104の間引き処理がオンで、画像処理モジュール105の減色処理がオフであるため、画像処理モジュール104の画質は動作モード1及び2の場合より劣化し、画像処理モジュール105の画質は、動作モード1の場合と同様に最もよい。データ転送量は、動作モード2に比べて減少する。
【0039】
動作モード4は、画像処理モジュール104の間引き処理がオンで、画像処理モジュール105の減色処理がオンであるため、画像処理モジュール104及び画像処理モジュール105のどちらも画質は動作モード1及び2の場合より劣化する。データ転送量は、動作モード3に比べて減少する。
【0040】
以上より、この場合は、動作モード1が最もデータ転送量が大きく、動作モード4が最もデータ転送量が小さい。また、画像品質としては、動作モード1が最も高品質で、動作モード4が最も低品質となる。なお、図3の例では、画像処理モジュールの数を2、動作モードの数を4としたが、これは、一例であり、画像処理モジュールの数及び動作モードの数はこれに限られるものではない。
【0041】
制御部109による管理内ブロック111のモード設定について説明する。まず、管理内ブロック111の、現在の動作モードと動作状態とにおける、バス101の使用量である管理内データ転送量Aを算出する。制御部109は、動作状態管理部108から出力された動作状態と、現在の動作モードから管理内データ転送量Aを算出する。なお、管理内データ転送量Aは、動作状態管理部108が動作状態及び動作モードに基づいて算出し、制御部109へ出力するようにしてもよい。
【0042】
次に、制御部109は、バス監視部103から現時点のバス101上のデータ転送量である、全データ転送量B(実測値)を取得する。そして、管理外ブロック112のデータ転送量である、管理外データ転送量Cを、管理内データ転送量Aと、全データ転送量B(実測値)とから、以下の式1で算出する。
C = B − A ・・・(式1)
次に、予め定められた、バス101の可能な最大転送量より小さい第1の閾値としての上限データ転送量Dと、管理外データ転送量Cとから、管理内ブロック111が、実際に使用可能なデータ転送量である、使用可能データ転送量Eを以下の式2で算出する。
E = D − C ・・・(式2)
制御部109は、各モードにおける管理内ブロック111のデータ転送量を算出し、使用可能データ転送量E以下であって、かつ、データ転送量Eに最も近いデータ転送量となる、動作モードを選択する。
【0043】
本実施の形態にかかるバス制御装置110の制御部109は、バス監視部103が測定したバス101上のデータ転送量と、動作状態管理部108から得た管理内ブロック111の動作状態から想定したバスの使用量とから、管理外ブロック112によるバス101の使用量を算出する。そして、管理外ブロック112によるバス101の使用量と、管理内ブロック111のバス使用量とを合わせても、予め定められた規定値以下となるよう、管理内ブロック111に設定する動作モードを選択する。これにより、本実施の形態にかかるバス制御装置110は、バス101上に転送されるデータ量を制御し、バス帯域の破綻を防ぐことができる。
【0044】
バス制御装置110について、さらに詳細に説明する。バス制御装置110は、現時点のバス101上のデータ転送量である全データ転送量B(実測値)と、管理内ブロック111の動作状態の変化とに基づき、各種のイベントを生成する。データ転送量変化イベント、動作状態変化イベント、及びデータ転送量超過イベントを生成する。
【0045】
バス制御装置110は、全データ転送量B(実測値)と第1乃至第3の閾値とに基づいて、データ転送量変化イベント及びデータ転送量超過イベントを生成する。バス制御装置110は、管理内ブロック111の動作状態が、管理内データ転送量Aの増加を伴って変化した場合、状態変化イベントを生成する。
【0046】
データ転送量変化イベントは、バス101のデータ転送量が上限とする第1の閾値を超えた時、または下限とする第2の閾値を下回った場合に発生する。
【0047】
データ転送量超過イベントは、バス101上のデータ転送量が限界とする第3の閾値を超えた場合に発生する。
【0048】
ここで、第1乃至第3の閾値について説明する。第1の閾値は、予め定められた、バス101の可能な最大転送量より小さい第1の閾値としての上限データ転送量Dである。上限データ転送量Dは、バス101で転送可能な最大のデータ転送量またはメモリ102の転送可能な最大データ転送量のうち、少ない方の最大データ転送量Max(図4参照)に基づく。上限データ転送量Dは、最大データ転送量Maxから、予め決められた固定値であって任意な値であるマージンα分を減算した値である。ここでは一例として、マージンαは最大データ転送量Maxに対する5%の固定値とする。
【0049】
第2の閾値とは、バス101の全データ転送量B(実測値)の下限の基準となる下限データ転送量Fである。下限データ転送量Fは、バス101の全データ転送量の増減に応じて設定することが望ましい。本実施の形態では、制御部109が、前回の動作モード変更後のバス101上のデータ転送量として想定されたデータ転送量、すなわち、前回の動作モードを変更する過程で算出した管理外データ転送量Cと、前回選択した動作モードにおける管理内ブロック111のデータ転送量とを合わせたもの、を全データ転送量B0として算出する。そして、全データ転送量B0を、現在の基準データ転送量Gとし、基準データ転送量Gに対してマージンβを減算したデータ転送量を、下限データ転送量Fとする(図4参照)。ここでは一例として、マージンβは基準データ転送量Gに対する5%の値とし、基準データ転送量Gが変化する毎に、マージンβは再計算されるものとする。
【0050】
ここで、基準データ転送量Gに基づいて、第2の閾値である下限データ転送量Fが設定される理由について説明する。本実施の形態においては、全データ転送量B(実測値)が第2の閾値を下回った場合には、データ転送量変化イベントが発生する。これは、管理外ブロック112のデータ転送量が減少した場合に、管理内ブロック111のデータ転送量が、動作モードの設定により、必要以上に制限されることを防ぐためである。基準データ転送量Gから第2の閾値を設定し、第2の閾値と、実測値である全データ転送量Bとを比較して、データ転送量変化イベントを生成する。これにより、前回の動作モードの際の算出値を基準として変化量を検出することができる。検出された変化量は、管理内ブロック111及び管理外ブロック112のデータ転出量の変化量である。変化量がマイナスであって、マージンβより値が大きい場合、動作モードを再設定することにより、バス101の帯域を無駄なく利用することができる。
【0051】
これに対し、第2の閾値が固定値である場合、仮に第2の閾値=50とする。そして、ある状態1における全データ転送量が100であり、ある状態2における全データ転送量が200であるとする。状態1における全データ転送量Bが、100から30に変化した場合、データ転送量変化イベントは発生するが、状態2において仮に管理外モジュールが停止し、全データ転送量が200から100に変化しても、データ転送量変化イベントが発生しない。そのため、管理内ブロック111の動作モードが、データ転送量が低い動作モードに設定されていても、動作モードを変更することができない。
【0052】
本実施の形態では、第2の閾値は状態1では100−5=95、状態2では200−10=190となる。従って、前回算出されたデータ転送量に関わらず、データ転送量が変化したことを検出でき、速やかにモードの再設定をすることができる。
【0053】
第3の閾値とは、マージンαより小さく、0以上であって、予め決められた固定値で任意な値であるマージンγを、最大データ転送量Maxから減算した、限界データ転送量Hである(図4参照)。ここでは一例として、マージンγは最大データ転送量Maxに対する2%の固定値とする。
【0054】
動作状態変化イベントは、データ転送量の制御が可能な管理内ブロック111の動作状態に、データ転送量の変化が伴う動作状態の変更がある場合に発生する。
【0055】
次に、各イベントが発生する際のバス制御装置110の動作について説明する。バス監視部103は、バス101上のデータ転送量が、第1の閾値を超えた場合、又は第2の閾値を下回った場合は、データ転送量変化イベントの発生を制御部109に通知し、第3の閾値を超えた場合には、データ転送量超過イベントを制御部109に通知する。
【0056】
動作状態管理部108は、画像処理モジュール104〜106から動作状態を取得し、取得した動作状態に変化があった場合には、制御部109に動作状態変化イベントを通知する。なお、バス監視部103は、データ転送量変化イベント及びデータ転送量超過イベントの発生を制御部109に対して通知せず、全データ転送量B(実測値)のみを制御部109に出力し、制御部109において、データ転送量変化イベント及びデータ転送量超過イベントを生成してもよい。同様に、動作状態管理部108は、動作状態変化イベントを制御部109に対して通知せず、動作状態のみを制御部109に出力し、制御部109において、動作状態変化イベントを生成してもよい。
【0057】
制御部109は、現在のデータ転送量と各種イベントの発生の通知に基づいて、管理内ブロック111の最適な動作モードを決定する。すなわち、バス監視部103からデータ転送量変化イベント又はデータ転送量超過イベントの発生を通知された場合、及び動作状態管理部108から動作状態変化イベントの発生を通知された場合に、画像処理モジュール104〜106の動作モードを再設定する。
【0058】
各種イベントの際の全データ転送量Bの変化を、図を用いて説明する。ここでは、制御部109は、管理内ブロック111に、図3の動作モード1〜4を設定できるものとする。図4乃至7は、イベントの際の全データ転送量Bの変化を示す図である。縦方向に単位時間当たりの全データ転送量B、横方向に時間経過を示す。タイミングt1において、イベントが発生し、タイミングt2で、データ転送量の変化が終了するものとする。時間0からタイミングt1までのグラフは、全データ転送量Bの実測値を示し、タイミングt1以降のグラフは、各動作モードにおける全データ転送量Bの予測値であるB1乃至B4を示す。実線のグラフが、それぞれのイベントにおいて選択される動作モードの全データ転送量Bを示すグラフである。
【0059】
図4は、データ転送量変化イベントの際の全データ転送量Bの変化を示す。ここでは、管理内ブロック111が動作モード1で動作しているものとする。タイミングt1において、全データ転送量Bが上限データ転送量Dを超えたことにより、データ転送量変化イベントが発生する。
【0060】
バス監視部103はデータ転送量変化イベントの発生を検出する。そして、制御部109にデータ転送量変化イベント通知して、実測したバス101上の全データ転送量Bを出力する。
【0061】
制御部109では、バス監視部103からのデータ転送量変化イベントの通知に応じて、管理内データ転送量、管理外データ転送量Cを算出する。
【0062】
次に、管理内ブロック111に動作モード1乃至4が設定された場合の、それぞれの管理内データ転送量A1乃至A4(計算値)を算出し、算出結果に基づき、全データ転送量B1乃至B4(計算値)を算出する。
【0063】
全データ転送量の算出結果に基づき、制御部109は、管理内データ転送量A1乃至A4(計算値)のうち、使用可能データ転送量Eより少なく、かつ最もデータ転送量の多いものを選択する。すなわち、上限データ転送量D以下であって、全データ転送量B1乃至B4が最も大きい(画質が最も良い)動作モード2を最適な動作モードとして選択する。これにより、バス101上のデータ転送量は、上限データ転送量D以下となる。
【0064】
なお、ここでは、全データ転送量B(実測値)が上限データ転送量Dを超えている場合について説明したが、全データ転送量B(実測値)が下限データ転送量Fより以下となった場合にも、データ転送量変化イベントが発生する。この場合も、制御部109は、管理内ブロック111の動作モードの再設定を行う。制御部109は、全データ転送量B(実測値)が上限データ転送量Dを超えている場合と同様に、全データ転送量B(実測値)が、上限転送量Dより少なく、かつ最もデータ転送量Dに近いデータ転送量となる動作モードを選択する。
【0065】
これにより、バス101の帯域が破綻を防ぎ、かつ、バス101の帯域を無駄にせず、より画像品質の良い画像処理を行うことができる。
【0066】
次に、データ転送量超過イベントの場合について説明する。図5は、データ転送量超過イベントの際のデータ転送量Bの変化を示す図である。タイミングt1において、全データ転送量B(実測値)が限界データ転送量Hを超えたことにより、データ転送量超過イベントが発生する。バス監視部103は、データ転送量超過イベントの発生を検出し、制御部109に出力する。制御部109は、制御部109は、バス監視部103からデータ転送超過イベントの通知を受け取ると、管理内ブロック111の4つの動作モードのうち、最もデータ転送量の小さい動作モード、すなわち、動作モード4を選択する。
【0067】
データ転送量超過イベントの際、制御部109は、管理外ブロック112のバス101の使用量を算出することなく、最も管理内ブロック111のバス使用量が小さくなる動作モードを、強制的に管理内ブロック111に設定する。これにより、データ転送量B(実測値)が限界データ転送量H を超える場合、管理内ブロック111の動作モードを迅速に変更するため、バス101の破綻を抑制し、また、仮に破綻したとしても短時間で復旧することができる。
【0068】
次に、動作状態変化イベントの際のデータ転送量の変化について説明する。図6は、動作状態変化イベントの際の全データ転送量Bの変化を示す図である。例えば、管理内ブロック111に動作モード1が設定されているものとする。タイミングt1で、管理内ブロック111への入力画像サイズが、1280x720から1920x1080に変化した場合、つまり、管理内データ転送量Aが増加する場合について説明する。
【0069】
タイミングt1において、動作状態管理部108は、画像処理モジュールの動作状態が変化することを検出し、制御部109に動作状態変化イベントを通知する。制御部109は、動作状態変化イベントの通知を受けると、管理内ブロック111が、変化後の動作状態で、かつ動作モード1乃至4を設定された場合の、それぞれ動作モードにおける管理内データ転送量A1乃至A4及び全データ転送量B1乃至B4を算出する。
【0070】
すなわち、それぞれの動作モードにおける管理内データ転送量A1乃至A4(計算値)と、使用可能データ転送量Eとを比較する。そして、動作モード1乃至4の中で、使用可能データ転送量Eより少なく、かつ最も使用可能データ転送量に近い動作モードを選択する。言い換えれば、管理内データ転送量A1乃至A4(計算値)管理外データ転送量Cを合算した全データ転送量B1乃至B4(計算値)を、上限データ転送量Dとを比較する。そして、動作モード1乃至4の中で、上限データ転送量Dより少なく、かつ最も全データ転送量B1乃至B4が上限データ転送量Dに近い動作モードを選択する。ここでは、動作モード1及び2では、全データ転送量B1及びB2が、上限データ転送量Dを超えるため、動作モード3が最適な動作モードとして選択される。これにより、管理内ブロック111の動作状態が変化しても、全データ転送量は、上限データ転送量D以下となる。
【0071】
図7は、動作状態変化イベントの際のデータ転送量の変化を示す図である。例えば、動作モード3が管理内ブロック111に設定されているものとする。タイミングt1で、管理内ブロック111への入力画像サイズが1920x1080から1280x720に変化した場合、つまり、管理内データ転送量Aが減少する場合について説明する。
【0072】
タイミングt1において、動作状態管理部108は、画像処理モジュールの動作状態が変化することを検出し、制御部109に動作状態変化イベントを通知する。制御部109は、動作状態変化イベントの通知を受けると、管理内ブロック111が、変化後の動作状態で、かつ動作モード1乃至4を設定された場合の管理内データ転送量A1乃至A4及び全データ転送量B1乃至B4を算出する。
【0073】
すなわち、それぞれの動作モード1乃至4における管理内データ転送量A1乃至4(計算値)と、使用可能データ転送量Eとを比較する。そして、動作モード1乃至4の中で、使用可能データ転送量Eより少なく、かつ最も使用可能データ転送量に近い動作モードを選択する。言い換えれば、管理外データ転送量Cを合算した全データ転送量B1乃至B4(計算値)を、上限データ転送量Dとを比較する。そして、動作モード1乃至4の中で、上限データ転送量Dより少なく、かつ最も全データ転送量B1乃至B4(計算値)が上限データ転送量Dに近い動作モード1乃至4のうちいずれかを選択する。
【0074】
ここでは、管理内ブロック111の全ての動作モードにおける全データ転送量B1乃至B4(計算値)が、上限データ転送量Dより小さいため、最も全データ転送量が多い、すなわち画質の良い動作モード1が最適な動作モードとして選択される。これにより、管理内ブロック111の動作状態が、全データ転送量が下がるように変化した場合に、例えば管理内データ転送量が低いモードが設定されていた場合には、動作モードを切り替えることにより、バス帯域を無駄にせず、より画質よく画像処理を行うことができる。
【0075】
以上より、本実施の形態にかかるバス制御装置110は、バス101上の全データ転送量Bが、上限データ転送量D以上である場合、又は下限データ転送量F以下である場合には、全データ転送量Bが下限データ転送量Fから上限データ転送量Dの範囲内に収まるよう、管理内ブロック111の動作モードを再設定する。これにより、バス101の帯域の破綻を抑制し、かつバス101の帯域をより無駄なく利用することができる。
【0076】
また、バス制御装置110は、管理内ブロック111の動作状態の変化に基づいて、管理内ブロック111の動作モードを設定する。これにより、外部から管理内ブロック111の動作状態が変更された場合であっても、バス101の帯域の破綻を抑制することができる。また、動作状態が変化した場合に、変化後の動作状態での処理を開始する前、すなわち該動作状態に対応する処理を開始する前に、動作モードを変更して、バスの破綻を未然に防ぐという効果がある。
【0077】
また、管理内ブロック111に、管理内データ転送量Aが低い動作モードが設定されている場合に、例えば管理内ブロック111の動作状態が変更されて、全データ転送量Bが小さくなるような場合、管理内ブロック111の動作モードを変更することにより、バス101の帯域をより無駄なく使用することができる。
【0078】
次に、画像処理装置100の動作について、更に詳細に説明する。図8は、本実施の形態における画像処理装置100の動作を示すフローチャートである。
【0079】
まず、最初に画像処理装置100全体を初期化する。(ステップS1)これにより、動作状態及び動作モードは、初期化されるが、その初期値についてはここでは特定しない。
【0080】
バス監視部103は、一定の間隔でバス101の全データ転送量Bを検出し、検出結果を制御部109に出力する。データ転送量変化イベント、またはデータ転送量超過イベントが発生する場合、制御部109にイベントを通知する(ステップS2)。データ転送量変化イベント及びデータ転送量超過イベントのどちらかを通知された場合(ステップS3:Yes)、管理内ブロック111の動作モードを再設定する(ステップS6)。
【0081】
ステップS3にてイベントが通知されなかった場合(ステップS3:No)は、制御部109は、動作状態管理部108に、動作状態の変化を取得する(ステップS4)。動作状態の変化があり、動作状態変化イベントを通知された場合(ステップS5)、管理内ブロック111の動作モードを再設定する(ステップS6)。
【0082】
ステップS3、またはステップS5においてイベントがあった場合、制御部109により、新しい動作モードを決定し、画像処理モジュール104〜106に動作モードを通知する(ステップS6)。
【0083】
ステップS5にて動作状態変化イベントがなかった場合(ステップS5:No)、お帯ステップS6の後は、現在の動作状態と動作モードに従い、画像処理モジュール104〜106は画像処理を行う(ステップS7)。そして、ステップS7にて画像処理を行った後は、ステップS2に戻る。
【0084】
次に、各ステップの動作について、更に詳細に説明する。図9は、本実施の形態におけるバス監視部103の処理(図8のステップS2)を、より詳細に記したフローチャートである。バス監視部103は、バス101の全データ転送量Bを取得する(ステップS10)。次に、第3の閾値である、バス101の限界データ転送量Hを設定する(ステップS11)。
【0085】
次に、現在の全データ転送量Bが限界データ転送量Hと等しい、又は超えているか否かを判定する(ステップS12)。ステップS12にて、現在の全データ転送量Bが限界データ転送量Hと等しい、または、超えていると判定された場合(ステップS12:Yes)、バス監視部103は、制御部109にデータ転送量超過イベントを通知する(ステップS13)。
【0086】
ステップS12にて、現在の全データ転送量Bが限界データ転送量Hより小さい場合(ステップS12:No)、第1の閾値である上限データ転送量Dと、第2の閾値である下限データ転送量Fを設定する(ステップS14)。
【0087】
次に、現在の全データ転送量Bがバス101で上限データ転送量Dを超えたか、現在の全データ転送量Bが下限データ転送量Fより小さくなったかを判定する(ステップS15)。ステップS15にて現在の全データ転送量Bがバス101で上限データ転送量Dを以上か、現在の全データ転送量Bが下限データ転送量F以下であると判断された場合(ステップS15:Yes)、制御部109にデータ転送量変化イベントを通知する。(ステップS16)。
【0088】
次に、制御部109にて新しい動作モードを決定する処理(ステップS6)の動作を説明する。図10は、本実施の形態にかかる制御部109の動作を示すフローチャートであり、図8のステップS6の処理を、より詳細に記したものである。
【0089】
制御部109は、制御部109に通知されたイベントがデータ転送量超過イベントか否かを判定する(ステップS21)。イベントがデータ転送量超過イベント以外であった場合(ステップS21:No)、現在の動作モードと動作状態における管理内データ転送量Aを算出する(ステップS22)。
【0090】
次に、バス監視部103から現時点で使用されている全データ転送量B(実測値)を取得する(ステップS23)。
【0091】
次に、管理外ブロック112の管理外データ転送量Cを(式1)で算出する。(ステップS24)。次に、上限データ転送量Dとして、管理内ブロック111の使用可能データ転送量Eを(式2)で算出する(ステップS25)。
【0092】
次に、現在の動作状態において、動作モード毎の全データ転送量B1乃至B4を算出する(ステップS26)。管理内データ転送量Aが、使用可能データ転送量E以下であって、最もデータ転送量が大きい動作モードを選択する(ステップS27)。決定した動作モードを、管理内ブロック111に対して通知する(ステップS28)。
【0093】
ステップS21で、データ転送量超過イベントが発生する場合(ステップS21:Yes)、動作モードにおいて最もデータ転送量の小さい動作モードを設定する(ステップS29)。決定した動作モードを、管理内ブロック111に対して通知する(ステップS30)。
【0094】
なお、本実施の形態においては、データ転送量変化イベント、データ転送量超過イベント、動作状態変化イベントの3種類のイベントを検出する構成としていたが、3のイベントのうちいずれか1以上を検出するように構成してもよい。
【0095】
例えば、データ転送量変化イベントのみを検出使用する場合、管理内ブロック111の動作状態変化に対する動作モード変更のレスポンスは悪くなり、管理外ブロック112のデータ転送量が大きく変化した場合のメモリ帯域破綻期間は長くなるが、最終的には、システムとして使用可能なデータ転送量に収まる範囲で最適な動作モードを決定するため、画像処理モジュール104乃至106の画質劣化を最小限に抑えることができ、バス101のメモリ帯域が破綻し続けることもない。
【0096】
また、本実施の形態では、バス監視部103、動作状態管理部108、制御部109を、独立したモジュールとして示したが、バス101上の転送データ量を監視し、単位時間当たりのデータ転送量を計測する処理を除き、一部またはすべてをCPU上で動作するソフトウェアモジュールとして実装してもよい。
【0097】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0098】
100 画像処理装置
101 バス
102 メモリ
103 バス監視部
104 画像処理モジュール
105 画像処理モジュール
106 画像処理モジュール
107 追加アプリ用モジュール
108 動作状態管理部
109 制御部
110 バス制御装置
111 管理内ブロック
112 管理外ブロック


【特許請求の範囲】
【請求項1】
バスと、
前記バスを共有し、外部とのデータの送受信に前記バスを使用する複数の機能モジュールであって、外部により前記バスの使用量が制御できる管理内モジュールを1つ以上含む管理内ブロックと、外部により前記バスの使用量が制御できない管理外モジュールを1つ以上含む管理外ブロックとを有するモジュール部と、を有する情報処理装置に対し、
前記バス上のデータ転送量を監視するバス監視部と、
前記バス監視部が得た前記データ転送量と、前記管理内ブロックによる前記バスの使用量とから前記管理外ブロックによる前記バスの使用量を算出すると共に、算出した前記管理外ブロックの前記バスの使用量と、前記管理内ブロックによる前記バスの使用量との和が第1の閾値以下になるように、前記管理内ブロックによる前記バスの使用量を制御する制御部とを備えることを特徴とするバス制御装置。
【請求項2】
前記制御部は、算出した前記管理外ブロックの使用量と、前記管理内ブロックによる前記バスの使用量との和が、前記第1の閾値より小さい第2の閾値以上になるように、前記管理内ブロックによる前記バスの使用量を制御することを特徴とする請求項1に記載のバス制御装置。
【請求項3】
前記制御部は、前記バス監視部が得た前記データ転送量が、前記第1の閾値より大きい第3の閾値を超えたときに、前記管理外ブロックによる前記バスの使用量を算出せずに、前記管理内ブロックによる前記バスの使用量が最小になるように前記管理内ブロックによる前記バスの使用量を制御する請求項1または2に記載のバス制御装置。
【請求項4】
前記管理内ブロックは、異なる動作モードで処理を実行し得るものであり、実行する処理と動作モードによって前記バスの使用量が異なり、
前記制御部は、前記管理内ブロックが現在の動作モードで次の処理を実行するときに前記管理内ブロックによる前記バスの使用量が変化する場合に、算出した前記管理外ブロックの使用量と、前記管理内ブロックが前記次の処理を実行する際の使用量との和が、前記第1の閾値以下になるように、前記管理内ブロックの動作モードを設定し直すことを特徴とする請求項1から3のいずれか1項に記載のバス制御装置。
【請求項5】
バスと、
前記バスを共有し、外部とのデータの送受信に前記バスを使用する複数の機能モジュールであって、外部により前記バスの使用量が制御できる管理内モジュールを1つ以上含む管理内ブロックと、外部により前記バスの使用量が制御できない管理外モジュールを1つ以上含む管理外ブロックとを有するモジュール部と、
前記バス上のデータ転送量を監視するバス監視部と、
前記バス監視部が得た前記データ転送量と、前記管理内ブロックによる前記バスの使用量とから前記管理外ブロックによる前記バスの使用量を算出すると共に、算出した前記管理外ブロックの前記バスの使用量と、前記管理内ブロックによる前記バスの使用量との和が第1の閾値以下になるように、前記管理内ブロックによる前記バスの使用量を制御する制御部とを備えることを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2013−66129(P2013−66129A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2011−204860(P2011−204860)
【出願日】平成23年9月20日(2011.9.20)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】