(57)【特許請求の範囲】
【請求項１】
複数の演算ユニットと、
前記複数の演算ユニットの使用率を取得する第１の取得部と、
過去に実行されたプログラム毎の、当該プログラムの実行に使用された前記複数の演算ユニットの使用率を記憶する記憶部と、
前記第１の取得部により取得された使用率と、前記記憶部に記憶されているプログラム毎の使用率とに基づいて、実行待ちのプログラムの中から、次に実行させるプログラムを決定する決定部と、
を備えることを特徴とする内視鏡装置。
【請求項２】
プログラムが実行されたときに、当該プログラムの実行に使用された前記複数の演算ユニットの使用率を取得する第２の取得部を更に備え、
前記第２の取得部により取得された使用率が前記記憶部に記憶される、
ことを特徴とする請求項１記載の内視鏡装置。
【請求項３】
前記決定部は、即時に実行を開始させることが可能なプログラムであって、且つ、実行待ちの順番が最先のプログラムを、次に実行させるプログラムとして決定する、
ことを特徴とする請求項１又は２記載の内視鏡装置。
【請求項４】
前記決定部は、前記実行待ちのプログラムの中に、所定時間内に実行しなければならないプログラムがある場合には、当該プログラムを優先して、次に実行させるプログラムとして決定する、
ことを特徴とする請求項１乃至３の何れか一項に記載の内視鏡装置。
【請求項５】
前記複数の演算ユニットは、ＧＰＵ（Graphics Processing Unit）に含まれる複数の演算ユニットである、
ことを特徴とする請求項１乃至４の何れか一項に記載の内視鏡装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、内視鏡により取得された映像信号を処理する内視鏡装置に関する。
【背景技術】
【０００２】
従来、映像信号を処理する分野においては、ＧＰＵ（Graphics Processing Unit）が知られている。ＧＰＵは、例えば複数のＶＡＬＵ（Vector Arithmetic Logic Unit）を含むＣＵ（Compute Unit）を複数備えた構成を有し、映像処理等を非常に高速に行うことができる。近年では、ＣＫＥ（Concurrent Kernel Execution）と称する、複数のカーネル（ＧＰＵ上で動作するプログラム）を並列処理する仕組みを持ったＧＰＵが一般的であり、全てのＣＵをフル活用した高度な並列処理が実現可能になっている。
【０００３】
一方で、ＧＰＵ上でカーネルの処理をどのように分割し、また、分割した処理をどのようにＣＵに配分して実行させるかについては、カーネルコンパイラやＧＰＵ上のスケジューラに委ねられる部分が多く、カーネルを実行する際のＧＰＵの状態（ハードウェアリソースの使用状況等）に依存する。これは、ＧＰＵが実行するカーネルが同一であっても、ＧＰＵに対してカーネルの実行を指示してからＧＰＵがそのカーネルの実行を完了するまでに要する時間が、その都度、異なってしまい、その時間を予測することができないことを示唆する。
【０００４】
このことから、特に処理時間に制約のある医療分野の内視鏡装置では、ＧＰＵを安易に採用することはできない。仮に、ＧＰＵを採用するのであれば、カーネルの処理を適切に分割し、分割した処理を適切にＣＵに配分して実行させる仕組みが必要になる。
【０００５】
なお、映像信号を処理する分野においては、次のような装置も知られている。
例えば、描画コマンドに基づいて画像データの複数の描画領域を夫々描画する複数の描画手段を有する画像形成装置において、現在の画像データが描画される際の、複数の描画領域夫々に対する描画処理の負荷量を算出し、描画コマンドに基づいて、次の画像データが描画される際の、複数の描画領域夫々に対する描画処理の負荷量の変化を予測し、上記の算出結果と予測結果とに基づいて、次の画像データが描画される際の、複数の描画領域夫々に対する描画処理の負荷量を算出し、その算出結果に基づいて、複数の描画手段に対して処理を割り当てるようにしたものが知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１３−１２７６６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上のような実情を踏まえ、本発明は、並列処理が可能な複数の演算ユニットを含む内視鏡装置において、その複数の演算ユニットにプログラムの処理を適切に配分して実行させることができる内視鏡装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様は、複数の演算ユニットと、前記複数の演算ユニットの使用率を取得する第１の取得部と、過去に実行されたプログラム毎の、当該プログラムの実行に使用された前記複数の演算ユニットの使用率を記憶する記憶部と、前記第１の取得部により取得された用率と、前記記憶部に記憶されているプログラム毎の使用率とに基づいて、実行待ちのプログラムの中から、次に実行させるプログラムを決定する決定部と、を備える内視鏡装置を提供する。
【０００９】
本発明の第２の態様は、第１の態様において、プログラムが実行されたときに、当該プログラムの実行に使用された前記複数の演算ユニットの使用率を取得する第２の取得部を更に備え、前記第２の取得部により取得された使用率が前記記憶部に記憶される、内視鏡装置を提供する。
【００１０】
本発明の第３の態様は、第１又は２の態様において、前記決定部は、即時に実行を開始させることが可能なプログラムであって、且つ、実行待ちの順番が最先のプログラムを、次に実行させるプログラムとして決定する、内視鏡装置を提供する。
【００１１】
本発明の第４の態様は、第１乃至３の何れか一つの態様において、前記決定部は、前記実行待ちのプログラムの中に、所定時間内に実行しなければならないプログラムがある場合には、当該プログラムを優先して、次に実行させるプログラムとして決定する、内視鏡装置を提供する。
【００１２】
本発明の第５の態様は、第１乃至４の何れか一つの態様において、前記複数の演算ユニットは、ＧＰＵ（Graphics Processing Unit）に含まれる複数の演算ユニットである、内視鏡装置を提供する。
【発明の効果】
【００１４】
本発明によれば、並列処理が可能な複数の演算ユニットを含む内視鏡装置において、その複数の演算ユニットにプログラムの処理を適切に配分して実行させることができる、という効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係る内視鏡装置を含む内視鏡システムの構成例を示す図である。
【図２】第１の実施形態に係る、画像処理部及びシステム制御部の内部構成例を示す図である。
【図３】第１の実施形態に係る、画像処理部及びシステム制御部の動作の一例を示すフローチャートである。
【図４】第２の実施形態に係る、画像処理部及びシステム制御部の内部構成例を示す図である。
【図５】第２の実施形態に係る、画像処理部及びシステム制御部の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、本発明の実施の形態について説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係る内視鏡装置を含む内視鏡システムの構成例を示す図である。なお、この内視鏡システムは、例えば医療機関（病院等）で使用される。
【００１７】
図１に示したように、内視鏡システム１は、内視鏡２、ケーブル３、及び内視鏡装置４を含み、内視鏡２がケーブル３を介して内視鏡装置４に接続される構成を有する。
内視鏡２は、スコープ制御部２１、照明光学系２２、対物光学系２３、及び撮像素子２４を含む。スコープ制御部２１は、内視鏡装置４の後述のビデオプロセッサ機能部４１のシステム制御部４１２からケーブル３を介して入力される撮像制御信号に応じて撮像素子２４を制御する。照明光学系２２は、内視鏡装置４の後述の光源機能部４２の光源４２２から出射されて図示しないライトガイドを介して導かれた照明光を被写体に照明する。対物光学系２３は、被写体からの反射光（被写体に照明された照明光の反射光）を撮像素子２４の撮像面に結像する。撮像素子２４は、スコープ制御部２１の制御の下に、撮像面に結像されている被写体像（被写体からの反射光）を電気信号である映像信号に変換し、その映像信号を、ケーブル３を介して内視鏡装置４の後述のビデオプロセッサ機能部４１の画像処理部４１１へ出力する。
【００１８】
ケーブル３は、内視鏡２と内視鏡装置４との間で送受される信号（映像信号、撮像制御信号）を伝送する信号線を含む。
内視鏡装置４は、ビデオプロセッサ機能部４１、光源機能部４２、モニタ４３、記録媒体４４、及び操作部４５を含む。
【００１９】
ビデオプロセッサ機能部４１は、画像処理部４１１及びシステム制御部４１２を含む。画像処理部４１１は、ＣＫＥ機能を有するＧＰＵであって、システム制御部４１２の制御の下に、撮像素子２４からケーブル３を介して入力される映像信号を処理する。システム制御部４１２は、画像処理部４１１、光源機能部４２の光源制御部４２１、及び内視鏡２のスコープ制御部２１など、内視鏡システム１の各部を制御する。また、システム制御部４１２は、操作部４５が受け付けたユーザ操作に応じた制御等も行う。
【００２０】
光源機能部４２は、光源制御部４２１及び光源４２２を含む。光源制御部４２１は、システム制御部４１２の制御の下に、光源制御信号を光源４２２へ出力し、光源４２２を制御する。光源４２２は、光源制御部４２１から入力される光源制御信号に応じて照明光を出射する。
【００２１】
モニタ４３は、画像処理部４１１により処理された映像信号に応じた映像を表示する。記録媒体４４は、画像処理部４１１により処理された映像信号に応じた映像を記録する。操作部４５は、ユーザからの各種操作を受け付け、システム制御部４１２に通知する。
【００２２】
なお、内視鏡システム１において、ビデオプロセッサ機能部４１及び光源機能部４２は、図１に示したように一体として構成してもよいし、又は別体として構成してもよい。後者の場合には、光源機能部４２が内視鏡装置４に対して別の装置として設けられるように構成してもよい。あるいは内視鏡２、ケーブル３、及び内視鏡装置４を一体として構成してもよい。
【００２３】
また、内視鏡２は、軟性内視鏡、硬性内視鏡、又は光学式内視鏡（ファイバースコープや外科手術用の光学視管）に接続されたカメラヘッド等としてもよい。
また、撮像素子２４は、ＣＣＤ（Charge-Coupled Device）又はＣＭＯＳ（Complementary Metal Oxide Semiconductor）等のイメージセンサとしてもよい。
【００２４】
また、被写体への照明光の照明方式は、同時式又は面順次式等としてもよい。ここで、同時式とは、白色光を被写体に照明する方式であり、面順次式とは、波長帯域の異なる光を時系列に順次照明する方式である。
【００２５】
また、光源４２２は、半導体光源又はランプ光源等としてもよい。ここで、半導体光源は、例えば白色光を出射する白色ＬＥＤ、ＲＧＢ（赤緑青）の各色の色成分毎に異なる半導体光源を用いるもの（Ｒ、Ｇ、及びＢの各ＬＥＤを有する光源）、又はレーザ光源等である。あるいは、上述のように内視鏡２、ケーブル３、及び内視鏡装置４を一体として構成した場合等に、光源４２２としての半導体光源が内視鏡２の先端部に設けられるように構成してもよい。
【００２６】
また、内視鏡２と内視鏡装置４との間の信号の送受は、図１に示したように有線により行われるように構成してもよいし、又は無線により行われるように構成してもよい。
また、モニタ４３は、液晶モニタ等としてもよい。また、モニタ４３は、図１に示したように内視鏡装置４に内蔵される構成としてもよいし、又は内視鏡装置４に対して外付けされる構成としてもよい。
【００２７】
また、記録媒体４４は、図１に示したように内視鏡装置４に内蔵される構成としてもよいし、又は記録媒体４４を内視鏡装置４に対して着脱自在のＳＤカードやＵＳＢ（ Universal Serial Bus ）メモリ等の記録媒体として構成してもよい。あるいは、記録媒体４４を、内視鏡装置４にローカル接続された外部記録装置の記録媒体、又は内視鏡装置４にネットワークを介して接続された外部記録装置（サーバ等）の記録媒体等として構成してもよい。
【００２８】
また、操作部４５は、図１に示したように内視鏡装置４に内蔵される構成としてもよいし、又は内視鏡装置４に対して外付けされる構成としてもよい。前者の場合には、操作部４５を、内視鏡装置４の前面に設けられたフロントパネルスイッチ等として構成してもよい。この場合、そのフロントパネルスイッチは、物理的なスイッチ、又はタッチパネル等によって実現される仮想的なスイッチ等であってもよい。また、操作部４５が内視鏡装置４に対して外付けされる構成とした場合には、操作部４５を、内視鏡装置４に接続されるキーボード、内視鏡２に設けられたスコープスイッチ、又は内視鏡装置４に有線又は無線による接続される可搬型情報端末装置（タブレット型ＰＣ（Personal Computer）、スマートフォン等）等として構成してもよい。
【００２９】
図２は、画像処理部４１１及びシステム制御部４１２の内部構成例を示す図である。但し、ここでは、システム制御部４１２の内部構成例として、画像処理部４１１に主に関係する要素（映像信号の処理に主に関係する要素）のみを示す。
【００３０】
図２に示したように、画像処理部４１１は、映像信号を処理するための複数の処理ユニット４１１１を含む。各処理ユニット４１１１は、複数のＶＡＬＵを含み、カーネルの処理を実行する。なお、以下では、複数の処理ユニット４１１１を、「処理ユニット群」という。
【００３１】
また、画像処理部４１１は、システム制御部４１２により実行指示されたカーネルを、その時点で使用されていない処理ユニット４１１１を使用して実行する機能を有する。また、画像処理部４１１は、処理ユニット群の使用率（使用量）を算出し、その使用率をシステム制御部４１２に通知する機能を有する。さらに、画像処理部４１１は、カーネルを実行したときに、当該カーネルの実行に使用した処理ユニット群の使用率（使用量）を算出し、その使用率をシステム制御部４１２に通知する機能を有する。なお、カーネルの実行に使用される処理ユニット群の使用率は、カーネルが同一であれば同一（又は略同一）の使用率となる。
【００３２】
システム制御部４１２は、第１の使用率取得部４１２１、第２の使用率取得部４１２２、使用率記憶部４１２３、メモリ４１２４、カーネル選択部４１２５、及びカーネル実行指示部４１２６を含む。
【００３３】
第１の使用率取得部４１２１は、画像処理部４１１の処理ユニット群の使用率を画像処理部４１１から取得する。第２の使用率取得部４１２２は、画像処理部４１１によりカーネルが実行されたときに、当該カーネルの実行に使用された処理ユニット群の使用率を画像処理部４１１から取得する。
【００３４】
使用率記憶部４１２３は、過去に画像処理部４１１により実行されたカーネル毎の、当該カーネルの実行に使用された処理ユニット群の使用率を記憶する。例えば、図示はしないが、使用率記憶部４１２３には、過去の色補正処理カーネルの実行に使用された処理ユニット群の使用率が３０％、過去の明るさ補正処理カーネルの実行に使用された処理ユニット群の使用率が２０％、過去の画像合成処理カーネルの実行に使用された処理ユニット群の使用率が１０％、及び過去のＪＰＥＧ（Joint Photographic Experts Group）圧縮処理カーネルの実行に使用された処理ユニット群の使用率が１０％等というように、過去に実行されたカーネル毎の処理ユニット群の使用率が記憶される。なお、このカーネル毎の処理ユニット群の使用率は、第２の使用率取得部４１２２により取得されたものである。
【００３５】
メモリ４１２４は、実行待ちのカーネルを格納（記憶）する。図２に示した例では、メモリ４１２４への格納順に、「カーネル＃１」（色補正処理カーネル）、「カーネル＃２」（明るさ補正処理カーネル）、「カーネル＃３」（画像合成処理カーネル）、及び「カーネル＃４」（ＪＰＥＧ圧縮処理カーネル）が格納されている状態を示している。なお、メモリ４１２４へのカーネルの格納順は、実行待ちのカーネルの順番でもある。
【００３６】
カーネル選択部４１２５は、第１の使用率取得部４１２１により取得された処理ユニット群の使用率と、使用率記憶部４１２３に記憶されているカーネル毎の処理ユニット群の使用率とに基づいて、メモリ４１２４に格納されている実行待ちのカーネルの中から、次に実行させるカーネルを選択（決定）する。例えば、カーネル選択部４１２５は、画像処理部４１１が即時に実行開始可能なカーネルであって、且つ、その中でメモリ４１２４への格納順が最先のカーネルを、次に実行させるカーネルとして選択する。なお、この選択において、カーネルの実行に使用される処理ユニット群の使用率は、カーネルが同一であれば同一（又は略同一）の使用率になることから、メモリ４１２４に格納されている実行待ちの各カーネルの実行に使用される処理ユニット群の使用率は、使用率記憶部４１２３に記憶されている同一のカーネルについての処理ユニット群の使用率から予測することができる。また、第１の使用率取得部４１２１により取得された処理ユニット群の使用率から、その時点の処理ユニット群の未使用率を求めることができる。従って、実行待ちのカーネルの中で画像処理部４１１が即時に実行開始可能なカーネルは、予測された処理ユニット群の使用率が、処理ユニット群の未使用率以下に収まるカーネルとすることができる。
【００３７】
例えば、第１の使用率取得部４１２１により取得された処理ユニット群の使用率が８０％（すなわち未使用率が２０％）であり、使用率記憶部４１２３に記憶されているカーネル毎の処理ユニット群の使用率が上記に例示したものであり、メモリ４１２４に格納されている実行待ちのカーネルが図２に例示したものであるとする。この場合、実行待ちのカーネルの中で画像処理部４１１が即時に実行開始可能なカーネルは、「カーネル＃２」（明るさ補正処理）、「カーネル＃３」（画像合成処理カーネル）、及び「カーネル＃４」（ＪＰＥＧ圧縮処理カーネル）となる。そして、この場合には、その中でメモリ４１２４への格納順が最先のカーネルである「カーネル＃２」（明るさ補正処理）が、次に実行させるカーネルとして、カーネル選択部４１２５により選択されることになる。
【００３８】
あるいは、例えば、第１の使用率取得部４１２１により取得された処理ユニット群の使用率が８０％（すなわち未使用率が２０％）であり、使用率記憶部４１２３に記憶されているカーネル毎の処理ユニット群の使用率が上記に例示したものであり、メモリ４１２４に格納されている実行待ちのカーネルが、メモリ４１２４への格納順に「カーネル＃１」（色補正処理カーネル）、「カーネル＃２」（画像合成処理カーネル）、及び「カーネル＃３」（ＪＰＥＧ圧縮処理カーネル）であるとする。この場合、実行待ちのカーネルの中で画像処理部４１１が即時に実行開始可能なカーネルは、「カーネル＃２」（画像合成処理カーネル）、及び「カーネル＃３」（ＪＰＥＧ圧縮処理カーネル）となる。そして、この場合には、その中でメモリ４１２４への格納順が最先のカーネルである「カーネル＃２」（画像合成処理カーネル）が、次に実行させるカーネルとして、カーネル選択部４１２５により選択されることになる。なお、この場合において、処理ユニット群の未使用率が２０％であり、画像合成処理カーネル及びＪＰＥＧ圧縮処理カーネルの各々の処理ユニット群の使用率が１０％になると予測されることから、カーネル選択部４１２５が、次に実行させるカーネルとして、「カーネル＃２」（画像合成処理カーネル）及び「カーネル＃３」（ＪＰＥＧ圧縮処理カーネル）の両方を選択するようにしてもよい。
【００３９】
そして、カーネル選択部４１２５は、このようにして選択したカーネルを、カーネル実行指示部４１２６へ転送する。
カーネル実行指示部４１２６は、カーネル選択部４１２５により転送されたカーネルを画像処理部４１１に実行させるように指示する。
【００４０】
以上のように構成された内視鏡システム１に含まれる内視鏡装置４において、処理ユニット群（複数の処理ユニット４１１１）は、複数の演算ユニットの一例である。第１の使用率取得部４１２１は、複数の演算ユニットの使用率を取得する第１の取得部の一例である。第２の使用率取得部４１２２は、プログラムが実行されたときに、当該プログラムの実行に使用された複数の演算ユニットの使用率を取得する第２の取得部の一例である。使用率記憶部４１２３は、過去に実行されたプログラム毎の、当該プログラムの実行に使用された複数の演算ユニットの使用率を記憶する記憶部の一例である。カーネル選択部４１２５は、第１の取得部により取得された使用率と、記憶部に記憶されているプログラム毎の使用率とに基づいて、実行待ちのプログラムの中から、次に実行させるプログラムを決定する決定部の一例である。
【００４１】
次に、内視鏡システム１の動作の一例として、図２に示した画像処理部４１１及びシステム制御部４１２の動作について説明する。なお、本動作の説明では、画像処理部４１１をＧＰＵ４１１と称して説明する。
【００４２】
図３は、その動作の一例を示すフローチャートである。
図３に示したように、本動作では、まず、ＧＰＵ４１１が、処理ユニット群の使用率を算出する（Ｓ１００）。
【００４３】
続いて、第１の使用率取得部４１２１は、Ｓ１００で算出された使用率をＧＰＵ４１１から取得し（Ｓ１０５）、カーネル選択部４１２５に通知する（Ｓ１１０）。
なお、Ｓ１００及びＳ１０５では、例えば、第１の使用率取得部４１２１がＧＰＵ４１１に対して使用率の問い合わせを行い、その問い合わせに応じてＧＰＵ４１１がＳ１００の処理を行い、そして、第１の使用率取得部４１２１がＳ１０５の処理を行うようにしてもよい。
【００４４】
続いて、カーネル選択部４１２５は、使用率記憶部４１２３に記憶されているカーネル毎の処理ユニット群の使用率に基づいて、メモリ４１２４に格納されている実行待ちの各カーネルの実行に使用される処理ユニット群の使用率を予測する（Ｓ１１５）。
【００４５】
続いて、カーネル選択部４１２５は、その予測を完了することができたか否かを判定する（Ｓ１２０）。
Ｓ１２０の判定結果がＮｏの場合、カーネル選択部４１２５は、処理ユニット群の使用率を予測することができなかった実行待ちのカーネルを１つ選択してカーネル実行指示部４１２６へ転送し、そのカーネルの実行をカーネル実行指示部４１２６がＧＰＵ４１１に指示する（Ｓ１２５）。続いて、ＧＰＵ４１１は、カーネル実行指示部４１２６により指示されたカーネルを実行し、そのカーネルの実行に使用された処理ユニット群の使用率を算出する（Ｓ１３０）。続いて、第２の使用率取得部４１２２は、Ｓ１３０で算出された使用率をＧＰＵ４１１から取得し、その使用率が、Ｓ１２５で実行が指示されたカーネルの処理ユニット群の使用率として使用率記憶部４１２３に記憶され（Ｓ１３５）、処理がＳ１１５に戻る。
【００４６】
一方、Ｓ１２０の判定結果がＹｅｓの場合、カーネル選択部４１２５は、Ｓ１１０で通知された処理ユニット群の使用率とＳ１１５で行われた予測とに基づいて、メモリ４１２４に格納されている実行待ちのカーネルの中から、ＧＰＵ４１１が即時に実行開始可能なカーネルであって、且つ、その中でメモリ４１２４への格納順が最先のカーネルを、次に実行させるカーネルとして選択する（Ｓ１４０）。但し、メモリ４１２４に格納されている実行待ちのカーネルの中に、ＧＰＵ４１１が即時に実行開始可能なカーネルが無い場合には、メモリ４１２４への格納順が最先のカーネルを選択する。
【００４７】
続いて、カーネル選択部４１２５は、選択したカーネルをカーネル実行指示部４１２６へ転送する（Ｓ１４５）。
続いて、カーネル実行指示部４１２６は、Ｓ１４５でカーネル選択部４１２５により転送されたカーネルの実行をＧＰＵ４１１に指示する（Ｓ１５０）。
【００４８】
続いて、ＧＰＵ４１１は、Ｓ１５０でカーネル実行指示部４１２６により指示されたカーネルを、使用されていない処理ユニット４１１１を用いて実行し（Ｓ１５５）、本フローが終了する。
【００４９】
以上のように、本実施形態に係る内視鏡装置４では、メモリ４１２４に格納されている実行待ちのカーネルの中から、画像処理部（ＧＰＵ）４１１が即時に実行開始可能なカーネルであって、且つ、その中でメモリ４１２４への格納順が最先のカーネルを、次に実行させるカーネルとして選択するようにしたことから、画像処理部（ＧＰＵ）４１１では、カーネルの処理が、使用されていない処理ユニット４１１１に滞りなく配分されて即時に実行されるようになる。従って、本実施形態に係る内視鏡装置４によれば、カーネルの処理を、処理ユニット群（複数の処理ユニット４１１１）に適切に配分して実行させることができる。また、その結果として、映像信号の処理を、より高速に行うことができる。
【００５０】
＜第２の実施形態＞
本発明の第２の実施形態に係る内視鏡装置は、第１の実施形態に係る内視鏡装置４において、更に、実行待ちのカーネルの中に、処理制限時間内に実行しなければならないカーネルがある場合には、それを優先して実行させるようにしたものである。
【００５１】
なお、第２の実施形態の説明では、第１の実施形態で説明した要素と同一の要素については同一の符号を付し、その詳細な説明は省略する。
図４は、第２の実施形態に係る内視鏡システム１における、画像処理部（ＧＰＵ）４１１及びシステム制御部４１２の内部構成例を示す図である。なお、図４は、図２に示した内部構成例に対応する図でもある。
【００５２】
図４において、第１の実施形態（図２に示した内部構成例）と異なる点は、システム制御部４１２が、処理制限時間を設定する処理制限時間設定部４１２７を更に備える点である。なお、この処理制限時間は、例えば、１フレーム分の処理に許容される最大時間である。例えば６０フレーム／秒の映像を取得する場合には、処理制限時間が１／６０秒とされる。また、処理制限時間設定部４１２７により設定される処理制限時間は、例えば、ユーザによる操作部４５の操作により変更可能である。
【００５３】
この処理制限時間設定部４１２７を備えることに伴い、第２の実施形態では、カーネル選択部４１２５が、更に、メモリ４１２４に格納されている実行待ちのカーネルの中に、処理制限時間設定部４１２７により設定されている処理制限時間内に実行しなければならないカーネルがある場合には、そのカーネルの中でメモリ４１２４への格納順が最先のカーネルを、次に実行させるカーネルとして優先して選択（決定）し、カーネル実行指示部４１２６に転送する。ここで、処理制限時間設定部４１２７により設定されている処理制限時間内に実行しなければならないカーネルとは、例えば、１フレーム分の処理の中で実行しなければならないカーネルであり、ＪＰＥＧ圧縮処理カーネル等は除かれる。
【００５４】
その他の構成については、第１の実施形態と同様である。
次に、内視鏡システム１の動作の一例として、図４に示した画像処理部（ＧＰＵ）４１１及びシステム制御部４１２の動作について説明する。
【００５５】
図５は、その動作の一例を示すフローチャートである。なお、図５は、図３に示したフローチャートに対応する図でもある。
図５において、第１の実施形態（図３に示したフローチャート）と異なる点は、Ｓ１２０の判定結果がＹｅｓの場合にＳ２００の判定が行われ、Ｓ２００の判定結果がＮｏの場合にはＳ１４０へ進み、Ｙｅｓの場合にはＳ２０５の処理を行ってからＳ１４５へ進むようにした点である。
【００５６】
より詳しくは、Ｓ１２０の判定結果がＹｅｓの場合、カーネル選択部４１２５は、メモリ４１２４に格納されている実行待ちのカーネルの中に、処理制限時間設定部４１２７により設定されている処理制限時間内に実行しなければならないカーネルがあるか否かを判定する（Ｓ２００）。ここで、その判定結果がＮｏの場合には、処理がＳ１４０へ進む。
【００５７】
一方、Ｓ２００の判定結果がＹｅｓの場合、カーネル選択部４１２５は、メモリ４１２４に格納されている実行待ちのカーネルの中から、処理制限時間設定部４１２７により設定されている処理制限時間内に実行しなければならないカーネルであって、且つ、その中でメモリ４１２４への格納順が最先のカーネルを、次に実行させるカーネルとして選択し（Ｓ２０５）、処理がＳ１４５へ進む。
【００５８】
その他については、第１の実施形態と同様である。
以上のように、第２の実施形態に係る内視鏡装置４によれば、第１の実施形態で述べた効果に加え、更に、実行待ちのカーネルの中に、処理制限時間内に実行しなければならないカーネルがある場合には、それを優先して画像処理部（ＧＰＵ）４１１に実行させるようにすることができる。
【００５９】
なお、上述の各実施形態では、次のような変形も可能である。
例えば、第１の使用率取得部４１２１が、処理ユニット群の使用率を画像処理部（ＧＰＵ）４１１から取得する際に、使用中（又は未使用中）の処理ユニット４１１１が何れであるかを示す情報（以下、「処理ユニット群使用状態情報」という）も画像処理部（ＧＰＵ）４１１から取得するようにしてもよい。そして、カーネル実行指示部４１２６が、カーネルの実行を画像処理部（ＧＰＵ）４１１に指示する際に、その処理ユニット群使用状態情報に基づいて、実行指示するカーネルの処理を何れの処理ユニット４１１１（未使用中の処理ユニット４１１１）を用いて実行させるかも画像処理部（ＧＰＵ）４１１に指示するようにしてもよい。
【００６０】
また、例えば、ビデオプロセッサ機能部４１が複数の画像処理部（ＧＰＵ）４１１を含むように構成してもよい。この場合、システム制御部４１２は、上述の各実施形態で説明した画像処理部（ＧＰＵ）４１１に対する制御を、複数の画像処理部（ＧＰＵ）４１１の各々に対して行うことになる。
【００６１】
以上、上述した実施形態は、発明の理解を容易にするために本発明の具体例を示したものであり、本発明は上述の実施形態に限定されるものではない。本発明は、特許請求の範囲に規定された本発明の思想を逸脱しない範囲において、さまざまな変形、変更が可能である。
【符号の説明】
【００６２】
１          内視鏡システム
２          内視鏡
３          ケーブル
４          内視鏡装置
２１        スコープ制御部
２２        照明光学系
２３        対物光学系
２４        撮像素子
４１        ビデオプロセッサ機能部
４２        光源機能部
４３        モニタ
４４        記録媒体
４５        操作部
４１１      画像処理部
４１２      システム制御部
４２１      光源制御部
４２２      光源
４１１１    処理ユニット
４１２１    第１の使用率取得部
４１２２    第２の使用率取得部
４１２３    使用率記憶部
４１２４    メモリ
４１２５    カーネル選択部
４１２６    カーネル実行指示部
４１２７    処理制限時間設定部
【図１】
0006340333.tif 000002
【図２】
0006340333.tif 000003
【図３】
0006340333.tif 000004
【図４】
0006340333.tif 000005
【図５】
0006340333.tif 000006