fc2ブログ

[NEEK][動画再生]ACM動画を作る

SDカードから読んで動画再生したいが、SPIモードでのリードは低速なので、大容量の動画は再生出来ない。
そこで以下、長船さんのACM(Adaptive Code Mapping)を利用させて頂く。

http://www001.upp.so-net.ne.jp/syrius/pld/lmf/lmf.html

既にとんずら雑記RさんがNEEKでACM動画再生成功されてるので、参考になる。

■ACM動画作成手順
 ・AviUtl入手
  AVIから連番BMP(ビットマップ)を作成するために、AviUtlを入手。解凍。
    http://spring-fragrance.mints.ne.jp/aviutl/
    aviutl99i5.zip  version0.99i5  2010/2/22

 ・AviUtlへコーデック追加
  「DirectShow File Reader プラグイン for AviUtl」を以下から入手。「ds_input026a.lzh」を入手。
  解凍後「ds_input.aui」をAviUtlと同DIRへコピー。これが無いと今回使ったAVIは読めなかった。
    http://www.tenchi.ne.jp/~yoko/aviutl/index.php?DirectShow%20File%20Reader%20%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3%20for%20AviUtl

 ・AviUtlへ連番BMP出力プラグイン追加
  上記同URLから入手し、解凍後の「bmp_output.auo」をAviUtlと同DIRへコピー。
    bmp_output.zip  連番BMP出力  version0.06  2008/10/24

 ・AVIから連番BMP作成
  AviUtl起動 > AVIファイルをD&D > ファイル > プラグイン出力 > 連番BMP出力
        > ファイル名(試しにhoge)入力 > 音声無しにチェック(とりあえず画像データだけ出すため)
        > 保存 > 「hoge_0000.bmp」~「「hoge_0250.bmp」が指定DIRへ保存された。

 ・ACM動画作成プログラム入手
  長船さんご提供の以下プログラムを入手。
    http://www001.upp.so-net.ne.jp/syrius/pld/lmf/lmf.html
     ①ACM圧縮・展開プログラム(50kバイト,Rev20080421) --- mcu_codec.lzh
     ②CK-codec圧縮プログラム(48kバイト,Rev20080421)   --- ck_enc.lzh

 ・BMPからACMを作成(テスト)
  以下のように実行するとppmとacm(バイナリ)が生成された。ppm見ると成功してるみたい。
    ./mcu_codec/mcu_codec.exe bmp_file quality color_num

      BMP : ピクセルは「縦横とも8の倍数」という規定あり。ソース参照。
quality : 0 - 6, 6 is best quality.
color_num: 0=RGB888(16M色)でデコード(減色なし)
            1=RGB555(32k色)でデコード
            2=RGB444(4096色)でデコード

 ・ACM動画作成
  ck_enc.exeで扱えるファイルは「name_n.bmp(nは0から連番)」という事なので、AviUtlで生成したファイル名
  (name_0000.bmp ~ name_0250.bmp)は扱えない。なので、「お~瑠璃ね~む」というフリーソフトで、
  連番の前に付く余計な「0」を削除してやる。
  つまり、
      hoge_0000.bmp → hoge_0.bmp
      hoge_0250.bmp → hoge_250.bmp
  ってこと。
  ファイル名を変更したら以下実行すると「hoge.ck」が生成された。中身確認出来ないが成功したっぽい。
    ./ck_enc/ck_enc.exe hoge


あとはSDカードへ保存して、動画ファイルの先頭アドレスから読み出せば良いのかな?
それとも成功された方が利用しているファイルシステム(FatFsとか)がやはり必要なんだろうか。
Windowsからファイル保存するのに、SDカードはFATか何かで良いと思うが、後は、保存したファイルの先頭
アドレスを確かめる方法があれば実機でも確認出来ると思うのだが・・・

(2010/2/28追記)
SDカードをFATでフォーマットし、最初のデータを書き込むと以下だった。
  ファイル名: 81セクタの途中から保存された。
  データ  : 113セクタの先頭から保存された。
ちなみにSDカードは16Mbyte(1セクタ=512byte、0~28800セクタ)のもの。
ってことは113セクタ目から決めうちで読み出せば、FATファイルシステム実装しなくて読み出し可能かな?
スポンサーサイト



カレンダー
01 | 2010/02 | 03
- 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 - - - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード