Division By Zero

ゼロで割る

Visual Studio Professional 2012がインストールできなかった際のメモ

Visual Studio Professional 2012をWindows 7 x64にインストールしようとしたができない。最初のロゴが表示されたところで止まってしまう。

いろいろ調べてみて、「コントロールパネル/プログラム/プログラムと機能/Windowsの機能の有効化または無効化」で「Microsoft .NET Framework 3.5.1」のチェックを外すと、先に進めた。.NET Framework 3.5.1は、割と多くのアプリケーションが利用しているので、これをアンインストールしてしまうとエラーがいろいろ出てしまうが、とりあえず無視して、Visual Studioをインストールし、完了したら改めて同チェックを入れて有効化する。

無事にVisual Studio Professional 2012でコンパイルできたが、諸般の事情で2010に戻すことに。アンインストールでも同様に.NET Framework 3.5.1の無効化が必要だ。

今日はこれで終了!

AVInapticをコンパイルした際のメモ

H.264動画の解析情報を取得するのにAVInapicというアプリを使ってみた。いろいろ興味深い内容を出力してくれて重宝する。

ドキュメントはイタリア語だが、Google翻訳があれば何とかなる。日本語でなく英語へ翻訳するとわかりやすい、かもしれない。

出力結果の元情報を知りたくてソースコードを読もうとしてみたら、どうもLispに似たTreePという独自言語で記述されているようだ。なかなかすごい作者だ。

わからないなりにAVInapticのソースをみても、知りたい箇所がなく、TreePのソース内にあった。どうもTreeP自体がMP4ファイルフォーマットなどの解析機能を持っているようだ。

TreePのソースはここからダウンロードできる。zipを解凍するとできる00leggimiというファイルにコンパイル方法が記されているが、概ね下記の通り。

1. Ubuntu 10.04を使う
2. sudo apt-get install libgc-dev libgmp3-dev libmysqlclient-dev
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
libcv-dev libcvaux-dev libhighgui-dev
libgcrypt11-dev libgpg-error-dev libgpgme11-dev
libcurl4-openssl-dev libid3tag0-dev libsqlite3-dev
libexif-dev libmgl-dev libmagic-dev libgtk2.0-dev
zlib1g-dev libjpeg62-dev libpng12-dev build-essential
3. make bootstrap

時間をかけたくなかったので、そのまま試したところうまくいった。

AVInapticのコンパイルはmake allでOK。色々と試してみる環境が整ったところで今日は終了!

Beamr VideoでH.264を低ビットレートにする

JPEGminiのICVT社がBeamr Videoというものを発表した。

Beamr Unveils Breakthrough Video Delivery Technology With Unprecedented 75 Percent Bitrate Reduction

http://m.prnewswire.com/news-releases/beamr-unveils-breakthrough-video-delivery-technology-with-unprecedented-75-percent-bitrate-reduction-190832551.html

ビットレートを75%削減できるとしている。JPEGminiがサイズを1/5、つまり80%削減、とうたっていたところからみると妥当な数字だろうか。

Beamr Video's patent-pending optimization technology automatically reduces the bitrate of H.264 video streams by up to 75 percent (4x) without affecting perceptual quality. The optimized streams retain the full resolution, quality and standard H.264 format of the original streams. As such, Beamr Video technology can cut costs for content providers and vastly improve the viewing experience for customers.

http://m.prnewswire.com/news-releases/beamr-unveils-breakthrough-video-delivery-technology-with-unprecedented-75-percent-bitrate-reduction-190832551.html

JPEGmini同様、視覚に影響を与えないように、自動でビットレートだけを削減する。H.264フォーマット自体は変わらないので、既存のプレーヤーで再生できる。とはいえ、最近、H.265が承認されていることもあり、それにも触れてある。

While the upcoming HEVC (H.265) standard promises up to 50 percent bitrate reduction compared to H.264, Beamr Video is capable of higher reduction ratios of H.264 streams today, without requiring the installation of new clients.

http://m.prnewswire.com/news-releases/beamr-unveils-breakthrough-video-delivery-technology-with-unprecedented-75-percent-bitrate-reduction-190832551.html

