RM64でKAEDEのライブラリーを使用して、Ethernetサーバを作っています。(TCP/IP)
サーバーから画像データ(150KB)を送るのですが、1秒間に10数回しか送れません。
20から30回ぐらい送りたいのですが、何か方法はないでしょうか?
下記のように送っています。
1.接続確認
client = server.available(); if (client) { //
2.送信
client.write((uint8_t*)&m_respHead,sizeof(m_respHead));
eagleさん、こんにちは。150KBの画像データということはQVGA(320×240) RGB565といったところでしょうか? これをRAWデータで(つまりブラウザで見られるようにする為にわざわざJPEGエンコードするなどということはせずに)どんどんサーバーにアップロードするシステムを開発されているところですか?何かヒントになる情報はないものかと思い、CQ出版社のInterface誌2014年11月号に掲載されていた、GR-KAEDEで同じ画像サイズでネットワークカメラを実装した人のチューニング記事を読み直していたところ、処理時間を示すオシロの画面コピー(同誌104P 図9)で画像キャプチャ時間が(RX64M内蔵PDCユニットを使っていても)50msになっていることに気付きました。ひょっとすると、ネットワーク周りをどう頑張ってみてもアップロード性能は20回/秒が限界かも知れません。また、この20回/秒という数値も、画像データのキャプチャとサーバーへのアップロードを同時に行うような仕組み(例えば、画像データ領域を2画面分確保してキャプチャとアップロードを交互に同時に行うとか、キャプチャの進行状況を監視しながらキャプチャ済みになった部分から随時アップロードするとか)にして、ようやく実現出来る性能というところかも知れません。そのことを踏まえつつネットワーク周りに話を戻すと、キャプチャ済みの同じ画像データをひたすら繰り返しサーバーにアップロードするようなことをしたら、どれくらいの回数アップロード出来るか確認してみてはどうでしょうか? これで20回/秒を超えることが出来ていれば、(楽観主義な私の目から見ると)まずまず悪くない状況のような気がします、、、参考リンクCQ出版社 Intarface誌 2014年11月号 目次特集徹底研究!指先サイズ スーパーカメラhttp://www.kumikomi.net/interface/contents/201411.php第9章27MHz画像キャプチャOKのカメラ向きワンチップでJPEG圧縮も512KバイトRAM内蔵!最新RX64Mで最小ネットワーク・カメラ記事見本(記事の最初の頁のみ)http://www.kumikomi.net/interface/sample/201411/if11_097.pdfなお、同記事では、GR-KAEDEをウェブサーバーにしてブラウザから見られるようにする為にJPEGエンコードを行っていて、この処理がボトルネックになって5回/秒のフレームレートになっているようです。(ちなみに、記事中(同誌98P)には、JPEGエンコードせずにRAWデータのままなら15回/秒以上のフレームレートも可能、と読み取れる文面もありました、、、)
fujita nozomu様wrote: said:GR-KAEDE のカメラモジュール akizukidenshi.com/.../ であれば仕様として > ・画像サイズ:VGA(640x480)/QVGA(320x240) > ・フレームレート:最大30fps(VGA)/最大60fps(QVGA ということになってるので、320x240 のキャプチャで 20回/秒 しか出ないということはないと思います。 引用終わり
fujita nozomu様wrote: said:RX64M の PCKO 出力は仕様上 PCKDIV で PCLKB の 2分周も設定可能なので 24MHz 動作も可能ということで、製品のスペック上限に近い使い方はできそうな感じですね。 GR-KAEDE のライブラリ で PCKDIV に 6分周を使用してる理由はわかりませんが。 引用終わり
> 藤田様もソースを御覧になられて、GR-KAEDEのライブラリでは20fpsの設定(つまりキャプチャ時間は50ms必要)になっているのではないかと思われたのですね。 ソースは見ましたがカメラモジュールのクロックに 8MHz を使用すると キャプチャに 50ms を要するかは確認してません。