JPWO2015163171A1 - 画像処理装置および方法、並びに手術システム - Google Patents

画像処理装置および方法、並びに手術システム Download PDF

Info

Publication number
JPWO2015163171A1
JPWO2015163171A1 JP2016514864A JP2016514864A JPWO2015163171A1 JP WO2015163171 A1 JPWO2015163171 A1 JP WO2015163171A1 JP 2016514864 A JP2016514864 A JP 2016514864A JP 2016514864 A JP2016514864 A JP 2016514864A JP WO2015163171 A1 JPWO2015163171 A1 JP WO2015163171A1
Authority
JP
Japan
Prior art keywords
processing
image
range
filter
vertical direction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016514864A
Other languages
English (en)
Other versions
JP6737176B2 (ja
Inventor
真人 山根
真人 山根
恒生 林
恒生 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JPWO2015163171A1 publication Critical patent/JPWO2015163171A1/ja
Application granted granted Critical
Publication of JP6737176B2 publication Critical patent/JP6737176B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/2085Special arrangements for addressing the individual elements of the matrix, other than by driving respective rows and columns in combination
    • G09G3/2088Special arrangements for addressing the individual elements of the matrix, other than by driving respective rows and columns in combination with use of a plurality of processors, each processor controlling a number of individual elements of the matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/36Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals
    • G09G3/3611Control of matrices with row and column drivers
    • G09G3/3622Control of matrices with row and column drivers using a passive matrix
    • G09G3/3644Control of matrices with row and column drivers using a passive matrix with the matrix divided into sections
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/18Closed-circuit television [CCTV] systems, i.e. systems in which the video signal is not broadcast
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10004Still image; Photographic image

Abstract

本技術は、低レイテンシ化して撮像した画像をリアルタイムに近い状態で表示できるようにする画像処理装置および方法、並びに手術システムに関する。CPU31のDMAコントローラ51は、IFカード34を介して入力された画像データを水平方向にGPUカード35−1,35−2の数で分割して割り当てると共に、各GPUカード35−1,35−2においては、画像データが垂直方向に時分割処理される。これにより複数のGPUカード35−1,35−2を利用することで画像データの表示に係る処理の高速化を図り、低レイテンシ化することで、高速表示を実現する。本技術は、内視鏡カメラや手術用顕微鏡などに適用することができる。

Description

本技術は、画像処理装置および方法、並びに手術システムに関し、特に、低レイテンシでの画像表示を実現できるようにした画像処理装置および方法、並びに手術システムに関する。
近年、医療現場において従来の開腹手術に代わって、内視鏡下手術が行われている。内視鏡下手術等において使用される画像処理装置としては、特に、低レイテンシでの画像表示を実現することが求められている。
一方で、撮像された画像を、タイムラグを最小にして高速で表示できるようにする技術が提案されている。
例えば、画像を垂直方向に分割し、複数のプロセッサを用いて、分割された領域毎に並列処理させることにより高速で表示させる技術が提案されている(特許文献1参照)。
特開平2−040688号公報
しかしながら、上述した特許文献1に記載の技術では、ライン単位に画像を分割すると、GPU(Graphics Processing Unit)のように、それぞれ処理用のメモリを独立して持つ構成の場合、ライン単位でオーバラップする必要があり、オーバヘッドが大きくなる。
結果として、オーバヘッドを処理するため、全体として処理ライン数が増えることで、演算量が増加して、処理速度を向上させることができないことがあった。
本技術は、このような状況に鑑みてなされたものであり、特に、画像を水平方向に分割して、複数のプロセッサに割り付けると共に、各プロセッサでは割り付けられた領域を垂直方向に時分割処理し、かつ、垂直方向に分割された各領域について、先頭領域に最も大きなオーバヘッドを設定して順次処理させるようにすることで、撮像した画像を高速で表示できるようにするものである。
本技術の一側面の画像処理装置は、患者の術部が撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含み、前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す。
前記複数の演算処理部には、複数のGPU(Graphical Processing Unit)により構成され、前記演算処理部は、前記GPUの数で水平方向に分割された前記画像に処理を施すようにさせることができる。
前記画像に施す処理は、n段のフィルタを掛ける処理とすることができる。
前記n段の前記フィルタは、それぞれ前記画像を垂直方向に分割した範囲を、前記垂直方向の最上段の範囲から下方向に向かって順次時分割で処理を施す。
前記画像の前記水平方向の分割数、および前記垂直方向の分割数に基づいて算出される前記画像に施す処理量と、前記演算処理部の処理速度とに基づいて、前記演算処理部の演算のタイミングを制御するタイミング制御部をさらに含ませるようにすることができる。
前記画像を前記垂直方向に時分割した範囲のうち、第1の期間の処理範囲には、前記第1の期間より後の第2の期間の処理に必要とされる参照ピクセルが含まれるようにすることができる。
前記演算処理部には、処理結果をバッファリングするメモリを含ませるようにすることができ、前記第2の期間の処理では、前記メモリにバッファリングされた前記第1の期間の処理結果から、前記参照ピクセルに対応する処理結果を利用して演算処理を実行させるようにすることができる。
前記演算処理部には、処理結果をバッファリングするメモリを含ませるようにすることができ、前記画像を垂直方向に分割した範囲のうち、各段の前記フィルタによる前記垂直方向の最上段の処理範囲は、前記垂直方向の2段目以下の処理範囲における前記フィルタの処理に必要とされる参照ピクセルのライン数を含む範囲とすることができ、前記演算処理部には、前記フィルタによる処理のための演算処理を実行するにあたり、前記参照ピクセルを利用する処理では、前記メモリにバッファリングされた前段までのフィルタ処理の処理結果から、前記参照ピクセルに対応する処理結果を利用して演算処理を実行させるようにすることができる。
前記演算処理部には、前記患者の術部が撮像された画像に対して、少なくとも拡大処理を施すようにさせることができる。
前記患者の術部が撮像された画像は、内視鏡により撮像された画像とすることができる。
前記患者の術部が撮像された画像は、顕微鏡により撮像された画像とすることができる。
本技術の一側面の画像処理方法は、患者の術部が撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含む画像処理装置の画像処理方法であって、前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す。
前記画像は、内視鏡により撮像された画像とすることができる。
前記画像は、顕微鏡により撮像された画像とすることができる。
本技術の一側面の手術システムは、患者の術部を撮像する撮像装置と、前記撮像装置により撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含み、前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す画像処理装置とを有する。
本技術の一側面においては、複数の演算処理部により、患者の術部が撮像された画像が垂直方向に分割された範囲毎に時分割で処理が施され、前記演算処理部の数で、水平方向に分割された前記画像が、前記垂直方向に時分割で処理が施される。
本技術の一側面によれば、撮像した画像の表示処理を低レイテンシで実現し、撮像した画像をリアルタイムで高速に表示させることが可能となる。
本技術を適用した画像処理装置の一実施の形態の構成を説明するブロック図である。 図1の画像処理装置による処理を説明する図である。 従来の画像処理と本技術の画像処理との違いを説明する図である。 図1の画像処理装置が水平方向にGPUカード数で分割して並列処理することを説明する図である。 図1の画像処理装置が水平方向にGPUカード数で分割して並列処理すると共に、垂直方向に時分割処理することを説明する図である。 画像を処理するフィルタの一例を示す図である。 フィルタ処理における注目画素と参照ピクセルとの関係を説明する図である。 各処理領域でフィルタ処理する際に発生するオーバヘッドを説明する図である。 各処理領域でフィルタ処理する際に発生する具体的なオーバヘッドの一例を説明する図である。 図1の画像処理装置における各フィルタ処理における処理範囲の設定方法を説明する図である。 図1の画像処理装置による低レイテンシ表示処理を説明するフローチャートである。 水平方向の処理量を計算する方法を説明する図である。 垂直方向の処理量を計算する方法を説明する図である。 処理範囲に応じて処理時間が変化してしまうことを説明する図である。 処理範囲で出力するライン数を調整して、処理範囲毎の処理時間を均一化することを説明する図である。 処理範囲毎に生じる処理時間差が生じるときに、リアルタイム性が求められない処理を空いた時間に実行させることで、処理範囲毎の処理時間を均一化することを説明する図である。 汎用のパーソナルコンピュータの構成例を説明する図である。
<画像処理装置の構成例>
図1は、本技術を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
図1の画像処理装置11は、図示せぬカメラ等の撮像装置により撮像された画像データの入力を受け付けて、各種の処理を施した後、図示せぬディスプレイ等の表示装置に出力して画像として表示させるものである。
より詳細には、画像処理装置11は、CPU(Central Processing Unit)31、メインメモリ32、バス33、IF(Interface)カード34、およびGPU(Graphical Processing Unit)カード35−1,35−2を備えている。尚、GPUカード35−1,35−2について、特に区別する必要が無い場合、単に、GPUカード35と称するものとし、その他の構成についても同様に称するものとする。
CPU(Central Processing Unit)31は、画像処理装置11の動作の全体を制御する。また、CPU31は、DMA(Direct Memory Access)コントローラ51を備えている。尚、ここでいうDMAとは、Direct Memory Accessを表すものであり、CPU31による管理が直接なされることなく、バス33を介してIFカード34、メインメモリ32、およびGPUカード35間の相互に直接データを転送する動作を表している。すなわち、DMAコントローラ51は、このCPU31によって直接管理されないDMAによる転送動作のうち、転送元と転送先、および転送タイミングを制御する。
より詳細には、DMAコントローラ51は、IFカード34およびバス33を介して図示せぬカメラより入力信号として供給される画像データを、一旦、メインメモリ32に記憶させる。また、DMAコントローラ51は、メインメモリ32に記憶させた画像データと、GPUカード35−1,35−2のプロセッサ92−1,92−1の処理能力と、処理内容に応じて、メインメモリ32に記憶された画像データを分割する。また、DMAコントローラ51は、分割した画像データを範囲毎に読み出すタイミング、および処理された画像データを再び格納するタイミングを割り付ける。さらに、DMAコントローラ51は、割り付けたタイミングで分割された画像データを順次GPUカード35−1,35−2に供給すると共に、処理済みの画像データを順次メインメモリ32に記憶させる。そして、DMAコントローラ51は、メインメモリ32に記憶された処理済みの画像データをバス33、およびIFカード34を介して出力信号として図示せぬディスプレイに出力して表示させる。
IF(Interface)カード34は、カメラIF71、ディスプレイIF72、およびPCIe(Peripheral Component Interconnect Express)ブリッジ73を備えている。IFカード34のカメラIF71は、DMAコントローラ51による管理の下で、図示せぬカメラより入力信号として供給されてくる画像データを受け付けると、PCIeブリッジ73、およびバス33を介してメインメモリ32に供給する。また、IFカード34のディスプレイIF72は、DMAコントローラ51による管理の下で、メインメモリ32よりバス33、およびPCIeブリッジ73を介して供給されてくる処理済みの画像データを、図示せぬディスプレイに出力信号として出力する。
GPUカード35−1,35−2は、それぞれPCIeブリッジ91−1,91−2、プロセッサ92−1,92−2、およびメモリ93−1,93−2を備えている。GPUカード35は、CPU31のDMAコントローラ51の管理の下で、メインメモリ32よりバス33、およびPCIeブリッジ91を介して供給されてくる画像データをメモリ93に一旦記憶させる。そして、プロセッサ91は、メモリ93に記憶された画像データを、順次読み出しながら所定の処理を施し、処理結果を必要に応じてメモリ93にバッファリングすると共に、PCIeブリッジ91、およびバス33を介してCPU31に出力する。尚、GPUカード35は、図1においては、2枚である例が示されているが、2枚以上の枚数であってもよいものである。
<画像処理の概要について>
次に、図2を参照して、図1の画像処理装置11による画像処理について説明する。
図2中、左上部から矢印で示されるように、図示せぬカメラにより撮像された、例えば、ベイヤ配列の画素配列からなる画像データ(最左部)は、欠陥補正処理、およびRAWNR(Noise Reduction)処理が施されると、デモザイク処理により、R(赤色)画像、G(緑色)画像、およびB(青色)画像(図中のRGB画像)が生成される。さらに、デモザイク処理されたR(赤色)画像、G(緑色)画像、およびB(青色)画像には、高画質化処理が施された後、拡大処理がなされて、出力画像を構成するR(赤色)画像、G(緑色)画像、およびB(青色)画像が生成される。このようにして生成されたR(赤色)画像、G(緑色)画像、およびB(青色)画像が、出力信号として図示せぬディスプレイなどの表示部に出力されて表示される。
<低レイテンシ化>
上述したような画像処理を、従来のようにフレーム単位で実行した場合、処理は、図3の上段で示されるようなタイムチャートとなる。尚、ここでは、画像に対してなされる処理は、処理A,Bの2種類のみであるものとする。また、図3の上段においては、GPUカード35と同一のGPUカードが1枚存在する構成であるものとする。
すなわち、時刻t0乃至t1において、図中の「DMA INPUT #0」で示されるように、DMAコントローラ51により入力信号として供給される画像データがメインメモリ32に書き込まれて記憶される。
時刻t1乃至t2において、図中の「Kernel A #0」で示されるように、DMAコントローラ51により、メインメモリ32に記憶された画像データがGPUカード35に供給されて、GPUカード35のプロセッサ92により処理Aが実行される。
時刻t3乃至t4において、図中の「Kernel B #0」で示されるように、DMAコントローラ51により、メインメモリ32に記憶された画像データがGPUカード35に供給されて、GPUカード35のプロセッサ92により処理Bが実行されて、処理結果がメインメモリ32に戻される。
時刻t5乃至t6において、図中の「DMA OUTPUT #0」で示されるように、DMAコントローラ51により、メインメモリ32に格納されている処理A,Bが施された画像データが読み出されて出力される。
この場合、1のGPUカード35でフレーム全体を処理してから表示しようとすると、1フレーム分の処理結果が生成されるまでは、画像として表示されることがなく、また、処理時間が膨大なものとなり、レイテンシが大きなものとなるので、表示に遅れが生じる恐れがある。
そこで、図1の画像処理装置11においては、図3の下段で示されるように、フレームを垂直方向にいくつかの範囲に分割し、処理を小分けにして実行することでレイテンシを小さくしている。尚、図3の下段においては、フレームを3分割して画像データ#0乃至#2にした場合に、それぞれに対する処理がなされる場合の例が示されている。
すなわち、図3の下段においては、時刻t21乃至t22において、図中の「DMA INPUT #0」で示されるように、DMAコントローラ51により入力信号として供給される画像データ#0がメインメモリ32に書き込まれて記憶される。
時刻t31乃至t32において、図中の「処理 A #0」で示されるように、DMAコントローラ51により、メインメモリ32に記憶された画像データ#0がGPUカード35に供給されて、GPUカード35のプロセッサ92により処理Aが実行される。
このとき、「処理 A #0」の処理と並行して時刻t22乃至t23において、図中の「DMA INPUT #1」で示されるように、DMAコントローラ51により入力信号として供給される画像データ#1をメインメモリ32に記憶させる。
時刻t33乃至t34において、図中の「処理 B #0」で示されるように、DMAコントローラ51により、メインメモリ32に記憶された画像データがGPUカード35に供給されて、GPUカード35のプロセッサ92により処理Bが実行されて、処理結果がメインメモリ32に戻される。
時刻t51乃至t52において、図中の「DMA OUTPUT #0」で示されるように、DMAコントローラ51により、メインメモリ32に格納されている処理A,Bが施された画像データ#0が出力される。
「DMA OUTPUT #0」の処理に並行して、時刻t35乃至t36において、図中の「処理 A #1」で示されるように、DMAコントローラ51により、メインメモリ32に記憶された画像データ#1がGPUカード35に供給されて、GPUカード35のプロセッサ92により処理Aが実行される。
さらに、「処理 A #1」の処理に並行して時刻t24乃至t25において、図中の「DMA INPUT #2」で示されるように、DMAコントローラ51により入力信号として供給される画像データ#2をメインメモリ32に記憶させる。
時刻t37乃至t38において、図中の「処理 B #1」で示されるように、DMAコントローラ51により、メインメモリ32に記憶された画像データ#1がGPUカード35に供給されて、GPUカード35のプロセッサ92により処理Bが実行されて、処理結果がメインメモリ32に戻される。
時刻t53乃至t54において、図中の「DMA OUTPUT #1」で示されるように、DMAコントローラ51により、メインメモリ32に格納されている処理A,Bが施された画像データ#1が出力される。
「DMA OUTPUT #1」の処理に並行して、時刻t39乃至t40において、図中の「処理 A #2」で示されるように、DMAコントローラ51により、メインメモリ32に記憶された画像データ#2がGPUカード35に供給されて、GPUカード35のプロセッサ92により処理Aが実行される。
時刻t41乃至t42において、図中の「処理 B #2」で示されるように、DMAコントローラ51により、メインメモリ32に記憶された画像データ#2がGPUカード35に供給されて、GPUカード35のプロセッサ92により処理Bが実行されて、処理結果がメインメモリ32に戻される。
時刻t55乃至t56において、図中の「DMA OUTPUT #2」で示されるように、DMAコントローラ51により、メインメモリ32に格納されている処理A,Bが施された画像データ#2が出力される。
このような処理により、画像データ#0乃至#2が時分割処理されて、「DMA INPUT」、「処理A」、「処理B」、および「DMA OUTPUT」が必要に応じて並列処理されることにより、全体としてもレイテンシを低減させることが可能となる。また、処理A,Bが施された画像データ#0乃至#2が、処理が終了すると共に部分的に表示されることになるので、体感的にも表示が速くなり、低レイテンシ化を図ることが可能となる。
<水平分割>
上述したように、垂直方向に画像を分割して低レイテンシ化を実現させると共に、さらに、図1の画像処理装置11は、複数のGPUカード35が設けられているので、同様の処理を並列処理する。すなわち、図4の左部で示される画像データP1が入力される場合、図4の右上部で示されるように、水平方向に分割し、それぞれ図3を参照して説明したように、垂直方向に時分割処理する。
尚、図4の右上部においては、画像データP1の左部で示される領域Z1が、GPUカード35−1に対応する「GPU#0」による処理範囲であり、画像データP1の右部で示される領域Z2が、GPUカード35−2に対応する「GPU#1」による処理範囲である。尚、図4の右下部においては、従来の並列処理における垂直方向の分割方式の例が示されており、上段が領域Z11で示されるGPUカード35−1に対応する「GPU#0」による処理範囲であり、下段が領域Z12で示されるGPUカード35−2に対応する「GPU#1」による処理範囲である。すなわち、図4の右下部においては、GPUカード35毎に垂直方向に2分割する例が示されている。
<垂直分割>
また、図1の画像処理装置11は、図5で示されるように、画像P1の領域Z1,Z2がそれぞれ、上から垂直方向に範囲C1乃至C4に4分割されるとき、GPUカード35−1を制御して、領域Z1においては範囲C1乃至C4の順序で(上から順に下に向かう順序で)時分割処理する。同様に、図1の画像処理装置11は、GPUカード35−2を制御して、領域Z2において範囲C1乃至C4の順序で時分割処理する。
このように水平方向に対しては複数の(図5では2個の)GPUカード35により並列に処理がなされ、さらに、垂直方向にはそれぞれのGPUカード35により時分割処理されることにより画像処理を高速化し、低レイテンシ化を実現することが可能となる。
<オーバヘッド>
GPUカード35のプロセッサ92により画像に対して実行される処理は、一般的に、フィルタ処理である。例えば、図6で示されるようなガウシアンフィルタを、各画素に対して3回処理する必要がある場合を考える。尚、図6においては、3画素×3画素のガウシアンフィルタであり、注目画素に4/16が、注目画素の上下左右の4画素に2/16が、注目画素の左右斜め上下の4画素に1/16がそれぞれ重み係数として設定され、これらの関和を画素として演算するフィルタである。
この場合、図7の左上部で示されるように、処理対象となる注目画素Pを中心とした5画素×5画素の範囲に1回目のフィルタ処理が施される。この場合、5画素×5画素の範囲の上下左右の端部の画素にフィルタを掛けるには、その端部の1画素分だけ注目画素に向かって反対側に隣接する画素も必要となる。また、5画素×5画素の範囲の角の画素については、さらに、斜め方向の注目画素に対して反対側に隣接する1画素も必要となる。すなわち、「1」が付されたマス目で示される5画素×5画素の範囲に対して1回目のフィルタ処理を施すには、図中の注目画素Pを中心とした合計7画素×7画素が必要となる。
次に、図7の中央上部で示されるように、注目画素Pを中心とした3画素×3画素の範囲に2回目のフィルタ処理が施されることになる。この場合も、3画素×3画素の範囲の上下左右の端部の画素にフィルタを掛けるには、その端部の1画素分だけ注目画素に向かって反対側に隣接する画素も必要となる。また、3画素×3画素の範囲の角の画素については、さらに、斜め方向にも注目画素に対して反対側に隣接する1画素が必要となる。すなわち、2回目のフィルタ処理では、図中の「2」が付されたマス目で示される、3画素×3画素の範囲の合計9画素が必要となる。
そして、図7の右上部で示されるように、このようにして求められた2回目までの処理がなされた8画素が利用されて、注目画素Pは、「3」が付されるように、3回のフィルタ処理がなされることになる。
結果として、図7の下部で示されるように、注目画素Pに3回のフィルタ処理を施すには、注目画素Pを中心とした斜線部で示される7画素×7画素の範囲の画素を利用することで、注目画素Pに3回のフィルタ処理を施すことが可能となる。すなわち、注目画素に3回フィルタ処理を掛ける場合、3回目の処理で注目画素を中心とした3画素×3画素の領域の画素が参照ピクセルとなる。また、2回目の処理で3回目の参照ピクセルとなる3画素×3画素の各画素について2回目のフィルタの処理に必要な参照ピクセルが、9画素のそれぞれを中心とした9画素分必要となるので、5画素×5画素の範囲が参照ピクセルとなる。さらに、1回目の処理で2回目の参照ピクセルのそれぞれについて5画素×5画素の各画素が参照ピクセルとされることにより、結果として、7画素×7画素の範囲が参照ピクセルとして必要となる。
ここで、処理対象となる画素、すなわち、注目画素に処理を施す際に必要とされる、注目画素以外の参照ピクセル、または、参照ピクセル数をオーバヘッドと称するものとし、その参照ピクセルが存在する領域をオーバヘッド領域と称する。従って、図7の場合、1画素の注目画素については、図7の左下部で示されるように、注目画素から上下左右にオーバヘッド幅Dp=4画素分の領域がオーバヘッド領域として、発生することになる。すなわち、図7の場合、オーバヘッドとなる画素は、注目画素を除く48画素分だけ発生することになる。ただし、参照ピクセルでも、別途、注目画素となり得る画素については、オーバヘッド画素ではない。あくまでも、処理対象とはならないが、参照ピクセルとしてのみ必要とされる画素をオーバヘッドと称する。
尚、以降においては、注目画素に対して発生するオーバヘッドの量を表現する手法としてオーバヘッド幅Dpを採用する。オーバヘッド幅Dpは、図7の左下部で示されるように、注目画素Pからみたオーバヘッドとなるピクセルの上下左右のいずれかの端部までのピクセル数である。従って、オーバヘッド幅Dp=4であれば、オーバヘッドとなるピクセル数は48画素となる。
処理対象となる画素が存在する領域には、複数の画素が存在することになるが、上述したように、1フレーム分の画像を水平方向に2分割して、それぞれGPUカード35−1,35−2のそれぞれのプロセッサ92−1,92−2により、垂直方向に4分割した範囲毎に順次時分割処理がなされる場合、例えば、図8で示されるようなオーバヘッドが発生する。
すなわち、図8においては、画像P1に対して、図中左側の領域Z1における上から2段目の範囲C2で特定される領域Z1C2においては、オーバヘッド領域OHZ1C2が発生する。
従って、図8で示されるように、領域Z1,Z2のそれぞれについて、垂直方向に4分割した範囲C1乃至C4の合計8領域に分割される場合、オーバヘッドは、概算でオーバヘッド領域OHZ1C2の8倍発生することになる。
また、各オーバヘッドについても、上述した3画素×3画素のフィルタの場合、1画素について、オーバヘッド幅Dp=4画素のオーバヘッド(48画素)が発生する例について説明したが、実際の処理は、これ以上のオーバヘッドが発生する。
例えば、図9で示されるように、欠陥補正処理、RAWNR処理、デモザイク処理、高画質化処理、および拡大処理に係るそれぞれの処理に際して、オーバヘッド幅Dp=2,6,8,40,8画素のオーバヘッドが発生するものとすると、合計オーバヘッド幅Dp=64画素のオーバヘッドが発生する。すなわち、129画素×129画素の範囲で、注目画素を除く画素数のオーバヘッド画素が発生することになる。また、例えば、水平方向に2分割し、垂直方向に4分割するとき、オーバヘッドは、分割処理しない場合に比べて、30%程度増加することがある。
<オーバヘッドの削減方法>
以上のようにオーバヘッドが増えると演算処理量が膨大なものとなり、処理時間が大きくなることで、リアルタイムを達成するためにより演算性能の高いプロセッサを必要としてしまう。そこで、図1の画像処理装置11においては、次のような演算によりオーバヘッドを削減している。すなわち、GPUカード35−1,35−2のそれぞれに画像P1のうちの処理領域として領域Z1,Z2が割り付けられている場合、メモリ93−1,93−2に前段のフィルタ処理結果をバッファリングさせて、後段のフィルタ処理で流用できるようにする。
すなわち、n段のフィルタ処理が全体として必要な場合、図10の左上部の右上がりの斜線部で示されるように、第1フィルタ処理(フィルタ#1)による範囲C1における処理領域については、以降の処理において必要とされる全参照ピクセルのライン数を含む1フレーム分の垂直方向の全ライン数の1/4よりも広いライン数の範囲とする。そして、それ以降については、全ライン数の1/4の範囲となるように、範囲C2,C3を設定し、最後の範囲C4については、残りの範囲を設定する。尚、図10においては、左から第1フィルタ処理(フィルタ#1)、第2フィルタ処理(フィルタ#2)、および第nフィルタ処理(フィルタ#n)される場合、上から順次範囲C1乃至C4が順次処理されるときの画像P1の全体に対してなされる処理範囲を示したものである。
このようにすると、範囲C1の処理結果がメモリ93にバッファリングされることにより、範囲C2の処理については、右下がりの斜線部で示されるように、必要な参照ピクセルの存在する領域が予め範囲C1において処理済みとされることにより、これを参照することで済むので、オーバヘッドが発生しない。また、範囲C1が全ライン数の1/4よりも広いライン数の範囲とされていることから、範囲C2の位置は、本来の範囲C2よりも範囲C3に寄った位置の全ライン数の1/4の範囲とされる。これにより、範囲C3における参照ピクセルの存在する領域が範囲C2の処理結果としてバッファリングされることにより、再びフィルタ処理する必要がないのでオーバヘッドの発生が抑制される。
同様に、範囲C3の位置は、本来の範囲C3の位置よりも範囲C4に寄った位置の全ライン数の1/4の範囲とされるので、右下がりの斜線部で示されるように、範囲C4における参照ピクセルが存在する領域が範囲C3の処理結果としてバッファリングされることにより、再びフィルタ処理する必要がないのでオーバヘッドの発生が抑制される。
また、図10の中央上部で示される右上がりの斜線部で示されるように、第2フィルタ処理(フィルタ#2)による範囲C1における処理領域については、以降における参照ピクセルを含む全ライン数の1/4よりも広い範囲であって、図10の左上部の右上がり斜線部で示される第1フィルタ処理(フィルタ#1)のライン数よりも狭い範囲である。そして、それ以降については、1/4の範囲となるように、範囲C2,C3を設定し、最後の範囲C4については、残りの範囲を設定する。
すなわち、第2フィルタ処理(フィルタ#2)の範囲C1のライン数については、第1フィルタ処理(フィルタ#1)よりも後段のフィルタ数が少ない分だけ参照ピクセルが存在する領域も狭くなることから、図10の中央上部の右上がりの斜線部で示されるように、全ライン数の1/4よりも広い範囲ではあるが、第1フィルタ処理(フィルタ#1)の範囲C1よりも狭い範囲となる。
この結果、範囲C2,C3についても、本来の全ライン数の1/4の範囲に近い位置にずれて設定され、範囲C4については、第1フィルタ処理(フィルタ#1)における範囲C1よりも、範囲C1のライン数が減った分だけ広くなる。
以降、残りのフィルタ数が減るにつれて、範囲C1のライン数が全ライン数の1/4のライン数に近づいていき、範囲C2,C3の位置が本来の全ライン数の1/4の位置に近づいていく。そして、最後の第nフィルタ処理(フィルタ#n)においては、後段のフィルタの参照ピクセルを考慮する必要がなくなるので、図10の右部で示されるように、範囲C1乃至C4が、本来の全ライン数の1/4のライン数の位置とされる。
以上のように、後段のフィルタ処理で必要とされる参照ピクセルの存在する範囲のラインについて、前段のフィルタ処理において先にフィルタ処理して、処理結果をバッファリングし、後段のフィルタ処理で利用することで、オーバヘッドの発生を抑制することが可能となる。
<低レイテンシ表示処理>
次に、図11のフローチャートを参照して、図1の画像処理装置11による低レイテンシ表示処理について説明する。
ステップS11において、IFカード34のカメラIF71は、図示せぬカメラより撮像された画像データの入力を受け付けて、PCIeブリッジ73およびバス33を介してCPU51に供給する。CPU51は、この供給を受けて入力された画像データをメインメモリ32に格納させる。
ステップS12において、DMAコントローラ51は、メインメモリ32に格納された画像データに基づいて、画像を水平方向にGPUカード35の数に応じて分割し、さらに、各分割された領域を垂直方向に時分割処理する上での分割数に分割するときの範囲数と、処理に係るフィルタ数とその参照ピクセルの存在する領域の情報に基づいて、処理量を計算する。
すなわち、処理量は、大きく分けて垂直方向の処理に係る処理量と、水平方向の処理に係る処理量との2種類があり、DMAコントローラ51は、それぞれを計算した後、合算する。
<垂直方向の処理量>
すなわち、垂直方向については、最終的にメインメモリ32に格納された後に、DMA出力される出力バッファサイズを基準として、第1フィルタ処理#1(フィルタ#1)による処理から第nフィルタ処理(フィルタ#n)による処理までの各フィルタ処理における参照ピクセル数と処理単位ブロックとにより順次、処理順序と逆の順序で求められる。
すなわち、図12で示されるように、通常の垂直方向に順次なされるフィルタ処理は、第1フィルタ処理(フィルタ#1)によりなされた処理結果が、第2フィルタ(フィルタ#2)により処理され、さらに、第3フィルタ処理(フィルタ#3)により処理されるといった処理が繰り返されて、最終的に第nフィルタ処理がなされて、DMA転送されて出力される(図中最右上部の出力DMA)。
従って、垂直方向の処理量の計算は、出力DMAのライン数から、順次逆方向に各フィルタ処理での参照ピクセル数と処理単位ブロックとから求められていく。すなわち、例えば、出力バッファサイズとなるライン数をPY(DMA)とすると、第nフィルタ処理(フィルタ#n)により求められるライン数は、画像を構成する画素数により予め決められることになるので、例えば、ライン数PY(n)=PY(DMA)となる。
この場合、第(n−1)フィルタ処理(フィルタ#(n-1))のライン数PY(n−1)は、以下の式(1)により求められることになる。
PY(n−1)=PY(n)+BY(n−1)×z
・・・(1)
ここで、PY(n−1)は、第(n−1)フィルタ処理(フィルタ#(n-1))のライン数を、PY(n)は、第nフィルタ処理(フィルタ#n)のライン数を、BY(n−1)は、第(n−1)フィルタ処理(フィルタ#(n-1))における処理単位ブロックの大きさを示すライン数をそれぞれ示している。
また、zは、BY(n−1)×Aが参照ピクセル数よりも大きく、かつ、Aが最小となる値である。
すなわち、図12の右下部で示されるように、第nフィルタ処理(フィルタ#n)により出力されるライン数(処理ライン数)に対して、第(n−1)フィルタ処理(フィルタ#(n-1))における参照ピクセルを構成するライン数が、格子状に塗られた範囲である場合を考える。
ここで、第nフィルタ処理(フィルタ#n)における処理ライン数は、図12の右下部の右下がりの斜線部で示される所定のライン数からなる処理単位ブロックの4ブロック分である。また、第(n−1)フィルタ処理(フィルタ#(n-1))における参照ピクセルは、図12の右下部の格子状での範囲として示されるように、2ブロック分と、1ブロックに満たない数ライン分の範囲である。
ところで、各フィルタ処理は、所定のライン数からなる処理単位ブロック毎にしか実施できない。そこで、図12の右下部のような場合、1ブロック分に満たないライン数の部分についても1ブロック分であるものとみなす。これにより、図12の右下部においては、式(1)で示されるzは、3として求められることになる。
このため、図12の右下部の場合、第(n−1)フィルタ処理(フィルタ#(n-1))の処理ライン数は、実質的に、7ブロック分のライン数が求められることになる。
以降、第1フィルタ処理(フィルタ#1)までの処理単位ブロック数が計算されて、処理単位ブロック数に応じた処理量が順次計算されて、その総合計が垂直方向の処理量として計算される。
尚、ここでも、各フィルタ処理において必要とされるライン数は、図10を参照して説明したように、オーバヘッドが削減されるように、各フィルタの後段で必要な参照ピクセルを含めたライン数が設定される。
<水平方向の処理量>
水平方向の処理量についても、最終的にメインメモリ32に格納された後に、DMA出力される出力バッファサイズを基準として、第1フィルタ処理(フィルタ#1)から第nフィルタ処理(フィルタ#n)までの各フィルタ処理における参照ピクセル数と処理単位ブロックとにより順次、処理順序と逆の順序で求められる。
すなわち、図13で示されるように、通常の水平方向に順次なされるフィルタ処理は、第1フィルタ処理(フィルタ#1)によりなされた処理結果が、第2フィルタ処理(フィルタ#2)により処理され、さらに、第3フィルタ処理(フィルタ#3)されるといった処理が繰り返されて、最終的に第nフィルタ処理(フィルタ#n)がなされて、DMA転送されて出力される(図中の出力DMA)。
従って、水平方向の処理量の計算は、出力DMAの水平方向の処理単位ブロックの倍数で定義される幅から、順次逆方向に各フィルタ処理での参照ピクセル数と処理単位ブロックとから求められていく。ただし、水平方向の処理においては、垂直方向の処理におけるオーバヘッドを削減する処理を行わず、各フィルタ処理における水平方向の幅に、各フィルタ処理における参照ピクセル数に応じた処理単位ブロック数分の幅が単純に加算された水平方向の幅に対応した処理量となる。
すなわち、例えば、第kフィルタ処理#kにおける処理量を計算する上で必要とされる水平方向の幅Xkは、以下の式(2)で表される。
Xk=w+zk×xk
・・・(2)
ここで、Xkは、第kフィルタ処理#kにおける処理量を計算する上で必要とされる幅であり、wは、第nフィルタ処理#nにおける処理単位ブロックの倍数で設定される水平方向の幅であり、zxは、処理単位ブロックの幅である。
また、zkは、第iフィルタ処理(フィルタ#i)の参照ピクセル数をriとしたときの、それまでのフィルタ処理の参照ピクセル数の総和(r1+r2+・・・+r(k−1)+rk)よりも大きく、かつ、zk×xkが最小となる値である。
すなわち、図13の右下部の最下段の格子柄のマスで示されるように、第nフィルタ処理(フィルタ#n(n=1乃至6:n=6は最終段))により出力される水平方向の幅に対して、出力バッファサイズとなる第nフィルタ処理(フィルタ#n)に対応する第6フィルタ処理(フィルタ#6)の幅に対して、第5フィルタ処理(フィルタ#5)における参照ピクセル数が2であるものとする。
そして、図13の右下部の下から2段目の格子柄のマスで示されるように、第4フィルタ処理(フィルタ#4)において、参照ピクセル数が1であるものとすれば、この場合、第5フィルタ処理(フィルタ#5)における右下がりの斜線部のマスで示されるように参照ピクセル数である2が加算されて、3となる。
同様にして、図13の右下部の下から3段目の格子柄のマスで示されるように、第3フィルタ処理(フィルタ#3)において、参照ピクセル数が3であるものとすれば、この場合、右下がりの斜線部のマスで示されるように第4フィルタ処理(フィルタ#4)までの参照ピクセル数である3が加算されて、6となる。
さらに、図13の右下部の下から4段目で示されるように、第2フィルタ処理(フィルタ#2)において、参照ピクセル数が1であるものとすれば、この場合、右下がりの斜線部のマスで示されるように第3フィルタ処理(フィルタ#3)までの参照ピクセル数である6が加算されて、7となる。
そして、図13の右下部の最上段で示されるように、第1フィルタ処理(フィルタ#1)において、参照ピクセル数が1であるものとすれば、この場合、右下がりの斜線部のマスで示されるように第2フィルタ処理(フィルタ#2)までの参照ピクセル数である7が加算されて、8となる。
すなわち、この場合、例えば、図13の右下部の下から3段目で示されるように、処理単位ブロックが1ピクセルで構成される場合、第3フィルタ処理(フィルタ#3)における、上述した式(2)のzk(=z3)は、2となる。
以上のような手法により、水平方向の各フィルタにおける処理対象となる処理単位ブロックの倍数となる幅の合算結果に対応する処理量が順次求められる。
DMAコントローラ51は、画像の水平方向の分割数、および垂直方向の分割数に応じて、上述した垂直方向の処理量および水平方向の処理量を計算し、双方を合算することにより処理に必要とされる処理量を計算する。
ステップ13において、DMAコントローラ51は、GPUカード35にそれぞれ搭載されているプロセッサ92の処理能力と、上述した計算により求められた処理量とに応じて、各種のフィルタ処理に係る処理時間を計算し、さらに、求められた処理時間から画像データの読み出し、または転送タイミング等の各種のタイミングを計算する。この処理により、以降の処理において、どのタイミングでどの画像データを、どこのGPUカード35に転送するのかを示すタイミングチャートを構築する。
ステップS14において、DMAコントローラ51は、所定のタイミングから、このタイミングチャートに基づいて処理を開始し、今現在、次の処理のタイミングになったか否かを判定し、次の処理のタイミングになるまで、同様の処理を繰り返す。
ステップS14において、例えば、次の処理を開始するタイミングであると判定された場合、処理は、ステップS15に進む。
ステップS15において、DMAコントローラ51は、タイミングチャートに基づいて、次の処理として設定されている画像データをメインメモリ32より読み出して、転送先として設定されているGPUカード35に転送させ、同時に、GPUカード35のプロセッサ92に処理を実行させる。または、DMAコントローラ51は、GPUカード35のプロセッサ92による処理が実行されて、処理結果が送信されてくると、これを受け取って、メインメモリ32に格納する。
ステップS16において、DMAコントローラ51は、タイミングチャートを参照して、次の処理が存在するか否かを判定し、例えば、次の処理がある場合、処理は、ステップS14に戻り、以降の処理が繰り返される。
すなわち、ステップS16において、次の処理がないと判定されるまで、ステップS14乃至S16の処理が繰り返される。そして、ステップS14乃至S16の処理が繰り返されて、タイミングチャートに設定された全ての処理が完了すると、ステップS16において、次の処理がないとみなされて、処理は、ステップS17に進む。
ステップS17において、DMAコントローラ51は、メインメモリ32に格納されている高画質化等の処理がなされた画像データをバス33、およびIFカード34のPCIeブリッジ73を介してディスプレイIF72より図示せぬディスプレイに出力させる。
ステップS18において、DMAコントローラ51は、次の画像が供給されてきているか否かを判定し、次の画像が存在する場合、処理は、ステップS11に戻り、それ以降の処理が繰り返される。
そして、ステップS18において、次の画像の供給がないとみなされた場合、処理は、終了する。
すなわち、以上のように、複数のGPUカード35のプロセッサ92により水平方向に画像を分割して、各プロセッサ92により分担して処理させるようにした。また、各プロセッサ92による垂直方向に所定数の範囲に分割して、分割した範囲を時分割処理するようにした。また、この時分割処理において、後段のフィルタ処理における参照ピクセルの存在する範囲を前段のフィルタ処理で実行して、メモリ93にバッファリングさせるようにした。
これにより、複数のGPUカード35におけるプロセッサ92により並列に処理を実行させるようにすることが可能となり、例えば、図3の下段で示されるような並列処理が可能となった。また、垂直方向に時分割処理するにあたって、参照ピクセルを繰り返し計算し直すといったオーバヘッドが削減されるように、各プロセッサ92による処理効率を向上させるようにした。
結果として、画像データを高画質化して表示させるまでの速度が向上し、低レイテンシ化を実現することが可能となる。
<処理時間を均一にする>
以上の処理により、垂直方向のフィルタ処理におけるオーバヘッド削減とのトレードオフにより、各種の処理時間が変化することがある。
すなわち、図14の左部は、欠陥補正、RAWNR、デモザイク、高画質化、拡大、および出力DMAといった各種の処理に当たってオーバヘッドを削減するように、前段のフィルタ処理で後段のフィルタ処理における参照ピクセルをバッファリングするようにしたときの範囲C1乃至C4に設定されるライン数の一例を示したものである。
図14の左部においては、欠陥補正処理における範囲C1乃至C4の各ライン数は、604,540,540,476ラインであり、RAWNR処理における範囲C1乃至C4の各ライン数は、596,540,540,484ラインであり、デモザイク処理における範囲C1乃至C4の各ライン数は、588,540,540,492ラインであることが示されている。また、高画質化処理における範囲C1乃至C4の各ライン数は、548,540,540,532ラインであり、拡大処理の範囲C1乃至C4の各ライン数は、540,540,540,540ラインであり、出力DMA処理の範囲C1乃至C4の各ライン数は、540,540,540,540ラインであることが示されている。
この場合、範囲C1乃至C4における処理時間は、図14の右部で示されるようなものとなり、範囲C1乃至C4における処理時間の合計における最大差Δは、例えば、範囲C1,C4の処理時間の差であり、範囲C1の処理時間に対する5%前後の時間となる。これは、垂直方向のフィルタ処理におけるオーバヘッド削減を目的として処理ライン数が変化することに起因したものであり各種の処理時間が変化することにより生じるものである。尚、図14の右部においては、左から範囲C1乃至C4のそれぞれの処理時間の総合計とその内訳が示されている。
このように処理時間が不均一となることの対策として、例えば、範囲C1乃至C4において、最終的に出力するライン数を調整して、処理時間を平滑化することが考えられる。
すなわち、例えば、図15の左下部で示されるように、出力DMA処理におけるライン数を範囲C1については520ラインに、範囲C4については560ラインにするといったように、処理時間の不均一が解消するように不均一にする。
このようにすると、図15の右下部で示されるように、範囲C1,C4における処理時間差Δがほぼ0の状態に解消され、処理時間を全体として平滑化されて均一なものとすることが可能となる。尚、図15の左上部および右上部は、それぞれ図14の左部および右部と同一のものである。
また、例えば、範囲C1乃至C4のうち、処理時間が早い範囲については、処理速度をリアルタイムで調整する必要のない処理を分担させるようにしてもよく、例えば、図16で示されるように、範囲C2乃至C4における最上段の黒色の範囲で示される時間帯に、検波処理などに割り当てるようにして、総じて処理時間が均一なものとなるようにしてもよい。
以上の処理により、画像を水平方向に分割して、複数のプロセッサに割り付け、水平分割された各領域を、垂直方向に時分割処理し、かつ、垂直方向に分割された各範囲については、先頭の範囲に後段の処理に必要とされる参照ピクセルを含む範囲を設定する。そして、先頭範囲の処理において、先行して参照ピクセルの処理も含めてフィルタ処理を実施した上でバッファリングし、以降のフィルタ処理においては、バッファリングしたものを参照して処理を実行させるようにした。これにより、撮像した画像の表示処理を低レイテンシ化させることが可能となり、撮像した画像を撮像した実時間により近いタイミングで高速に表示させることが可能となる。
このため、図1の画像処理装置11は、例えば、患者の術部を撮像する撮像装置として内視鏡下手術に利用される内視鏡や脳神経外科手術等に利用される顕微鏡などにより患者の術部が撮像された画像を処理する画像処理装置、さらには、撮像装置としての内視鏡や顕微鏡を含めた手術システムに適用させることができる。また、GPUカード35におけるプロセッサ92を利用するにあたって、画像を表示させる上でのタイムラグ等への考慮を低減させることが可能となるので、プログラマビリティを向上させることが可能となる。さらに、放送波などを介して受信された画像を表示するにあたっても、低レイテンシ化を図ることができるので、タイムラグを抑制して表示させることが可能となる。
さらに、画像を処理するにあたって、DMAコントローラ51により、処理に使用するフィルタに応じた参照ピクセル数と処理単位ブロックとに応じて、予め処理量を計算した上で、画像データの読み出しタイミングや書き込みタイミングを最適化した後、処理を実行するようにしているので、処理内容に寄らず、最適な状態で低レイテンシ化を図ることが可能となる。
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図17は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタ-フェイス1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタ-フェイス1005には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011ら読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
以上のように構成されるコンピュータでは、CPU1001が、例えば、記憶部1008に記憶されているプログラムを、入出力インタフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア1011をドライブ1010に装着することにより、入出力インタフェース1005を介して、記憶部1008にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部1009で受信し、記憶部1008にインストールすることができる。その他、プログラムは、ROM1002や記憶部1008に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
尚、本技術は、以下のような構成も取ることができる。
(1) 患者の術部が撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含み、
前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す
画像処理装置。
(2) 前記複数の演算処理部は、複数のGPU(Graphical Processing Unit)により構成され、
前記演算処理部は、前記GPUの数で水平方向に分割された前記画像に処理を施す
(1)に記載の画像処理装置。
(3) 前記画像に施す処理は、n段のフィルタを掛ける処理である
(1)または(2)に記載の画像処理装置。
(4) 前記n段の前記フィルタは、それぞれ前記画像を垂直方向に分割した範囲を、前記垂直方向の最上段の範囲から下方向に向かって順次時分割で処理を施す
(3)に記載の画像処理装置。
(5) 前記画像の前記水平方向の分割数、および前記垂直方向の分割数に基づいて算出される前記画像に施す処理量と、前記演算処理部の処理速度とに基づいて、前記演算処理部の演算のタイミングを制御するタイミング制御部をさらに含む
(1)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記画像を前記垂直方向に時分割した範囲のうち、第1の期間の処理範囲には、前記第1の期間より後の第2の期間の処理に必要とされる参照ピクセルが含まれる
(1)乃至(5)のいずれかに記載の画像処理装置。
(7) 前記演算処理部は、処理結果をバッファリングするメモリを含み、
前記第2の期間の処理では、前記メモリにバッファリングされた前記第1の期間の処理結果から、前記参照ピクセルに対応する処理結果を利用して演算処理を実行する
(6)に記載の画像処理装置。
(8) 前記演算処理部は、処理結果をバッファリングするメモリを含み、
前記画像を垂直方向に分割した範囲のうち、各段の前記フィルタによる前記垂直方向の最上段の処理範囲は、前記垂直方向の2段目以下の処理範囲における前記フィルタの処理に必要とされる参照ピクセルのライン数を含む範囲とし、
前記演算処理部は、前記フィルタによる処理のための演算処理を実行するにあたり、前記参照ピクセルを利用する処理は、前記メモリにバッファリングされた前段までのフィルタ処理の処理結果から、前記参照ピクセルに対応する処理結果を利用して演算処理を実行する
(3)に記載の画像処理装置。
(9) 前記演算処理部は、前記患者の術部が撮像された画像に対して、少なくとも拡大処理を施す
(1)乃至(8)のいずれかに記載の画像処理装置。
(10) 前記患者の術部が撮像された画像は、内視鏡により撮像された画像である
(1)乃至(9)のいずれかに記載の画像処理装置。
(11) 前記患者の術部が撮像された画像は、顕微鏡により撮像された画像である
(1)乃至(9)のいずれかに記載の画像処理装置。
(12) 患者の術部が撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含む画像処理装置の画像処理方法において、
前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す
画像処理方法。
(13) 前記画像は、内視鏡により撮像された画像である
(12)に記載の画像処理方法。
(14) 前記画像は、顕微鏡により撮像された画像である
(12)に記載の画像処理方法。
(15) 患者の術部を撮像する撮像装置と、
前記撮像装置により撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含み、
前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す
画像処理装置と
を有する手術システム。
11 情報処理部, 31 CPU, 32 メインメモリ, 33 バス, 34 IFカード, 35,35−1,35−2 GPUカード, 51 DMAコントローラ, 71 カメラIF, 72 ディスプレイIF, 73,91,91−1,91−2 PCIeブリッジ, 92,92−1,92−2 プロセッサ, 93,93−1,93−2 メモリ

Claims (15)

  1. 患者の術部が撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含み、
    前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す
    画像処理装置。
  2. 前記複数の演算処理部は、複数のGPU(Graphical Processing Unit)により構成され、
    前記演算処理部は、前記GPUの数で水平方向に分割された前記画像に処理を施す
    請求項1に記載の画像処理装置。
  3. 前記画像に施す処理は、n段のフィルタを掛ける処理である
    請求項1に記載の画像処理装置。
  4. 前記n段の前記フィルタは、それぞれ前記画像を垂直方向に分割した範囲を、前記垂直方向の最上段の範囲から下方向に向かって順次時分割で処理を施す
    請求項3に記載の画像処理装置。
  5. 前記画像の前記水平方向の分割数、および前記垂直方向の分割数に基づいて算出される前記画像に施す処理量と、前記演算処理部の処理速度とに基づいて、前記演算処理部の演算のタイミングを制御するタイミング制御部をさらに含む
    請求項1に記載の画像処理装置。
  6. 前記画像を前記垂直方向に時分割した範囲のうち、第1の期間の処理範囲には、前記第1の期間より後の第2の期間の処理に必要とされる参照ピクセルが含まれる
    請求項1に記載の画像処理装置。
  7. 前記演算処理部は、処理結果をバッファリングするメモリを含み、
    前記第2の期間の処理では、前記メモリにバッファリングされた前記第1の期間の処理結果から、前記参照ピクセルに対応する処理結果を利用して演算処理を実行する
    請求項6に記載の画像処理装置。
  8. 前記演算処理部は、処理結果をバッファリングするメモリを含み、
    前記画像を垂直方向に分割した範囲のうち、各段の前記フィルタによる前記垂直方向の最上段の処理範囲は、前記垂直方向の2段目以下の処理範囲における前記フィルタの処理に必要とされる参照ピクセルのライン数を含む範囲とし、
    前記演算処理部は、前記フィルタによる処理のための演算処理を実行するにあたり、前記参照ピクセルを利用する処理は、前記メモリにバッファリングされた前段までのフィルタ処理の処理結果から、前記参照ピクセルに対応する処理結果を利用して演算処理を実行する
    請求項3に記載の画像処理装置。
  9. 前記演算処理部は、前記患者の術部が撮像された画像に対して、少なくとも拡大処理を施す
    請求項1に記載の画像処理装置。
  10. 前記患者の術部が撮像された画像は、内視鏡により撮像された画像である
    請求項1に記載の画像処理装置。
  11. 前記患者の術部が撮像された画像は、顕微鏡により撮像された画像である
    請求項1に記載の画像処理装置。
  12. 患者の術部が撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含む画像処理装置の画像処理方法において、
    前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す
    画像処理方法。
  13. 前記画像は、内視鏡により撮像された画像である
    請求項12に記載の画像処理方法。
  14. 前記画像は、顕微鏡により撮像された画像である
    請求項12に記載の画像処理方法。
  15. 患者の術部を撮像する撮像装置と、
    前記撮像装置により撮像された画像を垂直方向に分割された範囲毎に時分割で処理を施す複数の演算処理部を含み、
    前記演算処理部は、前記演算処理部の数で、水平方向に分割された前記画像を、前記垂直方向に時分割して処理を施す
    画像処理装置と
    を有する手術システム。
JP2016514864A 2014-04-24 2015-04-13 画像処理装置および方法、並びに手術システム Active JP6737176B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014090566 2014-04-24
JP2014090566 2014-04-24
PCT/JP2015/061311 WO2015163171A1 (ja) 2014-04-24 2015-04-13 画像処理装置および方法、並びに手術システム

Publications (2)

Publication Number Publication Date
JPWO2015163171A1 true JPWO2015163171A1 (ja) 2017-04-13
JP6737176B2 JP6737176B2 (ja) 2020-08-05

Family

ID=54332338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016514864A Active JP6737176B2 (ja) 2014-04-24 2015-04-13 画像処理装置および方法、並びに手術システム

Country Status (5)

Country Link
US (2) US10440241B2 (ja)
EP (1) EP3136719A4 (ja)
JP (1) JP6737176B2 (ja)
CN (1) CN106233719B (ja)
WO (1) WO2015163171A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6847636B2 (ja) 2016-11-18 2021-03-24 ソニー・オリンパスメディカルソリューションズ株式会社 医療用信号処理装置及び医療用観察システム
CN107146193A (zh) * 2017-04-28 2017-09-08 南京觅踪电子科技有限公司 一种应用于图像处理的基于双显卡的gpu并行计算方法
JP7013677B2 (ja) * 2017-05-01 2022-02-01 ソニーグループ株式会社 医用画像処理装置、医用画像処理装置の作動方法、及び、内視鏡システム
US11302439B2 (en) 2017-06-27 2022-04-12 Sony Corporation Medical image processing apparatus, medical image processing method, and computing device
US10812769B2 (en) 2017-08-21 2020-10-20 International Business Machines Corporation Visualizing focus objects from video data on electronic maps
JP6954535B2 (ja) * 2017-10-25 2021-10-27 日本電信電話株式会社 通信装置
US10868950B2 (en) 2018-12-12 2020-12-15 Karl Storz Imaging, Inc. Systems and methods for operating video medical scopes using a virtual camera control unit
US20240153036A1 (en) * 2021-03-25 2024-05-09 Sony Group Corporation Medical image processing system, medical image processing method, and program

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324583A (ja) * 1992-05-26 1993-12-07 Dainippon Screen Mfg Co Ltd 画像データ処理装置
JP2000312327A (ja) * 1999-04-28 2000-11-07 Olympus Optical Co Ltd 画像処理装置
JP2010263475A (ja) * 2009-05-08 2010-11-18 Olympus Imaging Corp 画像処理装置及び撮像装置
JP2012098883A (ja) * 2010-11-01 2012-05-24 Olympus Corp データ処理装置および画像処理装置
JP2013182504A (ja) * 2012-03-02 2013-09-12 Canon Inc 画像処理装置及びその制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0240688A (ja) 1988-07-29 1990-02-09 Nec Corp 実時間動画処理方式及び装置
JPH02272533A (ja) * 1989-04-14 1990-11-07 Fuji Photo Film Co Ltd 放射線画像の分割パターン認識方法
US7075541B2 (en) * 2003-08-18 2006-07-11 Nvidia Corporation Adaptive load balancing in a multi-processor graphics processing system
US7616207B1 (en) * 2005-04-25 2009-11-10 Nvidia Corporation Graphics processing system including at least three bus devices
US8369632B2 (en) 2009-04-08 2013-02-05 Olympus Corporation Image processing apparatus and imaging apparatus
JP2010271365A (ja) * 2009-05-19 2010-12-02 Sony Corp 表示制御装置、表示制御方法
WO2012088320A2 (en) * 2010-12-22 2012-06-28 The Johns Hopkins University Real-time, three-dimensional optical coherence tomography system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324583A (ja) * 1992-05-26 1993-12-07 Dainippon Screen Mfg Co Ltd 画像データ処理装置
JP2000312327A (ja) * 1999-04-28 2000-11-07 Olympus Optical Co Ltd 画像処理装置
JP2010263475A (ja) * 2009-05-08 2010-11-18 Olympus Imaging Corp 画像処理装置及び撮像装置
JP2012098883A (ja) * 2010-11-01 2012-05-24 Olympus Corp データ処理装置および画像処理装置
JP2013182504A (ja) * 2012-03-02 2013-09-12 Canon Inc 画像処理装置及びその制御方法

Also Published As

Publication number Publication date
US20170046847A1 (en) 2017-02-16
EP3136719A1 (en) 2017-03-01
JP6737176B2 (ja) 2020-08-05
US10440241B2 (en) 2019-10-08
CN106233719B (zh) 2020-03-31
US20190387135A1 (en) 2019-12-19
US11245816B2 (en) 2022-02-08
CN106233719A (zh) 2016-12-14
EP3136719A4 (en) 2017-09-13
WO2015163171A1 (ja) 2015-10-29

Similar Documents

Publication Publication Date Title
JP6737176B2 (ja) 画像処理装置および方法、並びに手術システム
US11227566B2 (en) Method for reducing brightness of images, a data-processing apparatus, and a display apparatus
JP6918150B2 (ja) ディスプレイ装置及びその映像処理方法
US20190043202A1 (en) Image processing device
US11150858B2 (en) Electronic devices sharing image quality information and control method thereof
US20160253129A1 (en) Image forming apparatus and control method therefor
US9070201B2 (en) Image processing apparatus
US20210012459A1 (en) Image processing method and apparatus
US10178359B2 (en) Macropixel processing system, method and article
US8929652B2 (en) Method and apparatus for processing image
EP3680827A1 (en) Information processing apparatus and memory control method
JP2014099714A (ja) 画像処理装置、撮像装置、画像処理方法及びプログラム
JP6234247B2 (ja) 画像処理装置、画像処理方法
US9270900B2 (en) Movie processing apparatus and control method therefor
US10452583B2 (en) Data transfer device and data transfer method having a shorter time interval between pieces of final transfer data in a frame image
US20140125821A1 (en) Signal processing circuit, imaging apparatus and program
JP5583563B2 (ja) データ処理装置
US9898831B2 (en) Macropixel processing system, method and article
WO2017217395A1 (ja) 画像処理装置、画像処理方法及びプログラム記録媒体
US11494869B2 (en) Image processor having a compressing engine performing operations on each row of M*N data block
JP2013025619A (ja) 画像表示装置および画像表示方法
US11210763B2 (en) Image processing apparatus, image processing method, and storage medium
JP6048046B2 (ja) 画像合成装置及び画像合成方法
US20230222621A1 (en) Information processing apparatus, image processing method and computer readable medium
US9811920B2 (en) Macropixel processing system, method and article

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180309

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200616

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200629

R151 Written notification of patent or utility model registration

Ref document number: 6737176

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151