H.265ファイルやストリームは当然、H.264対応の既存プレーヤーでは再生できない。まさに、WebPなどの新しい画像フォーマットとJPEGとの関係と同じで、それがICVT社の狙うところなのだが、動画フォーマットはどうだろう。MPEG1からMPEG2、MPEG4、そしてH.264と順当に推移してきた歴史から考えると、簡単にH.265に移ってしまうのかもしれない。

さて、サンプルファイルをダウンロードしてみたが、確かに見た目は変わらない。AVInapticで調べてみると、量子化パラメータQPが大きくなっていること、それに伴い、各スライスの容量が小さくなっていることが読み取れる。Beamr Videoエンコーダーが視覚に影響を与えない範囲でQPを大きくとっていくであろうことは、JPEGminiの動きからも想像できる。

オリジナル
f:id:nkchg:20130214215425p:plain

Beamr Video
f:id:nkchg:20130214215448p:plain


Beamr Videoの仕組みをあれこれ想像するのは面白い。今日はここで終了!

au料金プランを変更した際のメモ

auのWindows Phone IS12Tのmicro USB端子の接触が悪くなってきたので、余っていたISW13Fに切り替えることにした。IS12TはフルサイズのSIMだったので、ごくたまにフィーチャーフォンW54Sに差し替えていたのだが、ISW13Fはmicro SIM。IS12TもISW13Fも機能制限のない端末なので、auショップでmicro SIMに変えた後(2,150円)でもアダプタを使えばIS12Tには戻れるはず。ただし、機能制限のあるW54Sに戻るのはまたauショップでロッククリアしてもらう必要がある。

SIMカッターを使えばW54Sも引き続き使えるはずだが、どうにもグレーなのでパス。(アダプタとさして変わらないのかもしれないが)

ISW13FにはFelicaも搭載されていることだしSIMもずいぶん痛んできたので、そろそろ頃合いかと。

もうフィーチャーフォンに戻らないことを前提にして、少し料金プランを見直してみた。

まずダブル定額からISフラットへ変更した。ダブル定額は上限が5,985円(月額、以降すべて)、ISフラットは5,460円。ISフラットにするとau Wi-Fi SPOTも使える。

次に基本料金。通話もずいぶん減ったので、1,627円のプランSシンプルを980円のプランSSシンプルにした。同額のプランZシンプルが一般的なのかもしれないが、特にau間の通話が多いわけでもないので、無料通話分のプランSSシンプルの方がお得かと。

315円の安心ケータイサポートもIS02のものなので解約。

315円のIS.NETを解約すると525円のau.NETに接続されて割高ようなので、EZwebメールを使わなくてもこれは残すことにする。

8,242円から6,755円になるから1,487円の節約。今まで少し無駄だったな、と反省し今日は終了!

DELL Latitude E4200にWindows8 Pro 64bitをインストールした際のメモ

Windows8 Release Preview 64bitをDELL Latitude E4200にインストールして使っていた。使用期限の2013年1月16日が近づいてきたのでライセンスを購入して、アップグレードしてみた際のメモ。なお、Release Previewからもアップグレードできるが、アプリケーション等は引き継がれない。

また、BIOS設定をいろいろいじっていたら、BIOSプログレスバーの後半20%程度が数分かかるようになってしまった。BIOSの初期化(Load Default)をしたら直ったが原因はよくわからない。とりあえずデフォルト状態から、VMWareで必要なVirtualization Supportの項目と、BitLockerで必要なSecurity/TPM Security、バッテリ節約になりそうなVideo/Ambient Light Sensorだけを変更した。SATA OperationはAHCI(デフォルトはIRRT)にしてある。

1. Bluetooth

Dell公式サイトのWindows7 x64用は、「このプログラムには互換性の問題があります」と表示が出て、いろいろ「互換モード」を変えて試してみるも実行できず。ドライバが展開されたフォルダを開きWin64/Inst.exeを実行することでインストールできた。一応、動作している。

2. BitLocker暗号化

コントロールパネル/システムとセキュリティ/BitLocker暗号化から設定。問題なし。

3. 休止状態

コントロールパネル/システムとセキュリティ/電源オプション/電源ボタンの動作を選択する/現在利用可能ではない設定を変更します/シャットダウン設定にて設定。問題なし。

4. Cisco VPN Client

Windows 7 x64用をインストール後、レジストリを下記のように変更。問題なし。

