忍者ブログ
日記です.自分用のメモ代わりに書くことが多いです.
1 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 29 30
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Quartus IIでまたもや乗算を行う必要があったのでMegafunction WizardからLPM_MULTを作って使ってみた.

作るときに必要な設定は入力データのビット数,1入力か2入力か,signedかunsignedか,

1クロックで終わらせるかパイプラインにするか,など.

今回の使用目的は二乗(square)を計算するためだったので1入力でおk.

とりあえず1クロックで終わるようにしてやってみると(入力26ビット),

今使用中のFPGA(Cyclone EP1C12F324C8)だと60MHzほどで動作した.

これは要求動作速度50MHzをクリアしてるから1クロックで十分.

今回はsquareだったから60MHz出たが普通の乗算(2入力)でやるともう少し遅くなると思う.

そのときに要求速度に間に合わないときは2段なり3段なりのパイプラインにしてやればいい.

補足:

Quartus II のバージョンは7.2sp1.MEMMULTを使ったときは7.1だったが,そのときはLPM_MULTは

こんなに使いやすくなかった気がする.すでにアンインストールしているのでどうしようもないのだが.



スタート→ファイル名を指定して実行→msconfig

とするとシステムのサービスやスタートアップなどをいじれる.初めて知ったよ.

ここでipodserviceやらiTunesHelperやらrealschedやらを殺すことができる.

またすぐ復活するんだろうけど...



Windows XP SP3 RCを試してみた

Windows XP SP3 Yields Performance Gains

Update: Re-Testing Vista w/2GB RAM, Office 2003

SP3はSP2よりOfficeプログラムが10%速くなったとあるがこれはOfficeだからだろうなぁ.

それよりもVista遅すぎだろw
PR
ssh - Secure SHellでリモートログインするときにパスワードを入力するのが面倒な人(俺含む)のために,

パスワード無しでログインする方法をお届けします.(当然のことですがサーバ側で許可されている場合に限ります)

1.認証ファイルを作る

# ssh-keygen -d -f ~/.ssh/nopass-dsa -N ''
or
# ssh-keygen -d -f ~/.ssh/nopass-dsa -N '' -C yourname@yourhost


(-C以降はコメントです.特に必要ありません.)

このコマンドを実行するとnopass-dsaとnopass-dsa.pubが~/.sshに作成されます.

nopass-dsaは秘密鍵,nopass-dsa.pubは公開鍵です.秘密鍵は人に渡してはいけません!

一度認証ファイルを作っておけば次からはパスワード無しでのリモートログインが可能になります.

2.公開鍵をリモートホストに登録する

まず登録するリモートホストにnopass-dsa.pubをsftpなりscpなりで転送します.

# scp ~/.ssh/nopass-dsa.pub remote_name@remote_host:


(もちろんlocal_hostとremote_hostのユーザ名が同じ場合は名前は省略していいです.)

リモートホストにログインして公開鍵を.sshディレクトリに置きます.

.sshディレクトリが存在しない場合は作成します.

# ssh remote_name@remote_host
Password:
# test -d ~/.ssh || mkdir ~/.ssh
# mv nopass-dsa.pub ~/.ssh/authorized_keys
# chmod 600 ~/.ssh/authorized_keys







ここではPermissonの変更にchmodを使用していますが,umask 077してからcatしてもいいです.(←どうでもいい)

3.ログインする

# slogin -i ~/.ssh/nopass-dsa remote_name@remote_host


or
# ssh -i ~/.ssh/nopass-dsa remote_name@remote_host



でパスワード無しでログインできます.

リモートホストが複数ある場合でも2の作業を行うだけでログインできるようになります.

もちろん,-Yや-Xオプションを付ければXの転送もSSH経由で行うことができます.

パスワード無しでログインできたら,aliasしておくと便利です.

# alias rlogin='slogin -i ~/.ssh/nopass-dsa'
# rlogin remote_name@remote_host




rloginにaliasしているのはr系コマンドはsecureじゃないからです.

4.おまけ1

sftpはよく分かりませんが,scpもパスワード無しで利用することができます.

# scp -i ~/.ssh/nopass-dsa hogehoge.txt remote_name@remote_host:~/hogehoge.txt



この場合もaliasしておけば便利に使えます.

# alias rcp='scp -i ~/.ssh/nopass-dsa'
# rcp hogehoge.txt remote_name@remote_host:aho.txt
or
# rcp remote_name@remote_host:hogehoge.txt aho.txt






