日記・備考録
Diary/Memorandum

2005 | 2006 | 2007 | 2008 | 2009 | 2010 | 2011 | 2012 | 2013 | 2014/ 1 2 3 4 5 6 7 8 9 10 11 12 | 2015
August September
1 2 3 4 5 6
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
October | Home

2014/10/01〜

...................................................................................................................................

2014/09/29

5月から障害で停止していた Galileo IOV4号機 (E20) の信号送信が再開された様だ。以下はJavad Deltaによる受信結果。ただしE1のみでE5aは受かっていない。また、E5とE6が復旧したという情報も流れていない。なおNovAtel OEM6では受信出来ていないので"all-in-view"受信機でないと受からないと思われる。

...................................................................................................................................

2014/09/27

JPCERT/CC, GNU bashの脆弱性に関する注意喚起, 2014年9月26日

水曜日位から大騒ぎになっているbash脆弱性だけど、CGIでスクリプト使っているサイトほぼ全滅みたいで影響範囲を考えると本当にヤバい問題の様だ。こんな問題が今まで見つかっていなかったということ自体が恐ろしい (すなわち他にも未知の問題があるのではという意味で)。

補足: Ubuntuの標準シェルってbashだとばかり思っていたけど実はdashなのね (これによると以前はbashだったが, 6.10からdashに変更されている)。ということで、今回のbash脆弱性の問題はUbuntuでは発生しない。なお、Ubuntuではシェルスクリプトを#!/bin/shで始めるか#!/bin/bashで始めるかで動作が異なる可能性がある。今まで殆ど気にしてなかったのだけど、これから気を付けよう。(22:00追記)

再補足: ずいぶん昔からsh (bourne shell) を使っている関係で、シェルスクリプトも可能な限り可搬性を考慮してコード書くようにしてるので、bashでもdashでも動くはずなのだけど。ただ export ENV=env なんかは普通に使ってしまっている (shでは動かないけど、それ以外は概ねどのシェルでも動くみたい。昔のshってfunctionやcontinueも使えなかった様な覚えがあるけど、これは記憶違いかも) (9/29追記)

-------------------------------------

IRNSS SIS ICD for SPS (standard positioning service) を送ってもらったので中身を読む。

(1) システムは、3 GSO (GEO) + 4 IGSOの7機構成。GSO位置は経度32.5, 83, 131.5E、IGSO位置は中心経度55, 111.75E。
(2) SPSの信号はL5とS。中心周波数はL5 1176.45MHz, S 2492.028MHz。帯域幅はそれぞれ24MHz及び16MHz。
(3) 測位信号の変調はL5, S共にBPSK(1)、航法データ変調はデータCH, パイロットCH共にBOC(5,2)、Interprex modulationでこれらをマルチプレクスしている。
(3) 測位信号の変調はL5, S共に、SPSはBPSK(1)、RSはデータCH+パイロットCHでBOC(5,2)、Interprex modulationでこれらをマルチプレクスしている。(9/29訂正)
(4) SPSの (9/29追記) 拡散コードはコード長1023のゴールドコード。GPS C/Aコードとタップ位置は同一だがG2レジスタの初期値が違う様だ。PRN1,2がIGSO (55E), PRN3がGSO (83E), PRN4,5がIGSO (111.75E), PRN6がGSO (32.5E), PRN7がGSO (131.5E)。
(5) SPSの (9/29追記) 航法データは50sps、1サブフレーム16bits sync + 584 symbol、計600シンボル。データ部分は1/2 convolutional code (拘束長7) でFECをかけた上で、さらにブロックインターリーブをかけている。さらにサブフレーム単位でCRC24Qパリティを付加。
(6) IRNSS system timeは1999/08/22 0:00 UTCを開始エポックとしてこの時点でUTCとは13秒の差がある。
(7) 座標系はWGS84。
(8) 4サブフレームで1マスタフレーム。サブフレーム1,2にエフェメリス+SVクロックが格納される。エフェメリスはGPS類似 (6要素+補正項)。サブフレーム3,4には電離層グリッド, アルマナック, UTCパラメータ, EOP+電離層パラメータ, ディファレンシャル補正, テキスト等が格納される。
(9) 電離層グリッド (MT5) はインド領域IGPのGIVEIとGIVDで、1メッセージに15 IGP分。6メッセージでフルセット90 IGP分 (10×9, 5度間隔)。
(10) EOP+電離層パラメータ (MT11) ではKlobucherの係数も提供される。
(11) ディファレンシャル補正 (MT14) は"AutoNav mode"の衛星の軌道クロック補正係数。"AutoNav mode" は7日分のエフェメリスとクロックセットを衛星に保存する運用モードの様。
(12) 航法メッセージの最大送信間隔はエフェメリスおよびSVクロックは48秒, 電離層グリッドは5分, アルマナックは60分, UTCパラメータは20分。

