表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

15/20

15.LCDCで仮想2画面を作るレジスタ設定

2画面切り替えで違和感のない動画を表示したい。


仕様書を読んでいると LCDCのVRAMは 320x480のサイズがあると判明。じゃぁLCDに表示するRAMの開始アドレスを指定できれば、仮想2画面を作って裏画面に描画して切り替えできるんじゃないか?


仕様書のDisplay Data RAMの章を見るとVertical Scrolling Displayというのがある。VRAMの一部をスクロール表示する機能があるようだ。画面を3分割し、上部と下部を固定表示して中央部分がスクロール表示。

スクロール対象範囲を全部書き換える代わりに、スクロール表示位置を1行分ずらし最下行だけを書き換える機能。それに加え、画面上下に固定のメニューバーなどがある想定かと。


この機能とVRAMの一部分だけを表示するPartial Areaコマンドを組み合わせてイロイロ試してうまくいったパターンがこれ。


1. Vertical Scrolling Definition で上下の固定領域を0ライン, 可変領域を 480ライン

2. Vertical Scrolling Start Address に0または240を設定 (つまり480ラインの上半分と下半分をずらして表示。320x240が2画面に見える)

3. Partial Area で0~239ラインを設定 (240-479ラインを見えない裏画面にする)


jpegのデコードの際は

1. Page Address Set で0または240を指定して書き込む領域(表示してない領域)を選ぶ

2. jpegデコード

3. デコード後 Vertical Scrolling Start Address を変更する。


これで違和感のない画面切り替えができた。Framebufferに直接書き込んでいた場合は微妙に書き換えを感じたから、動画としての見栄えはよくなった。

ただ、Partial Area で表示部を制限してる部分は白が表示される。一方、表示領域よりjpeg 画像サイズが小さいときは余白が黒なので、額縁っぽい表示になる。

あ?余白を事前に白で埋めればいいのか?まぁ後でやろう。


それよりもデコードに 100ms かかるのを何とかしないと。。。core1 でデコードするしかないか。できるかなぁ。



評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