・ Open Registry editor by typingregedit in Run prompt

・ Browse to the Registry Key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\CVirtA

・ Select the DisplayName to modify, and remove the leading characters from the value data upto "%;" i.e.

o For x86, change the value data from something like "@oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter” to "Cisco Systems VPN Adapter”

o For x64, change the value data from something like "@oem8.inf,%CVirtA_Desc%;Cisco Systems VPN Adapter for 64-bit Windows” to "Cisco Systems VPN Adapter for 64-bit Windows”

・ Try connecting again

http://social.msdn.microsoft.com/Forums/en-US/windowsdeveloperpreviewgeneral/thread/6fe817f3-27fe-4068-995a-aced4508ee3e/

5. Office 2013 Professional プレビュー

2013年6月30日まで利用できるのでインストールしてみた。「Exchange Over Internet」を含めて問題なし。

6. WireShark 1.8.4

64bit用をインストール。途中WinPcapで互換性のアラートが出たがそのまま進めた。今のところ問題なし。

7. VMWare WorkStation 8

Windows 7 x64用で問題なし。

8. iCloud
Explorerのお気に入り同期に利用している。問題なし。

9. ディスプレイドライバ

Release Previewでは時々画面が乱れてしまい、製品版で直っていることを期待したのだが、変わらない。Dell公式サイトのドライバは「このシステムは、このソフトウェアをインストールするための最低条件を満たしていません。」という表示が出て、これも「互換性」をいろいろ変えてみたが解決できず。「コントロールパネル/システムとセキュリティ/デバイスマネージャ/ディスプレイアダプター/Mobile Intel(R) 4 Series Express Chipset Family (Microsoft Corporation - WDDM 1.1)」を開き、「ドライバー/ドライバーの更新/コンピューターを参照してドライバーソフトウェアを検索します/コンピューター上のデバイスドライバーの一覧から選択します」と選択していくと、「Microsoft 基本ディスプレイ アダプター」が選べるようなのでこちらを選択。画面が乱れる問題は解決したが、グラフィックスのスコアは2.9から2.0に下がった。

