ここ最近まったく元気ありません(´・ω・`)
友達がいないのもありますし、もともと鬱持ちでネクラなのもありますし、何せひきこもり・・・。
犬がいたら某王国の爺さんみたくわしゃわしゃしたり散歩したりきっと楽しいだろうなぁ(*´ω`*)
兄貴の知り合いが子犬を譲ってくれるかもという段階に今あります。
問題は親をどう説得するか。
10年前に飼ってたゴールデンをわずか2才で失ったときのような悲しみはもう二度と味わいたくないって言うだろうなぁ。僕もそう。何週間と眼を腫らしたことか。
だけど愛犬のいたあの夢のような時間がまた訪れると思うと衝動が抑えきれない。
もし夢が叶ったら犬馬鹿ブログに豹変してしまうかもしれません(笑)
P.S.
親に子犬の写真見せて説得したところ犬種が気に入らないらしく話は立ち消えに(´・ω・`)
僕的にはめちゃくちゃドストライクの犬種なんですけど家族が非協力的じゃきっとダメだ。
せっかく楽しみにしてたのになぁ。ガッカリ。

友達がいないのもありますし、もともと鬱持ちでネクラなのもありますし、何せひきこもり・・・。
犬がいたら某王国の爺さんみたくわしゃわしゃしたり散歩したりきっと楽しいだろうなぁ(*´ω`*)
兄貴の知り合いが子犬を譲ってくれるかもという段階に今あります。
問題は親をどう説得するか。
10年前に飼ってたゴールデンをわずか2才で失ったときのような悲しみはもう二度と味わいたくないって言うだろうなぁ。僕もそう。何週間と眼を腫らしたことか。
だけど愛犬のいたあの夢のような時間がまた訪れると思うと衝動が抑えきれない。
もし夢が叶ったら犬馬鹿ブログに豹変してしまうかもしれません(笑)
P.S.
親に子犬の写真見せて説得したところ犬種が気に入らないらしく話は立ち消えに(´・ω・`)
僕的にはめちゃくちゃドストライクの犬種なんですけど家族が非協力的じゃきっとダメだ。
せっかく楽しみにしてたのになぁ。ガッカリ。

STM32でJPEG画像の液晶表示に挑戦してみました。
siriusさんのブログ記事JPEG伸長とフォトフレーム機能のイメージでlibjpegを組み込みマイコンに移植されていたのを知って自分もやってみようと思いました。
siriusさんの記事を参考にしながらJPEGファイルをBMPやGIFファイルにデコードするプログラムdjpeg.cをベースにして組み込んでいきました。
最初BMPに変換するパラメータを与えてデコードしたところ縦横100ピクセル以内の小さな画像は表示できるのですが、それより大きいものをデコードすると一気にメモリ消費が増加しハードフォルトしてしまいました。
STBeeボードのSTM32F103VET6は64KBのメモリ容量がありますが、それをゆうに超えるメモリ要求がされてました。
siriusさんの記事によるとメモリ消費は240x180サイズでも30KB以内に収まっているので何が違うんだろうとパラメータをいろいろ変えて試行錯誤してみたけど効果なし。
悩んだ末PPM画像に変換するパラメータを与えるとどういうわけかメモリ消費がガクンと少なくなり大きな画像も30KB以内に収まるようになりました。(´^ω^`)

↑QVGA(240x320)の8倍の大きさ(1920x2560)の画像をlibjpegに1/8にスケーリングさせて表示したところ。
メモリ消費量はたったの25KBだった。スゴイ。
P.S. 各種パラメータを低速高画質版、高速低画質版に設定しデコードさせたときのそれぞれの実行時間測ってみました。
実行時間はJPEG初期化、描画、終了処理を含めたものです。libjpegライブラリのバージョンは7です。
freadは自作FAT関数を使用しています。
STM32F103VET6@72MHz SDIO:24MHz 4bit-wide
・画像比較

