あさりのみそしるダイアリー

ココロおだやかに暮らしてます😌

【プログラミング】SRTことSerure Reliable Transportのライブラリv1.4.3がリリースされていました

f:id:asarinomisosoup:20210611224227p:plain

 

低遅延かつ信頼性の高い映像配信プロトコル「SRT - Secure Reliable Transport -」のバージョン1.4.3が、4月下旬にリリースされていました。昨年9月以来のリリースです。

github.com

 

映像データに限らず、ただのプロトコルなので任意のデータを飛ばすことができます。

もちろん、MPEG2-TSとかも。

非常に低遅延なデータ配信を、カンタンに実装できるので、割と気に入っています。

 

プログラミング言語はC++ですが、HaivisionはこれのGo言語版「srtgo」もGithubにて公開しています。

いずれも、MPL-2.0 ライセンスです。

srtgoは、cgoを使っているのでWindows上だとめんどいです。

github.com

 

SRTのRust言語での実装もGithubで公開している人もいます。(Apache-2.0ライセンス)

Rustは、やったことがないのでよくわからないです(´・ω・`)

github.com

 

ちなみに、vcpkgでも配布されていますが、こちらはv1.3.4と古め。

チェックしてプルリクするほどアクティブでもないので(´・ω・`)

f:id:asarinomisosoup:20210611224933p:plain

www.asarinomisosoup.com

 

 

ちなみに、v1.4.3での目玉機能は特にないですが、APIの一部で型が変更されているので注意です。

あと、Linuxでの共有ライブラリ(*.so)のファイル名のバージョン部分の付け方を変えたみたいです。

 

それと、今まではインストーラの形での提供はありませんでしたが、本バージョンからWindows向けのインストーラも提供されるようになりました。

f:id:asarinomisosoup:20210611225549p:plain

 

これを使えば、WindowsでSRTを使うまでのハードルがめちゃくちゃ低くなります。

Visual Studioで開発する時用のpropsファイルも同梱されています。

f:id:asarinomisosoup:20210611225656p:plain

 

ちなみに、SRTは以前ちょっとだけ触れたことがあります。

www.asarinomisosoup.com

 

これで特段何かをここで展開しようというわけではないですが・・・

とりあえず、おわり(´・ω・`)

【PC】Windows10のPowerShellをアップデートする

f:id:asarinomisosoup:20210602102658p:plain

 

かつてのコマンドプロンプトの代わりに使われることが多くなったであろう、Windows向けの新しいコンソールアプリ「PowerShell」。

今は、GitHub上でオープンソースプロジェクトとして稼働しており、WindowsだけでなくLinuxやmacOSなどでも使えるようになっています。

 

一方、Windows向けに最初からインストールされているPowerShellは少しバージョンが古いようで、起動するたびに

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

と言われます。

 

なんとなく古いものを使わされている感が否めないですよね。

ということで、今回はこれをアップデートします。

 

最新版のPowerShellは、こちらで配布されています。

docs.microsoft.com

 

画面右上の「PowerShellのダウンロード」をクリックします。

f:id:asarinomisosoup:20210602103016p:plain

 

GitHub上のダウンロード一覧画面が、下の方にスクロールしていくと表示されるので、お使いの環境に適したものをダウンロードします。

この記事の執筆時点で、最新バージョンは 7.1.3 です。2021年3月11日にリリースされたようです。

f:id:asarinomisosoup:20210602103207p:plain

 

64bit OSであれば、「PowerShell-(バージョン)-win-x64.msi」をダウンロードするのがよいでしょう。

 

ダウンロードしたファイルを実行して、画面の指示にしたがってインストールします。

f:id:asarinomisosoup:20210602103347p:plain

 

下2つは自分でチェックを追加しました。

右クリックメニューに最初から「ここで開く(Open here)」があれば、いちいちSHIFTキーを押しながら右クリックをする必要もないです。

※デフォルトの機能として、SHIFTキーを押しながら右クリックすると、メニュー内容が少し増えて「PowerShell ウィンドウをここで開く」などの操作ができるようになります。

f:id:asarinomisosoup:20210602103533p:plain

 

インストールが終わりました。

画面左下の「Launch PowerShell」にチェックを入れておくと、画面を閉じた後に自動的に「新しいPowerShell」が起動します。

f:id:asarinomisosoup:20210602103809p:plain

 

新しいPowerShellがどうとか言われなくなりました。

またアップデートされたら分かりませんが。

f:id:asarinomisosoup:20210602103911p:plain

 

PowerShellの新旧の違いは、ここにまとめられています。

新しいのをインストールしても、古いPowerShellはそのまま残っています。

docs.microsoft.com

 

別記事の Windows Terminal のデフォルトを新しいPowerShellにするならば、Windows Terminal の設定画面から「既定のプロファイル」を「PowerShell」に変更しておくとよいでしょう。

f:id:asarinomisosoup:20210602104830p:plain

www.asarinomisosoup.com

 

 

これで快適なコンソール環境が整ったってところでしょうか?(`・ω・´)

