最新 追記

ぱぱネット(仮)


2010-02-01 たーーすうーーーーけーーーてーーー! [長年日記]

_ [雑記] 全身が、、、全身が、、、

ボキベキモキグシャー!

動けねーぞおい。2日スキーやるだけでこうなるのか。 なんたる運動不足。会社は休んだ。


2010-02-05 昨日ヨドバシ寄って [長年日記]

_ [Linux] USB-RS232C変換アダプター

シグマAPO

最近RS232Cなんて見たこともない人もいると思うけど.... 組込機器や産業用ではまだ沢山使われてる。 出張先の基板のデバッグにどうしても必要だったので、 ちょいとヨドって、シグマAPOシステムのアダプターを買ってきた。

Linux(kernel-2.6.29)に差してみると...

pl2303: Prolific PL2303 USB to serial adaptor driver
usb 6-4: new high speed USB device using ehci_hcd and address 3

ってことで/dev/ttyUSB0で問題なく使えるようになった。 いや、それだけなんだけどね...。



_ [テレビ] ポニョ〜

チキンラーメン、実際にはすさまじい不味さで吹くけど...... アニメはなんておいしそうなんだあああ('A`)腹減った....


2010-02-08 EZ-USBで遊ぼう(?) [長年日記]

_ [開発][Linux] USBのスループット

趣味なのでしばらく放ってあったのだが、EZ-USBの進捗を書いてなかった。 だれも聞いてないって?そりゃそうか(^^;;組み込み系に全く興味のない人には 役立たないのは許してくれ。

ちょっと思い立ってバルク転送の速度を計測するファームウェアをかいた。

do {
  if ((EP6CS & bmBIT2)) {
    EP6FIFOBUF[0] = lpcnt;
    lpcnt++;
    if (ms_counter < 127) ++ms_counter;
    EP6BCH = BLOCKSIZE >> 8;
    EP6BCL = BLOCKSIZE & 0xff;
    SYNCDELAY;
  }
} while (ms_counter > 0);

EP6にホストから何らかリクエスト(今回はread)があると、 問答無用でFIFOポインタを最大にセットを繰り返す。つまり ホストが読みたい分だけ読めるというわけ。読み出しの単位はあくまでエンドポイント6の 設定による。USB2.0で512byte x 2(ダブルバッファ)に設定しているので、 このループ内のif文は 512バイト1パケット で処理される。lpcntをセット しているのは先頭の1バイトをインクリメンタルカウンタにするため。 本来はデータ全部をチェックするように規則データを埋め込むべきなんだろうが EZ-USBの8051にデータ舐める処理やらせると死ぬほど遅い ため 手抜きチェックとなっている。

終了処理はタイムアウトで行う。最初スタートとストップのコマンドをバルク転送で... とやっていたのだが、同じエンドポイントをコマンドとデータで共有するとエラーが 起きたときに困ったことになる。もちろんEP0,1あたりでコマンドをやりとりする ルーチンを書くのが正道なのだが... EZ-USBにはソフトタイマーがある ので今回はこれを使うことにした。オプティマイズさんのコード丸写しだけども。

unsigned char ms_counter;

void timer0() interrupt 1  //register BANK1
{
  if(ms_counter > 0) --ms_counter;
  TL0 = LSB(0x10000-12000000/1000);
  TH0 = MSB(0x10000-12000000/1000);
}

void timer_init()
{
  TMOD = 0x01;  //GATE0:0 CT0:0 M1M0:01
  CKCON = (CKCON&(~0x08)) | 0x08; //T0M:1(48MHz/4=12MHz)

  ms_counter = 0;
  TR0 = 1;              //enable timer0
  ET0 = 1;              //timer0 irq enable
}

これで約1msごとにグローバルのms_counter変数がカウントダウンされる。 先ほどのバルク転送ルーチンではms_counterが127未満のときは 転送が起きるごとに+1するようになっている。 つまり、127msの間に1回も転送がおきないとタイムアウトしてルーチンを抜ける というわけ。

_ [開発][Linux] ホスト側

LinuxなのでCypress標準のCyAPIは使わず(使えず)、libusbを使うことにする。 バルクリードの典型コードはこんなかんじ。

result = usb_bulk_read(dh, _EP6IN, readbuf, chunksize, _USBTIMEOUT);

ここでchunksizeは前記USB2.0の パケットサイズでなくともよい 。 どうもlibusb(かuser-land USB driver)が物理的なパケットサイズに 分割してくれるようだ。むしろ512バイトなどと設定するとバッファリングが効かずに 性能低下してしまう。ここでは4096バイトを採用することにした。

_ [開発][Linux] ベンチマーク

1台め。いずれもEZ-USBはマザボUSB直結。

  • Athlon64X2 4400+(2.2GHz)
  • ASUS M2A-VM HDMI(AMD780Gチップセット)
  • Linux-2.6.29(libusb-0.1)
SPAN: 561.46 sec.
TOTAL: 4194304000 bytes.
Throughput: 59.806816 Mbps

2台め。ちょっと古い。

  • Pentium4/1.6GHz
  • Gigabyte GA-8PE667(i845チップセット)
  • Linux-2.6.29(libusb-0.1)
SPAN: 266.933 sec.
TOTAL: 4194304000 bytes.
Throughput: 125.703421 Mbps

P4のほうが速いとかもうね...

疑ってチャンクサイズを変更したり試行錯誤したんだが、この傾向は変わらなかった (512未満だと両者とも30Mbpsを切って差がなくなるけど)。あ、どっちもインクリメンタルカウンタ レベルではデータ化けとかパケット欠落はなかったです。

スループットは、いろいろな条件が作用するので一概には言えないけど、 こんなプリミティブな部分で差がつくとはおもわなかった。 USBホストデバイスの出来不出来で案外性能差が出るのかもしれん、という話。 腐ってもIntelなのか??


2010-02-09 うまくいかないなあ [長年日記]

_ [開発][Linux] new ffmpeg

# tar xvjf x264-snapshot-20100207-2245.tar.bz2
# cd x264-snapshot-20100207-2245
# ./configure
# make
# make install
# cd ..
# tar xvjf ffmpeg-checkout-snapshot.tar.bz2
# cd ffmpeg-checkout-2010-02-08
# ./configure --enable-gpl --enable-nonfree \
  --enable-pthreads --enable-x11grab \
  --enable-libfaac --enable-libfaad \
  --enable-libmp3lame --enable-libx264 \
  --enable-libxvid --enable-zlib --enable-libvorbis \
  --enable-libdc1394
# make
# make install

_ [開発][Linux] MPEG-TS to MPEG-TS

# recpt1 --b25 101 - - | ffmpeg -threads 2 -y -acodec libfaad -i - \
  -f mpegts -deinterlace -copyts -vcodec libx264 \
  -vpre default -b 400k -aspect 16:9 \
  -acodec libfaac -ac 2 -ab 192k - | totadd | perl ts.pl

_ [開発][Linux][ワンセグ野郎] 結果惨敗

何をやってたかというと....いわゆる フルセグ野郎 ですな。 しかし常時録画...となるとハードルめっちゃ高いんだ想像以上に(絶対休めないから)。 フルTS記録でプアマンズCELL REGZAを狙うという路線もあるが、 そもそもH.264/AACに変換しないとperlrtmpが食ってくれない。 もちろんMPEG2のままではFlash Playerも食わないだろう。 地デジだけならTSにワンセグが含まれてるから大した問題じゃ ないんだけどねえ。やっぱ BS常時録画したい よね。え?俺だけ?

で....まずAthlon64X24400+だとffmpegのCPUパワーが絶対的に足りない。 15fpsとかふざけてんの?そして不用意に落ちまくる。 TOTを生成して付加するプログラム(totadd)は書いたが、 ちゃんと動いてないらしくts.pl(rec.pl)でidxが作られない。 ファイルも分割されない。番組表データもワンセグ部分しか出ない。 フルセグ複数サービスは対象外か....そりゃそうだな。

こりゃまいった。 トランスコードを見直すにしても、perlrtmpクラスの反応速度を 持ったMPEG2ストリーミングを作るのも、EITフルセグ番組表を作るのも、ちょっとどころじゃない労力がかかりそうだ....前門の虎後門の狼下方の落とし穴。

さしあたり6コアCPUとか欲しいですね。だれかください(笑)

本日のツッコミ(全2件) [ツッコミを入れる]

_ 匿名希望 [いつも、見させて勉強させてもらってます。 これからもがんばって下さい。 あとffmpegでPT2で録画した生MPE..]

_  [TSFILE="input.ts" MP4FILE="output.mp4" ASPECT="16:9" SCALE..]


2010-02-23 Twitterで遊ぶ [長年日記]

_ [開発][Linux] Twitter Streaming API

Twitter Hits 50 Million Tweets Per Dayという記事がありました。 一日五千万件、毎秒600件...という規模が多いか少ないか判別つかないけど、 多分べらぼうに多いんでしょう。

ちょっと興味が出てきたので調べてみると Streaming APIという のが一般に公開されており、 ストリーミングのようにどんどん取得できるようです。 間引きされたサンプルでよいなら... という制限はついていますが、一般人でも アカウントがあれば使える模様。

_ [開発][Linux] twitstream.pl

じゃあやってみよー。

ストリーミングなので「条件指定してPOSTしてレスポンスとして結果」という通常のHTTPリクエストとは 異なり、持続セッションが必要です。PerlだとPOEとかいろいろこの手のフレームワークが 多数存在するのですが....@OMAKASE先生がAnyEvent::Twitter::Streamを紹介していたので、ありがたくマルパクすること にしました。

twitstream.plをダウンロード。 展開したらファイル名をtwitstream.plに変更して、

my $user = '****your_account****';
my $pass = '****your_password****';
my $tz = 'Asia/Tokyo';

この部分を自分のアカウントに変更してあげてください。 実行結果はこんな感じ。あんまり大量には流れてこないようですが眺めているだけでも楽しいです。

実行結果

_ [雑記] 何かに似てると思ったら....

アマチュア無線のメインチャンネル をワッチしてるみたいな、そんな雰囲気。あれは、思えば携帯電話やインターネットを何十年も先取りしたような趣味でしたな(え?まだ続いてる?)。

まあおっさんの昔話なのでやめますが....


2010-02-24 本業が煮詰まって... [長年日記]

_ [雑記] 実に困った話

俺、ここではあんまり会社の話書かない。サイトは上司バレしとるし、 昔実名で書いてた名残りで会社知ってる連中沢山おるし。

でも、もう言いたい。書きたい。

何人もいる取締役の全員が反対しないようになるまで、 技術者が試作も始められないとしたら、 もう何も生まれない と思うんだが.... 俺何か間違ってる?

ここで任天堂のイワッチをひきあいに出すのは、さすがに気がひけるから、 キングジムの ポメラの話 にしよう。役員15人中14人まで反対してたけど、実際にポメラは 複数種ラインナップ持つ、キングジムの看板商品になったのは ご存知の通り....ここで必要なのは「自分はよくわからんけど」 「これはイケるかもしらん」という 社長の決定 だったわけね。

新規商品ってのは概ねそういうモノ。 判断材料をいくら探したって、 この世になけりゃ判断できないのです。あたりまえですね。

結局、ウチは誰も 決定 ができない経営陣なのね。 あーだこーだ批判してるだけ。 だから、商品ラインナップも、今まで何十年も売ってきたようなもの、 穏当でつまらない商品ばかりになっていく。 なぜなら決定しなくてもいいから! で、売上がどんどん縮小して....という悪循環をたどってる。

既存商品の焼き直しは野球でいえばバント。 バントでも稀にセーフにはなるかもしれないけど。 そりゃ振ればかなりの高確率で三振になるだろう。 でもバット振らなきゃ、ヒットやホームランは打てないとは思いませんか?

どうせいっちゅーんじゃ!(絶叫)

んま、こういうわけで、社内に複数モノになりそうなアイデアがあるのに、 世間には出ないのです....ハァ....俺はもう疲れた。

_ [雑記] 気分転換に勉強でもしましょうか

いまホットな分野のクラウドについて以下の本を 本屋さん経由でe-honで注文した!

[24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)(安井 真伸/横川 和哉/ひろせ まさあき/伊藤 直也/田中 慎司/勝見 祐己)| クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ (ITpro BOOKs)(並河祐貴/安達輝雄/ITpro/日経SYSTEMS)

Googleは応答速度が0.5秒遅くなっただけでトラフィックは20%も 減少するそうな。そこまで過激ではなくても、RTT含めたサービスの質は ボディブローのように利いてくるんだと思う。

一介の技術者としては、新しい技術に追いついていくのは 必要かなーとか思っています。まあ気分転換レベルの心構えで新しいことは 成し得ないとは思うけど.....あがくしかねーわな。

本日のツッコミ(全5件) [ツッコミを入れる]

Before...

_ 技術系 [さすが電気業界、最弱の営業と言われるだけは有りますわ。他社よりもあらゆる点で圧倒的に上回る製品を作れ、そうじゃなきゃ..]

_  [まあ電機業界でもデバイスや装置方面はそれでもいいんですよ.... でもコンシューマ相手だとSONYでさえApple..]

_ 技術系 [半コンシューマー、半産業向けなニッチ業界です… 企画能力の問題は有る気は致します。]


2001|04|
2006|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|05|10|

[BANNER]
このサーバーをもう12年も維持しているかと思うとめまいがしますよ。
ツッコミ機能は、ハンドル名が完全日本語じゃないと登録できません。
また、本文にURLが含まれていても登録できません。
いずれもSPAM対策です。
[Panda Papanda]
2010年
2月
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

[Papanda]  [Kuma]  [Tomorin]  [Iron]  [Eiza]  [Dokkin]  [Honya]  [Zyou]  [Tsuyo]  [Bike]  [KoeBBS]  [Chukei]  [portal]  [tvmatome]  [KaoPaku] 

訪問者数:(+2560143)