Xiaomi Yi のカスタムファームを試してみよう!
ってことで調べてみた。

Xiaomi Yi には現在2種類のカスタムファームが出回っている。
①標準で低いビットレートを高ビットレートに変更する
②2Kや720p 240fpsを可能にする


この記事では①のビットレート変更を紹介する。
②については調べているがまだはっきりとしたことがわかっていない。


■お約束
動かなくなっても泣かないこと。
この記事の通りやって動かなくなっても僕は責任を一切おいません!



■カスタムファームの入手方法

ネットで公開している人もいるが、ハードウェアのリビジョンによってファームが2種類あるが、カスタムファームにリビジョンが記載されてないものがあり、適当に入れると動作しなくなる可能性もある。
うーん、ネット上にアップされているビットレート変更カスタムファームは危険な香りがするなぁ。

どうしよう。って思て調べてみるとどうやら簡単に作れるらしい。



■カスタムファームの作り方
なんで簡単に作れるかというと、ビットレートを調整しているチップはAmbarellaというこの分野では非常に力のあるアメリカのベンチャー企業なのだが、ここのチップのファームを簡単に書き換えるツール(無料)があるためだ。
ツールではA2、A5、A7のチップのファームに対応しており、早い話しがXiaomiに限らずAmbarellaのチップを搭載しているメーカーなら書き換えることができる。

では早速手順を紹介する。
尚、ツールの使い方等は以下のサイトを参考にさせてもらった。
XiaomiYiカスタムファーム作成サイト(海外サイト)


①Xioami公式サイトから、リビジョンに適合した最新ファームを入手する。
Xiaomi公式 ファームダウンロードページ

リビジョンの確認方法は、バッテリーを外してシリアルナンバーを確認すれば良い。
僕のは最初期のrev22。
ファームは二種類あるが、バージョン/機能は基本的に同じっぽい。
2015年7月現在の最新は1.2.0 44MBくらいだった。

ファイル名:1434715807596_fw.bin

ダウンロードしたらCドライブ直下等にフォルダーを作成し保存しよう。
原因はわからないが、カスタムファームを作成する時にエラーが出たのでドライブ直下にフォルダーを移動させると成功した。
フォルダー構成に2バイト文字が入っているとだめなのかな?
例えば、c:\ユーザー\まさきち\デスクトップ\Xiaomi ってフォルダーだと、「まさきち」の部分で引っかかるのではないかと思う。
根拠は無いけどね。

xiaomiyi_custom.jpg



②Ambarella Firemware Toolboxをダウンロードする。
Ambarella Firemware Toolboxダウンロードサイト

少し下のほうに「AFT 1.3.2 - Ambarella firmware editor」というのがあるので、ダウンロードする。

ファイル名:AFT132.jar

わかりにくくならないよう、ファームと同じフォルダーに保存しておく。
Javaアプリなので動かなければJavaをインストール、アップデートしよう。

xiaomiyi_custom2.jpg



③Ambarella Firemware Toolboxでファームを取り込む
Ambarella Firemware Toolboxを起動して、左上のOpen→【A7 binary】をクリックする。
※A7とはチップの名称。Xiaomi Yi やSJ5000+はA7シリーズ。

xiaomiyi_custom4.jpg

さっきダウンロードしたXiaomi Yi のファーム(*********_fw.bin)を指定し、【Load A7 firmware】をクリックする。

xiaomiyi_custom5.jpg


するとツールで以下のように読み込みが数秒で完了する。

xiaomiyi_custom5.jpg



④ビットレート情報等を抽出する。

上部メニュー Partitions→【Extract All】をクリックすると数秒で同じフォルダーに【partitions】というフォルダーと中にファイルが作られる。

xiaomiyi_custom7.jpg



次に上部メニュー ROM/RFS→【Extract Rom to Disk】をクリックすると同じく数秒で【rtosfs】というフォルダーと中にファイルが作られる。

xiaomiyi_custom9.jpg



⑤ビットレートを任意に変更し保存する