【PC】Windows Terminal をインストールしよう!

Windows Terminal は、コマンドプロンプトやPowerShell, WSL(Windows Subsystem for Linux) などのコマンドラインツールをまとめて、効率的にこれらにアクセスできるツールです。

www.microsoft.com

 

上記ウェブサイトまたは Microsoft Storeアプリからインストールできます。

f:id:asarinomisosoup:20210602101509p:plain

 

すぐにインストールが終わるので、起動すると、いつもの PowerShell 画面が表示されます。

f:id:asarinomisosoup:20210602101706p:plain

 

コマンドプロンプトなどもタブに同居できます。

f:id:asarinomisosoup:20210602101754p:plain

 

コンソールアプリゆえ、あまりマウスを使って何かするものでもないからか、画面分割の「Alt+Shift+"+"」など、Windows Terminal 特有の機能を使うためにはショートカットキーを覚えないといけないのがツラみ(´・ω・`)

f:id:asarinomisosoup:20210602102151p:plain

 

最近は黒画面を多用しているので、たくさん画面を開くような使い方をしている時点で頭が悪いのかもしれませんが、とりあえずあると助かりそうなのでインストールしてみました。

ま、使い方に関しては、ぼちぼち慣れていけばいいのではないでしょうか?(`・ω・´)

【Jetson】JetPackのロードマップがいつの間にか更新されてた件

NVIDIAから新しいグラフィックボードが発表されましたね。

3000番台のTiナンバリングで、私は当面お世話にならなそうなやつです、はい。

いまだに1060使いだし(´・ω・`)

pc.watch.impress.co.jp

 

で、これはパソコン用のグラフィックボードですが、組込みシステムとか、シングルボードコンピュータとか、そっち系でRaspberry Piと並んでよく知られているのが「NVIDIA Jetson」です。

 

Raspberry Pi 4 ユーザーはけっこういると思いますが、GPU(CUDA)で並列計算がしたい人だと、Jetson一択みたいなところありますよね(`・ω・´)

手に入れやすい価格帯の Jetson Nano 2GB/4GB モデルは、持っている方も多いのではないでしょうか?

www.asarinomisosoup.com

 

私も、昨年秋にNVIDIA Jetson Nano 2GBモデルを買いました。

7,000円くらいで手に入ります。

 

 

Raspberry Pi だと、Raspberry Pi OS (旧Raspbian) イメージをmicroSDカードに書き込んで使いますが、NVIDIA Jetson Nano 開発者キットだと、Jetpack と呼ばれるイメージをmicroSDカードに書き込んで使用します。

これは、NVIDIA Jetson Xavier NX 開発者キットでも同様です。

 

 

Jetson Xavier NXは、Nanoよりもはるかに高いですが、性能も段違いです。

Nanoでは物足りないという方は、Xavierに手を出してみてもいいかもしれません。

 

で、本題ですが・・・

NVIDIA Jetson のウェブサイトで、今後のJetPackのアップデートスケジュールが掲載されています。 

developer.nvidia.com

 

 

(2021.6.26 追記)

下記のNVIDIA Developer Forumに、NVIDIA公認モデレーターによる、ロードマップに関する興味深い投稿があったので、この内容も反映させています。

forums.developer.nvidia.com

www.asarinomisosoup.com

 

(2021.8.4 追記)

JetPack 4.6 がリリースされました!

リリースノートの内容を下記の記事にて書き出しています。

asarinomisosoup.com

 

 

 

ちょっと前までは、割とざっくりしたスケジュール感や内容しか書かれていなかった気がしますが、いつの間にか内容が更新されていました。

ハードウェアロードマップは変わらず、2022年にOrin、2023年にNano Nextと書かれているくらいですが、ソフトウェアロードマップ、つまりJetPackの更新スケジュールについては、以下の点が記載されています。

 

