チカラの技術

電子工作やプログラミング

途中経過発表⑤

途中結果発表はこれで最後です。
 
再生用のバイナリデータについて説明します。
どうやって作るのカー。
こうやって作るのダー。
 
①動画ファイルからBMP画像を抜き出す。
②抜き出したBMP画像をリサイズ,トリミング処理する。
③処理後のBMPファイルをLCDで使えるバイナリファイルに変換する。
 
できたファイルをSDカードにコピーすれば完了です。
 
以下、詳細説明をします。


①動画ファイルからBMP画像を抜き出す
 
 動画ファイルから1fpsに付き1枚のBMPファイルを抜き出します。
 私はこちらのソフトを使っています。
 
 
 様々な動画形式に対応している上、フレーム数を選択できるという
 まさにうってつけのソフトです。感謝。
 
イメージ 1
 変換を開始しても、進行状況が画面に現れない為いつ終わるか分からないのが玉にキズですが
 気長に待っていると「コン!」という軽快な音で、処理の完了を知らせてくれます。
 


②抜き出したBMP画像をリサイズ,トリミング処理する。
 抜き出したBMPファイルは大概、640×400などのサイズで目的とする400*96よりも大きいです。
 よって、いい感じの部分を抜き出す為に、リサイズやトリミングを行う必要があります。
 もしbmp画像が24bitカラーで無い場合、減色で24bitカラーに変更して下さい。
 
 この処理はこちらのソフトを使っています。
 
 Vix
 
 本来は画像ビューワなのですが、超高機能な画像編集もできます。
 ビューワとしても軽快な超お勧めの神ソフトです。もう10年くらい使っています。
 
イメージ 2

③処理後のBMPファイルをLCDで使えるバイナリファイルに変換する。
 ②までの処理で400*96*24bitカラーのBMP画像がゲットできました。
 次にこのファイルを加工します。
 
 1.BMPの情報ヘッダ部分は冗長なのでカット。
 2.BMPの減色
 3.BMPの行の入れ替え
 
 1.はそのままです。
 2.は24bitカラーのBMP画像はMSBから
   [ R7 R6 R5 R4 R3 R2 R1 R0,G7 G6 G5 G4 G3 G2 G1 G0,B7 B6 B5 B4 B3 B2 B1 B0] と並んでいるので
   下記に変換されます。
   ○16bitカラー(RGB565)
      MSBから[R4 R3 R2 R1 R0 G5 G4 G3 , G2 G1 G0 B4 B3 B2 B1 B0]
      1pixel = 2バイト。
      (リトルエンディアン)
 
 3.BMPは左下からピクセルデータが始まるボトムアップ方式なので、
  そのまま転送すると画像が上下ひっくり返ります。
  LCDでそのまま表示できるよう行を入れ替えてトップダウン方式にします。
 
 これはさすがに、ネット上にアプリケーションが無かった為自作しました。
 「bmpLCD動画変換ver1.6」
 そのまんまのネーミングですね。
 
イメージ 3
 
 BMPファイルが詰まっているフォルダを指定して、fpsの値選択と出力先のフォルダを指定します。
 実行ボタンを押すと、出力先フォルダに一個のバイナリファイルを落とします。
 これがLCD用データとなります。
 
このソフトは下記日記にて公開しました

 
以上です。
よし!これだけ情報を残しておけば、駄目駄目になっても後で戻ってこれるね!