(57)【要約】【課題】外部からバス使用量を制御できない管理外モジュールを有する場合であっても、バス上のデータ転送量がバス帯域を超えることを抑制可能なバス制御装置を提供する。【解決手段】本発明にかかるバス制御装置は、情報処理装置に対してバス制御を行うバス制御装置であり、バス監視部と、制御部を有する。情報処理装置は、バスと、外部によりバスの使用量が制御できない管理外モジュールを１つ以上含む管理外ブロックと、外部によりバスの使用量が制御できる管理内モジュールを１つ以上含む管理内ブロックとを備える。制御部は、バス監視部が得たデータ転送量と、管理内ブロックによるバスの使用量とから管理外ブロックによるバスの使用量を算出すると共に、算出した管理外ブロックのバスの使用量と、管理内ブロックによるバスの使用量との和が第１の閾値以下になるように、管理内ブロックによるバスの使用量を制御する。【選択図】図１
2013066129.tif 000002
【特許請求の範囲】
【請求項１】
バスと、
前記バスを共有し、外部とのデータの送受信に前記バスを使用する複数の機能モジュールであって、外部により前記バスの使用量が制御できる管理内モジュールを１つ以上含む管理内ブロックと、外部により前記バスの使用量が制御できない管理外モジュールを１つ以上含む管理外ブロックとを有するモジュール部と、を有する情報処理装置に対し、
前記バス上のデータ転送量を監視するバス監視部と、
前記バス監視部が得た前記データ転送量と、前記管理内ブロックによる前記バスの使用量とから前記管理外ブロックによる前記バスの使用量を算出すると共に、算出した前記管理外ブロックの前記バスの使用量と、前記管理内ブロックによる前記バスの使用量との和が第１の閾値以下になるように、前記管理内ブロックによる前記バスの使用量を制御する制御部とを備えることを特徴とするバス制御装置。
【請求項２】
前記制御部は、算出した前記管理外ブロックの使用量と、前記管理内ブロックによる前記バスの使用量との和が、前記第１の閾値より小さい第２の閾値以上になるように、前記管理内ブロックによる前記バスの使用量を制御することを特徴とする請求項１に記載のバス制御装置。
【請求項３】
前記制御部は、前記バス監視部が得た前記データ転送量が、前記第１の閾値より大きい第３の閾値を超えたときに、前記管理外ブロックによる前記バスの使用量を算出せずに、前記管理内ブロックによる前記バスの使用量が最小になるように前記管理内ブロックによる前記バスの使用量を制御する請求項１または２に記載のバス制御装置。
【請求項４】
前記管理内ブロックは、異なる動作モードで処理を実行し得るものであり、実行する処理と動作モードによって前記バスの使用量が異なり、
前記制御部は、前記管理内ブロックが現在の動作モードで次の処理を実行するときに前記管理内ブロックによる前記バスの使用量が変化する場合に、算出した前記管理外ブロックの使用量と、前記管理内ブロックが前記次の処理を実行する際の使用量との和が、前記第１の閾値以下になるように、前記管理内ブロックの動作モードを設定し直すことを特徴とする請求項１から３のいずれか１項に記載のバス制御装置。
【請求項５】
バスと、
前記バスを共有し、外部とのデータの送受信に前記バスを使用する複数の機能モジュールであって、外部により前記バスの使用量が制御できる管理内モジュールを１つ以上含む管理内ブロックと、外部により前記バスの使用量が制御できない管理外モジュールを１つ以上含む管理外ブロックとを有するモジュール部と、
前記バス上のデータ転送量を監視するバス監視部と、
前記バス監視部が得た前記データ転送量と、前記管理内ブロックによる前記バスの使用量とから前記管理外ブロックによる前記バスの使用量を算出すると共に、算出した前記管理外ブロックの前記バスの使用量と、前記管理内ブロックによる前記バスの使用量との和が第１の閾値以下になるように、前記管理内ブロックによる前記バスの使用量を制御する制御部とを備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス制御、具体的には、バス上を流れるデータ量の制御技術に関する。
【背景技術】
【０００２】
近年、多くのデジタルＡＶ機器には、複数の画像処理モジュールが搭載されている。これらの画像処理モジュールは、処理を行う際に、夫々メモリへアクセスする。画像のＨＤ（Ｈｉｇｈ  Ｄｅｆｉｎａｔｉｏｎ）化などに伴う画像サイズの増大やＡＶ機器の多機能化により、ＡＶ機器における画像処理モジュールによるメモリ使用量が、従来より増大し、従ってメモリバス上の単位時間当たりのデータ転送量も増大している。
【０００３】
メモリバス上の単位時間当たりのデータ転送量が、メモリの転送能力、すなわち、メモリバス帯域を超える（以下、帯域の破綻という。）と、画像処理が規定時間内に終了しないなどの問題が発生して、画乱れなどの症状が発生する。そのため、バス帯域が破綻しないように、あるいは、破綻した場合でも短時間にて回復できるように、メモリへのアクセスを行う各モジュールを制御する必要がある。
【０００４】
特許文献１に記載の技術は、処理毎に処理モードにおける動作パス情報から、バスに転送されるデータ転送量を予測し、予測されたデータ転送量に応じて符号化パラメータを変更することにより、バスのデータ転送量を調整する。
【０００５】
図１１は、特許文献１に記載の高速データ転送制御装置が適用された画像処理装置を示すブロック図である。画像処理装置は、データを転送するためのバス１００１と、バス１００１を介して送受信する画像入力モジュール１００２と、画像回転処理モジュール１００３と、画像処理モジュール１００４と、画像出力モジュール１００５と、画像符号化／復号化モジュール１００６と、メモリ１００７と、バス制御部１００８等から構成される。
【０００６】
図１２は、バス制御部１００８の内部構成を示す模式図である。バス制御部１００８は、同時動作パス情報発生部１００９と、転送データ量演算部１０１０とを有する。同時動作パス情報発生部１００９は、ジョブ毎あるいは制御タイミング毎に、同時動作モジュールの処理パス情報を発生する。転送データ量演算部１０１０は、同時動作モジュールの処理パス情報から、バス１００１を転送されるデータ量を演算する。
【０００７】
バス制御部１００８からの同時動作パス情報及び処理パス情報は、バス１００１を介して画像符号化／復号化モジュール１００６内の画像符号化／復号化部１０１１に供給され、画像符号化／復号化部１０１１は、符号化／復号化の際の符号化パラメータ、すなわち、スケールファクタ及び量子化テーブルを変更する。
【０００８】
図１３は、高速データ転送制御装置の動作を説明するためのフローチャートである。同時動作パス情報発生部１００９においては、同時に動作するモジュールの動作パスが判別される（ステップＳ１１０３）。次に、バス１００１を転送されるデータ量が転送データ量演算部１０１０により演算される（ステップＳ１１０４）。次に、転送データの量が判別される（ステップＳ１１０５）。転送データ量が、予め設定された量より少なく、所定時間での転送が終了するとバス制御部１００８において予測された場合は、そのままジョブを実行する（ステップＳ１１０６）。コマンドが終了する迄はステップＳ１１０３に戻る（ステップＳ１１０６）。コマンドが終了したらステップＳ１１０２に戻る。
【０００９】
特許文献１に記載のバス制御部１００８は、動作パス情報から、バスに転送される全データ転送量を予測する。そして、予測されたデータ転送量が、予め設定されたデータ転送量以下となるよう、画像の符号化パラメータを変更してバスに転送されるデータ量を調整し、バス帯域が破綻しないように制御している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平１０−２２４５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１に記載の技術では、データ転送開始前に、データ転送量を予測して、処理パス情報を作成し、データ転送量を調整している。
【００１２】
しかしながら、例えばネットワークＴＶなど、インターネットに接続されるデジタルＡＶ機器においては、ユーザまたはシステムによって追加のアプリケーションをインターネット経由でダウンロードして動作させる場合がある。
【００１３】
このような、製品出荷後にハードウェアやソフトウェアを追加及び変更する場合には、これら追加及び変更されたモジュール（以下、追加モジュールという。）の動作に伴うメモリアクセスが追加及び変更される。追加モジュールによるバス上のデータ転送量は、追加モジュール毎に異なるために、バスの全データ転送量は予測できない。
【００１４】
すなわち、特許文献１に記載のシステムの場合、追加モジュールによるバス上のデータ転送量が予測できないために、バス１００１上に転送されるデータ転送量が予測できない。データ転送量が正しく予測できない場合、バス制御部１００８は各モジュールが使用するバス１００１の帯域を適正に決定できず、処理パス情報が定義できない。そのため、バスの使用量がバス帯域を上回り、バスが破綻する可能性がある。
【課題を解決するための手段】
【００１５】
本発明の１つの態様は、情報処理装置に対してバス制御を行うバス制御装置であり、バス監視部と、制御部を有する。情報処理装置は、バスと、モジュール部を有する。モジュール部は、バスを共有し、外部とのデータの送受信にバスを使用する複数の機能モジュールであって、管理外ブロックと管理内ブロックを備える。管理内ブロックは、外部によりバスの使用量が制御できる管理内モジュールを１つ以上含む。管理外ブロックは、外部によりバスの使用量が制御できない管理外モジュールを１つ以上含む。
【００１６】
バス制御装置におけるバス監視部は、該情報処理装置に対し、管理内ブロックのバス使用量と管理外ブロックのバス使用量の和であるバス上のデータ転送量を監視する。制御部は、バス監視部が得たデータ転送量と、管理内ブロックによるバスの使用量とから管理外ブロックによるバスの使用量を算出すると共に、算出した管理外ブロックのバスの使用量と、管理内ブロックによるバスの使用量との和が第１の閾値以下になるように、管理内ブロックによるバスの使用量を制御する。
【００１７】
該バス制御装置は、外部からバスの使用量が制御不能な管理外モジュールを有する情報処理装置に対しても、バス上のデータ転送量を制御することができる。
【発明の効果】
【００１８】
本発明にかかる技術によれば、外部からバスの使用量が制御不能な管理外モジュールを有する情報処理装置に対して、バスの破綻の回避、または、バスの破綻後の早めの復帰を図ることができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態にかかる画像処理装置１００を示す図である。
【図２】実施の形態にかかるデータ転送量削減手段を示す図である。
【図３】実施の形態にかかる画像処理装置１００が有する動作モードを示す表である。
【図４】実施の形態にかかるデータ転送量変化イベントが発生した場合のバス１０１上のデータ転送量を示す図である。
【図５】実施の形態にかかるデータ転送量超過イベントの場合のバス１０１のデータ転送量の変化を示す図である。
【図６】実施の形態にかかる動作状態変化イベントの際のデータ転送量の変化を示す図である。
【図７】実施の形態にかかる動作状態変化イベントの際のデータ転送量の変化を示す図である。
【図８】実施の形態にかかる画像処理装置１００の動作を示すフローチャートである。
【図９】実施の形態にかかるバス監視部１０３の処理（ステップＳ２）を、より詳細に記したフローチャートである。
【図１０】実施の形態にかかる本実施の形態にかかる制御部１０９の動作を示すフローチャートである。
【図１１】従来技術にかかる画像処理装置を示すブロック図である。
【図１２】従来技術にかかるバス制御部の内部構成を示す模式図である。
【図１３】従来技術にかかる高速データ転送制御装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、画像処理装置に対するバス制御装置に適用したものである。
【００２１】
図１は、本実施の形態にかかる画像処理装置１００を示す図である。画像処理装置１００は、バス１０１と、メモリ１０２と、バス制御装置１１０と、管理内ブロック１１１と、管理外ブロック１１２と、を有する。
【００２２】
バス制御装置１１０は、バス監視部１０３と、動作状態管理部１０８と、制御部１０９と、を有する。管理内ブロック１１１は、管理内モジュールとしての画像処理モジュール１０４〜１０６を有し、管理外ブロック１１２は、管理外モジュールとしての追加アプリ用モジュール１０７を有する。
【００２３】
画像処理モジュール１０４乃至１０６及び追加アプリ用モジュール１０７は、画像の変換や圧縮など画像に関わる処理を行う。また、バス１０１及びメモリ１０２を介して外部と画像データを入出力する。図１の各モジュールの数等の構成は一例であり、他に管理内モジュールや管理外モジュールがあってもよい。
【００２４】
バス１０１は、メモリ１０２と、メモリアクセスを行うモジュールである画像処理モジュール１０４〜１０６及び追加アプリ用モジュール１０７とを接続し、メモリ１０２とバス１０１に接続されている各構成要素間で入出力される転送データを中継する。
【００２５】
管理内モジュールとしての画像処理モジュール１０４乃至１０６は、異なる動作モードで処理を実行し得るものであり、実行する処理と動作モードによってメモリ１０２の使用量が異なる。なお、管理内モジュールが実行する処理は、例えば処理対象となる画像の種類（画像のサイズを含む）、ユーザ操作によるＯＳＤ表示のオン・オフ、や処理内容（例えば鮮鋭化処理やシャープネス処理等の、処理の種類、処理をするか否か）など、制御部１０９により変更できないものである。以下、管理内モジュールが実行する処理を管理内モジュールの「動作状態」という。各管理内モジュールの動作状態を示す情報は、動作状態管理部１０８に出力される。また、制御部１０９は、各管理内モジュールの動作モードを設定することができる。本実施の形態において、制御部１０９の動作モードの設定に従って、データ転送量削減手段のオン・オフを切り替える。
【００２６】
データ転送量削減手段とは、管理内ブロック１１１のデータ転送量を削減するための処理であり、制御部１０９により、設定が切り替えられる。本実施の形態においては、管理内ブロック１１１の管理内モジュール毎に、データ転送量削減手段のオン・オフが切り替えられるものとする。データ転送量削減手段とは、例えば、画素間引きによる画像データの縮小処理や、減色処理による画像データの縮小処理である。また、間引きは単純に２画素毎に１画素を間引いて、半分のサイズにするものであるが、間引き処理ではなく、スケーリング処理により画像サイズを小さくするようにしてもよい。さらにまた、圧縮技術を使用してデータ量を減らすようにしてもよいし、処理自体をスキップするようにしてもよい。例えば、シャープネス処理のみを実行する画像処理モジュールが存在した場合、その画像処理モジュール自体の処理をスキップすることで、その画像処理モジュールからのバスアクセスがなくなるため、データ転送量を削減することができる。なお、データ転送量削減手段に、データの削減量が異なる複数のレベルを設定し、制御部１０９はレベルを切り替えるようにしてもよい。例えば、上述スケーリング処理などにおいては、スケーリング率を変えることにより、データ削減量の異なる複数のレベル設定をすることができる。
【００２７】
図２は、データ転送量削減手段を示す図である。本実施の形態においては、画像処理モジュール１０４は、データ転送量削減手段１０４１として、間引き処理を実行し、画像処理モジュール１０５は、データ転送量削減手段１０５１として、減色処理を実行する。また、データ転送量削減手段は、制御部１０９により、オン・オフが切り替えられる。
【００２８】
管理外モジュールとしての追加アプリ用モジュール１０７は、例えば、ソフトウェアを追加されたことにより動作するモジュールである。追加アプリ用モジュール１０７は、その動作状態を示す情報が動作状態管理部１０８に出力されず、また、その動作モードも、制御部１０９により制御されない。
【００２９】
バス監視部１０３は、管理内ブロック１１１のバス１０１使用量と管理外ブロック１１２のバス１０１の使用量の和である、バス１０１上のデータ転送量を監視して測定し、制御部１０９に出力する。
【００３０】
バス監視部１０３は、バス１０１を常時監視し、バス１０１に流れる単位時間当たりのデータ転送量、すなわち画像処理装置１００全体の単位時間当たりのデータ転送量を計測する。バス監視部１０３は、例えば、各モジュールからメモリへのアクセスを調停するための、メモリインターフェースとなるユニットを有する。当該メモリインターフェースユニットには、各モジュールから、リードやライトのリクエスト、およびアクセスするアドレスとサイズとが伝達される。このようにして伝達されるデータに基づき、各モジュールからのアクセス・データ量をカウントして、単位時間当たりのバス１０１上のデータ転送量を計測する。また、例えば、バス監視部１０３は、メモリインターフェースユニットを含まず、各モジュールのデータ転送量に関する情報（リードライトのリクエスト等）をメモリ１０２の有する、メモリ・インターフェース・モジュールから取得し、単位時間当たりのデータ転送量を計測するようにしてもよい。なお、上記の単位時間当たりのデータ転送量を計測する方法は一例であり、これに限られるものではない。
【００３１】
動作状態管理部１０８は、管理内ブロック１１１の画像処理モジュール１０４〜１０６から出力された動作状態に基づいて、管理内ブロック１１１の動作状態を管理する。そして、管理内ブロック１１１のデータ転送量の増加を伴って動作状態が変化した場合、制御部１０９に動作状態が変化することを出力する。
【００３２】
制御部１０９は、バス監視部１０３が測定したバス１０１上のデータ転送量と、動作状態管理部１０８から得た管理内ブロック１１１の動作状態から想定したバスの使用量とから、管理外ブロック１１２によるバス１０１の使用量を算出する。そして、バス１０１上のデータ転送量を、管理内ブロック１１１の管理内モジュールそれぞれのデータ転送量削減手段のオン・オフを切り替えることによって動作モード（動作モードについては後述する。）を変更することにより、予め定められた閾値以下となるように制御する。これにより、本実施の形態にかかるバス制御装置１１０は、バス１０１上に転送されるデータ量を制御し、バス帯域の破綻を防ぐことができる。
【００３３】
本実施の形態において、制御部１０９は、管理内ブロック１１１の動作モードを制御することにより、バス１０１上のデータ転送量を制御するため、以下、制御部１０９を「動作モード決定部」ともいう。
【００３４】
ここで、本実施の形態においては、動作モードは、管理内モジュールにおける、データ転送量削減手段の設定状態である。管理内ブロックが複数の管理内モジュールを有する場合は、それぞれの管理内モジュールのデータ転送量削減手段の設定の組み合わせにより設定される。データ転送量削減処理の設定が、動作モード毎に異なるので、動作モード毎に、管理内ブロック１１１のデータ転送量は異なる。
【００３５】
図３は、動作モードを示す表である。一例として、管理内ブロック１１１が、画像処理モジュール１０４及び画像処理モジュール１０５のふたつの管理内モジュールを有するものとする。画像処理モジュール１０４は、データ転送量削減手段として画素間引き処理を行う。画像処理モジュール１０５は、データ転送手段として減色処理を行う。制御部１０９は、画像処理モジュール１０４及び１０５のデータ転送量削減手段のオン・オフの組み合わせにより、動作モード１〜４のうち１つを選択する。
【００３６】
動作モード１は、画像処理モジュール１０４の間引き処理がオフで、画像処理モジュール１０５の減色処理がオフであるため、画像処理モジュール１０４及び１０５のどちらも画質がもっとも良く、バス１０１のデータ転送量は最も多い。
【００３７】
動作モード２は、画像処理モジュール１０４の間引き処理がオフで、画像処理モジュール１０５の減色処理がオンであるため、画像処理モジュール１０４の画質は最も良く、画像処理モジュール１０５の画質は動作モード１の場合よりも劣化する。データ転送量は、動作モード１に比べて減少する。
【００３８】
動作モード３は、画像処理モジュール１０４の間引き処理がオンで、画像処理モジュール１０５の減色処理がオフであるため、画像処理モジュール１０４の画質は動作モード１及び２の場合より劣化し、画像処理モジュール１０５の画質は、動作モード１の場合と同様に最もよい。データ転送量は、動作モード２に比べて減少する。
【００３９】
動作モード４は、画像処理モジュール１０４の間引き処理がオンで、画像処理モジュール１０５の減色処理がオンであるため、画像処理モジュール１０４及び画像処理モジュール１０５のどちらも画質は動作モード１及び２の場合より劣化する。データ転送量は、動作モード３に比べて減少する。
【００４０】
以上より、この場合は、動作モード１が最もデータ転送量が大きく、動作モード４が最もデータ転送量が小さい。また、画像品質としては、動作モード１が最も高品質で、動作モード４が最も低品質となる。なお、図３の例では、画像処理モジュールの数を２、動作モードの数を４としたが、これは、一例であり、画像処理モジュールの数及び動作モードの数はこれに限られるものではない。
【００４１】
制御部１０９による管理内ブロック１１１のモード設定について説明する。まず、管理内ブロック１１１の、現在の動作モードと動作状態とにおける、バス１０１の使用量である管理内データ転送量Ａを算出する。制御部１０９は、動作状態管理部１０８から出力された動作状態と、現在の動作モードから管理内データ転送量Ａを算出する。なお、管理内データ転送量Ａは、動作状態管理部１０８が動作状態及び動作モードに基づいて算出し、制御部１０９へ出力するようにしてもよい。
【００４２】
次に、制御部１０９は、バス監視部１０３から現時点のバス１０１上のデータ転送量である、全データ転送量Ｂ（実測値）を取得する。そして、管理外ブロック１１２のデータ転送量である、管理外データ転送量Ｃを、管理内データ転送量Ａと、全データ転送量Ｂ（実測値）とから、以下の式１で算出する。
Ｃ  ＝  Ｂ  −  Ａ        ・・・（式１）
次に、予め定められた、バス１０１の可能な最大転送量より小さい第１の閾値としての上限データ転送量Ｄと、管理外データ転送量Ｃとから、管理内ブロック１１１が、実際に使用可能なデータ転送量である、使用可能データ転送量Ｅを以下の式２で算出する。
Ｅ  ＝  Ｄ  −  Ｃ        ・・・（式２）
制御部１０９は、各モードにおける管理内ブロック１１１のデータ転送量を算出し、使用可能データ転送量Ｅ以下であって、かつ、データ転送量Ｅに最も近いデータ転送量となる、動作モードを選択する。
【００４３】
本実施の形態にかかるバス制御装置１１０の制御部１０９は、バス監視部１０３が測定したバス１０１上のデータ転送量と、動作状態管理部１０８から得た管理内ブロック１１１の動作状態から想定したバスの使用量とから、管理外ブロック１１２によるバス１０１の使用量を算出する。そして、管理外ブロック１１２によるバス１０１の使用量と、管理内ブロック１１１のバス使用量とを合わせても、予め定められた規定値以下となるよう、管理内ブロック１１１に設定する動作モードを選択する。これにより、本実施の形態にかかるバス制御装置１１０は、バス１０１上に転送されるデータ量を制御し、バス帯域の破綻を防ぐことができる。
【００４４】
バス制御装置１１０について、さらに詳細に説明する。バス制御装置１１０は、現時点のバス１０１上のデータ転送量である全データ転送量Ｂ（実測値）と、管理内ブロック１１１の動作状態の変化とに基づき、各種のイベントを生成する。データ転送量変化イベント、動作状態変化イベント、及びデータ転送量超過イベントを生成する。
【００４５】
バス制御装置１１０は、全データ転送量Ｂ（実測値）と第１乃至第３の閾値とに基づいて、データ転送量変化イベント及びデータ転送量超過イベントを生成する。バス制御装置１１０は、管理内ブロック１１１の動作状態が、管理内データ転送量Ａの増加を伴って変化した場合、状態変化イベントを生成する。
【００４６】
データ転送量変化イベントは、バス１０１のデータ転送量が上限とする第１の閾値を超えた時、または下限とする第２の閾値を下回った場合に発生する。
【００４７】
データ転送量超過イベントは、バス１０１上のデータ転送量が限界とする第３の閾値を超えた場合に発生する。
【００４８】
ここで、第１乃至第３の閾値について説明する。第１の閾値は、予め定められた、バス１０１の可能な最大転送量より小さい第１の閾値としての上限データ転送量Ｄである。上限データ転送量Ｄは、バス１０１で転送可能な最大のデータ転送量またはメモリ１０２の転送可能な最大データ転送量のうち、少ない方の最大データ転送量Ｍａｘ（図４参照）に基づく。上限データ転送量Ｄは、最大データ転送量Ｍａｘから、予め決められた固定値であって任意な値であるマージンα分を減算した値である。ここでは一例として、マージンαは最大データ転送量Ｍａｘに対する５％の固定値とする。
【００４９】
第２の閾値とは、バス１０１の全データ転送量Ｂ（実測値）の下限の基準となる下限データ転送量Ｆである。下限データ転送量Ｆは、バス１０１の全データ転送量の増減に応じて設定することが望ましい。本実施の形態では、制御部１０９が、前回の動作モード変更後のバス１０１上のデータ転送量として想定されたデータ転送量、すなわち、前回の動作モードを変更する過程で算出した管理外データ転送量Ｃと、前回選択した動作モードにおける管理内ブロック１１１のデータ転送量とを合わせたもの、を全データ転送量Ｂ０として算出する。そして、全データ転送量Ｂ０を、現在の基準データ転送量Ｇとし、基準データ転送量Ｇに対してマージンβを減算したデータ転送量を、下限データ転送量Ｆとする（図４参照）。ここでは一例として、マージンβは基準データ転送量Ｇに対する５％の値とし、基準データ転送量Ｇが変化する毎に、マージンβは再計算されるものとする。
【００５０】
ここで、基準データ転送量Ｇに基づいて、第２の閾値である下限データ転送量Ｆが設定される理由について説明する。本実施の形態においては、全データ転送量Ｂ（実測値）が第２の閾値を下回った場合には、データ転送量変化イベントが発生する。これは、管理外ブロック１１２のデータ転送量が減少した場合に、管理内ブロック１１１のデータ転送量が、動作モードの設定により、必要以上に制限されることを防ぐためである。基準データ転送量Ｇから第２の閾値を設定し、第２の閾値と、実測値である全データ転送量Ｂとを比較して、データ転送量変化イベントを生成する。これにより、前回の動作モードの際の算出値を基準として変化量を検出することができる。検出された変化量は、管理内ブロック１１１及び管理外ブロック１１２のデータ転出量の変化量である。変化量がマイナスであって、マージンβより値が大きい場合、動作モードを再設定することにより、バス１０１の帯域を無駄なく利用することができる。
【００５１】
これに対し、第２の閾値が固定値である場合、仮に第２の閾値＝５０とする。そして、ある状態１における全データ転送量が１００であり、ある状態２における全データ転送量が２００であるとする。状態１における全データ転送量Ｂが、１００から３０に変化した場合、データ転送量変化イベントは発生するが、状態２において仮に管理外モジュールが停止し、全データ転送量が２００から１００に変化しても、データ転送量変化イベントが発生しない。そのため、管理内ブロック１１１の動作モードが、データ転送量が低い動作モードに設定されていても、動作モードを変更することができない。
【００５２】
本実施の形態では、第２の閾値は状態１では１００−５＝９５、状態２では２００−１０＝１９０となる。従って、前回算出されたデータ転送量に関わらず、データ転送量が変化したことを検出でき、速やかにモードの再設定をすることができる。
【００５３】
第３の閾値とは、マージンαより小さく、０以上であって、予め決められた固定値で任意な値であるマージンγを、最大データ転送量Ｍａｘから減算した、限界データ転送量Ｈである（図４参照）。ここでは一例として、マージンγは最大データ転送量Ｍａｘに対する２％の固定値とする。
【００５４】
動作状態変化イベントは、データ転送量の制御が可能な管理内ブロック１１１の動作状態に、データ転送量の変化が伴う動作状態の変更がある場合に発生する。
【００５５】
次に、各イベントが発生する際のバス制御装置１１０の動作について説明する。バス監視部１０３は、バス１０１上のデータ転送量が、第１の閾値を超えた場合、又は第２の閾値を下回った場合は、データ転送量変化イベントの発生を制御部１０９に通知し、第３の閾値を超えた場合には、データ転送量超過イベントを制御部１０９に通知する。
【００５６】
動作状態管理部１０８は、画像処理モジュール１０４〜１０６から動作状態を取得し、取得した動作状態に変化があった場合には、制御部１０９に動作状態変化イベントを通知する。なお、バス監視部１０３は、データ転送量変化イベント及びデータ転送量超過イベントの発生を制御部１０９に対して通知せず、全データ転送量Ｂ（実測値）のみを制御部１０９に出力し、制御部１０９において、データ転送量変化イベント及びデータ転送量超過イベントを生成してもよい。同様に、動作状態管理部１０８は、動作状態変化イベントを制御部１０９に対して通知せず、動作状態のみを制御部１０９に出力し、制御部１０９において、動作状態変化イベントを生成してもよい。
【００５７】
制御部１０９は、現在のデータ転送量と各種イベントの発生の通知に基づいて、管理内ブロック１１１の最適な動作モードを決定する。すなわち、バス監視部１０３からデータ転送量変化イベント又はデータ転送量超過イベントの発生を通知された場合、及び動作状態管理部１０８から動作状態変化イベントの発生を通知された場合に、画像処理モジュール１０４〜１０６の動作モードを再設定する。
【００５８】
各種イベントの際の全データ転送量Ｂの変化を、図を用いて説明する。ここでは、制御部１０９は、管理内ブロック１１１に、図３の動作モード１〜４を設定できるものとする。図４乃至７は、イベントの際の全データ転送量Ｂの変化を示す図である。縦方向に単位時間当たりの全データ転送量Ｂ、横方向に時間経過を示す。タイミングｔ１において、イベントが発生し、タイミングｔ２で、データ転送量の変化が終了するものとする。時間０からタイミングｔ１までのグラフは、全データ転送量Ｂの実測値を示し、タイミングｔ１以降のグラフは、各動作モードにおける全データ転送量Ｂの予測値であるＢ１乃至Ｂ４を示す。実線のグラフが、それぞれのイベントにおいて選択される動作モードの全データ転送量Ｂを示すグラフである。
【００５９】
図４は、データ転送量変化イベントの際の全データ転送量Ｂの変化を示す。ここでは、管理内ブロック１１１が動作モード１で動作しているものとする。タイミングｔ１において、全データ転送量Ｂが上限データ転送量Ｄを超えたことにより、データ転送量変化イベントが発生する。
【００６０】
バス監視部１０３はデータ転送量変化イベントの発生を検出する。そして、制御部１０９にデータ転送量変化イベント通知して、実測したバス１０１上の全データ転送量Ｂを出力する。
【００６１】
制御部１０９では、バス監視部１０３からのデータ転送量変化イベントの通知に応じて、管理内データ転送量Ａ、管理外データ転送量Ｃを算出する。
【００６２】
次に、管理内ブロック１１１に動作モード１乃至４が設定された場合の、それぞれの管理内データ転送量Ａ１乃至Ａ４（計算値）を算出し、算出結果に基づき、全データ転送量Ｂ１乃至Ｂ４（計算値）を算出する。
【００６３】
全データ転送量の算出結果に基づき、制御部１０９は、管理内データ転送量Ａ１乃至Ａ４（計算値）のうち、使用可能データ転送量Ｅより少なく、かつ最もデータ転送量の多いものを選択する。すなわち、上限データ転送量Ｄ以下であって、全データ転送量Ｂ１乃至Ｂ４が最も大きい（画質が最も良い）動作モード２を最適な動作モードとして選択する。これにより、バス１０１上のデータ転送量は、上限データ転送量Ｄ以下となる。
【００６４】
なお、ここでは、全データ転送量Ｂ（実測値）が上限データ転送量Ｄを超えている場合について説明したが、全データ転送量Ｂ（実測値）が下限データ転送量Ｆより以下となった場合にも、データ転送量変化イベントが発生する。この場合も、制御部１０９は、管理内ブロック１１１の動作モードの再設定を行う。制御部１０９は、全データ転送量Ｂ（実測値）が上限データ転送量Ｄを超えている場合と同様に、全データ転送量Ｂ（実測値）が、上限転送量Ｄより少なく、かつ最もデータ転送量Ｄに近いデータ転送量となる動作モードを選択する。
【００６５】
これにより、バス１０１の帯域が破綻を防ぎ、かつ、バス１０１の帯域を無駄にせず、より画像品質の良い画像処理を行うことができる。
【００６６】
次に、データ転送量超過イベントの場合について説明する。図５は、データ転送量超過イベントの際のデータ転送量Ｂの変化を示す図である。タイミングｔ１において、全データ転送量Ｂ（実測値）が限界データ転送量Ｈを超えたことにより、データ転送量超過イベントが発生する。バス監視部１０３は、データ転送量超過イベントの発生を検出し、制御部１０９に出力する。制御部１０９は、制御部１０９は、バス監視部１０３からデータ転送超過イベントの通知を受け取ると、管理内ブロック１１１の４つの動作モードのうち、最もデータ転送量の小さい動作モード、すなわち、動作モード４を選択する。
【００６７】
データ転送量超過イベントの際、制御部１０９は、管理外ブロック１１２のバス１０１の使用量を算出することなく、最も管理内ブロック１１１のバス使用量が小さくなる動作モードを、強制的に管理内ブロック１１１に設定する。これにより、データ転送量Ｂ（実測値）が限界データ転送量Ｈ を超える場合、管理内ブロック１１１の動作モードを迅速に変更するため、バス１０１の破綻を抑制し、また、仮に破綻したとしても短時間で復旧することができる。
【００６８】
次に、動作状態変化イベントの際のデータ転送量の変化について説明する。図６は、動作状態変化イベントの際の全データ転送量Ｂの変化を示す図である。例えば、管理内ブロック１１１に動作モード１が設定されているものとする。タイミングｔ１で、管理内ブロック１１１への入力画像サイズが、１２８０ｘ７２０から１９２０ｘ１０８０に変化した場合、つまり、管理内データ転送量Ａが増加する場合について説明する。
【００６９】
タイミングｔ１において、動作状態管理部１０８は、画像処理モジュールの動作状態が変化することを検出し、制御部１０９に動作状態変化イベントを通知する。制御部１０９は、動作状態変化イベントの通知を受けると、管理内ブロック１１１が、変化後の動作状態で、かつ動作モード１乃至４を設定された場合の、それぞれ動作モードにおける管理内データ転送量Ａ１乃至Ａ４及び全データ転送量Ｂ１乃至Ｂ４を算出する。
【００７０】
すなわち、それぞれの動作モードにおける管理内データ転送量Ａ１乃至Ａ４（計算値）と、使用可能データ転送量Ｅとを比較する。そして、動作モード１乃至４の中で、使用可能データ転送量Ｅより少なく、かつ最も使用可能データ転送量に近い動作モードを選択する。言い換えれば、管理内データ転送量Ａ１乃至Ａ４（計算値）管理外データ転送量Ｃを合算した全データ転送量Ｂ１乃至Ｂ４（計算値）を、上限データ転送量Ｄとを比較する。そして、動作モード１乃至４の中で、上限データ転送量Ｄより少なく、かつ最も全データ転送量Ｂ１乃至Ｂ４が上限データ転送量Ｄに近い動作モードを選択する。ここでは、動作モード１及び２では、全データ転送量Ｂ１及びＢ２が、上限データ転送量Ｄを超えるため、動作モード３が最適な動作モードとして選択される。これにより、管理内ブロック１１１の動作状態が変化しても、全データ転送量は、上限データ転送量Ｄ以下となる。
【００７１】
図７は、動作状態変化イベントの際のデータ転送量の変化を示す図である。例えば、動作モード３が管理内ブロック１１１に設定されているものとする。タイミングｔ１で、管理内ブロック１１１への入力画像サイズが１９２０ｘ１０８０から１２８０ｘ７２０に変化した場合、つまり、管理内データ転送量Ａが減少する場合について説明する。
【００７２】
タイミングｔ１において、動作状態管理部１０８は、画像処理モジュールの動作状態が変化することを検出し、制御部１０９に動作状態変化イベントを通知する。制御部１０９は、動作状態変化イベントの通知を受けると、管理内ブロック１１１が、変化後の動作状態で、かつ動作モード１乃至４を設定された場合の管理内データ転送量Ａ１乃至Ａ４及び全データ転送量Ｂ１乃至Ｂ４を算出する。
【００７３】
すなわち、それぞれの動作モード１乃至４における管理内データ転送量Ａ１乃至４（計算値）と、使用可能データ転送量Ｅとを比較する。そして、動作モード１乃至４の中で、使用可能データ転送量Ｅより少なく、かつ最も使用可能データ転送量に近い動作モードを選択する。言い換えれば、管理外データ転送量Ｃを合算した全データ転送量Ｂ１乃至Ｂ４（計算値）を、上限データ転送量Ｄとを比較する。そして、動作モード１乃至４の中で、上限データ転送量Ｄより少なく、かつ最も全データ転送量Ｂ１乃至Ｂ４（計算値）が上限データ転送量Ｄに近い動作モード１乃至４のうちいずれかを選択する。
【００７４】
ここでは、管理内ブロック１１１の全ての動作モードにおける全データ転送量Ｂ１乃至Ｂ４（計算値）が、上限データ転送量Ｄより小さいため、最も全データ転送量が多い、すなわち画質の良い動作モード１が最適な動作モードとして選択される。これにより、管理内ブロック１１１の動作状態が、全データ転送量が下がるように変化した場合に、例えば管理内データ転送量が低いモードが設定されていた場合には、動作モードを切り替えることにより、バス帯域を無駄にせず、より画質よく画像処理を行うことができる。
【００７５】
以上より、本実施の形態にかかるバス制御装置１１０は、バス１０１上の全データ転送量Ｂが、上限データ転送量Ｄ以上である場合、又は下限データ転送量Ｆ以下である場合には、全データ転送量Ｂが下限データ転送量Ｆから上限データ転送量Ｄの範囲内に収まるよう、管理内ブロック１１１の動作モードを再設定する。これにより、バス１０１の帯域の破綻を抑制し、かつバス１０１の帯域をより無駄なく利用することができる。
【００７６】
また、バス制御装置１１０は、管理内ブロック１１１の動作状態の変化に基づいて、管理内ブロック１１１の動作モードを設定する。これにより、外部から管理内ブロック１１１の動作状態が変更された場合であっても、バス１０１の帯域の破綻を抑制することができる。また、動作状態が変化した場合に、変化後の動作状態での処理を開始する前、すなわち該動作状態に対応する処理を開始する前に、動作モードを変更して、バスの破綻を未然に防ぐという効果がある。
【００７７】
また、管理内ブロック１１１に、管理内データ転送量Ａが低い動作モードが設定されている場合に、例えば管理内ブロック１１１の動作状態が変更されて、全データ転送量Ｂが小さくなるような場合、管理内ブロック１１１の動作モードを変更することにより、バス１０１の帯域をより無駄なく使用することができる。
【００７８】
次に、画像処理装置１００の動作について、更に詳細に説明する。図８は、本実施の形態における画像処理装置１００の動作を示すフローチャートである。
【００７９】
まず、最初に画像処理装置１００全体を初期化する。（ステップＳ１）これにより、動作状態及び動作モードは、初期化されるが、その初期値についてはここでは特定しない。
【００８０】
バス監視部１０３は、一定の間隔でバス１０１の全データ転送量Ｂを検出し、検出結果を制御部１０９に出力する。データ転送量変化イベント、またはデータ転送量超過イベントが発生する場合、制御部１０９にイベントを通知する（ステップＳ２）。データ転送量変化イベント及びデータ転送量超過イベントのどちらかを通知された場合（ステップＳ３：Ｙｅｓ）、管理内ブロック１１１の動作モードを再設定する（ステップＳ６）。
【００８１】
ステップＳ３にてイベントが通知されなかった場合（ステップＳ３：Ｎｏ）は、制御部１０９は、動作状態管理部１０８に、動作状態の変化を取得する（ステップＳ４）。動作状態の変化があり、動作状態変化イベントを通知された場合（ステップＳ５）、管理内ブロック１１１の動作モードを再設定する（ステップＳ６）。
【００８２】
ステップＳ３、またはステップＳ５においてイベントがあった場合、制御部１０９により、新しい動作モードを決定し、画像処理モジュール１０４〜１０６に動作モードを通知する（ステップＳ６）。
【００８３】
ステップＳ５にて動作状態変化イベントがなかった場合（ステップＳ５：Ｎｏ）、お帯ステップＳ６の後は、現在の動作状態と動作モードに従い、画像処理モジュール１０４〜１０６は画像処理を行う（ステップＳ７）。そして、ステップＳ７にて画像処理を行った後は、ステップＳ２に戻る。
【００８４】
次に、各ステップの動作について、更に詳細に説明する。図９は、本実施の形態におけるバス監視部１０３の処理（図８のステップＳ２）を、より詳細に記したフローチャートである。バス監視部１０３は、バス１０１の全データ転送量Ｂを取得する（ステップＳ１０）。次に、第３の閾値である、バス１０１の限界データ転送量Ｈを設定する（ステップＳ１１）。
【００８５】
次に、現在の全データ転送量Ｂが限界データ転送量Ｈと等しい、又は超えているか否かを判定する（ステップＳ１２）。ステップＳ１２にて、現在の全データ転送量Ｂが限界データ転送量Ｈと等しい、または、超えていると判定された場合（ステップＳ１２：Ｙｅｓ）、バス監視部１０３は、制御部１０９にデータ転送量超過イベントを通知する（ステップＳ１３）。
【００８６】
ステップＳ１２にて、現在の全データ転送量Ｂが限界データ転送量Ｈより小さい場合（ステップＳ１２：Ｎｏ）、第１の閾値である上限データ転送量Ｄと、第２の閾値である下限データ転送量Ｆを設定する（ステップＳ１４）。
【００８７】
次に、現在の全データ転送量Ｂがバス１０１で上限データ転送量Ｄを超えたか、現在の全データ転送量Ｂが下限データ転送量Ｆより小さくなったかを判定する（ステップＳ１５）。ステップＳ１５にて現在の全データ転送量Ｂがバス１０１で上限データ転送量Ｄを以上か、現在の全データ転送量Ｂが下限データ転送量Ｆ以下であると判断された場合（ステップＳ１５：Ｙｅｓ）、制御部１０９にデータ転送量変化イベントを通知する。（ステップＳ１６）。
【００８８】
次に、制御部１０９にて新しい動作モードを決定する処理（ステップＳ６）の動作を説明する。図１０は、本実施の形態にかかる制御部１０９の動作を示すフローチャートであり、図８のステップＳ６の処理を、より詳細に記したものである。
【００８９】
制御部１０９は、制御部１０９に通知されたイベントがデータ転送量超過イベントか否かを判定する（ステップＳ２１）。イベントがデータ転送量超過イベント以外であった場合（ステップＳ２１：Ｎｏ）、現在の動作モードと動作状態における管理内データ転送量Ａを算出する（ステップＳ２２）。
【００９０】
次に、バス監視部１０３から現時点で使用されている全データ転送量Ｂ（実測値）を取得する（ステップＳ２３）。
【００９１】
次に、管理外ブロック１１２の管理外データ転送量Ｃを（式１）で算出する。（ステップＳ２４）。次に、上限データ転送量Ｄとして、管理内ブロック１１１の使用可能データ転送量Ｅを（式２）で算出する（ステップＳ２５）。
【００９２】
次に、現在の動作状態において、動作モード毎の全データ転送量Ｂ１乃至Ｂ４を算出する（ステップＳ２６）。管理内データ転送量Ａが、使用可能データ転送量Ｅ以下であって、最もデータ転送量が大きい動作モードを選択する（ステップＳ２７）。決定した動作モードを、管理内ブロック１１１に対して通知する（ステップＳ２８）。
【００９３】
ステップＳ２１で、データ転送量超過イベントが発生する場合（ステップＳ２１：Ｙｅｓ）、動作モードにおいて最もデータ転送量の小さい動作モードを設定する（ステップＳ２９）。決定した動作モードを、管理内ブロック１１１に対して通知する（ステップＳ３０）。
【００９４】
なお、本実施の形態においては、データ転送量変化イベント、データ転送量超過イベント、動作状態変化イベントの３種類のイベントを検出する構成としていたが、３のイベントのうちいずれか１以上を検出するように構成してもよい。
【００９５】
例えば、データ転送量変化イベントのみを検出使用する場合、管理内ブロック１１１の動作状態変化に対する動作モード変更のレスポンスは悪くなり、管理外ブロック１１２のデータ転送量が大きく変化した場合のメモリ帯域破綻期間は長くなるが、最終的には、システムとして使用可能なデータ転送量に収まる範囲で最適な動作モードを決定するため、画像処理モジュール１０４乃至１０６の画質劣化を最小限に抑えることができ、バス１０１のメモリ帯域が破綻し続けることもない。
【００９６】
また、本実施の形態では、バス監視部１０３、動作状態管理部１０８、制御部１０９を、独立したモジュールとして示したが、バス１０１上の転送データ量を監視し、単位時間当たりのデータ転送量を計測する処理を除き、一部またはすべてをＣＰＵ上で動作するソフトウェアモジュールとして実装してもよい。
【００９７】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【００９８】
１００  画像処理装置
１０１  バス
１０２  メモリ
１０３  バス監視部
１０４  画像処理モジュール
１０５  画像処理モジュール
１０６  画像処理モジュール
１０７  追加アプリ用モジュール
１０８  動作状態管理部
１０９  制御部
１１０  バス制御装置
１１１  管理内ブロック
１１２  管理外ブロック
【図１】
2013066129.tif 000003
【図２】
2013066129.tif 000004
【図３】
2013066129.tif 000005
【図４】
2013066129.tif 000006
【図５】
2013066129.tif 000007
【図６】
2013066129.tif 000008
【図７】
2013066129.tif 000009
【図８】
2013066129.tif 000010
【図９】
2013066129.tif 000011
【図１０】
2013066129.tif 000012
【図１１】
2013066129.tif 000013
【図１２】
2013066129.tif 000014
【図１３】
2013066129.tif 000015