5.おまけ2 - SSHの接続を共有する

~/.ssh/configに

Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p





と書くと既存のコネクションを利用してパスワード入力無しにログインできるらしい.

が,失敗しました.設定の方法がよく分かりません...



参考にしたページ

404 Blog Not Found:tips

OpenSSHの利用

cuspy memo
参考にしたページ:PSP Wiki / LoadAviUtlInputPluginでds_input.auiを利用して入力



ある動画ファイルをこの前の記事の方法でエンコードしようとしたら,エラーが出ました.

携帯動画変換君のログを見るとどうやらその動画ファイル,WMV形式でエンコードされているみたいで,

ファイルのプロパティで見るとやはりWMV形式でした.

なんでWMV形式のファイルの拡張子をAVIにするんでしょう.それはよく分かりませんが,

今回はWMV形式のファイルをPSP向けにエンコードする方法を調べてみました.

WMVだったらそのままでもPSPで再生できますが,ファイル容量が大きく,

また画像サイズが合っていないのでAVC形式にしようじゃないか,ということです.

変換方法は一番↑に載せたページ(PSP Wiki)を参考にしました.

①Avisynth2.5系をインストールする.ここからAvisynth_257.exeをダウンロード・インストールします.インストールはチェックとかいじらないでOKです.

②warpsharp.dllをインストールする.ここからwarpsharp_2003_1103.cabをダウンロードし,Avisynthのpluginsフォルダに置きます.

③ds_input.auiをダウンロードする.ここからds_input024.lzhをダウンロードし,ds_input.auiを適当な場所に>置く.携帯動画変換君のとこでい>いと思います.

④携帯動画変換君のcoresフォルダに次の内容のAVS_Skelton2.avsを作成

 LoadPlugin("[warpsharp.dllが存在するPATH]warpsharp.dll")
 LoadAviUtlInputPlugin("[ds_input.auiが存在するPATH]ds_input.aui", "DSInput")
 DSInput("<%InputFile%>")
 return last

一行目と二行目を自分の環境に合わせて変更してください.

⑤携帯動画変換君の3GP_Converter.iniの[AviSynth]を編集する.私は次のようにしました.

 [Avisynth]
  ;Ext0=WMV:\cores\AVS_Skelton.avs
  Ext0=WMV:\cores\AVS_Skelton2.avs
  Ext1=WMA:\cores\AVS_Skelton.avs
  Ext2=ASF:\cores\AVS_Skelton.avs
  Ext3=AVI:\cores\AVS_Skelton2.avs

Ext3を加えると拡張子が.aviのファイルもWMVファイルと同じ方法で変換します.

これは普段はコメントにしておいて拡張子がAVIのWMV形式ファイルを変換するときにだけ使うようにします.

もちろんファイル名の方を.aviから.wmvに変更してから変換君に入れる方法でもいいです.

というか後者の方がいいですかね.ま,お好みで.

<終わり>

前回ちょこっと書いたら研究室の同期にkwskって言われたので備忘録として書いておきます

注:この記事はPCに関するある程度の知識を持っている方を対象としています.

またこの記事を書いている時点での最新のシステムソフトウェアはVer 3.71です.

PSPで動画を観るにはMP4形式にエンコードする必要がありますが,

そのツールには

Image Converter 2 Plus(有料)

・携帯動画変換君(フリー)

があります.前者は有料ですがボタン一つでできるらしいです.

ここでは後者の携帯動画変換君を利用する方法について書きます.

①上記サイトからダウンロードする.現時点での最新版のバージョンは 0.34です.ダウンロードしたら適当な場所に解凍します.

②Setup.exeを起動し,下から二番目の「機種別設定:MP4ファイル, PSP向け設定」を選びます.

一番下のでもいいですが,システムソフトウェアがVer 2.80以上だとリネームする必要がないですので

下から二番目のでいいと思います

③生成された「Transcoding.ini」を適当なエディタで開きます.

PSPでは圧縮方式としてMPEG-4とAVC形式の二種類が使えます.

AVCの方が効率の良い圧縮ができるようなので(本当かどうかは知りません)ここではAVCを使います.

ファイルを開くとAVCの設定は一番下にあります.

Item18の部分はコメントアウトされているのでItem18に自分でコマンドを書きます.

Item16やItem17を使ってもいいのですが,このままだとPSPのフルサイズに合っていませんので自分で書くことにします.

基本的にはItem17のコピーです.コピーしたものの320x240の部分を480x272にし,-g 250の後に-vlevel 13を加えます.