[2013/04/02追記]
BIOSセットアップでVirtualization/VT for Direct I/O/Enable VT for Direct I/Oのチェックを外すことで、「Mobile Intel(R) 4 Series Express Chipset Family (Microsoft Corporation - WDDM 1.1」でも画面が乱れることがなくなることを確認。セカンドディスプレイも利用できるようになった!

[2013/01/12追記]
10. タッチパッド

Windows8標準のものだと使いにくかったので、Dell公式サイトのE4200, Windows7 x64, Dell-Driver, Applies to: Touchpad / Pointing Stick(7.1207.101.108, A15) をインストールしたところ、改善した。


持ち運び用のPCとして安定動作することを願いつつ、今日は終了!

6LowPANについて少し考えてみた - その3

前回の続き。

結果として、RFC6282のヘッダ圧縮はリンクローカルユニキャストにおいてもRFC4944に勝る。

In the best
case, the LOWPAN_IPHC can compress the IPv6 header down to two octets
(the dispatch octet and the LOWPAN_IPHC encoding) with link-local
communication.

http://www.ietf.org/rfc/rfc6282.txt

RFC6282で標準化されたIPHCを前回と同じように表現すると以下のようになる。

IPv6 LOWPAN_HC1 LOWPAN_IPHC
Dispatch 0 bit 8 bit 3bit
Version 4 bit 0 bit 0 bit
Traffic Class/Flow Label 28 bit 1 bit 2 bit
Payload Length 16 bit 0 bit 0 bit
Next Header 8 bit 2 bit 1 bit
Hop Limit 8 bit 8 bit 2 bit
Source/Destination 256 bit 4 bit 8 bit
HC2 encoding 0 bit 1 bit 0 bit
total 320 bit 24 bit 16 bit

まず、Hop Limitは1, 64, 255, 後続データで指定の4パターンに整理することで、2 bitに圧縮。TC/FLは単純に省略/非省略を1 bitで表す形式から、例えば、QoSを表すDiffServe Code Pointだけをインラインに載せたりできるようになった。

Source/DestinationはHC1より、さらに複雑になっており、コンテキスト識別子拡張フラグ1 bit、マルチキャスト圧縮フラグ1 bit、Source/Destination毎にアドレス圧縮フラグ1 bitとアドレスモードフラグ2 bitで合計8 bitとなる。

コンテキスト識別子拡張というのは、6LowPANパケットをやりとりするノード間で、あらかじめIPv6アドレスそれに対応するコンテキストIDとを決めておき、6LowPANパケットには実アドレスではなく、コンテキストIDを記述することで、圧縮率を高める方法。コンテキスト識別子と対応するIPv6アドレスの配布や、管理方法等はRFC6282では定義されていない。アドレスモードフラグで、単にコンテキストIDに対応する128 bitアドレスをフルで利用する、16 bitをインラインに載せる、64 bitをインラインに載せる、等の選択ができる。

コンテキスト識別子拡張を利用しない場合も、やはりアドレスモードフラグで、インラインに載せるビット数を128 bit/64 bit/16 bit/0 bitから選択できる。

コンテキスト識別子拡張を使う場合も使わない場合も、16 bitをインラインに載せる場合は、後半64 bitは0000:00ff:fe00:XXXXとなる。前半64 bitはもちろんリンクローカルプレフィクスとなる。この0000:00ff:fe00:XXXXは、short addressを使っている802.15.4リンクでも利用される。

IPv6マルチキャストアドレスは最初の8 bitが0xFFになるなどの決まりがあり、これを考慮した圧縮するための仕組みがマルチキャスト圧縮フラグ。もともとIPv6マルチキャストはSouceに指定することはできないため、Destinationに対してのみ有効。やはり、アドレスモードフラグとの組み合わせで、インラインで載せるビット数を切り替えられる。

standardなIPv6と比較すると、実情に応じた決め事を増やすことで圧縮率を稼ごうとしている6LowPANは複雑であまり美しくないように思える。非効率な部分があっても半導体をはじめとする技術の進歩が解決してくれる、という楽天的なムードすら感じさせるTCP/IPやHTTPのシンプルさとは対照的な、6LowPANのコスト最優先の考え方はとっても現代風だ。

残りのNext Header/HC2 encodingは、次のレイヤ、たとえばUDP等の圧縮に関わっているが、長くなったので今日はこれで終了!

「メガネをかけたら」を読んだ

新聞で書評を読んだ記憶があり、読んでみた。

メガネをかけたら

メガネをかけたら

端的に言えば、メガネをかけたら、メガネなしでは見えなかった優しい心が見えた、という話だと思う。その前ふりとして、「メガネをかけてもおりこうになるわけではない」、「メガネをかけたらかわいくなるわけではない」、「メガネをかけてもそらがとべるようになるわけがない」と主人公に言わせるわけだが、先生は言う。「メガネをかけたらよく見えるのよ」と。

主人公が「あるわけない」と否定したメガネの利点はなくとも「よく見えたほうがいい」と担任の先生は言うが、現実はどうだろう。わからないほうがよかった、知らないほうがよかった、と思わされる場面は人生に何度も訪れる。メガネをかけたら、メガネなしで見えなかった優しい心が見える反面、見えなかった優しくない心も見えてしまうのだ。果たして、メガネはかけるべきなのか、よく見えるようにしたほうがいいのか。

この絵本はそこまで問いていないと思う反面、もしかしたら、それでも「よく見えたほうがいい」のだと子供たちに訴えているのかも、とも思う。主人公のお母さんが「おりこうに見える」、お父さんが「かわいく見える」と、娘にメガネをかけさせようとするのに対し、担任の先生はストレートに「よく見える」からかけたほうがいいと言う。親がはぐらかしてしまうことを先生が正してくれいるような。お母さんも先生からの電話で、娘に伝えるべき内容を悟ったのかもしれない。

世の中は歪んで見えてしまうこともあり、また実際に歪んでいるのかもしれないが、それを矯正して見る力を、人の理性は、心は持っているのだと信じたい。少なくとも、主人公の女の子が前半見せるような素晴らしい想像力を彼らの可能性と考えると、子供たちには「メガネをかけたらよく見えるのよ」と、はっきりと言えるような大人でいたいと思った。そのためには手を抜かず、もっと見えるように努力しないといけないと思う。

いい絵本に出会えました。