ということで、見たことのない信号構造 というのはBPSKとBOCのInterprex modulationが原因だった様。次のIRNSS衛星 (IRNSS-1C) の打ち上げは10月に予定されている。

補足: Interprex modulationについてはGNSS Application and Methodsのp.467で触れられている。どうやって復調すれば良いのか全然分からないのだけど、一部のIRNSS衛星の信号は日本でも受かるはずなのでSDRをやられている方は腕試しにどうぞ。信号確認するだけならL5 BPSK(1) なので簡単。ただ航法データの再生は相当大変そう。(8:30追記)

再補足: これって航法データ再生するためには最低16MHzの帯域とBOC(5,2)の復調が必要ってことだよね。なのに測位信号はBPSK(1) なのか。なんでこんな信号構造にしたのか、かなり謎な設計ではある。(8:37追記)

再々補足: BOC (5,2) はRS (restricted service) 用で、SPS用としては BPSK(1) に航法データが載っているのでは、とご指摘頂いた。
ということで、もう一度良く読んでみたら、確かに、SPS BPSK (1) + RS BOC (5,2) Pilot + RS BOC (5.2) Data のInterprex modulationで、ICDに記載があるのはSPSの航法データの様。(RSの航法データがSPSと同じかは記載が無い) ということで、昨日書いた記述を修正。もし実信号で確認された方がいたら教えてください。(9/29追記)

...................................................................................................................................

2014/09/26

Indian Regional Navigation Satellite System (IRNSS)

IRNSSのSIS-ICDが公開されたらしいので、ユーザ登録してログインを試みているのだけど、登録メールアドレスに送られてきたリンクをクリックしても "Invalid verification code" となって正常にログイン出来ない。ということでICDもダウンロード出来ない。もしうまく行った方がいらっしゃったら、ICD送って頂けるとありがたい。

...................................................................................................................................

2014/09/24

日経, GPS監視「準天頂衛星」7基体制へ 政府、新計画に明記, 2014年9月24日

全部読むにはログインが必要なので全文引用。

> 政府は地上の位置情報を高い精度で測る「準天頂衛星」の運用体制を拡充する。日本版の全地球測位システム
> (GPS) と呼ばれるもので、現在の1基から7基体制の早期確立を目指す。体制が整えば自前のシステムで国内
> 情報をカバーできるという。12月に取りまとめる2025年度までの新宇宙基本計画に明記する方針。15年度か
> ら後継機開発の検討に入る。
> 人工衛星による地上や海上監視には、宇宙からの高精度な位置情報の測位が大切になる。日本は米国の運用し
> ているGPSに依存している面が多いのが実情だ。これが攻撃などで無力化された場合に備え、独自で運用でき
> る測位システムの確立を急ぐ。
> 政府は10年代後半にも準天頂衛星を3基打ち上げ、4基体制を構築することを決定済み。4基体制でも米国のGPS
> 衛星と組み合わせなければ運用できず、独自のシステムで日本上空を常時測位するには最低7基の体制が必要に
> なる。25年度が最終目標年度となる新計画に7基体制を明記し、同年度までの配備完了をめざす。
> 米国のGPS以外の測位システムではロシアの「グロナス」のほか、欧州が「ガリレオ」、中国が「北斗」の整備
> を進めている。宇宙における安全保障環境の変化もあり、米国も日本に対し、人工衛星による海洋監視や宇宙空
> 間の秩序維持での連携強化を求めている。準天頂衛星の運用拡充はその一環でもある。
> 10年に打ち上げられ、運用中の準天頂衛星「みちびき」が20年に設計寿命を迎えることを受け、後継となる衛
> 星の開発、整備にも着手する。15年度予算案で研究費用を盛り込む検討に入った。
> 安倍晋三首相は宇宙空間を安全保障で積極活用するため、新計画を年内に策定するよう指示した。日本周辺の安
> 全保障環境が悪化する中、人工衛星による船舶監視や情報収集衛星の増設なども盛り込む方向だ。

-------------------------------------

Harddrive Reliability Update - Sep 2014

