OpenCVにlibjpeg-turboをリンクして性能比較Introduction掲題そのまま。計測していないエンコードだけ計測みたいなネタでげんなりしたので自分で実施してみました。takuya-takeuchi/DemoCondition条件は下記になります。(動的リンク、world形式でビルド。1.5.3libjpeg-turbo.libをリンクになります。libjpeg.libとlibjpeg-turbo.libのどちらをリンクするかで意見が割れていますが、ここではlibjpeg-turbo.libをリンクしました。OpenCVのビルドのためのCMakeのコマンドは下記のようになります。..Test実験は、libjpeg-turbo有効の自家製ビルドOpenCVlibjpeg-turbo無効の自家製ビルドOpenCV公式のOpenCVバイナリに対して比較します。画像は、640x3601280x7202560x1440の3種類を用意し、それぞれのデータのデコードとエンコードを1000回繰り返します。実験ソースは下記です。ベースとして、下記のページを参考にさせていただきました。ポイントを定義します。0;}Result実験結果は下記になります。速度はいずれも平均速度です。msConclusionエンコード性能は著しい改善を見せており、3.5-4.0倍の速度をたたき出しています。デコードも、1.6-2.2倍の速度と良い感じです。数十msの違いかもしれませんが、OpenCVのVideoCapture等でWebカメラをキャプチャした際、MotionJPEG形式ならデコード処理がそのままfpsに跳ね返ってきます。1280X720で従来20ms要していたということは、30fpsのカメラでも事実上、1フレームに33ms+20msの53ms、つまり20fps程度しか性能が出なかったことになります。これが5msになれば、33ms+5msの38msなら26fpsと改善できます。コメントをキャンセルメールアドレスが公開されることはありません。@takuya_takeuchiソフトウェア開発技術者。Appのアプリ開発技術を追求。アイコンは作者イメージ。らみぃ様@ramie541提供。WordPress%d人のブロガーが「いいね」をつけました。