< OpenCV + IPP + TBB 빌드하는 방법 >
- !! 일반빌드와 속도 테스트 결과 저는 차이가 없었습니다!
* OpenCV 2.4.8 빌드
    - 다운로드, 압축풀기 http://opencv.org/
    IPP설치방법 :  http://codens.info/642
    TBB설치방법 :  http://codens.info/641
    - 환경변수 설정
    IPPROOT = ipp 설치 경로 (끝이 ipp)
    IPP_H_PATH = IPP include 경로(옵션)
    TBB_INCLUDE_DIRS = TBB include 경로
    - CMake 실행
source code : ..xx../OpenCV-2.4.8/sources
build the binaries : ..xx../OpenCV-2.4.8/build2
        - Configure 버튼 클릭
        - 옵션 조정(체크할 옵션)
BUILD_EXAMPLES
WITH_IPP
WITH_TBB
    - 솔루션 빌드
- build2 폴더로 가서 OpenCV.sln 로드 
    -> ALL_BUILD 프로젝트를 시작 프로젝트로 설정하고 선택
        -> 메뉴 : Build -> Build Solution
    -> INSTALL 프로젝트 선택 해서 빌드
        %OPENVC%\install 경로에 빌드한 파일들이 설치된다.
//===============
* 속도 비교
http://www.shervinemami.info/timingTests.html
    - IPP와 TBB를 포함한 빌드와 포함하지 않은 빌드에 속도 차이가 없다. T.T
http://code.opencv.org/projects/opencv/wiki/ChangeLog 을 보면
2.4.3 버전 부터 내부적으로 병렬 처리를 하고있어서 TBB등이 없어도 된다고 한다.
//==============
* bgfg_gmg 프로젝트 속도 테스트 결과
    - BackgroundSubtractorGMG
- 속도 차이는 Debug, Release 만 속도 차이가 남
    Debug : 80ms, Release : 50ms
- 다음은 바꿔도 속도차이 없는 것들
    - IPP, TBB 포함 빌드
    - HAVE_IPP
    - setUseOptimized(true); //CPU 기능 활용
    - setNumThreads(8);
    cv::setNumThreads() 함수에서 TBB( HAVE_TBB )가 선언되있지 않은 경우,
Microsoft Visual Studio를 이용하고 있으면  Concurrency Runtime ( HAVE_CONCURRENCY ) 을 기본으로 사용하게 된다.
2.4.3 부터는 기본으로 병렬프로그래밍을 지원한다.
//=======================
//아래는 그냥 참고용
- 전처리기 
HAVE_IPP;HAVE_TBB;
- include 경로 추가
$(TBBROOT)\include;$(IPPROOT)\include;$(OpenCV_IT)\include;
- library 경로 추가
Debug : $(TBBROOT)\lib\ia32\vc10;$(IPPROOT)\lib\ia32;$(OpenCV_IT)\lib\debug; 
Release : $(TBBROOT)\lib\ia32\vc10;$(IPPROOT)\lib\ia32;$(OpenCV_IT)\lib\release;
- 라이브러리 추가
ippvmmt.lib;ippccmt.lib;ippcvmt.lib;ippimt.lib;ippsmt.lib;ippcoremt.lib;
opencv_core248d.lib;opencv_flann248d.lib;opencv_imgproc248d.lib;opencv_highgui248d.lib;opencv_ml248d.lib;opencv_video248d.lib;
opencv_objdetect248d.lib;opencv_photo248d.lib;opencv_nonfree248d.lib;opencv_features2d248d.lib;opencv_calib3d248d.lib;
opencv_legacy248d.lib;opencv_contrib248d.lib;opencv_nonfree248d.lib;opencv_gpu248d.lib;opencv_photo248d.lib;opencv_legacy248d.lib;
opencv_ocl248d.lib;opencv_ml248d.lib;opencv_video248d.lib;opencv_objdetect248d.lib;opencv_calib3d248d.lib;opencv_features2d248d.lib;
opencv_flann248d.lib;opencv_highgui248d.lib;opencv_imgproc248d.lib;opencv_core248d.lib
'Code > Desktop' 카테고리의 다른 글
| Boost 라이브러리 설치 (2) | 2014.01.26 | 
|---|---|
| 마이크로초(Micro Second) 구하기 (0) | 2014.01.24 | 
| Intel IPP 사용법 (0) | 2014.01.19 | 
| Intel TBB 사용법 (0) | 2014.01.19 | 
| Visual Studio 2013 (2012) 에서 XP 호환 프로그램 만들기 (4) | 2014.01.18 | 