どれくらい信頼がおけるデータなのかは分からないけど個人的な感覚とは一致している。ということで、このデータを信じるならSeagateは買ってはいけない。まあ負荷かけ続けるとHGSTでも結構壊れるけどね。経験的には冷却をちゃんとするのも重要と思う。

-------------------------------------

4年も間があると何もかも進化していて結構感動。指紋認証とかGoogle Mapとか。メールでPOPが使えるようになったのも有難い。Speed Testしたら13Mbpsとか出るんだけど、これって普通? ただバッテリの持ちはiPhone 4の方が良い感じ。

補足: 場所によっては60Mbpsとか普通に出るのね。ついこの前までアナログモデムでピポパとやっていた世代としては、ちょっと信じられない。(9/25追加)

...................................................................................................................................

2014/09/23

iPhone 6来た。iPhone 4からの機種変なので4年ぶり。web頁見やすくなったのは吉。

-------------------------------------

SmartPPP: Precise Point Positioning online Service. {Quick. Easy. Smart}

新しいオンラインPPPサービスなんだけど、PPPエンジンにRTKLIB 2.4.2 (RNX2RTKP) を使ってくれているらしい ( "Inspired by RTKLIB" ! )。正直これ位ならWeb AP開発に慣れたエンジニアなら1週間もあれば構築出来る訳で少しは他のサービスと差別化しないと、は思った。ついでなのでCSRS-PPP, GAPS, APPS, MagicGNSSと1年位のデータで精度比較してくれると、色々と参考になるのだけど。

...................................................................................................................................

2014/09/20

S.Banville, Improved convergence for GNSS precise point pointining, UNB Department of Geodesy and Geomatics Engineering, Technical Report No.294, July, 2014

PPPに関するPh.D論文。著者のSimonはこれら一連の研究で今年のParkinson Awardを取っている。略歴みると、2009年にはインターンシップで日本にも滞在している。現在はNRCan (Natural Resources Canada) のエンジニア。内容は後から読む。

...................................................................................................................................

2014/09/19

InsideGNSS, Falling Prices Will Spur Innovation, Competition in High-Precision GNSS Market, September 18, 2014

高精度GNSSマーケットの今後というテーマでのION GNSS+でのパネル。パネラはGSA, Topcon, Trimble, Septentrio, Leica, Wuhan Navigationから。Wuhan Navigation CEOのHanによると、“An iPhone with high precision chip will become true!”, "... chip prices would fall to $20 with the price for high-precision modules plunging to $100 by 2020"。ということで、やはり中華メーカに期待するしかないのか。"... the volume of real-time kinematic (RTK) GNSS units sold in China to from 30,000 in 2011 to several hundred thousand units this year." とのことで、中国ではRTK受信機が年間数10万台出ているらしい。1台\100万ならこれだけで数千億円/年の市場だけど、多分1台\10万位かな。

...................................................................................................................................

2014/09/18

NANU 2014071

2014/8/1に打ち上げられたGPS Block IIF 7号機、SVN68/PRN09が2014/9/17に運用開始。

...................................................................................................................................

2014/09/15

やっと、SVNのブランチとマージの使い方がわかったぞ。今までtrunkでしか開発してなかったのだけど。ただ、マージのオプションの意味がまだ良く分かっていない。

...................................................................................................................................

2014/09/13

ION GNSS+ 2014, Show Daily, September 12, 2014

鈴木君、ベストプレゼンおめでとうございます。

...................................................................................................................................

2014/09/12

iPhone 6 予約。iWatch、GPSが付いてたら買いたいのだけど、付いてなさそうでかつ1日しかバッテリが持たない (?) (参照)。

-------------------------------------

メモ: VNC上でDキーで全ウインドウ最小化してしまうバグ対策: 参照。Ubuntu 13.04ではdconf editorでキーバインド修正が必要。再度調べて解決するのに小一時間もかかってしまった

-------------------------------------

QZ-vision News, MADOCAプロダクト リアルタイムインターネット配信開始のお知らせ, 2014年9月11日

とりあえず貼っておく。衛星はGPS+GLO+QZSで軌道時刻推定エンジンはMADOCA v0.6.5_p2とv0.6.6。使用データは全46局。NTRIPキャスタのアカウントを取るためには申請が必要とのこと。軌道はCoMの様だが、これだとアンテナモデルを提供する必要があると思う。

...................................................................................................................................

2014/09/11

GPS World, Galileo Provides Updates on FOC Anomaly, GLONASS a No Show, September 10, 2014

