マルチコア処理

Open eVisionのマルチコア処理サポート

Since release 2.7, Open eVision supports multicore processing and some algorithms are optimized to take advantage of modern multicore CPUs.

デフォルトでは、並列処理が無効になっています。
現在のスレッドで並列処理を有効にするには:
1より大きい値でEasy::SetMaxNumberOfProcessingThreads()を使用します。
スレッド数をシステム内で利用可能な物理CPUコアの数(ハイパースレッディングは除外)に設定します。
もちろん、最大スレッド数よりも少ないスレッドを使用することで他の処理用にCPUパワーを温存することもできます。

Easy::SetMaxNumberOfProcessingThreads() は、関数が呼び出されるスレッドの処理スレッドの最大数のみを設定します。

マルチプロセッサが有効な機能

現在、Open eVisionのいくつかの機能のみマルチプロセッサが有効になっています。

これらのメソッドおよび期待できる速度向上は以下になります。

ライブラリ

方法

改善
(追加プロセッサごと)

EasyMatrixCode2

EMatrixCodeReader::Read

50%

EasyImage

ERegionのしきい値

75%

ERegionの統計

75%

Easy3D EPointCloudToZMapConverter::Convert

50%

EDepthMapToPointCloudConverter::Convert

30%

EDepthMapToMeshConverter::Convert

30%

EZMapToPointCloudConverter::Convert

30%

ELaserLineExtractor::ExtractProfileFromFrame

30%

EasyClassify EClassifier::Classify 2%
EasySegment EUnsupervisedSegmenter::Apply 4%
領域 ERegion::ToImage  
ERegion::Union  
ERegion::Intersection  
ERegion::Subtraction  
EasyQRCode

EasyQRCode::Read
(see documentation for optimization)

20%