趣味+メモ用のブログです。
GNU/Linux関連、OSS関連情報、調査事項になるでしょうが、何を書くか分かりません。
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
OpenCVのARM neon対応状況を調べてみました。
2.2.0 / 2.4.9 / 3.0-alpha(#3097)で、android / ios以外で"neon"の文字列を含む ファイル数を調べたものです。 ( grep neon **/* 2>/dev/null | grep -v android | grep -v ios | wc -l ) ■ 結果
■ 2.2.0の結果 OpenCV-2.2.0$ grep neon **/* 2>/dev/null | grep -v android | grep -v ios modules/features2d/src/brief.cpp:#include <arm_neon.h>■ 2.4.9の結果 OpenCV-2.4.9$ grep neon **/* 2>/dev/null | grep -v android | grep -v ios バイナリファイル 3rdparty/ffmpeg/opencv_ffmpeg.dll に一致しました バイナリファイル 3rdparty/ffmpeg/opencv_ffmpeg_64.dll に一致しました バイナリファイル 3rdparty/lib/libavcodec.a に一致しました バイナリファイル 3rdparty/lib/libavcodec64.a に一致しました 3rdparty/libpng/CMakeLists.txt: list(APPEND lib_srcs arm/filter_neon.S) 3rdparty/libpng/arm/filter_neon.S:/* filter_neon.S - NEON optimised filter functions 3rdparty/libpng/arm/filter_neon.S: .fpu neon 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_sub4_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_sub3_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_up_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_avg4_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_avg3_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_paeth4_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_paeth3_neon, export=1 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_up_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_sub3_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_sub4_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_avg3_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_avg4_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_paeth3_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_paeth4_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngrutil.c:png_init_filter_functions_neon(png_structp pp, unsigned int bpp) 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up_neon; 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_neon; 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_neon; 3rdparty/libpng/pngrutil.c: png_read_filter_row_paeth3_neon; 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_neon; 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_neon; 3rdparty/libpng/pngrutil.c: png_read_filter_row_paeth4_neon; 3rdparty/libpng/pngrutil.c: png_init_filter_functions_neon(pp, bpp); cmake/OpenCVCompilerOptions.cmake: add_extra_compiler_option("-mfpu=neon") modules/core/include/opencv2/core/internal.hpp:# include "arm_neon.h" modules/core/include/opencv2/core/internal.hpp:# include <arm_neon.h> modules/flann/include/opencv2/flann/dist.h:# include "arm_neon.h" modules/ts/src/ts_func.cpp: cpu_features += " neon"; // NEON is currently not checked at runtime■ 3.0-alpha opencv$ grep neon **/* 2>/dev/null | grep -v android | grep -v ios バイナリファイル 3rdparty/ffmpeg/opencv_ffmpeg.dll に一致しました バイナリファイル 3rdparty/ffmpeg/opencv_ffmpeg_64.dll に一致しました バイナリファイル 3rdparty/lib/libavcodec.a に一致しました バイナリファイル 3rdparty/lib/libavcodec64.a に一致しました 3rdparty/libpng/CMakeLists.txt: list(APPEND lib_srcs arm/filter_neon.S) 3rdparty/libpng/arm/filter_neon.S:/* filter_neon.S - NEON optimised filter functions 3rdparty/libpng/arm/filter_neon.S: .fpu neon 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_sub4_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_sub3_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_up_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_avg4_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_avg3_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_paeth4_neon, export=1 3rdparty/libpng/arm/filter_neon.S:func png_read_filter_row_paeth3_neon, export=1 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_up_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_sub3_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_sub4_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_avg3_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_avg4_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_paeth3_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngpriv.h:PNG_EXTERN void png_read_filter_row_paeth4_neon PNGARG((png_row_infop row_info, 3rdparty/libpng/pngrutil.c:png_init_filter_functions_neon(png_structp pp, unsigned int bpp) 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_UP-1] = png_read_filter_row_up_neon; 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_neon; 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_neon; 3rdparty/libpng/pngrutil.c: png_read_filter_row_paeth3_neon; 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub4_neon; 3rdparty/libpng/pngrutil.c: pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg4_neon; 3rdparty/libpng/pngrutil.c: png_read_filter_row_paeth4_neon; 3rdparty/libpng/pngrutil.c: png_init_filter_functions_neon(pp, bpp); 3rdparty/libwebp/CMakeLists.txt: if("${file}" MATCHES "_neon.c") 3rdparty/libwebp/CMakeLists.txt: set_source_files_properties("${file}" COMPILE_FLAGS "-mfpu=neon") 3rdparty/libwebp/cpu-features/cpu-features.c: * Handle kernels that only report 'neon', and not 'vfpv3' 3rdparty/libwebp/cpu-features/cpu-features.c: if (has_list_item(cpuFeatures, "neon")) 3rdparty/libwebp/cpu-features/cpu-features.c: int has_neon = (hwcaps & HWCAP_NEON); 3rdparty/libwebp/cpu-features/cpu-features.c: if (has_neon) { 3rdparty/libwebp/cpu-features/cpu-features.c: * {"neon", FPU_ARCH_VFP_V3_PLUS_NEON_V1}, 3rdparty/libwebp/cpu-features/cpu-features.c: * {"neon-fp16", FPU_ARCH_NEON_FP16}, 3rdparty/libwebp/cpu-features/cpu-features.c: * {"neon-vfpv4", FPU_ARCH_NEON_VFP_V4}, 3rdparty/libwebp/cpu-features/cpu-features.h: * -mfpu=neon 3rdparty/libwebp/cpu-features/cpu-features.h: * also support NEON intrinsics (see <arm_neon.h>). 3rdparty/libwebp/cpu-features/cpu-features.h: * -mfpu=neon-vfpv4 3rdparty/libwebp/cpu-features/cpu-features.h: * This flag implies -mfpu=neon-vfpv4. 3rdparty/libwebp/dsp/dec_neon.c: /* Adapted from libvpx: vp8/common/arm/neon/shortidct4x4llm_neon.asm */ 3rdparty/libwebp/dsp/enc_neon.c:// Same code as dec_neon.c 3rdparty/libwebp/dsp/enc_neon.c:// adapted from vp8/encoder/arm/neon/shortfdct_neon.asm 3rdparty/libwebp/dsp/upsampling_neon.c:#include <arm_neon.h> cmake/OpenCVCompilerOptions.cmake: add_extra_compiler_option("-mfpu=neon") cmake/OpenCVCompilerOptions.cmake: add_extra_compiler_option(-mfpu=neon) modules/core/include/opencv2/core/cvdef.h:# include "arm_neon.h" modules/core/include/opencv2/core/cvdef.h:# include <arm_neon.h> modules/flann/include/opencv2/flann/dist.h:# include "arm_neon.h" modules/ts/src/ts_func.cpp: cpu_features += " neon"; // NEON is currently not checked at runtime PR |
カレンダー
カテゴリー
フリーエリア
最新コメント
最新記事
(05/02)
(01/25)
(01/15)
(12/04)
(12/01)
最新トラックバック
ブログ内検索
最古記事
(02/21)
(07/12)
(07/12)
(07/18)
(07/20) |