今週、米フロリダで開催されているION GNSS+のパネルでGalileo FOC衛星の最新状況について報告があった様だ。この記事によると、(1) 打上失敗原因の調査は継続中で最終調査報告は来月。報告まで次の打上日程は保留。(2) 問題の影響を検討中だが出来る限り衛星を運用に組み込みたい。(3) 現在衛星ペイロードはオフ。(4) バンアレン帯の放射線による衛星障害を避けるためと、ドップラ最大値を下げて信号捕捉・追尾を容易にするため、早急に近地点を上げる軌道制御をしたい。ただし将来の軌道保持のための燃料を残す必要がある。(5) 特別アルマナックのため未使用ビットの使用を検討中。(6) コンステレーション中で衛星を最大限利用するための"rephasing"を検討中。

残燃料次第だが、とりあえず軌道を円軌道に近く修正して、なんとか運用継続したいという意向の様だ。TLEをみると長半径が26,174 km、離心率が0.232。ということは近地点高度13,723 km、遠地点高度25,868 km。ノミナル高度が23,222 kmだから、それに比較して近地点はかなり低く、遠地点は少し高い、ということになる。バンアレン帯の外帯は高度20,000 km位まである様だが、構造見ると磁極では高度が下がるので現在の軌道でかかるかどうかは微妙なところ。

...................................................................................................................................

2014/09/09

Haswell-EPが発表されたので、組むといくらくらいになるか試してみた。System Worksのフルタワー

Xeon E5-2699v3 (18 core) × 2 + 8GB DDR4-2133 ECC × 16 + Intel 520 SSD 480GB × 2 + HGST HDD 4TB × 4 + PS 1500 W Sliver。

以上で価格は\1,940,220 也 (税込)。

ということで、\200万出せば、36コア、128GBマシンが手に入ることが分かった。AVX2が使えて、最大16FLOPS/clock/coreだから、2.3GHzで16×2.3G×36 = 1324.8GFLOPS。Turbo Boostで3.6GHzまでは上がるけど、フル稼働でここまで上げるのは無理だろうなあ。36コアまでスケールするAP作るのも大変だし。GeForce Titan Black 1台12万で1.3TFLOPSの方が良い気はする。メモリ6GBしかないけど。DDR4メモリが思ったより高くなかったので、もしかするとHaswell-E 8コアで1台組むかもしれない。

...................................................................................................................................

2014/09/07

GitHub, RTKLIB - branch rtklib_2.4.3

ということで今日時点での版で2.4.3のブランチ作った。TortoiseGitだと、右ボタンメニューの"Commit"実行して"new branch"をチェック。ブランチ名入れて"OK"。これで、ローカルリポジトリにブランチが作成される。この状態で"Push"実行すれば、リモートリポジトリ (GitHub) にも自動的にブランチが追加される様。

主な変更は、RTKPLOTの天空画像読み込みとRTKNAVIの表示モード追加。今後2.4.3への変更は出来るだけ迅速にGitHubのrtklib_2.4.3 ブランチに反映する予定。とりあえずベータ版のAP使うだけなら、rtklib_2.4.3 - RTKLIB/binの下のexeファイルを指定して、"Raw"ボタンを押すとバイナリが落ちてくるので、それを既存のrtklib/binの下のexeファイルと置き換えて下さい。もちろんGit使いの方はGitHubからクローンかプルしてもらえば良い (参考)。

-------------------------------------

RTKLIB 2.4.3 正式版は来年春くらいまでにはなんとかしたい。現在考えている主な変更は、(1) PPP, PPP-ARエンジンの全面書き換え。(2) PPPローカル補正 (電離層、対流圏) のサポート。(3) NTRIPキャスタAPの追加 (またはSTRSVR, STR2STR拡張)。 (4) "matched solution" モード追加。(5) "Stop and Go" モード追加。(6) 衛星除外アルゴリズム改善。(7) ISB, IFBの校正機能追加。(8) GUI APの操作性改善、機能追加。GUI AP開発環境 (C++ builder) 変更、Androidサポート、INS/GNSS統合、APIのpython binding、なんかはずっと先の予定。(1) は現在の実装があんまり良くなく、もう少し何とかしたいので。状況によっては2.4.2のバグフィックス版を2.4.3にして、機能拡張版は2.5.0とするかもしれない。なお、beta版については、GitHubにブランチを作ってそちらで提供をする予定。

-------------------------------------

