Перейти к содержимому

小さな電子バッジでBad Apple!!全編再生|圧縮の中身を可視化してみた【ESP32-S3】

NISHIO Hirokazu

0:00 / 0:00

小さな電子バッジでBad Apple!!全編再生|圧縮の中身を可視化してみた【ESP32-S3】

128 просмотров · 5 дней назад
NISHIO Hirokazu
60 подписчиков
128 просмотров · 5 дней назад
小さな電子バッジに、3分39秒のBad Apple!!をどう収める? 実機映像と元動画を並べ、圧縮のしくみを1フレームずつ可視化しました。 全6,573フレームの再生と分析に続き、後半では容量・ディザ・先読み・画面の同期・音声同期を7枚のスライドで解説します。 ■ 見どころ ・大きな色付き映像は「その画素がどう復元されたか」の地図。黒や白の連続、過去のデータの再利用、直接保存を色分けしています。 ・円グラフと直近8秒の積み上げ面グラフで画素の割合を、棒グラフで圧縮後の容量比を表示しています。 ・白に見えていた部分が、実は255ではなく253。そのわずかな差がディザを生み、白の連続を分断していました。白点補正を試すと、映像データは25.77MBから23.05MBへ約10.6%小さくなりました。 ■ チャプター 00:00 Bad Apple!! 全編・実機と圧縮分析 03:39 小さなバッジに全編を収める容量 03:49 ランレングス圧縮とHeatshrink 04:01 16階調とディザの画質比較 04:11 白の「253」に気づいた 04:23 重いフレームを先読みで吸収 04:35 ティアリングと画面の走査同期 04:51 音声を加えると、映像の進め方が変わる ■ 今回のデータ 表示用映像:372×280画素、16階調、30fpsの素材6,573枚 圧縮前の4ビット画素列:342.32MB 白点補正後の映像データ:23.05MB 実機用の音声データ:約2.42MB 映像・音声に使える保存領域:約29.23MB 音声と配置の余白を確保した映像の保存上限:約26.8MB ※上記はバッジへ保存するデータの容量です。YouTube用MP4や元動画ファイルの容量ではありません。MBは1,000,000バイトです。 ※保存限界の線は「全編の平均でこの水準に収まれば保存できる」という目安です。1枚だけ線を超えても、そのまま保存不可になるわけではありません。 ■ 実装と撮影について ESP32-S3を搭載した丸型電子バッジで、保存済みデータを少しずつ復号して表示しています。ランレングス圧縮で同じ色の連続をまとめ、さらにHeatshrinkで繰り返すバイト列を圧縮します。先読みとパネルのTE信号を使った走査同期、音声の再生時刻に合わせた映像の制御も行いました。 分析画面はPCで生成しています。実機枠は筐体を含む実際の録画です。実機録画は白点補正前の版、容量と圧縮分析は白点補正後のデータを使っています。動画の音楽は元素材の音源で、実機スピーカーの録音ではありません。 ■ 出典 映像・音楽の素材:『【東方】Bad Apple!! PV【影絵】』(あにら) https://www.nicovideo.jp/watch/sm8628149 楽曲:Bad Apple!! feat. nomico / Alstroemeria Records https://alst.net/about/ 圧縮ライブラリ:Heatshrink / Atomic Object https://github.com/atomicobject/heats... #BadApple #ESP32 #電子工作