・2021年2月 JetPack 4.5.1(現在の最新版)

※すべてのJetsonモジュールがアップデート対象

+ Jetson TX2 NXサポート

 

・2021年7月 JetPack 4.6 / L4T 32.6 based on Ubuntu 18.04

※すべてのJetsonモジュールがアップデート対象

 ただし、これがJetson Nano (2GBモデル含む)、TX1, TX2シリーズ (TX2NX, TX2, TX2 4GB, Tx2i を含む) の最後のメジャーアップデートになる。

 そして、これ以降の Jetpack 4.6 向けの更新は、基本的にクリティカルなバグ修正とセキュリティアップデートのみの対応になる。

+ Jetson AGX Xavier 産業向けモジュール対応

+ CUDA / cuDNN / TensorRT ライブラリアップデート

+ VPI (Vision Programming Interface) ライブラリのアップデート⇒バージョン1.1

+ Triton Inference Server のサポート

※Tensorなんとかで使われる、機械学習をGPUで推論するサーバーを構築するフレームワーク

+ Image Based Over-The-Air

※無線でJetsonイメージをアップデートする仕組み?

+ A/B Root File System

※ルートファイルシステムを冗長させて、片方ダメになってももう片方でフォローできます的な、システム障害対策

+ 外部メディア(特にNVMe)のディスク暗号化サポート

※Windowsで言う、BitLocker的な。

+ Jetson Xavier NX / Jetson AGX Xavier の NVMeブートのサポート

※NVMeにシステムOSを入れて、起動できるようになる。

 

・2021年第4四半期(年末~2022年2月ごろ) JetPack 4.6.1

※すべてのJetsonモジュールがアップデート対象 

 マイナーアップデートなのでNanoやTX1,2も対象。ただし、予定されている最後のマイナーアップデートでもある。

+ cuDNN / TensorRT ライブラリアップデート

+ VPI (Vision Programming Interface) ライブラリのアップデート⇒バージョン1.2

 

・2022年前半~半ば JetPack5.0 開発者プレビュー版

※Xavierシリーズ(NXやAGX)以降のJetsonモジュールがアップデート対象

 (2022年のOrinや、2023年のNano Nextも対象)

※正式版はこれより1シーズンほど経ってから

+ Ubuntu 20.04 LTS / Linux Kernel 5.10 対応

+ UEFIブートローダー対応 (CBootからの置き換え)

+ OP-TEE as TEE 対応

※Trusted Execution Environment / 組み込み機器向けのセキュリティ機能のオープンソース(Open Portable)版

+ CUDA 11.x 対応

+ cuDNN / TensorRT ライブラリアップデート

+ VPI (Vision Programming Interface) ライブラリのアップデート

 

※予定は変更される場合があります。

 

発表されているものは以上です。

 

フォーラムの投稿によると、ユーザーが柔軟にLinux Kernelバージョンを選択したり、サードパーティのLinuxディストリビューションをJetson上で使ったりできるようにしたいと考えているみたい。この柔軟性は、2022年に予定している開発者プレビュー版(5.0のことか?)で提供することを計画しているとのこと。

 

VPIは、できることが限られたOpenCVみたいなイメージですが、CPUやCUDA以外のハードウェアアクセラレータを使った高速な画像処理ができるライブラリです。

(もちろん、CPUやCUDAでも利用できます。)

 

CUDA / cuDNN まわりは、PC版もアップデートされていますから、Jetsonでも特にミドル~ハイエンドモデルでは少なくとも同じことができるようにしようというところで、JetPackが更新されるたびにいくらかアップデートされるようです。

AI / 機械学習が主流ですから、Tensorなんとかもまた、JetPackが更新されるたびにアップデートが入ります。

 

バージョンが 4.6 になる来月には、それなりに大きな機能追加があるようです。

主に組込みシステムとしてJetsonモジュールを採用した場合における、システムの保守や障害対応、セキュリティに関する内容ばかりですが。

 

また、来年予定される JetPack 5.0 では、いよいよNanoは斬り捨て御免のように見えますが、Linux Kernel / Ubuntu OS のアップデートが入るので、対応する周辺機器のドライバも増えて(WiFi6とか?)、なかなかたのしいことになりそうですね。