RTKNAVIに色々と表示モードを追加。以下はRTKと単独測位の例。この機能は2.4.3に入る。

...................................................................................................................................

2014/09/06

readwrite.jp, Git 対 Subversion: 長引く争い, 2014年1月24日

Git vs SVN という対決は色々ある訳だがとりあえず貼っておく。私自身のVCSの履歴はSCCS→RCS→VSS→SVN→SVN+Gitと長い。Git使い始めた理由は簡単でRTKLIBをGitHubでホストしたから。未だにブランチもまともに使えないへたれユーザなので偉そうに比較する資格はないのだけど、SVNはTortoiseSVNの出来が秀逸なのが最大の利点。Gitはローカルリポジトリを分けて管理できるのが最大の利点。TortoiseGitの出来が良ければGitに全面移行するのだけど。ただGitもSVNも機能が多すぎて殆ど使いこなせていない。

...................................................................................................................................

2014/09/04

古屋 他, GSILIBの開発, 国土地理院時報 2014, 125集

「... マルチGNSSによる高精度測位技術を公共測量に適用するための標準化に向けた実証実験や緊急時の地殻変動把握のためのツールとして利用を進めていく予定である」とのこと。早く1版公開してね。

補足:「学術用の解析ソフトウェアRTKLIB」とあるのだけど、「学術用」って何? もともと「研究目的で開発した」と言えばその通りだけど、多くのユーザは研究目的で使っているのではない訳で。それに最近は義務と趣味だけで開発続けているだけなのだけど。(9/5追記)

...................................................................................................................................

2014/09/03

国土地理院、電子基準点データ提供サービス

国土地理院の電子基準点データ提供サービスがニューリアルされそれに伴いユーザ登録が必要になったようだ。電子基準点の上空写真が提供される様になったので、試しにRTKPLOT 2.4.3 b1のスカイプロットで表示してみた。950228 世田谷。上空写真の校正データが提供されていないので完全な調整は無理だが、画面を見ながら写真の端がスカイプロットの端に重なる様に手動で調整している。これ位の大きさになると少し操作性が悪くなるので、再サンプルの速度を上げたいところ。この局の場合、上空写真では北東-東方向10度以下の視程がありそうに見えるが、信号がトラッキングできていない。上空写真の日付は2009/10/23、観測データの日付は2014/9/1なので、その間に建物が立ったか、樹木が繁ったか、したのではないかと推測される。


本図の作成には国土地理院の電子基準点データを利用させて頂きました。

-------------------------------------

昨日の竹内郁雄の記事は面白いだけでなく大変に含蓄が深い。しかし、私も昔は今は亡き「bit」誌をずっと購読していたのだった。若い頃の坂村健の連載とか面白かったなあ (まあ歳が分かる)。

...................................................................................................................................

2014/09/02

あんまり大した話ではないのだけど「... 銀行の利息計算などに必須の日数計算 (何年何月何日からの別の某年某月某日までの日数の計算) のプログラムの行数が恐ろしく大きいという。(中略) じゃ、数百行? と聞いたら、なんと10万行であった...」(参照) って、さすがにホントかね。ちなみにRTKLIBだと似たような関数は、epoch2time() でコメント除いて12行。 ただし、この関数は1970年以前と2100年以降は使えない (32 bit time_t 環境では2038年以降も)。

この記事、「Lispの神様」竹内郁雄の連載なのだけど、「では、バグ発見の極意は何か? 私が思うに、トマソンを発見するときと同じで、違和感を感じるセンスである。」、「... ほとんどの巨大ソフトウェアは、こういった、触るに触れない、大量の元祖トマソンを抱えているのではなかろうか ...」。「トマソン」とは何かは元記事を参照。

補足: 妖怪「ユーザインタフェー」、「困憊羅」、「毒面人」、「陰照」、「いきなりメッセージをしてしまってごめんなさい」... (笑)。(参照)

-------------------------------------

RiaNovosti, Galileo Satellites Incident Likely Result of Software Errors, August 28, 2014

Galileo衛星の打上失敗原因はFregat-MTのソフトウェア不具合らしい。Roscosmos関係者によると「組込ソフトウェアのエラーにより統合管制システムの非標準操作が行われた様だ。その結果上段ステージは誤った飛行計画を受け取った。組込ソフトウェアに従いこの計画が実行されたため、機器は不正な目的地に運ばれた」。

"integrated management system" が地上システムを指すのか、Fregat-MTの搭載システムを指すのかは曖昧。全く他人事ではなかったりする。

