PTAMのコードを読むにあたってライブラリをお勉強

PTAMのコードを読もうと思うのだが、一から全部読むのはだるい。

せっかく、いろいろなライブラリをダウンロードしてコンパイルしたのだから、そのライブラリをお勉強するのが先じゃね?ってことで、ライブラリの名称から内容を調べてみた。

GLEW

GLEW: The OpenGL Extension Wrangler Library。クロスプラットフォームで、OpenGL Extensionが簡単に使える模様。すなわち、ベンダーごとの独自の機能とかが簡単に呼び出せる。glutと組み合わせて使う模様。NVIDIAのSDK10にも含まれているとか。

glutInit(), glutCreateWindow(), glewInit()で使えるようになる。
glewGetErrorString(err)でエラー文字列の取得。

"glew"でコード内を検索したところ、glewInit()とglewGetErrorString()しか使ってない模様。PTAMGLWindow2.cc と fltkgl.hのみ。

OpenGLの関数の命名規則

(T.Teranishi:OpenGL/OpenGL ES:extensions より)

gl*() glの基本関数
glu*() gl utility(?)関数
glX*() X Window用関数
wgl*() MS Windows用関数
ARB*() OpenGL ARB( Architecture Review Board) による拡張関数
EXT*() 複数ベンダーによる拡張関数
SGI*() SGIによる拡張
SGIS*() SGIプラットフォームの一部で利用可能
SGIX*() SGIプラットフォームの一部で利用可能だが研究段階で試用目的のもの
HP*(), IBM*(), INTEL*(), APPLE*(), SUN*(), INGR*()(インターグラフ), NV*()(nVidia), 3DFX*(), MESA*(), ATI*(), I3D*()(Intense3D)などのベンダー拡張による関数。

LAPACK

LAPACK — Linear Algebra PACKage。Fortran77で書かれた数値計算用のライブラリ。BLASライブラリ上で書かれている。includeの中を見ると、f2c.hなるものがある。似たようなものに、LINPACKがある。

BLAS

BLAS( Basic Linear Algebra Subprograms)。ベクトルと行列に関する基本線形代数操作を実行するライブラリのスタンダード。さまざまなベンダーから最適化された実装が出ている。

CMU 1394 camera driver

1394 Camera Driver – Main。Carnegie Mellon University, Robotics Instituteで作られた、フリーのIEEE1394カメラドライバ。

"1394"で検索したところ、libcvdで大量に使われている模様。PTAM自身では、VideoSource_Win32_CMU1394.ccで使われている。がVideoSource_Win32_CMU1394.ccはとっぱらって、工学ナビさまご提供、VideoSource_Win32_EWCLIB.ccを使っているので、関係ない。

pthread

POSIX Threads (pthreads) for Win32。いわずとしれた、POSIX Threadのライブラリ。

"pthread"で検索すると、gvars3、libcvdで使われている。

libjpeg

Jpeg for Windows。JPEGイメージの圧縮展開ライブラリ。

libcvdで使われている模様。

fltk

Fast Light Toolkit (FLTK)。クロスプラットフォームのGUIライブラリでOpenGLと相性がいい。

"Fl_"で検索すると、gvars3で使われている模様。

TooN

TooN – 概要 [Savannah]Tom’s OO Numerics (TooN)。Tom’s object oriented Numerics。University of CambridgeのEngineeringで作られているBLASとLAPACKの機能と、SE(3)とSO(3)の機能をC++のテンプレートライブラリーにしたもの。要するに、MatrixやらVectorのテンプレートライブラリ。libCVDと相性がいい。

"Matix"で検索すると、gvars3、libCVD、PTAMで使われている模様。

libCVD

CVD – 概要 [Savannah]CVD Projects。University of CambridgeのEngineeringで作られているコンピュータビジョンライブラリ。ffmpegとか書かれてるから、動画もOKみたいね。

"#include <cvd/"で検索すると、PTAMで使われている模様。

gvars3

CVD – 概要 [Savannah]CVD Projects。configuration system library。libCVDを補助するライブラリ。

PTAMで使われている模様。

EWCLIB

EWCLIB。Easy Web Camera Library。USBカメラをDirectShow経由で画像入力するためのライブラリ。

VideoSource_Win32_EWCLIB.ccで使われている。

PTAMDependsLibrary
ということで、ライブラリの依存関係はこんな感じ。

gvars、libCVD、TooNは出身がPTAMと同じなんで、毛色も同じなんじゃないかな。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください