(57)【要約】【課題】表示応答性の向上とバッファメモリの使用効率の向上を図るための技術を提供する。【解決手段】画像形成装置が、元の画像データを格納する画像データ格納部と、画像データ格納部よりも高速にデータを読み出し可能である画像データバッファ部と、を有する。表示回数カウント部が、元の画像データの全体を複数のブロックに分けて、ブロックごとに、表示用の画像データを形成するために参照または利用された回数を表示回数としてカウントする。優先度設定部が、表示回数に基づいてブロックごとに優先度を設定する。バッファリング制御部が、優先度が高いブロックの画像データが優先的に画像データバッファ部に格納されるように、画像データバッファ部によるバッファリングを制御する。【選択図】図５
2013167797.tif 000002
【特許請求の範囲】
【請求項１】
元の画像データの一部に対応する画像を表示し、その表示する部分をユーザーの操作に従って変更する機能を有するビューアのために、元の画像データから表示用の画像データを生成する画像形成装置であって、
元の画像データを格納する画像データ格納部と、
前記元の画像データの一部のデータを一時的に格納可能であって且つ前記画像データ格納部よりも高速にデータを読み出し可能である画像データバッファ部と、
前記元の画像データから表示用の画像データを形成する画像データ出力部であって、表示用の画像データの形成に必要なデータが前記画像データバッファ部に格納されている場合には前記画像データバッファ部に格納されているデータを用いる、画像データ出力部と、
前記元の画像データの全体を複数のブロックに分けて、前記ブロックごとに、表示用の画像データを形成するために参照または利用された回数を表示回数としてカウントする表示回数カウント部と、
カウントされた表示回数に基づいて前記ブロックごとに優先度を設定する優先度設定部と、
優先度が高いブロックの画像データが優先的に前記画像データバッファ部に格納されるように制御するバッファリング制御部と、
を備えることを特徴とする画像形成装置。
【請求項２】
前記優先度設定部は、表示回数が少ないブロックほど優先度を高くする
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記優先度設定部は、表示回数が多いブロックほど優先度を高くする
ことを特徴とする請求項１に記載の画像形成装置。
【請求項４】
前記優先度設定部は、既に画面表示が行われたブロックに対して、最も低い優先度を設定する
ことを特徴とする請求項１または２に記載の画像形成装置。
【請求項５】
前記優先度設定部は、
表示回数と、ビューアにより表示されている表示領域からの画像上の距離とに基づいて、ブロックごとに優先度を設定するものであり、
表示回数が少なく、前記表示領域からの距離が近いブロックほど優先度を高くする
ことを特徴とする請求項１に記載の画像形成装置。
【請求項６】
前記優先度設定部は、
表示回数と、ビューアにより表示されている表示領域からの画像上の距離とに基づいて、ブロックごとに優先度を設定するものであり、
表示回数が多く、前記表示領域からの距離が近いブロックほど優先度を高くする
ことを特徴とする請求項１に記載の画像形成装置。
【請求項７】
表示回数が少ないブロックほど優先度を高くする方法と、表示回数が多いブロックほど優先度を高くする方法とを少なくとも含む、複数の算出方法の中から、前記優先度設定部において実行する算出方法をユーザーに選択させる
ことを特徴とする請求項１に記載の画像形成装置。
【請求項８】
元の画像データを格納する画像データ格納部と、
前記元の画像データの一部のデータを一時的に格納可能であって且つ前記画像データ格
納部よりも高速にデータを読み出し可能である画像データバッファ部と、
前記元の画像データの一部に対応する画像を表示し、その表示する部分をユーザーの操作に従って変更する機能を有するビューアのために、前記元の画像データから表示用の画像データを形成する画像データ出力部であって、表示用の画像データの形成に必要なデータが前記画像データバッファ部に格納されている場合には前記画像データバッファ部に格納されているデータを用いる、画像データ出力部と、
を備える画像形成装置の制御方法であって、
前記元の画像データの全体を複数のブロックに分けて、前記ブロックごとに、表示用の画像データを形成するために参照または利用された回数を表示回数としてカウントするステップと、
カウントされた表示回数に基づいて前記ブロックごとに優先度を設定するステップと、
優先度が高いブロックの画像データが優先的に前記画像データバッファ部に格納されるように制御するステップと、
を含むことを特徴とする画像形成装置の制御方法。
【請求項９】
元の画像データを格納する画像データ格納部と、
前記元の画像データの一部のデータを一時的に格納可能であって且つ前記画像データ格納部よりも高速にデータを読み出し可能である画像データバッファ部と、
前記元の画像データの一部に対応する画像を表示し、その表示する部分をユーザーの操作に従って変更する機能を有するビューアのために、前記元の画像データから表示用の画像データを形成する画像データ出力部であって、表示用の画像データの形成に必要なデータが前記画像データバッファ部に格納されている場合には前記画像データバッファ部に格納されているデータを用いる、画像データ出力部と、
を備える画像形成装置に対し、
前記元の画像データの全体を複数のブロックに分けて、前記ブロックごとに、表示用の画像データを形成するために参照または利用された回数を表示回数としてカウントするステップと、
カウントされた表示回数に基づいて前記ブロックごとに優先度を設定するステップと、
優先度が高いブロックの画像データが優先的に前記画像データバッファ部に格納されるように制御するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像ビューアにおける表示領域の変更を高速化する技術に関するものである。
【背景技術】
【０００２】
病理分野において、病理診断のツールである光学顕微鏡の代替として、プレパラートに載置された被検試料を撮像し、デジタル化してディスプレイ上での病理診断を可能とするバーチャルスライドシステムがある。バーチャルスライドシステムによる病理診断のデジタル化により、従来の被検試料の光学顕微鏡像をデジタルデータとして取り扱える。それによって、デジタル画像を使った患者への説明、希少症例の共有化、遠隔診断の迅速化、教育・実習の効率化などの点で、利便性の向上が期待できる。
バーチャルスライドシステムによってデジタル化された画像データを可視化する画像ビューアは、システムとその使用者である病理医を直接繋ぐインターフェースとなるため、その使用感はシステムそのものの操作性に大きな影響を及ぼす。
【０００３】
しかし、従来の画像ビューアでは、その操作性が顕微鏡に劣る場合があった。例えば、病理画像データのサイズは、一般的に巨大であり、画面に表示される領域の大きさの数倍から時には数百倍にもなる。そのような巨大な画像データを画像ビューアで表示し、スクロールなどの指示を入力して表示データを更新した場合、入力に対する画面表示の応答が遅れる場合があった。このような応答の遅れは、画像ビューアの使用者のストレスの元となる場合が多く、時にはそれがバーチャルスライドシステムの普及を妨げる一因になる場合もあった。よって、画像ビューアの表示応答性を向上させることは、病理医がバーチャルスライドシステムを使用するための障壁の一つを取り払うことに繋がるため、非常に重要である。
【０００４】
ところで、画像ビューアの表示応答性の向上という課題は、バーチャルスライドシステムに限ったものではなく、広く一般的に認識されている課題である。そして、この課題を解決するために、通常は画面表示領域以上の画像データを、あらかじめアクセス速度が比較的高速なバッファメモリ上に格納しておき、スクロール等による画面更新が生じた際には、そのバッファメモリから次の表示データを読み込むという処理が行われている。以下、画面表示の応答性向上のため、アクセス速度の速いバッファ領域にあらかじめ画像データまたはその一部を読み込んでおく処理のことを、「バッファリング」と称する。なお、このような処理を「キャッシング」と呼び、キャッシングのために使われるメモリのことを「キャッシュメモリ」または「キャッシュ」と呼ぶこともある。本明細書では、バッファとキャッシュを同じ意味で使うものとする。
【０００５】
バッファリングは従来から広く知られた処理方法であるが、一般的なバッファリングでは画面表示領域よりも大きな領域を、上下左右各方向に対して均等な大きさだけ読み込むことが多い。つまりこの場合、バッファメモリに読み込まれた画像データ領域の中で、実際に画面に表示する領域はちょうど中央に位置する形になる。このような方法は、画面がどの方向にスクロールするか予測できない場合には有効である。しかし、仮に画面がある１つの方向にのみスクロールした場合、結果的に画面表示のために使われなかったデータが多く発生するため、バッファメモリの使用効率という観点では改善の余地がある。また、一度のスクロール量が大きい場合には、次に画面に表示する領域がバッファリングしている領域外まで移動してしまい、その結果バッファメモリよりも低速な記憶装置から画像データを読み込まなければならなくなり、画像ビューアの応答性低下の原因となる。このような現象を回避するには、より多くのバッファ容量を確保すれば良いが、バッファメモ
リの使用効率が上がるわけではなく、バッファリングされたデータの大半が結果的に無駄になることに変わりはない。つまり一般的には、画像ビューアの表示応答性向上とバッファメモリ使用量とは、相反する関係にある。
【０００６】
これらの問題が生じるそもそもの原因は、次のスクロール方向を予測できないことにある。言い換えれば、仮に次のスクロール方向を高い確率で予測できれば、バッファリングされたデータの使用効率をより向上させることができるようになる。
そのような例として、例えば特許文献１では、画像データにテキストデータが含まれる場合、テキストが特定の方向に読まれるという特徴を利用して、画像の内容を解析した上でバッファリングを行うデータを選択する処理を行っている。これにより、特許文献１で示される手法は、スクロール表示の高速化と効率の良いメモリ使用を両立させている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１１３８０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
テキストは読まれる方向が決まっているため、この特徴を利用したバッファリングは有効である。しかしながら、テキストのような意味付けされたデータを含んでいない画像（例えば病理画像）においてはその方向性が画像の特徴からは一意に定まらないため、高速化と効率の良いメモリ使用とを両立させるバッファリングの制御方法がないという課題があった。
【０００９】
本発明は上記課題に鑑みてなされたものであり、表示応答性の向上とバッファメモリの使用効率の向上を図るための技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第一態様は、元の画像データの一部に対応する画像を表示し、その表示する部分をユーザーの操作に従って変更する機能を有するビューアのために、元の画像データから表示用の画像データを生成する画像形成装置であって、元の画像データを格納する画像データ格納部と、前記元の画像データの一部のデータを一時的に格納可能であって且つ前記画像データ格納部よりも高速にデータを読み出し可能である画像データバッファ部と、前記元の画像データから表示用の画像データを形成する画像データ出力部であって、表示用の画像データの形成に必要なデータが前記画像データバッファ部に格納されている場合には前記画像データバッファ部に格納されているデータを用いる、画像データ出力部と、前記元の画像データの全体を複数のブロックに分けて、前記ブロックごとに、表示用の画像データを形成するために参照または利用された回数を表示回数としてカウントする表示回数カウント部と、カウントされた表示回数に基づいて前記ブロックごとに優先度を設定する優先度設定部と、優先度が高いブロックの画像データが優先的に前記画像データバッファ部に格納されるように制御するバッファリング制御部と、を備えることを特徴とする画像形成装置である。
【００１１】
本発明の第二態様は、元の画像データを格納する画像データ格納部と、前記元の画像データの一部のデータを一時的に格納可能であって且つ前記画像データ格納部よりも高速にデータを読み出し可能である画像データバッファ部と、前記元の画像データの一部に対応する画像を表示し、その表示する部分をユーザーの操作に従って変更する機能を有するビューアのために、前記元の画像データから表示用の画像データを形成する画像データ出力部であって、表示用の画像データの形成に必要なデータが前記画像データバッファ部に格納されている場合には前記画像データバッファ部に格納されているデータを用いる、画像
データ出力部と、を備える画像形成装置の制御方法であって、前記元の画像データの全体を複数のブロックに分けて、前記ブロックごとに、表示用の画像データを形成するために参照または利用された回数を表示回数としてカウントするステップと、カウントされた表示回数に基づいて前記ブロックごとに優先度を設定するステップと、優先度が高いブロックの画像データが優先的に前記画像データバッファ部に格納されるように制御するステップと、を含むことを特徴とする画像形成装置の制御方法である。
【００１２】
本発明の第三態様は、元の画像データを格納する画像データ格納部と、前記元の画像データの一部のデータを一時的に格納可能であって且つ前記画像データ格納部よりも高速にデータを読み出し可能である画像データバッファ部と、前記元の画像データの一部に対応する画像を表示し、その表示する部分をユーザーの操作に従って変更する機能を有するビューアのために、前記元の画像データから表示用の画像データを形成する画像データ出力部であって、表示用の画像データの形成に必要なデータが前記画像データバッファ部に格納されている場合には前記画像データバッファ部に格納されているデータを用いる、画像データ出力部と、を備える画像形成装置に対し、前記元の画像データの全体を複数のブロックに分けて、前記ブロックごとに、表示用の画像データを形成するために参照または利用された回数を表示回数としてカウントするステップと、カウントされた表示回数に基づいて前記ブロックごとに優先度を設定するステップと、優先度が高いブロックの画像データが優先的に前記画像データバッファ部に格納されるように制御するステップと、を実行させることを特徴とするプログラムである。
【発明の効果】
【００１３】
本発明によれば、表示応答性の向上とバッファメモリの使用効率の向上を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態における画像処理システムのシステム構成図。
【図２】第１実施形態における画像形成装置のハードウェア構成図。
【図３】第１実施形態における画像形成装置の機能ブロック図。
【図４】画像データ全体と各領域の関係図。
【図５】第１実施形態における画像形成処理の流れの概要を示すフローチャート。
【図６】第１実施形態における初期設定処理の流れを示すフローチャート。
【図７】第１実施形態におけるバッファ内容更新処理の流れを示すフローチャート。
【図８】第１実施形態におけるバッファリングの例を説明するための模式図。
【図９】第２実施形態におけるバッファリングの例を説明するための模式図。
【図１０】第３実施形態における優先度の例を説明するための模式図。
【図１１】第３実施形態におけるバッファリングの例を説明するための模式図。
【図１２】画像処理システムの別の構成例を示す図。
【発明を実施するための形態】
【００１５】
本発明は、元の画像データの一部に対応する画像を表示し、その表示部分をユーザーの操作に従って変更（スクロール等）する機能を有する画像ビューアにおいて、表示領域移動時の表示応答性を向上させるための技術に関する。具体的には、本発明は、元の画像データから表示用の画像データ（表示画像データ）を生成する装置において、バッファリングするデータを適切に制御することで、バッファメモリの使用効率を向上し、結果として表示応答性を総合的に向上するものである。
【００１６】
より詳しくは、本発明では、元の画像データをブロック画像データ群として取り扱い、ブロック画像データごとに、表示画像データを形成するために参照または利用された回数（「表示回数」とよぶ）をカウントする。そして、表示回数に基づきブロック画像データ
ごとに優先度を設定し、優先度が高いブロック画像データを優先的にバッファする。このとき、表示回数が多いほど優先度を高くする方法と、表示回数が少ないほど優先度を高くする方法とがあるが、本発明ではいずれの方法を採用してもよいし、２つの方法を自動で又はユーザーが切り替えられるようにしてもよい。前者の方法は、画像中の特定の領域が重点的・集中的に観察されるケースに適しており、後者の方法は、画像全体が順番に網羅的に観察されるケースに適している。それゆえ、本発明は、特定の領域が重点的・集中的に観察される傾向にある画像データや、画像全体が順番に網羅的に観察される傾向にある画像データを取り扱うシステムに好ましく適用することができる。以下の実施形態で述べるバーチャルスライドシステムのように、画面に表示した画像によって目視検査を行わせるシステムは、好ましい適用対象の典型例である。ただし、本発明の適用範囲はこれに限られず、高解像度の画像データや大サイズの画像データの表示を行うシステムに対し本発明を適用することができる。
【００１７】
＜第１実施形態＞
本発明の第１実施形態に係る画像処理システムを、図に従って説明する。本実施形態で示す手法は、図１のようなシステム構成の元で実現される。１０１は撮像装置であり、主にバーチャルスライドシステムにおける撮像部分に当たる。１０２は本実施形態で示す手法を実現するための主要部分であり、撮像装置１０１で生成された画像データを受け取り、表示画像データの生成処理を行う画像形成装置である。１０３は画像表示装置であり、画像形成装置１０２から受け取った表示画像データに基づく画像を画面に表示する。また、画像形成装置１０２は画像表示装置１０３から画面表示領域などの情報も受け取り、処理を行う。
【００１８】
本実施形態において、画像形成装置１０２は、例えば図２に示されるハードウェア構成から成るコンピュータと、後述する各種機能を提供するプログラムとで、実現可能である。２０１は入力部であり、キーボードやマウス等が該当する。２０２は記憶部であり、本実施形態で示す手法を実現するためのプログラムや、処理対象データなどを格納する部分であり、ＲＡＭ等が該当する。２０３は演算部であり、記憶部２０２に格納されたデータに対し、記憶部２０２に格納されたプログラムに従って各種演算処理を行う部分であり、ＣＰＵ等が該当する。２０４はＩ／Ｆ部であり、撮像装置１０１および画像表示装置１０３とのデータ入出力を制御するインターフェース部分である。２０５は補助記憶装置（または外部記憶装置）であり、ハードディスクやフラッシュメモリ等が該当する。２０６は上記２０１〜２０５を接続するデータバスである。
【００１９】
本実施形態における画像形成装置１０２の機能ブロック図を、図３に示す。３０１は画像データ入力部であり、撮像装置１０１から画像データを入力する部分である。３０２は画像データ格納部であり、画像データ入力部３０１から入力した画像データを格納する記憶装置である。３０３は画像データバッファ部であり、バッファリング制御命令を受けて画像データ格納部３０２から画像データの一部のデータを受け取り、一時的に格納可能である。また画像データバッファ部３０３は、表示画像データの形成に必要な画像データを画像データ出力部３０４へ送信する。画像データ格納部３０２は、画像データ全体を格納する必要があるため、容量の大きい記憶装置（例えば図２の補助記憶装置２０５）を用いて構成される。一方、画像データバッファ部３０３は、画像データ用のバッファメモリとして機能する記憶装置であり、画像データ格納部３０２に比べて高速にデータを書き込み／読み出し可能なデバイスで構成される。本実施形態では記憶部２０２の中に画像データバッファ部３０３を設定するが、記憶部２０２とは別に専用のバッファメモリを設けてもよい。なお、画像データバッファ部３０３の容量は、画像データ格納部３０２に比べて小さく、画像データの全体を格納することはできない。以下の説明においては、画像データバッファ部３０３を、「バッファメモリ」または単に「バッファ」と呼ぶこともある。
【００２０】
３０４は画像データ出力部であり、画像データ格納部３０２または画像データバッファ部３０３から受け取った画像データから、画像表示装置１０３へ出力するための表示画像データを形成する。３０５は画面更新情報入力部であり、例えばマウス等の入力デバイスからユーザー入力を受け付け、それに基づいて画面更新命令をバッファリング制御部３０６へ送信する。バッファリング制御部３０６は、画像データバッファ部３０３に格納するデータを制御する機能である。バッファリング制御部３０６は、画像データ格納部３０２へデータ転送命令を送信し、また、表示領域情報入力部３０９から表示領域情報を受信し、それに基づいて画像データバッファ部３０３へバッファリング制御命令を送信する。さらに、バッファリング制御部３０６は、各ブロック画像データの表示回数をカウントする命令を表示回数カウント部３０７へ送信し、バッファリング優先度設定部３０８からはバッファリング優先度を受信する。
【００２１】
表示回数カウント部３０７はバッファリング制御部３０６から受信したカウント命令により各ブロック画像データの表示回数をカウントし、その結果をバッファリング優先度設定部３０８へ送信する。また、表示回数カウント部３０７は優先度算出命令もバッファリング優先度設定部３０８へ送信する。バッファリング優先度設定部３０８は、これらの情報をもとにバッファリング優先度を算出し、その結果をバッファリング制御部３０６へ送信する。表示領域情報入力部３０９は、画像表示装置１０３から現在の画像の表示領域情報を取得し、その結果をバッファリング制御部３０６へ送信する。なお、画像データの入力については、画像データ入力部３０１がバッファリング制御部３０６からのデータ転送命令を受信し、画像データ格納部３０２を経由せずに撮像装置１０１からの画像データを直接画像データバッファ部３０３へ転送する構成でも良い。
【００２２】
本実施形態では、画像を図４に示す単位で取り扱う。４０１は、取り扱う画像データ全体を示す。画像データ全体４０１は複数のブロック画像データ４０２に分割されている。本実施形態では、データ転送などの処理はこのブロック画像データ４０２を単位として実行する。ブロック画像データ４０２はそれぞれが独立した画像ファイルであっても良いし、もしくは画像データ全体４０１が独立した画像ファイルであって、それを内部的に取り扱う単位としてブロック画像データ４０２を定義しても良い。４０３は画像表示装置によって実際に画面表示が行われる領域である。以下、４０３を「画面表示領域」と記述する。４０４は、画面表示を行うために画像表示装置１０３へ転送を行う画像領域であり、以下４０４を「表示データ領域」と記述する。本実施形態では表示データ領域４０４を、画面表示領域４０３を完全に含み、かつ最も少ないブロック画像データ４０２で構成される領域として定義する。ただし、場合によっては表示データ領域４０４をこの定義よりも大きい領域と定義しても良い。また、画面表示領域４０３と表示データ領域４０４は一致していても良い。４０５は、バッファリングの対象となる領域であり、ユーザーもしくはプログラムがあらかじめ指定できる。以下、４０５を「バッファリング対象領域」と記述する。なお、本実施形態では、表示データ領域４０４はバッファリング対象領域４０５から除かれるが、必要に応じて表示データ領域４０４がバッファリング対象領域４０５に含まれる構成を用いても良い。
【００２３】
（画像形成処理）
図５は、本実施形態における画像形成処理の流れの概要を示すフローチャートである。以下、図５に従って処理の流れを説明する。
【００２４】
まず、バッファリング制御部３０６が、初期設定を行う（ステップＳ５０１）。Ｓ５０１の中では、さらに図６で示される処理を行う。初期設定の詳細な処理の流れについては後述する。
Ｓ５０１の次は、バッファリング制御部３０６が、画面更新の要求が何らかの形で画像形成装置１０２に入力されたかどうかを判定する（条件判定Ｓ５０２）。画面更新の要求
とは、例えばマウス等の入力デバイスから与えられる画面のスクロール指示などである。画面更新要求が入力されていない場合は、入力がされるまで待ち状態となる。
【００２５】
Ｓ５０２で画面更新要求が入力されたと判定されたら、その入力をもとに、バッファリング制御部３０６が、画面表示領域情報の更新を行う（ステップＳ５０３）。ここで、「画面表示領域情報」とは、画像データ全体４０１に対する画面表示領域４０３の位置と表示面積の情報のことである。
次に、バッファリング制御部３０６が、更新された画面表示領域情報から、表示データ領域情報の更新を行う（ステップＳ５０４）。ここで、「表示データ領域情報」とは、画像データ全体４０１に対する表示データ領域４０４の位置と面積の情報のことである。
【００２６】
次に、バッファリング制御部３０６が、バッファリング対象領域情報の更新を行う（ステップＳ５０５）。ここで、「バッファリング対象領域情報」とは、画像データ全体４０１に対するバッファリング対象領域４０５の位置と形状とバッファリング領域範囲の情報のことである。なお、表示データ領域４０４とバッファリング対象領域４０５の相対位置関係、およびバッファリング対象領域４０５の形状については、このＳ５０５で必要に応じて変化させることができる。ただし、本実施形態では簡単のため、表示データ領域４０４とバッファリング対象領域４０５の関係、およびバッファリング対象領域４０５の形状は変化しないものとする。
【００２７】
次に、バッファリング制御部３０６が、画面表示に必要なブロック画像データが画像データバッファ部３０３内に存在するかどうかを判定する（条件判定Ｓ５０６）。条件判定Ｓ５０６の判定結果が真であれば、ステップＳ５０７に進み、画像データ出力部３０４は画像データバッファ部３０３内のブロック画像データを読み出し、表示画像データを生成して画像表示装置１０３へ転送する。一方、条件判定Ｓ５０６の判定結果が偽であればステップＳ５０８に進み、画像データ出力部３０４は、画像データ格納部３０２からブロック画像データを読み出し、表示画像データを生成して画像表示装置１０３へ転送する。なお、ブロック画像データをそのまま表示画像データとして転送してもよいし、ブロック画像データに対して必要な画像処理（例えば解像度変換、階調補正、色補正、強調処理、合成処理、形式変換など）を施して表示画像データを生成してもよい。
【００２８】
ステップＳ５０９では、バッファリング制御部３０６のカウント命令に基づき、表示回数カウント部３０７が、転送されたブロック画像データの表示回数をインクリメント（値を１増やす）し、既に作成してある表示回数テーブルの内容をその値で更新する。なお、表示回数テーブルは、初期設定Ｓ５０１の中のＳ６０７にて作成されるテーブルであり、これは例えば、画像データ全体４０１中の全てのブロック画像データに一意に割り当てられたＩＤ番号と、その累積表示回数からなるテーブルである。Ｓ６０７については後述する。また、本実施形態では、「表示回数」を「画像表示装置１０３へデータを転送した回数」と定義することにするが、例えば「圧縮データの展開」など画像表示に必要となる他の処理の回数をもって、それを表示回数と定義しても良い。
【００２９】
次に、Ｓ５０９にて設定された表示回数をもとに、バッファリング優先度設定部３０８が、バッファリング対象領域４０５中に存在する各ブロック画像データのバッファリング優先度を決定する。そして、バッファリング優先度設定部３０８は、既に作成してあるバッファリング優先度テーブルの内容を、求めた優先度の値で更新する（ステップＳ５１０）。なお、バッファリング優先度テーブルは、初期設定Ｓ５０１の中のＳ６０６にて作成されるテーブルであり、これは例えば、バッファリング対象領域４０５中の各ブロック画像データのＩＤ番号と、そのバッファリング優先度からなるテーブルである。Ｓ６０６については後述する。また、このバッファリング優先度は、表示回数の情報を元に決定すれば、どのような規則を用いても良い。例えば、表示回数をそのままバッファリング優先度
として用いても良いし、または表示回数に−１を掛けた値をバッファリング優先度として用いても良い。前者の場合は、過去の表示回数が多いブロック画像データほどバッファリングの優先度が高くなり、過去に表示した画像を再び参照することが多い観察の場合に有効である。これは、例えば２０倍や４０倍表示などの高倍率表示における詳細診断が該当する。また、後者の場合は、表示回数が少ないブロック画像データほどバッファリングの優先度が高くなり、過去に表示していない画像を参照する観察の場合に有効である。これは、例えば２倍や４倍、もしくは１０倍表示などの低倍率表示において、未表示画像を順番に表示していくスクリーニングなどが該当する。このようにバッファリング優先度の算出方法には複数の方法が考えられ、その方法ごとに好ましい適用範囲が異なる。したがって、優先度の算出方法が異なる複数のモードを用意し、ユーザーにモード切替（モード選択）を行わせるようにしてもよい。あるいは、表示倍率、診断モード、表示モード、画像の種類やサイズなどの条件と、好ましい優先度の算出方法とを予め対応付けておき、バッファリング制御部３０６またはバッファリング優先度設定部３０８が条件に応じて自動的に算出方法を切り替えてもよい。
【００３０】
次に、Ｓ５１０で更新したバッファリング優先度テーブルの内容に基づき、バッファリング制御部３０６が、画像データバッファ部３０３に格納しているデータ（これを「バッファ内容」とよぶ）を更新する（ステップＳ５１１）。なお、図５では画面更新要求が入力されれば必ずバッファ内容を更新するアルゴリズムとなっているが、スクロール量が小さいなど、必ずしもバッファ内容の更新をする必要がない場合は、処理の効率を重視して適切な範囲でＳ５１１の処理を省いても良い。また、Ｓ５１１の具体的な処理としてはいくつかの方法が考えられるが、図７にその一例を示す。図７の詳細な内容については後述する。
【００３１】
Ｓ５１１の後は、バッファリング制御部３０６は、プログラムを終了させる命令が入力されたかどうかをチェックする（条件判定Ｓ５１２）。条件判定Ｓ５１２の結果が真であればプログラムを終了させ、偽であれば条件判定Ｓ５０２に戻り、処理を続行する。
以上で、本実施形態における画像形成処理の流れの概要説明を終了する。
【００３２】
（初期設定Ｓ５０１）
以下では、初期設定Ｓ５０１の詳細な処理の流れを、図６に従って説明する。
【００３３】
まず、バッファリング制御部３０６は、画面表示領域情報を、画像表示装置１０３から取得する（ステップＳ６０１）。この情報は、表示画面解像度の情報のことである。
次に、バッファリング制御部３０６は、画像データ全体４０１の中から、画面表示領域の位置を設定する（ステップＳ６０２）。Ｓ６０１で得られた表示画面解像度の情報と、このＳ６０２で設定する位置の情報により、画像データ全体４０１の中で画面表示領域が占める位置と面積が確定する。
次に、バッファリング制御部３０６は、Ｓ６０２によって確定した画面表示領域から、表示データ領域を設定する（ステップＳ６０３）。このＳ６０３で、表示データ領域の位置と面積が確定する。
【００３４】
次に、バッファリング制御部３０６は、バッファメモリ容量を設定する（ステップＳ６０４）。バッファメモリ容量は、画像形成装置が搭載する記憶部２０２の容量などに応じて、ユーザーまたはプログラムが設定する。
次に、バッファリング対象領域４０５の位置や面積および形状を設定する（ステップＳ６０５）。バッファリング対象領域４０５の形状は、表示データ領域４０４を完全に含み、かつこれよりも大きくなければならない。これを満たせば、その詳細な形状はどのように設定しても良いが、本実施形態では図４に示すように、長方形として設定を行う。
【００３５】
次に、バッファリング制御部３０６は、バッファリング対象領域４０５中に存在する各ブロック画像データのバッファリング優先度を格納するための、バッファリング優先度テーブルを作成する（ステップＳ６０６）。バッファリング優先度テーブルは、Ｓ５１０の説明で既に述べた通り、ブロック画像データのＩＤ番号と、そのバッファリング優先度からなるテーブルである。この時点では、バッファリング対象領域４０５中に存在するブロック画像データの個数と同じ数の要素をテーブルに用意し、各ブロック画像データのＩＤ番号を格納しておく。また、バッファリング優先度の値はまだ計算されていないため、例えばゼロなどの適当な値を設定しておく。
【００３６】
次に、バッファリング制御部３０６は、画像データ全体４０１中の全ブロック画像データの表示回数を格納する表示回数テーブルを作成する（ステップＳ６０７）。表示回数テーブルは、Ｓ５０９の説明で既に述べた通り、ブロック画像データのＩＤ番号と、その累積表示回数からなるテーブルである。この時点では、画像データ全体４０１中の全ブロック画像データの個数と同じ数の要素をテーブルに用意し、各ブロック画像データのＩＤ番号を格納しておく。また、画像データの表示はまだ行っていないため、テーブル全要素の表示回数にはゼロを設定しておく。
なお、上記Ｓ６０４〜Ｓ６０７の処理に依存関係はないため、これらの実行順番には任意性がある。
【００３７】
次に、バッファリング制御部３０６の制御の下、画像データ出力部３０４が表示データ領域４０４に相当する領域のブロック画像データを、画像データ格納部３０２から読み出し、画像表示装置１０３へ転送する（ステップＳ６０８）。
次に、バッファリング制御部３０６の制御の下、表示回数カウント部３０７が、Ｓ６０８で転送したブロック画像データそれぞれに対応して、その表示回数をカウントし、Ｓ６０７で作成した表示回数テーブルの内容を更新する（ステップＳ６０９）。この状態では、画面表示処理を初めて実行するため、転送されたブロック画像データに対応する表示回数として、１が設定される。
【００３８】
次に、Ｓ６０９にて設定された表示回数をもとに、バッファリング優先度設定部３０８が、バッファリング対象領域４０５中に存在する各ブロック画像データのバッファリング優先度を決定する。その求めた優先度の値で、Ｓ６０６で作成したバッファリング優先度テーブルの内容が更新される（ステップＳ６１０）。なお、このＳ６１０は、Ｓ５１０と同じ処理である。
次に、バッファリング制御部３０６は、Ｓ６１０にて設定されたバッファリング優先度をもとに、バッファの内容を更新する（ステップＳ６１１）。なお、このＳ６１１は、Ｓ５１１と同じ処理である。
以上で、初期設定処理Ｓ５０１が終了する。
【００３９】
（バッファ内容更新Ｓ５１１）
以下では、Ｓ５１１のバッファ内容更新処理の流れの一例を、図７に従って説明する。
【００４０】
まず、バッファリング制御部３０６は、バッファリング優先度テーブル（以下、単に「優先度テーブル」と呼ぶ）の全要素を優先度の高い順にソートする（ステップＳ７０１）。
次に、バッファリング制御部３０６は、整数型変数ｉを用意し、変数ｉにゼロを設定する（ステップＳ７０２）。
【００４１】
次に、バッファリング制御部３０６は、優先度テーブル中のｉ番目の要素に該当するブロック画像データが、すでにバッファ内に存在しているかどうかをチェックする（条件判定Ｓ７０３）。具体的には、例えばあらかじめバッファ内に存在しているブロック画像デ
ータに対応するＩＤ番号のリストを作成しておき、前記ｉ番目のブロック画像データに対応するＩＤ番号をバッファ内画像のリストと照合すれば良い。条件判定Ｓ７０３の結果が真ならば、バッファリング制御部３０６は、優先度テーブル中のｉ番目の要素にマークを付け（ステップＳ７０４）、バッファ中で見つかったブロック画像データにもマークを付ける（ステップＳ７０５）。このマークには、何らかのフラグを対応させれば良い。条件判定Ｓ７０３の結果が偽であれば、ステップＳ７０６に進む。
【００４２】
Ｓ７０５の次は、バッファリング制御部３０６は、変数ｉの値を１増やす（ステップＳ７０６）。
Ｓ７０６の次は、バッファリング制御部３０６は、変数ｉの値が優先度テーブルの要素数以上かどうかをチェックする（条件判定Ｓ７０７）。条件判定Ｓ７０７の結果が偽であれば、条件判定Ｓ７０３の処理に戻る。条件判定Ｓ７０７の結果が真であれば、バッファリング制御部３０６は、優先度テーブル中のマークされた要素を削除する（ステップＳ７０８）。この結果、優先度テーブルには、優先度が高いブロック画像データのうち、バッファ内に存在しないもの（つまり、追加でバッファすべきブロック画像データ）を示す要素のみが残る。
Ｓ７０８の次は、バッファリング制御部３０６は、バッファ中のマーク画像以外のブロック画像データを削除する（ステップＳ７０９）。この結果、優先度が高くないブロック画像データが削除され、バッファに空きが作られる。
【００４３】
Ｓ７０９の次は、バッファリング制御部３０６は、変数ｉにゼロを代入する（ステップＳ７１０）。
Ｓ７１０の次は、バッファリング制御部３０６は、優先度テーブルのｉ番目要素に対応するブロック画像データを、画像データ格納部３０２から、画像データバッファ部３０３へ転送する（ステップＳ７１１）。
Ｓ７１１の次は、バッファリング制御部３０６は、変数ｉの値を１増やす（ステップＳ７１２）。
【００４４】
Ｓ７１２の次は、バッファリング制御部３０６は、バッファに空きがあるかどうかを確認する（条件判定Ｓ７１３）。条件判定Ｓ７１３の結果が真であれば、変数ｉの値が優先度テーブルの要素数以上かどうかをチェックする（条件判定Ｓ７１４）。条件判定Ｓ７１４の結果が真であれば、バッファ内容更新の処理を継続するため、ステップＳ７１１に戻る。条件判定Ｓ７１４の結果が偽であれば、バッファリングの対象となるブロック画像データが残っていないことになるため、バッファ内容更新の処理を終了する。なお、条件判定Ｓ７１３の判定結果が偽である場合は、これ以上バッファに画像データを格納できない状態であるため、バッファ内容更新の処理を終了する。
【００４５】
以上で、図７の詳細説明を終了する。なお、バッファ内容更新処理Ｓ５１１については、図７に示した処理の他、例えば単純にバッファ中の内容を全消去してバッファリング優先度の高いブロック画像データ群を順次バッファへ読み込むなど、他の異なる処理を用いても良い。
【００４６】
（バッファリングの一例）
次に、図５〜図７の処理を行ったときに、画像データバッファ部３０３へのブロック画像データの格納がどのように行われるかについて、例を用いて説明する。
【００４７】
例えば、バッファリング対象領域４０５中に、図８（Ａ）に示されるバッファリング優先度が設定されたブロック画像データ群があったとする。８０１は、優先度の値として「３」が設定されているブロック画像データ群であり、８０２は、優先度の値として「１」が設定されているブロック画像データ群である。よって、バッファリングが行われる優先
度は、ブロック画像データ群８０２よりもブロック画像データ群８０１の方が高い。このような優先度設定の場合に、ブロック画像データ群がバッファに格納される様子の例を、図８（Ｂ）と図８（Ｃ）に示す。図８（Ｂ）は、バッファ容量が比較的大きい場合の例であり、図８（Ｃ）は、バッファ容量が比較的小さい場合の例である。９０１はバッファ領域の模式図である。図８（Ｂ）のような状況では、バッファ領域９０１の大きさが、バッファリング対象領域４０５に存在しているブロック画像データ群の総和よりも大きいため、全てのブロック画像データをバッファに格納しても空き領域９０２が生じる。また、バッファへの格納順序は、バッファリング優先度の高いブロック画像データ群８０１が先となり、その後でブロック画像データ群８０２が格納される。これに対し図８（Ｃ）のような状況では、バッファ領域９０１の大きさが、バッファリング対象領域４０５に存在しているブロック画像データ群の総和よりも小さいため、バッファに格納できないブロック画像データ群１００１が発生する。ただし、この場合でもバッファリング優先度の高いブロック画像データ群８０１が先にバッファに格納されるため、次に画面に表示される可能性が高いブロック画像データを選択してバッファリングすることになり、少ないバッファ容量でも効率的なバッファリングが可能になる。
【００４８】
なお、バッファに格納されるブロック画像データは、圧縮データでも非圧縮データでも、どちらでも良い。表示処理の高速化に重点を置く場合には、プログラムの待ち時間等で圧縮データを展開しておき、非圧縮データの形にして格納しておくのが好ましい。一方、バッファメモリ容量の削減に重点を置く場合には、圧縮されたままのデータを格納しておくのが好ましい。
【００４９】
この本実施形態によって、従来技術と比較し、診断方法の特徴に応じたメモリ使用効率の良い画像データのバッファリングが可能となり、結果的に画像ビューアにおける表示応答性の向上に繋がる。具体的には、過去に表示した画像を再び参照するような詳細観察の場合は、表示回数の多い画像データのバッファリング優先度を高くすることで、従来よりもメモリ使用効率の良いバッファリング処理が可能となる。また、スクリーニングのように画像全体を順番に網羅的に表示していくような観察の場合は、表示回数の少ない画像データのバッファリング優先度を高くすることで、従来よりもメモリ使用効率の良いバッファリング処理が可能となる。
【００５０】
＜第２実施形態＞
本発明の第２実施形態を、図に従って説明する。
システム構成、ハードウェア構成、機能ブロック、および処理のアルゴリズムは第１実施形態のものと同様であるが、画像の表示回数からバッファリング優先度を算出する方法が異なる。
【００５１】
本実施形態では、図９（Ａ）に示す状況を例にとる。図９（Ａ）は、表示データ領域４０４を矢印の通りに移動させてきた状況を示している。すなわち、画像データ全体４０１を網羅的に観察するために、画像の角（ここでは左上角）からスタートして、一方向（ここでは垂直方向）に表示領域を移動させ、一列分（または一行分）の表示を終えたら次の列（または行）に移り、同様の操作を行う。１１０１は、画像データ全体４０１のうち、すでに画像表示装置１０３に表示された領域である。また、１１０２は、画像データ全体４０１のうち、まだ画像表示装置１０３に表示されていない領域である。このような画面表示方法（表示領域の移動方法）は、病理医が２倍、４倍、１０倍などの低倍画像において、病変部が疑われる部位を探す場合（「スクリーニング」と呼ばれる）に行われることが多い。
【００５２】
本実施形態では、既に表示を行ったブロック画像データのバッファリング優先度を最も低い優先度である「０」に設定する。これは、既に画面表示が行われたブロック画像デー
タがバッファリングの対象から除外されることを示している。それに対し、まだ画面表示を行っていない画像データに対しては、バッファリング優先度として何らかの正の整数を設定する。その様子を示したのが図９（Ｂ）である。図９（Ｂ）の１２０１は、まだ表示を行っていないブロック画像データを示しており、バッファリング優先度として「２」が設定されている。また、１２０２は既に表示を行ったブロック画像データを示しており、バッファリング優先度として「０」が設定されている。
【００５３】
この優先度をもとにバッファリング処理を行った後のバッファ領域の模式図が、図９（Ｃ）である。既に述べたとおり、バッファリング優先度「０」のブロック画像データ１２０２はバッファリングされないため、バッファ領域９０１の中には優先度「２」のブロック画像データ群１２０１だけがバッファリングされる。よって、第１実施形態の場合とは異なり、バッファ領域９０１の容量がバッファリング対象領域に含まれる画像データ群の容量の総和よりも小さくても、バッファ内には空き領域１３０１が生じる。つまり、本実施形態に示すような処理を行えば、バッファ領域の大きさを第１実施形態よりもさらに小さくできる。
【００５４】
本実施形態のバッファリング制御によって、既に表示を行ったブロック画像データをバッファリング対象から除くことにより、従来技術や第１実施形態の方法と比較してさらにメモリ使用効率の良いバッファリング処理が可能となる。また、バッファ容量が少なくて済むため、キャッシュシステムのヒット率が向上したり、仮想記憶システムによるスワップインやスワップアウトの回数が減ることにより、第１実施形態と比較してさらに高速な表示動作が可能となる。本実施形態の方法は、病理診断におけるスクリーニングのように画像全体を順番にかつもれなく表示していくような場合に特に有効である。
【００５５】
＜第３実施形態＞
本発明の第３実施形態を、図に従って説明する。
システム構成、ハードウェア構成、機能ブロック、および処理のアルゴリズムは第１実施形態のものと同様であるが、画像の表示回数からバッファリング優先度を算出する方法が異なる。
【００５６】
図１０（Ａ）、図１０（Ｂ）、図１１（Ａ）、図１１（Ｂ）に、本実施形態におけるバッファリング優先度の計算方法と、それによるバッファリング結果を示す。
第１実施形態や第２実施形態では、各ブロック画像データの表示回数だけを用いてバッファリング優先度を計算していたが、本実施形態では、表示回数に加えて、画像表示装置に表示されている領域からの画像上の距離も用いて、バッファリング優先度を計算する。
【００５７】
例えば、図１０（Ａ）のような優先度付けを考える。図１０（Ａ）では、表示データ領域４０４に接する優先度「２」のブロック画像データ群１５０１があり、その外側に優先度「１」のブロック画像データ群１５０２がある。ブロック画像データ群１５０１は、ブロック画像データ群１５０２に比べて表示データ領域４０４からの距離が近いため、高い優先度が与えられる。このように、本実施形態の優先度計算方法では、ブロック画像データごとに表示データ領域４０４との距離を計算し、その距離が近いブロックほど高い優先度が与えられる。通常、画像をスクロールする場合には、現在の画面表示領域に近接する領域の画像を表示する可能性が高いので、このように距離に応じた優先度を考えることにより、第１実施形態よりもさらに効率的なバッファリングが行えると期待できる。
【００５８】
図１０（Ｂ）は、表示回数と、表示データ領域からの距離との両方を考慮したバッファリング優先度の例である。なお、図１０（Ｂ）に示す優先度の値は、図１０（Ａ）に示した距離に基づく優先度と図８（Ａ）に示した表示回数に基づく優先度とを足し合わせたものである。１６０１が優先度「５」のブロック画像データ、１６０２が優先度「４」のブ
ロック画像データ、１６０３が優先度「３」のブロック画像データ、１６０４が優先度「２」のブロック画像データを示している。
【００５９】
図１０（Ｂ）の優先度の値に応じてバッファリングを行った結果の一例を図１１（Ａ）と図１１（Ｂ）に示す。図１１（Ａ）は、バッファ容量が比較的大きい場合の例であり、図１１（Ｂ）は、バッファ容量が比較的小さい場合の例である。図１１（Ａ）の場合には、優先度が「３」以上のブロック画像データ１６０１〜１６０３は全てバッファに格納される。また優先度「２」のブロック画像データ１６０４の一部のデータ１７０１もバッファに格納される。１７０２はバッファに格納されなかったブロック画像データである。また、図１１（Ｂ）の場合には、優先度が「４」以上のブロック画像データ１６０１と１６０２は全てバッファに格納される。また優先度「３」のブロック画像データ１６０３の一部のデータ１８０１もバッファに格納される。それ以外のデータ１８０２と１８０３はバッファに格納されない。どちらの場合でも、バッファリング優先度の高い順番に画像データをバッファリングしているため、バッファ容量に応じたより効率的なバッファリングを実現できる。
【００６０】
この本実施形態によって、従来技術や第１実施形態と比較し、診断方法の特徴に応じたメモリ使用効率の良い画像データのバッファリングが可能となり、結果的に画像ビューアにおける表示応答性の向上に繋がる。特に、表示回数による優先度の他に、優先度の計算方法として表示データ領域からの距離も合わせて考慮することで、第１実施形態よりもさらにメモリ使用効率の良いバッファリング処理が可能となる。
【００６１】
なお本実施形態では、表示回数に基づく優先度と距離に基づく優先度を単純加算する方法を用いたが、表示回数と距離の両方に基づく優先度の計算方法はこれに限らない。例えば、２つの優先度を重み付け加算してもよいし、所定の関数やテーブルを用いて優先度を求めてもよい。すなわち、表示回数が多いほど（または少ないほど）優先度が高くなる特性と、表示データ領域からの距離が近いほど優先度が高くなる特性の、両方の特性を示す指標であればどのように優先度を計算してもよい。また、表示回数と距離だけに限らず、他のパラメータをさらに考慮して優先度を計算してもよい。さらに、第１実施形態で述べたのと同様に、優先度の算出方法を、表示倍率、診断モード、表示モード、画像の種類やサイズなどに応じて自動的に切り替えたり、ユーザー自身が好ましい算出方法に切り替えたりできるようにしてもよい。
【００６２】
＜他のシステム構成＞
上記第１から第３実施形態では、図１に例示したように撮像装置と画像形成装置と画像表示装置で画像処理システムを構成したが、システム構成はこれに限らない。例えば図１２に示すように、複数の装置をネットワークで接続したシステム構成でもよい。１４０１は撮像装置であり、主にバーチャルスライドシステムにおける撮像部分に当たる。１４０２はサーバであり、１４０１によって撮像・生成された画像データなどを格納している大容量のストレージ（画像サーバ）である。１４０３は本実施形態で示す手法を実現するための主要部分である画像形成装置であり、１４０２に格納されている画像データを読み込み、処理を行う。１４０４は画像表示装置であり、１４０３で処理された画像データを受け取り、画面に表示する。１４０５，１４０８はネットワークに接続された一般的なＰＣ（パーソナル・コンピュータ）であり、１４０６，１４０７はＰＣに接続された画像表示装置である。１４０９はネットワーク回線であり、様々なデータのやり取りを行う。このようなシステム構成においても、第１から第３実施形態で述べたバッファリング制御を実行することで、各画像表示装置における表示応答性を向上することができる。
【符号の説明】
【００６３】
１０２：画像形成装置、１０３：画像表示装置、２０２：記憶部、２０５：補助記憶装
置、３０１：画像データ入力部、３０２：画像データ格納部、３０３：画像データバッファ部、３０４：画像データ出力部、３０６：バッファリング制御部、３０７：表示回数カウント部、３０８：バッファリング優先度設定部
【図１】
2013167797.tif 000003
【図２】
2013167797.tif 000004
【図３】
2013167797.tif 000005
【図４】
2013167797.tif 000006
【図５】
2013167797.tif 000007
【図６】
2013167797.tif 000008
【図７】
2013167797.tif 000009
【図８】
2013167797.tif 000010
【図９】
2013167797.tif 000011
【図１０】
2013167797.tif 000012
【図１１】
2013167797.tif 000013
【図１２】
2013167797.tif 000014