組み込み機器のセキュリティ対策として、OP-TEEが将来のJetson標準になるのでしょうか?よく知らんけど(´・ω・`)

 

とりあえず、JetsonユーザーとしてはOSの大幅アップデートは期待したいところですが、Nanoの余命もちょっち気になるところで・・・でも、まぁ実際使ってみると性能としては中途半端感も否めないので、Nanoユーザーは素直にハードウェアロードマップにあるところの「Nano Next」の方に期待すべきなのかもしれませんが。

2023年ですケド(`・ω・´)

【プログラミング】Visual Studio 2019 バージョン 16.10 がリリースされました!

f:id:asarinomisosoup:20210526235032p:plain

 

Visual Studio 2019 v16.10 が今日リリースされました!

devblogs.microsoft.com

forest.watch.impress.co.jp

 

大きなところだと、C++20対応やLLVM OpenMPのx64/x86/ARM64サポート、Git/Dockerサポートの強化、パフォーマンスプロファイラや.NETアプリの生産性向上といったところでしょうか。

 

また、同時にv16.11 Preview1 の提供も開始されました。

そちらは .NET MAUI が目玉機能で、インストールアプリ開発者にとってはなかなかの注目しどころかと思います。

 

個人的には、.NET MAUI が気になるところなので、v16.10と同居可能なv16.11でも先取りしてみようかしら、なんて思ったり。

こちらも .NET MAUI Preview4 の提供を開始しています。

devblogs.microsoft.com

 

あと、本件とはあまり関係ないですが、vcpkg もいい具合にまとまってきています。

devblogs.microsoft.com

 

CUDA対応版OpenCVを導入するのがめちゃラクです。

ビルドがクソ時間かかりますが(3時間くらい(´・ω・`)

 

vcpkgを使うと、Visual Studio や VSCode とうまくインテグレートできるので、OSSなライブラリの利用がはかどります。

 

またどこかのタイミングで触れたいと思います。

おわり。

【電子工作】Arduino IDE 2.0 ベータ版が3月1日より公開されています!

f:id:asarinomisosoup:20210317234732p:plain

 

もうこんな時間に・・・最近、お仕事がちょっとアレです(´・ω・`)

さて、そんなお仕事でも試作で使っているArduinoですが、Arduino向け統合開発環境「Arduino IDE」のバージョン2.0ベータ版が今月リリースされています。

blog.arduino.cc

 

私もさっそくインストールして使っていますが、ベータ版とはいえ、ちゃんと使えるかたちになっています。

従来版にはなかった、VSCodeのようなコメントアウトなどのショートカットや、Ctrl+Spaceでインテリジェンス的な候補が出てくるなど、コーディングにおける使い勝手がかなり向上しています。

 

日本語表示はできませんが、従来版を使っている方なら、いつもの操作を英語で行うこと自体は苦ではないと思います。

むしろ、一度使い始めると、元のバージョンには不便すぎて戻れないです。

 

私の場合は、Arduinoと言うより、ATMEGA328Pという、Arduinoにも載っているマイコンのプログラムを書くのに使っています。特に何の不満もありません。

Arduinoユーザーの方は、ベータ版をインストールして使ってみてはどうでしょうか?従来版と共存できます。

 

ちなみに、話は変わりますが、秋月電子にて「ATMEGA4809-PF」の販売が開始されました!(`・ω・´)

akizukidenshi.com

 

ArduinoのそれよりもハイパフォーマンスなAVRマイコンで、タイマーの数が5つなど、機能性がArduinoよりかなり高いです。

ArduinoやATMEGA328Pとは異なる書き込み方法なので、Arduinoユーザーの方が同じ環境で扱えるようなものではないと、最近のトラ技で読みましたが、機会があればさわってみるのもいいかもしれませんね。

ブレッドボードにさせるので、カンタンに試作できそうです。(`・ω・´)

 

【プログラミング】.NET Preview 2 がリリースされました!(`・ω・´)

マイクロソフト開発者ブログにて、「.NET 6 Preview 2」がリリースされたことがアナウンスされました!

devblogs.microsoft.com

 

Windows版、macOS版、Linux版など、対応されたプラットフォーム向けのインストーラが、すでに提供されています。

dotnet.microsoft.com

 

今回提供開始となった、プレビュー第2版でできることは、開発者ブログに記載されたとおりです。

最近、あまり業務でもプライベートでも、C#など.NET系のプログラムを書く時間がほとんどないのですが、今年11月に予定される「.NET6」としての大型リリースに向けて、どんな機能が追加されるのか、個人的にもいろいろ試してみたいところです(`・ω・´)