左が低速高画質、右が高速低画質でデコードしたときの画像です。(クリックすると拡大します。)
前髪や右のツインテールのフチにジャギーが顕著に現れてます。
siriusさんのブログ記事JPEG伸長とフォトフレーム機能のイメージでlibjpegを組み込みマイコンに移植されていたのを知って自分もやってみようと思いました。
siriusさんの記事を参考にしながらJPEGファイルをBMPやGIFファイルにデコードするプログラムdjpeg.cをベースにして組み込んでいきました。
最初BMPに変換するパラメータを与えてデコードしたところ縦横100ピクセル以内の小さな画像は表示できるのですが、それより大きいものをデコードすると一気にメモリ消費が増加しハードフォルトしてしまいました。
STBeeボードのSTM32F103VET6は64KBのメモリ容量がありますが、それをゆうに超えるメモリ要求がされてました。
siriusさんの記事によるとメモリ消費は240x180サイズでも30KB以内に収まっているので何が違うんだろうとパラメータをいろいろ変えて試行錯誤してみたけど効果なし。
悩んだ末PPM画像に変換するパラメータを与えるとどういうわけかメモリ消費がガクンと少なくなり大きな画像も30KB以内に収まるようになりました。(´^ω^`)

↑QVGA(240x320)の8倍の大きさ(1920x2560)の画像をlibjpegに1/8にスケーリングさせて表示したところ。
メモリ消費量はたったの25KBだった。スゴイ。
libjpeg組み込んだらバイナリサイズが200KB超えてた。
>arm-none-eabi-size stm32_jpeg_test.elf
text data bss dec hex filename
192724 5048 8016 205788 323dc stm32_jpeg_test.elf
P.S. 各種パラメータを低速高画質版、高速低画質版に設定しデコードさせたときのそれぞれの実行時間測ってみました。
実行時間はJPEG初期化、描画、終了処理を含めたものです。libjpegライブラリのバージョンは7です。
freadは自作FAT関数を使用しています。
STM32F103VET6@72MHz SDIO:24MHz 4bit-wide
・低速高画質
cinfo->dct_method = JDCT_ISLOW; /* slow but accurate integer algorithm */
cinfo->do_fancy_upsampling = TRUE; /* apply fancy upsampling */
cinfo->do_block_smoothing = TRUE; /* apply interblock smoothing */
cinfo->dither_mode = JDITHER_FS; /* Floyd-Steinberg error diffusion dither */
SOURCE_SIZE TARGET_SIZE SCALE TIME MEMORY
1920 x 2560 240 x 320 1/8 907.8ms 25052B
960 x 1280 240 x 320 1/4 595.3ms 26492B
480 x 640 240 x 320 1/2 358.2ms 29372B
240 x 320 240 x 320 1/1 274.3ms 35132B
200 x 200 200 x 200 1/1 146.5ms 33468B
100 x 100 100 x 100 1/1 44.8ms 28860B
40 x 40 40 x 40 1/1 10.4ms 25788B
10 x 10 10 x 10 1/1 3.5ms 24380B
・高速低画質
cinfo->dct_method = JDCT_IFAST; /* faster, less accurate integer method */
cinfo->do_fancy_upsampling = FALSE; /* no fancy upsampling */
cinfo->do_block_smoothing = FALSE; /* no interblock smoothing */
cinfo->dither_mode = JDITHER_NONE; /* no dithering */
SOURCE_SIZE TARGET_SIZE SCALE TIME MEMORY
1920 x 2560 240 x 320 1/8 883.5ms 25052B
960 x 1280 240 x 320 1/4 584.3ms 26492B
480 x 640 240 x 320 1/2 339.9ms 29372B
240 x 320 240 x 320 1/1 164.7ms 30108B
200 x 200 200 x 200 1/1 86.2ms 29092B
100 x 100 100 x 100 1/1 28.0ms 26492B
40 x 40 40 x 40 1/1 7.6ms 24772B
10 x 10 10 x 10 1/1 3.3ms 24044B
・画像比較

左が低速高画質、右が高速低画質でデコードしたときの画像です。(クリックすると拡大します。)
前髪や右のツインテールのフチにジャギーが顕著に現れてます。
昨日美容院いってきた。
長めの髪がうっとおしかったのとイメチェンを兼ねて雑誌に載ってた短髪風のイケメン写真の通りにしてくださいと頼んだ。
結果、、、大失敗\(^o^)/
ダサイにもほどがある。いっそのこと丸坊主にして出家したい気分だ。
元が悪いので美容師さんの腕を責めるワケにはいかない。よくやったほう。
やっぱりブサメンは髪伸ばしてうまくごまかすしか手は無い運命なんさ。
また伸びるまで時間かかるなぁ。
短くなってよかったことと言えばシャンプーの手間とウィッグ装着の違和感が無くなったという2点かな。
あれれ、なんかさりげなく重大な発言をしてしまった気がする。
気のせい?かな≧(´▽`)≦
長めの髪がうっとおしかったのとイメチェンを兼ねて雑誌に載ってた短髪風のイケメン写真の通りにしてくださいと頼んだ。
結果、、、大失敗\(^o^)/
ダサイにもほどがある。いっそのこと丸坊主にして出家したい気分だ。
元が悪いので美容師さんの腕を責めるワケにはいかない。よくやったほう。
やっぱりブサメンは髪伸ばしてうまくごまかすしか手は無い運命なんさ。
また伸びるまで時間かかるなぁ。
短くなってよかったことと言えばシャンプーの手間とウィッグ装着の違和感が無くなったという2点かな。
あれれ、なんかさりげなく重大な発言をしてしまった気がする。
気のせい?かな≧(´▽`)≦