すると以下のようなコードになります.



[Item18]
Title=AVC 480x272/29.97fps/VBR QB25 ステレオ/128kbps
TitleE=AVC 480x272/29.97fps/VBR QB25 Stereo/128kbps
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -title "<%Title%>" -timestamp "<%TimeStamp%>" -bitexact -vcodec h264 -coder 1 -bufsize 128 -g 250 -vlevel 13 -s 480x272 -r 29.97 -qscale 25 -maxrate 1500 -acodec aac -ac 2 -ar 48000 -ab 64 -f psp "<%OutputFile%>.MP4""
Command1=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 160x120 -an "<%OutputFile%>.jpg""



-vlevel 13を付けるとより高圧縮になるらしいです.(下記参考ページ参照)

サムネイル画像の拡張子がjpgにしているのはPCでも画像を確認できるようにするためです.

最新のバージョンのシステムソフトウェアではデフォルトの.THMと.jpgのどちらもちゃんと表示されます

デフォルトで書いてあるItem18のように2passにすると画質は向上しますが,

単純計算で処理時間が二倍になりますので私は使用していません.

あとは3GP_Converter.exeを起動して変換したい動画をD&Dするだけです.

divxなどでエンコードされた動画もデコーダがインストールされていれば変換できます.

ちなみに私の環境だと30分のアニメ(実際は24分)で平均15分くらいです.

変換し終わったらメモリースティック直下のVIDEOフォルダの中にコピーすればOKです.ファイル名を変更する必要はありません.

終わり.

たったこれだけで終わりです.PSPは液晶がかなり綺麗なので優秀なポータブルMP4プレイヤーとなってくれることでしょう.

参考ページ PSP - MobileHackerz Knowledgebase Wiki

↑のページにはMotionJPEG形式でのエンコードの方法がのっていますが,どなたかやってみてくださいませんか?



2007/9/29追記

FLVのDLと携帯動画変換があまりにも簡単になっている件

↑のサイトによるとYouTube,ニコニコ動画,Google Videoなどの動画をPSP向けにエンコするのが

クリック二回で終わるとか.簡単すぎだろw

Stage6の場合は普通に落として携帯動画変換君使えばエンコできるからもうこれで完璧!?
QuartusII(ver 7.1sp1)で掛け算を行うとき,以下のように普通に*を使って行うことが出来るが,

sel a<12>, b<12>;
reg r<24>;

r := a * b;

この掛け算は符号付ではないようだ.(どちらか片方だけ符号付かも知れないがそれは未確認)

よって,符号付掛け算を行いたい場合はMegaWizard Plug-In Managerから

Arithmetic->ALTMEMMULTを作る必要がある

(他にも掛け算用のものはあるがこれはメモリを使うため計算結果が出力されるのが早い.他のものの動作は未確認.)

これはデフォルトでは係数(乗数)は定数だが係数もポートを用意することができる.

その場合のポートは↓.今回用いたのは入力各12ビット,出力24ビットの掛け算器で,入力はどちらもSIGNED.

input clock; // クロック

input coeff_in[12]; // 係数.

input data_in[12]; // 被乗数

input sload_data; // instrinでも可.これが1になると演算途中のものは終了して新たなパラメータで処理を始め

input sload_coeff; // instrinでも可.coeff_inを係数に置き換える.Quartus IIではサポートしていない.

output result[24];

output result_valid; // instroutでも可.掛け算が終了したことを示す.

output load_done; // 係数が更新されたことを示す.サポートしていない.

12ビットのときのパラメータは↓.

TOTAL_LATENCY⇒5: 掛け算を始めてから終わるまでのクロック数.

MAX_CLOCK_CYCLES_PER_RESULT⇒2: 2クロックごとに1つの結果が出る.つまりこの掛け算器は2クロックに1回しかデータを入力してはいけない?

以上備忘録.PDFへのリンク⇒http://www.altera.com/literature/ug/ug_altmemmult.pdf
プロフィール
HN:
まさぽん
性別:
男性
職業:
会社員
最新記事
(08/22)
(08/16)
(08/08)
(08/01)
(07/30)
カウンター
ブログ内検索
最新コメント
[03/18 ひぐ]
[03/10 まさぽん]
[03/09 ボンボ-ン]
[03/07 まさぽん]
[03/07 まさぽん]
クリック募金
なかのひと
アクセス解析
忍者ブログ [PR]
≪PREV HOME