...................................................................................................................................

2014/09/01

Trimble, TSIP Reference, Revision C, April 1999

チェコのRTKLIBユーザからTrimbleが繋がらないのでTSIPサポートしてね、と問い合わせ。まずTSIPとは何か。調べると "Trimble Standard Interface Protocol" の略だそうだ。リファレンス500頁以上あるし、文書も更新されていなくて古そうなので、ちょっとサポートする気になれないんだけど。どなたか使っている人います?

-------------------------------------

C++builderでのbitmap操作のメモ。

(1) GDI関数 GetObject() でbitmapハンドルからbitmap情報を取得。
(2) bitmap情報のbmWidth,bmHeight,bmWidthBytesには幅、高さ、1ラインバイト数が、bmBitsには画像データへのポインタが入っている。
(3) bitmap自身はDDB (device dependent bitmap) なので構造は生成方法に依存するが、JPEG画像をLoadFromFile()で読み込んでAssign() でコピーして生成したbitmap画像データは、1ピクセルRGB24bitの配列にlなる様だ。この画像データは(2)のbmBitsを使って直接アクセスできる。
(4) 以上より読み込んだJPEG用と再サンプリング用bitmap間で(3)により直接画像データを操作することができる。

画像再サンプリングのコードはこんな感じ。疑似アフィンとか使ってないけど、小さめの画像なら速度的に十分実用になる。

// resample image pixel bi-linear -------------------------------------------
#define ResPixel(img1,x,y,b1,img2,i,j,b2) {\
    int ix=(int)(x),iy=(int)(y);\
    double dx1=(x)-ix,dy1=(y)-iy,dx2=1.0-dx1,dy2=1.0-dy1;\
    double a1=dx2*dy2,a2=dx2*dy1,a3=dx1*dy2,a4=dx1*dy1;\
    byte *p1=(img1)+ix*3+iy*(b1),*p2=p1+(b1),*q=(img2)+(i)*3+(j)*(b2);\
    q[0]=(byte)(a1*p1[0]+a2*p2[0]+a3*p1[3]+a4*p2[3]);\
    q[1]=(byte)(a1*p1[1]+a2*p2[1]+a3*p1[4]+a4*p2[4]);\
    q[2]=(byte)(a1*p1[2]+a2*p2[2]+a3*p1[5]+a4*p2[5]);\
}
// update sky image ---------------------------------------------------------
void __fastcall TPlot::UpdateSky(void)
{
    BITMAP bm1,bm2;
    double x,y,xp,yp,siny,cosy;
    int i,j,k,w1,h1,b1,w2,h2,b2;
    
    if (!GetObject(SkyImageI->Handle,sizeof(bm1),&bm1)||
        !GetObject(SkyImageR->Handle,sizeof(bm2),&bm2)||
        bm1.bmBitsPixel!=24) return;
    w1=bm1.bmWidth; h1=bm1.bmHeight; b1=bm1.bmWidthBytes;
    w2=bm2.bmWidth; h2=bm2.bmHeight; b2=bm2.bmWidthBytes;
    
    if (w1<=0||h1<=0||b1<w1*3||w2<=0||h2<=0||b2<w2*3) return;
    
    memset(bm2.bmBits,224,b2*h2); // fill bitmap by silver
    
    siny=sin(SkyFov[2]*D2R);
    cosy=cos(SkyFov[2]*D2R);
    
    for (i=0;i<w2;i++) for (j=0;j<h2;j++) {
        xp=w2/2.0-i;
        yp=j-h2/2.0;
        x=SkyCent[0]+cosy*xp-siny*yp;
        y=SkyCent[1]+siny*xp+cosy*yp;
        if (x<0.0||x>=w1-1||y<0.0||y>=h1-1) continue;
        ResPixel((byte *)bm1.bmBits,x,y,b1,(byte *)bm2.bmBits,i,j,b2)
    }
    UpdatePlot();
}

補足: 以上のコードで640x480の画像再サンプリングで0.06秒 (BL) 、0.03秒 (NN) 位 (Core i7 2600K, BCC 32 bit)。64bitでgcc使えばもっと速いはず。なお、本格的な画像処理ならOpenCV使う方が良い。チェッカーボード使ったカメラ校正なんかはすぐ出来るし。まあ、覚えることが多くて使いこなしは大変だけど。(19:44追記)

...................................................................................................................................

〜2014/08/31


Home by T.Takasu