上部メニューのEditors→【A5/A7 Bitrate Editor】をクリックする。

xiaomiyi_custom10.jpg



【Load from PRI】をクリックし、先ほど作成されたPartitionsフォルダー内の【PRL.a7s】を指定する。

xiaomiyi_custom11.jpg

開いたリストの【Bitrate】列がビットレートの値で、縦のNo0~160までが、何の設定かを示している。
何番が何かはわからないので、先のサイトのエクセルのリストを参考にする。
さっきの海外サイト

おそらく、解像度設定が追加されると行が増えると思われるので、今後は変わってくるかもしれない。
とりあえず、よく使うものであろうNoと、デフォルトのビットレートと今回変更したビットレートを記載しておく。

FullHD 60fps Hight = No9 →25を35へ
FullHD 60fps Middle = No10 →15を30へ
FullHD 60fps Low = No11 →12を25へ

FullHD 30fps Hight = No18 →12を30へ
FullHD 30fps Middle = No19 →10を25へ
FullHD 30fps Low = No20 →8を12へ

HD 60fps Hight = No45 →12を25へ
HD 60fps Middle = No46 →9を20へ
HD 60fps Low = No47 →6を12へ

HD 120fps Hight = No156 →18を35へ
HD 120fps Middle = No157 →15を30へ
HD 120fps Low = No158 →12を18へ


ビットレートは高くしすぎると熱暴走する可能性があるのと、処理しきれない可能性もある。
海外のフォーラムを見ると概ね35Mbpsまでに収めるのが一般的なようだ。
今回はもともとのHight設定と比較するため、LowをデフォルトのHightにしてみた。
他はおおむね30前後にしている。

当然だけど、ビットレートを高くする分、時間あたりの容量が大きくなる。
12Mbpsを24Mbpsにすれば容量は概ね二倍になって、撮影可能時間もその分減る。
あとはどれくらい画質が向上するか、満足できるか、何時間撮影したいかによって決めればいい。
ちょっと今回は高くしすぎたような気がするので、後で5Mbpsくらい下げようかと思っている。

決まったら右下の【Apply changes】をクリックして、画面を閉じる。
一瞬で保存されるので保存されたかわかりづらいが大丈夫だ。

xiaomiyi_custom12.jpg



⑥保存した設定でファームを作成する

上部メニューのROM/RFS→【Build Rom From Disk】をクリックする。

xiaomiyi_custom14.jpg

Build→【Firmware update】をクリックする。

xiaomiyi_custom15.jpg


同じフォルダーに【a7firmware.bin】ができるので、【firmware.bin】にリネームする。

xiaomiyi_custom17.jpg



⑦ファームウェアのアップデートをする。

【firmware.bin】をMicroSDの直下に保存し、Xiaomi Yi に入れて起動する。
この時、バッテリーが十分にないとファームアップができないので充電しておこう。
また、給電もしておかないといけないかもしれない。
起動するとピ!とアラームが1分くらい?鳴り続けるので、しばらく待つと電源が落ちて完了だ。

xiaomiyi_custom18.jpg



■撮影確認
せっかくなので雨だけど撮影してきた。
が、VBR(可変ビットレート)なので、止まった状態では差がないw
うーん、走行中に撮影しないと違いがわからないね。
というわけでとりあえず以下に置いておくけど有意義な差はない。
サムネ形式なのでクリックするとFullHDで見れるよ。

FullHD 30fps Hight(30Mbps)
xiaomiyi_custom_30mbps.jpg

FullHD 30fps Low(12Mbps=デフォルトHightと同じ)
xiaomiyi_custom_12mbps.jpg



本当にビットレートがかわったのかは動画容量を見れば一目瞭然。
念のためMediaInfoでも確認したが、間違いなくビットレートは上がっている。

MediaInfo 窓の杜


というわけで、カスタムファームの作成方法は以上。
動かなくなっても泣かないことを約束してくれる良い子のみんなだけマネしてね!

■おすすめ記事
失敗しない低価格ウェアラブルカメラの選び方

このエントリーをはてなブックマークに追加