T time

プログラミングや電子工作、各種ガジェットに関するブログです。

PebbleTime開発 - 表示デバイスと描画性能について

今回は、PebbleTime の表示デバイスについて説明します。

先日、このブログを紹介してくださるブログを発見しまして。 そこに以下のように書いてありました。

Pebble Timeは液晶表示なので、初代PebbleのE-Inkのような画面の応答性については気にしなくてよい。

Pebble Timeの時計アプリ(Watchface)でこんなのを作ってみたいのだけど | kako blog

あぁ、そうですね。
たしかに Pebble の表示デバイスと描画性能について紹介していませんでした。 PebbleTime を購入された方ならともかく、持っていない方だと誤解するかもしれません。

Pebble の表示デバイスは E-link 方式のデバイスではありません。
それは、初代 Pebble も PebbleTime も同様です。

開発元が「e-paper 搭載」という謳い文句で販売しているためで誤解している人が多い様子ですが*1、いわゆる「電子ペーパー」と言われて思い浮かべるようなものではなく、描画速度も早いです。

表示デバイス

Pebble(初代 Pebble、PebbleSteel)と、PebbleTime の表示デバイスは異なります。

初代 Pebble のディスプレイ

Pebble の表示デバイスは「メモリ液晶」です。

昔のデジタル腕時計や、スーパーの価格表示パネルなどに使われる白黒表示のデバイスです。 以下のような特徴があり、腕時計にはうってつけのデバイスです。

画像の書き込み時以外にはほとんど電力を要さず、従来のものよりも大幅に消費電力を減らすことができる上に、表示を保持できるのが強みである。

メモリ液晶 | 用語集 | KDDI株式会社

また、光を反射しコントラスト比が高いため、太陽の下で抜群に見えやすいという特徴があります。

PebbleTime のディスプレイ

PebbleTime の表示デバイスは、わかりません。

何を使っているのでしょう?
これかな?と思うのはあるのですが不明です。 まぁ、液晶系のデバイスだと思います。 知っている方は教えてください。

初代 Pebble と比べて 64色表示が可能になりましたが、

  • 消費電力が小さい
  • 太陽光の下で見えやすい

という特徴は変わっていません。

描画性能

では、描画性能はどうなのか、ということで実験してみました。

ベンチマークプログラム

以下の様なプログラムを作りました。

  • 1 ミリ秒ごとに再描画の要求を出す
  • 描画プロセスは、1 回の呼び出されるたびに、任意の位置に任意の大きさの円を描画する
  • 描画プロセスが 1 秒間に何回呼び出されたかを計算する

プログラムは以下に置きました。

github.com

結果

手元での実行結果は以下のとおりです。


Pebble GraphicBench - YouTube

だいたい以下の様な値となりました。

機器 備考 FPS*2
Pebble 85
Pebble Steel 75
Pebble Time アンチエイジング: OFF 30
Pebble Time アンチエイジング: ON 28
エミュレータ(※) APLITE 440
エミュレータ(※) BASALT 150

エミュレータは以下の環境で実行しました。

結果考察

びっくりしました。

Pebble のほうが PebbleTime より早いです。圧倒的です。

てっきり PebbleTime のほうが早いかと思っていました。 PebbleTime はプロセッサパワーもメモリ量も上がっていますからね。

Pebble と Pebble Steel で値が異なるのも謎です。 両者は中身は全く同じのはずなので、誤差でしょうか。

PebbleTime でのアンチエイジングの ON/OFF は、パフォーマンスには影響なさそうです。 安心して ON にできますね。

ちなみに、Pebble のほうが早い理由は以下が考えられます。

  • PebbleTime は VRAM の転送に時間が掛かる
    • Pebble は 1px=1bit、PebbleTime は 1px=8bit なので、単純に 8 倍のデータ量となります。
  • PebbleTime はバックグラウンドプロセスが重い
    • PebbleTime は Timeline 機能のために、常に iPhone と通信している可能性があります。

実際のところは分かりませんが、面白い結果です。

あとがき

今回は、PebbleTime の表示デバイスと描画性能について紹介しました。

一つ理解して欲しいのは、「ベンチマーク性能は実際の性能ではない」ということです。

この結果は、あくまで今回のベンチマークプログラムでの結果です。 実際の Watchface ではこうなるとは限りません。

レイヤー数が多い場合はプロセッサパワーが高い PebbleTime の方が早いでしょうし、 画像を沢山表示する場合もバス速度の早い PebbleTime の方が早いでしょう。

あくまで目安ということで。

それに、PebbleTime でも 30 FPS は出るわけです。 それだけ出れば充分でしょう。 15 FPS でも滑らかにアニメーションしますし、デバイスの制限をアイデアで克服するのも楽しみの一つです。

あと、30 FPS も必要な Watchface は仕様を検討したほうが良いです。 なぜなら再描画はバッテリーを食うからです。 激しくアニメーションする Watchface を使っていると、あっという間にバッテリーがなくなります。 見た目は良いけど 1 日でバッテリーがなくなるような Watchface は使いたくないですよね*3

また、他にもベンチマークネタを思いついたら書きますね。

では。

*1:e-paper っていうの、やめたほうが良いと思います。

*2:FPS: 1秒間に描画できる回数

*3:拙作の XEVI NUMBER は随時アニメーションするので 2 日でバッテリーなくなります。イェィ