(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-21
(45)【発行日】2024-05-29
(54)【発明の名称】断片化MP4を活用したHTTPベースのメディアストリーミングサービス
(51)【国際特許分類】
H04L 67/02 20220101AFI20240522BHJP
H04L 65/60 20220101ALI20240522BHJP
H04L 67/1027 20220101ALI20240522BHJP
【FI】
H04L67/02
H04L65/60
H04L67/1027
(21)【出願番号】P 2023506002
(86)(22)【出願日】2020-09-08
(86)【国際出願番号】 US2020049716
(87)【国際公開番号】W WO2022055476
(87)【国際公開日】2022-03-17
【審査請求日】2023-01-27
(73)【特許権者】
【識別番号】520155228
【氏名又は名称】ヒタチ ヴァンタラ エルエルシー
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】ラグテッタ, ジュゼッペ
(72)【発明者】
【氏名】ベルナコーニ, マルコ
(72)【発明者】
【氏名】イップ, フランシス
(72)【発明者】
【氏名】ワン, メンジア
【審査官】宮島 郁美
(56)【参考文献】
【文献】特表2020-524338(JP,A)
【文献】米国特許出願公開第2019/0253742(US,A1)
【文献】特開2017-004220(JP,A)
【文献】特開2020-123831(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-12/66,13/00,41/00-69/40
(57)【特許請求の範囲】
【請求項1】
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して、前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記WSS接続を介して、前記メディアサーバから、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含
み、
前記クライアントデバイスの前記ウェブブラウザアプリケーション及び前記選択された1又は複数のカメラから受信される認証トークンの検証に基づいて、前記クライアントデバイスの前記ウェブブラウザアプリケーションが、前記選択された1又は複数のカメラからの前記ライブビデオにアクセスすることの認証を行うことを更に含む方法。
【請求項2】
請求項1に記載の方法において、前記メディアチャンクは断片化MP4フォーマットである、方法。
【請求項3】
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して、前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記WSS接続を介して、前記メディアサーバから、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含み、
前記ウェブブラウザアプリケーションを介して前記クライアントデバイスにより選択された前記1又は複数のカメラの数が閾値を超える場合、ロードバランシングプロセスを実行することを更に含み、前記ロードバランシングプロセスは、
前記ウェブブラウザアプリケーションを介して、別のメディアサーバとクライアントデバイスにより選択された前記1つ又は複数のカメラのサブセットとの間に別のセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間に別のウェブソケットセキュア(WSS)接続を確立することと、
前記別のメディアサーバにおいて、前記別のHTTPS接続を介して、前記1又は複数のカメラの前記サブセットから第2のライブビデオの第2のメディアチャンクを受信することと、
前記別のメディアサーバから、前記別のWSS接続を介して、前記第2のライブビデオの前記第2のメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含む、方法。
【請求項4】
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して、前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記WSS接続を介して、前記メディアサーバから、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含み、
前記ウェブブラウザアプリケーションを介して、前記クライアントデバイスから前記1又は複数のカメラの前記選択を受信することと、
前記選択された1又は複数のカメラの前記ライブビデオをアクティブ化するようにエッジデバイスに指示することと、
を更に含む方法。
【請求項5】
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して、前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記WSS接続を介して、前記メディアサーバから、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含み、
前記クライアントデバイスの前記ウェブブラウザアプリケーションと前記メディアサーバとの間に別のHTTPS接続を確立することと、
前記別のHTTPS接続を介して、前記メディアサーバに記憶されたビデオを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を更に含む方法。
【請求項6】
プロセスを実行するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して、前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記メディアサーバから、前記WSS接続を介して、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含
み、
前記命令は、前記クライアントデバイスの前記ウェブブラウザアプリケーション及び前記選択された1又は複数のカメラから受信される認証トークンの検証に基づいて、前記クライアントデバイスの前記ウェブブラウザアプリケーションが、前記選択された1又は複数のカメラからの前記ライブビデオにアクセスすることの認証を行うことを更に含む、非一時的コンピュータ可読媒体。
【請求項7】
請求項
6に記載の非一時的コンピュータ可読媒体において、前記メディアチャンクは断片化MP4フォーマットである、非一時的コンピュータ可読媒体。
【請求項8】
プロセスを実行するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して、前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記メディアサーバから、前記WSS接続を介して、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含み、
前記命令は、前記ウェブブラウザアプリケーションを介して前記クライアントデバイスにより選択された前記1又は複数のカメラの数が閾値を超える場合、ロードバランシングプロセスを実行することを更に含み、前記ロードバランシングプロセスは、
前記ウェブブラウザアプリケーションを介して、別のメディアサーバとクライアントデバイスにより選択された前記1つ又は複数のカメラのサブセットとの間に別のセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間に別のウェブソケットセキュア(WSS)接続を確立することと、
前記別のメディアサーバにおいて、前記別のHTTPS接続を介して前記1又は複数のカメラの前記サブセットから第2のライブビデオの第2のメディアチャンクを受信することと、
前記別のメディアサーバから前記第2のライブビデオの前記第2のメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに前記別のWSS接続を介して送信することと、
を含む非一時的コンピュータ可読媒体。
【請求項9】
プロセスを実行するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して、前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記メディアサーバから、前記WSS接続を介して、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含み、
前記ウェブブラウザアプリケーションを介して、前記クライアントデバイスから前記1又は複数のカメラの前記選択を受信することと、
前記選択された1又は複数のカメラの前記ライブビデオをアクティブ化するようにエッジデバイスに指示することと、
を更に含む、非一時的コンピュータ可読媒体。
【請求項10】
プロセスを実行するための命令を記憶する非一時的コンピュータ可読媒体であって、前記命令は、
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して、前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記メディアサーバから、前記WSS接続を介して、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を含み、
前記クライアントデバイスの前記ウェブブラウザアプリケーションと前記メディアサーバとの間に別のHTTPS接続を確立することと、
前記別のHTTPS接続を介して、前記メディアサーバに記憶されたビデオを前記クライアントデバイスの前記ウェブブラウザアプリケーションに送信することと、
を更に含む非一時的コンピュータ可読媒体。
【請求項11】
プロセッサを備えた装置であって、前記プロセッサは、
ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1つ又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、
前記メディアサーバと前記クライアントデバイスの前記ウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、
前記メディアサーバにおいて、前記HTTPS接続を介して前記選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、
前記メディアサーバから、前記選択された1又は複数のカメラから受信した前記ライブビデオのメディアチャンクを前記クライアントデバイスの前記ウェブブラウザアプリケーションに前記WSS接続を介して送信することと、
を行うように構成され、
前記クライアントデバイスの前記ウェブブラウザアプリケーション及び前記選択された1又は複数のカメラから受信される認証トークンの検証に基づいて、前記クライアントデバイスの前記ウェブブラウザアプリケーションが、前記選択された1又は複数のカメラからの前記ライブビデオにアクセスすることの認証を行うことを更に行うように構成された、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、メディアストリーミングシステムに関し、より詳細にはライブビデオフィードに関わるメディアストリーミングシステムにおけるレイテンシ及びジッタへの対処に関する。
【背景技術】
【0002】
メディアストリーミングの関連技術の解決策は通常、ビデオオンデマンド(VoD)、サブスクリプションビデオオンデマンド(SVoD)、及び一般的なオーバーザトップ(OTT)サービスに向けられている。ここ数年、閉回路テレビ(CCTV:Closed-Circuit Television)企業は、主にリアルタイムストリーミングプロトコル(RTSP)及びリアルタイムメッセージングプロトコル(RTMP)に基づき、したがってウェブベースのインターフェースとの互換性が限られた所有又は半標準のプロトコルを使用するストリーミングサービスを開発した。エンターテイメント志向の他のベンダーは、ライブストリーミングサービスは彼らの市場にとって重要ではないため、ライブストリーミングサービスについて妥協しながら主にSVoDにフォーカスして放送TVビジネスに投資した。。
【0003】
ハイパーテキストトランスファープロトコル(HTTP)を介したライブストリーミングは、ウェブクライアントへのストリーミングのニーズを満たすための代替手段として関連技術において利用されたが、多くの場合、性能に関して妥協が伴っていた。このため、関連技術の実装は、ウェブライブストリーミングについてRTMPベースの実装にフォーカスしてきた。しかしながら、RTMPは、ウェブブラウザ及びアプリケーションが採用してきたセキュリティ対策を念頭に置いて開発されなかった。
【0004】
関連技術の実装では、ライブビデオをストリーミングするためのプロトコルとしてHTTPを利用する最近の開発は、共通メディアアプリケーションフォーマット(CMAF)をウェブベースのエコシステムの共通規格として組み込んでいる。CMAFは、既存のHTTPS上ダイナミックアダプティブストリーミング(DASH)及びHTTPライブストリーミング(HLS)ストリーミング手法とのより広く且つ統一された互換性を保証するように、既存の断片化Moving Picture Experts Groups-4(MP4)のベストプラクティスを拡張する。
【発明の概要】
【0005】
本明細書に記載される実施態様例は、CCTVストリーミング等のライブストリーミングを含み、セキュリティでの特定のシナリオに向けてビデオパイプラインを最適化する。本明細書に記載される実施態様例では、ユーザが低レイテンシ性能でライブフィードを消費することを促進する、CCTVシステムのために最適化されたメディアストリーミングサービスのシステム及び方法がある。
【0006】
本明細書に記載される実施態様例では、高性能ライブ及びアーカイブされたビデオを標準ウェブクライアントにストリーミングする問題に対して、関連技術のストリーミングパイプラインが直面する典型的なレイテンシ及びジッタの問題を解消する。本明細書に記載される実施態様例は、RTMPを使用する関連技術をHTTPを介したストリーミングに基づくセキュアでスケーラブルな解決策で置換することに関する。
【0007】
実施態様例は、セキュリティカメラフィードを標準ウェブクライアントにブロードキャスト可能な、DASH対応の高性能メディアストリーミングサービスを含む。実施態様例は、入力断片化MP4ファイルをDASHフォーマットで管理し、メディアフィードをHTML5標準ウェブプレーヤにブロードキャストするメディアサーバ等の装置を含む。軽量で最適化されたフットプリントの使用を介して、そのようなメディアサーバは非常に低いレイテンシでHTTPを介してストリーミングすることができ、ライブストリーミングに対して低レイテンシ性能を保証する。
【0008】
フラッシュに基づく関連技術による実装(RTMP)は、セキュリティと、最新のウェブブラウザ規格との互換性との点で弱い。さらに、市場での関連技術のメディアサーバは、HTTPベースのストリーミングに関して拡張性が不良であり、ビデオレイテンシに影響を及ぼすことが多い。関連技術でのそのような課題に対処するために、実施態様例は、入力ビデオフィードの管理及びルーティングを行い、いかなる種類の遅延を持ち込むことなくそれらをブロードキャストする。そのような実施態様例は、VoDサポートの促進に使用することもできる。
【0009】
実施態様例は、HTTPを介しての断片化MP4オーディオ/ビデオ及びウェブソケット/ウェブソケットセキュア(WS/WSS)の使用を更に含み、ウェブクライアントとサーバとの間の性能及び永続的な通信レイヤを保証する。HTTP及びWSS等の一般的なプロトコルが利用されるため、本明細書に記載された実施態様例は、それにより、レイヤ7リバースプロキシ及びロードバランサの使用を通じて安全性及び拡張性を有することができる。加えて、ウェブクライアントへの入力フィードの知的ルーティングが提供されるため、複雑なネットワークトポロジが存在する場合であっても、レイテンシを非常に低いレベル(例えば1秒)に減らすことができる。
【0010】
本開示の態様は方法を含むことができ、本方法は、ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、メディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、メディアサーバにおいて、HTTPS接続を介して選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、メディアサーバから、WSS接続を介して、選択された1又は複数のカメラから受信したライブビデオのメディアチャンクをクライアントデバイスのウェブブラウザアプリケーションに送信することとを含むことができる。
【0011】
本開示の態様は、プロセスを実行するための命令を記憶する非一時的コンピュータ可読媒体を含むことができ、命令は、ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、メディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、メディアサーバにおいて、HTTPS接続を介して選択された1又は複数のカメラからライブビデオのメディアチャンクを受信することと、メディアサーバからWSS接続を介して、選択された1又は複数のカメラから受信したライブビデオのメディアチャンクをクライアントデバイスのウェブブラウザアプリケーションに送信することとを含む。
【0012】
本開示の態様は、システムを含むことができ、本システムは、ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立するための手段と、メディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立するための手段と、メディアサーバにおいて、HTTPS接続を介して選択された1又は複数のカメラからライブビデオのメディアチャンクを受信するための手段と、メディアサーバからWSS接続を介して、選択された1又は複数のカメラから受信したライブビデオのメディアチャンクをクライアントデバイスのウェブブラウザアプリケーションに送信するための手段とを含むことができる。
【0013】
本開示の態様は装置を更に含み、本装置はプロセッサを含むことができ、プロセッサは、ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1つ又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立し、メディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立し、メディアサーバにおいて、HTTPS接続を介して選択された1又は複数のカメラからライブビデオのメディアチャンクを受信し、メディアサーバからWSS接続を介して、選択された1又は複数のカメラから受信したライブビデオのメディアチャンクをクライアントデバイスのウェブブラウザアプリケーションに送信するように構成されている。
【図面の簡単な説明】
【0014】
【
図1】
図1は、一実施態様例に従うビデオパイプライン例を示す。
【0015】
【
図2】
図2は、一実施態様例に従うセキュリティパイプライン例を示す。
【0016】
【
図3】
図3は、一実施態様例に従うメディアサーバをスケールアップ又はスケールダウンするためのクラスタアーキテクチャ例を示す。
【0017】
【
図4】
図4は、実施態様例を実装することができるアーキテクチャ例を示す。
【0018】
【
図5】
図5は、一実施態様例に従うVoDサポートの実施態様例を示す。
【0019】
【
図6(a)】
図6(a)は、実施態様例を利用し得るフロー図の例を示す。
【
図6(b)】
図6(b)は、実施態様例を利用し得るフロー図の例を示す。
【
図6(c)】
図6(c)は、実施態様例を利用し得るフロー図の例を示す。
【0020】
【
図7】
図7は、幾つかの実施態様例での使用に適したコンピュータデバイス例を有する計算環境例を示す。
【発明を実施するための形態】
【0021】
以下の詳細な説明は、本願の実施態様の図及び例の詳細を提供する。明確にするために、図間の冗長要素の参照番号及び説明は省かれる。説明全体を通して使用される用語は、例として提供され、限定を意図しない。例えば、「自動」という用語の使用は、完全自動又は本願の実施態様を実施する当業者の所望の実施に応じて実施態様の特定の態様にわたるユーザ又は管理者の制御が関わる半自動実施態様を含んでもよい。選択は、ユーザインターフェース又は他の入力手段を通してユーザによって行われてもよく、又は所望のアルゴリズムを介して実施されてもよい。本明細書に記載される実施態様例は、単独で又は組み合わせて利用することができ、実施態様例の機能は、所望の実施態様に従う任意の手段を介して実施することができる。
【0022】
本明細書に記載される実施態様例は、CCTVセキュリティシステムのために設計されて最適化されたメディアストリーミングサーバ等の装置を含む。そのようなメディアサーバは、セキュリティカメラビデオフィードを受信し、それらを安全且つ高性能な方法でウェブクライアントにブロードキャストするように構成される。
【0023】
図1は、一実施態様例に従うビデオパイプライン例を示す。具体的には、
図1は、一般的なCCTVデバイス、カメラ、ビデオレコーダ(NVR)、又はビデオ管理サーバ(VMS)からウェブアプリケーションでホストされるエンド消費者、例えば標準HTML5ビデオプレーヤへのビデオパイプラインのエンドツーエンドを表す。
図1の例では、アーキテクチャは、複数のCCTVデバイス又はカメラを含むことができるCCTVセキュリティシステム110と、メディアプレーヤ120等の装置と、MSE130を実装する、エンドユーザのウェブベースメディアプレーヤ130とを含む。CCTVセキュリティシステム110は、HTTPS接続121の使用を介してメディアチャンクをメディアサーバ120にストリーミングし、メディアサーバ120は、WSS接続122を介してメディアチャンクをウェブベースメディアプレーヤ130にストリーミングする。
【0024】
図1の例では、パイプラインは、標準メディアソース拡張(MSE)を実装する任意のブラウザにより管理することができる自己完結型メディアチャンク(例えば断片化MP4)にビデオを分割することを含む。特にライブストリーミングでのHTTPベースのストリーミングとの高い互換性により、DASH等のフォーマットを利用することができる。この手法を使用することにより、パイプラインはブラウザコーデックの使用を最適化し、多くのビデオプレーヤが同じウェブページでロードされて、異なるライブ又はオンデマンドフィードを消費する状態であっても、低レイテンシ性能を保証する。通信レイヤの別の重要な特性は、ウェブビデオプレーヤとメディアサーバとの間に永続的なソケットを有することである。そのような実施態様例は、システムが、プロトコルオーバーヘッドを持ち込まずにレイテンシ及びジッタを低減しながら、ストリーミングすることができるようにする。ブラウザは、MSEにフィードするビデオチャンクの連続ストリームを受信し、ブラウザがネイティブコーデックを使用してビデオを復号化できるようにする。
【0025】
実施態様例では、レイテンシが低いままであることを保証することができるより低い時間フレーム(例えば500ms以下のチャンクの形態)でのチャンクを促進するように構成可能なことと、デフォルトとして利用可能なMP4コーデックを有するウェブベースメディアプレーヤによって、利用されるメディアチャンクは、断片化MP4の形式である。さらに、CCTVカメラは、FFMPEG等のライブラリを介してネイティブに断片化MP4を容易に提供することができ、したがって、カメラから受信されたメディアチャンクは、即時再生に向けていかなる変更もなく、メディアサーバ120を介してウェブベースメディアプレーヤ130に一貫して転送することができる。加えて、断片化MP4はコンテナファイルであり、断片(例えば500ms以下のチャンク)に分割される任意のタイプのメディア(例えばオーディオ、ビデオ)を含むことができ、柔軟な伝送及び任意のブラウザ/ウェブベースのメディアプレーヤでの即時再生を促進する。しかしながら、所望の実施態様に従い、他のタイプの構成可能なタイプのメディアチャンクを利用してもよい。
【0026】
メディアサーバ120は、HTTPS121及びWSS122を介して、接続を確立し、メディアチャンクをCCTVシステム110とウェブベースメディアプレーヤ130と間で転送するように構成されるため、メディアサーバ120のハードウェア要件は、最小化することができ、
図3に示されるように、クラウドプロビジョニングデータセンタ内でのスケールアップ又はスケールダウンについて柔軟に実装することができる。HTTPS121及びWSS122を介して確立された接続は拡張性及びリバースプロキシを促進するために柔軟でありながら、メディアチャンクの伝送のセキュリティを保証する安全な接続である。メディアサーバ120は、本明細書に記載されるアーキテクチャを介して必要とされるハードウェアが最小であることに起因して、所望の実施態様により他のタイプの装置(例えばパーソナルコンピュータ、ラップトップ、ゲートウェイルータ)と置き換えることもできる。一実施態様例では、メディアサーバ120はそれにより、チャンクが完了するまでのみ、メディアチャンクをキャッシュするように構成することができ、そこからメディアサーバ120は即座に、完成されたチャンクをウェブベースメディアプレーヤ130に転送して、低レイテンシを保証する。
【0027】
このアーキテクチャを通して、HTTPS及びWSS接続を介してビデオフィードのセキュリティを維持しながら、CCTV監視システムからウェブベースメディアプレーヤへの略リアルタイムレイテンシ(例えば1秒)を促進することができる。CCTV監視システムの大半のユースケースは、リアルタイムフィードを必要とする傾向があるため(例えばセキュリティシステム、警察監視等)、本明細書に記載されるアーキテクチャは、そのような低レイテンシを達成できず、それによりCCTV監視システムに適用可能ではない関連技術の実装に対する改良である。関連技術のシステムは典型的には10~15秒のレイテンシであり、CCTV監視システムには適さない上に、要求されるレイテンシで特定のクライアントデバイスに提供される複数のライブストリームカメラフィードを扱うこともできない。
【0028】
図1に示されるアーキテクチャ例では、低レイテンシの永続的チャネルを間に維持することができるように、そしてHTTPS接続と比較して低レイテンシを促進して接続でのオーバーヘッドを低減するために、WSS接続がメディアサーバ120とウェブベースメディアプレーヤ130との間で維持される。WSS接続に失敗する場合、メディアサーバ120はそれにより、WSSプロトコルを介して受信される通知を通して失敗を認識し、HTTPS接続と比較してより素早く効率的に接続を復元することができる。
【0029】
図2は、一実施態様例に従うセキュリティパイプライン例を示す。本明細書に記載される実施態様例はOpenIDに対応し、したがって、任意のOpenIDアイデンティティマネージャと統合することができ、それにより、標準機構を用いてフィードを安全にすることができる。メディアサーバ120が、ビデオをプッシュ又は消費する要求を受信した場合、トークン検証が実行され、トークン検証は、入力要求及び出力要求の両方で、あらゆるメディアフィードのメディアフィード認証ヘッダにおいて受信されるベアラトークンを検証する1組の方法を含む。入力トークン検証に基づいて、要求は処理されるか、又は処理されない。
図2の実施態様例では、メディアサーバは、アイデンティティプロバイダ200に委託されるものとして共通ユーザ管理へのトークンの処理を切り離し、それにより、メディアサーバ120のリソースを、柔軟性を維持しながらより低レイテンシでメディアチャンクをクライアントに転送するために割り当てることができる。所望の実施態様に応じて、内蔵メモリキャッシュは認証情報を再使用して、アイデンティティプロバイダ200との新たな繰り返しなしで、既に処理されたトークンを検証することもできる。
【0030】
図2に示されるように、実施態様例は、両方ともトランスポートレイヤセキュリティ(TLS)1.2と互換である、HTTPS121及びWSS122を介してセキュア化されたチャネルを露出する。それにより、そのような実施態様を通して、クライアント及びサーバは暗号化されたチャネルのみを介して通信するように強制され、不要なコンテンツを露出するリスクを低減する。OpenIDに基づく認証方法は、本明細書に記載される柔軟なプラグインベースのアーキテクチャに基づいて利用することができる、可能なメカニズムの単なる1つにすぎず、所望の実施態様に従って他の認証方法を配置することも可能である。
【0031】
実施態様例では、RESTful API等のウェブアプリケーションプログラミングインターフェース(API)を利用して、フィードのステータスをモニタすることができる。特に、そのような実施態様は、メディアサーバ120のインスタンスによってグループ化された、消費中のクライアントのカウント、ストリームステータス、及び最後の対話のタイムスタンプと共に、現在の入力フィードのスナップショットを提供することができる。
【0032】
ウェブベースメディアプレーヤ130は、メディアプレーヤ120を介したCCTVライブストリーム用に特に設計された高性能HTML5ウェブビデオプレーヤの形態で実装することができる。本明細書に記載される実施態様例では、ウェブベースビデオプレーヤ130は、認証及び認可のためのAPIキー/トークン定義、数分の1秒という低いレイテンシを保証するためのライブエッジ戦略、ビデオフィードが即座に利用可能ではない場合の再試行メカニズム、内部イベント露出、ログ及び統計機能、並びにマルチトラック管理をサポートするように構成される。
【0033】
VoD実装を促進するために、メディアサーバ120はDASHストリーム及び同封されたメディアファイル並びにブラウザが処理することができる任意のフォーマットを管理する。VoDは、疑似ストリーミングを実装することにより実行される。メディアサーバ120はハイパーテキストマークアップ言語(HTML)1.1+仕様をサポートするように構成されるため、ウェブベースのメディアプレーヤ130及び任意のHTML5標準プレーヤは、メディアサーバ120により提供されるビデオファイルを消費するように構成される。
【0034】
図3は、一実施態様例に従うメディアサーバをスケールアップ又はスケールダウンするクラスタアーキテクチャ例を示す。実施態様例では、メディアサーバ120は、軽量、マルチプラットフォーム、安全、スケーラブル、且つ高性能であるように構成される。内部アーキテクチャは、プラグイン及びミドルウェアを利用して、性能を損なわずに拡張性を保証する。ビデオパイプラインは、関連技術の実装では通常はクラウドでホストされる高価で大きな基盤に頼らずには到達することができないものを、わずか1秒というレイテンシで実行する。各実施態様は、関連技術の実装と比較してレイテンシを1/5~1/10に減らすことができる。さらに、メディアサーバ120の1つのインスタンスは、100までのフルフレームHDビデオフィードを同時に管理するように構成することができる。実施態様例では、メディアサーバのスケーリングは非常に簡単であり、必要に応じて新しいノードをクラスタ200に追加することを含む。
【0035】
図3の例では、当技術分野で既知の任意のロードバランシングプロセスを利用して、利用されるメディアサーバ及び/又は各メディアサーバに提供されているフィードの数を平衡することができる。例えば、メディアサーバは、フィードの閾値(例えば100)を同時に促進するように構成してもよい。閾値を越える場合、バックエンド管理サーバ(例えば
図4に示される)は、フィードの負荷平衡のために追加のメディアサーバを割り当てることによりシステムをスケールアップしてもよい。さらに、そのようなバックエンド管理サーバは、ユーザが観るフィード数を下げた場合、利用されるメディアサーバの数をスケールダウンすることができる。
【0036】
図4は、実施態様例を実装することができるアーキテクチャ例を示す。
図4に示されるように、ウェブベースメディアプレーヤ130はフロントエンドクライアントデバイス400上で実行される。クライアントデバイス400が、1又は複数のカメラのうちの閲覧するカメラの選択を提供すると(例えばグラフィカルユーザインターフェースを介して)、トリガーが、カメラが利用可能であるか否かを決定する要求を処理するバックエンド管理サーバ410に送信される。利用可能である場合、管理サーバ410は、対応するカメラを管理するエッジデバイス420にメディアフィード要求を提供する。エッジデバイス420は次いで、CCTVシステム110における対応するカメラを制御し、メディアサーバ120に接続して、ライブストリーミングビデオの断片化メディアチャンクを提供する。断片化メディアチャンクはクライアントデバイス400に提供されて、ウェブベースメディアプレーヤ130において処理される。
図4におけるアーキテクチャのフローについて
図6(a)~
図6(c)においてより詳細に説明する。
【0037】
本明細書に記載される実施態様例は多くの様々なシナリオで使用することができ、レイテンシが極めて低く、高性能であるリアルライブストリーミングサービスを必要とする全ての潜在的な将来の用途に開かれている。一実施態様例では、システムは大規模状況認識システムに完全に統合することができ、異種CCTVサブシステムからの数千台のセキュリティカメラのライブビデオストリーミングを可能にする。アーキテクチャに起因して、実施態様例は、エッジからのメディアフィードを消費するウェブベースのアプリケーションに非常にスムーズに統合することができる。
【0038】
図5は、一実施態様例に従うVoDサポートの一実施態様例を示す。VoDサポートは、ビデオオンデマンドプラットフォームとしてメディアサーバ120を使用する機会を開く。そのような一実施態様例では、クライアントデバイスは、
図4に示されるアーキテクチャを介してビデオをメディアサーバ120の1つに記憶するように要求することができる。ビデオがメディアサーバ120に記憶されると、ウェブベースのメディアプレーヤ130と対応するメディアサーバ120との間にHTTPS接続500を確立することができ、そこからVoD要求を提出され、VoDフィードを提供され得る。
【0039】
プラグインベースのアーキテクチャに起因して、実施態様例は、ビデオ分析のためのフィードプロビジョニング、深層学習エンジン等、カスタムワークフロー、メディアアセット管理、及びライブイベント放送用の任意の種類の外部システムと統合することができる。
【0040】
図6(a)~
図6(c)は、一実施態様例に従うフロー図例を示す。具体的には、
図6(a)は、
図1及び
図4に示されるように、カメラを選択し、メディアサーバ、CCTVシステム、及びウェブベースメディアプレーヤ間の接続を確立するフローの一例を示し、バックエンド管理サーバ、メディアサーバ、又は両方の組合せの何れかにより促進できる。
【0041】
まず、601において、1又は複数のカメラの選択がクライアントデバイスから受信される。602において、カメラが利用可能であるか否かが判断される(602)。そのような判断は、要求時にライブビデオフィードを提供するためにカメラが利用可能であるか否かに基づいて行うことができる。利用可能である場合(Yes)、フローは次い
で603に進み、
図2に示されるように、選択されたカメラ及びクライアントデバイスから認証トークンを受信する。
【0042】
604において、
図2において決定されるように、認証が成功するか否かが決定される。成功する場合(Yes)、フローは605に進み、選択されたカメラと1又は複数のメディアサーバとの間にHTTPS接続を確立し、606において、1又は複数のメディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間にWSS接続を確立する。HTTPS接続及びWSS接続は、当業者に既知のように、標準ハンドシェークプロトコルを介して確立することができる。
【0043】
607において、ライブビデオのメディアチャンクが、選択されたカメラから対応する1又は複数のメディアサーバにHTTPS接続を介して送信される。608において、ライブビデオのメディアチャンクは、1又は複数のメディアサーバからクライアントデバイスのウェブブラウザアプリケーションにWSS接続を介して転送される。
【0044】
図6(b)は、選択されたカメラの要求されたメディアチャンクを既に放送しているメディアサーバを使用して、これもまた同じ選択されたカメラを要求している他のクライアントデバイスに接続するフロー図を示す。本明細書に記載される実施態様例では、WSS接続を介してメディアチャンクを転送しているメディアサーバはそれにより、そのようなメディアチャンクを既に利用可能に持っており、そのようなメディアチャンクを要求している他のデバイスにメディアチャンクをWSS接続を介して転送することができる。このようにして、ユーザは、所望であれば、異なるデバイスにわたり同じカメラフィードの複数のインスタンスを生成することができる。このフローは、バックエンド管理サーバ、メディアサーバ、又は両方の組合せの何れかにより促進することができる。
【0045】
611において、フローは、1又は複数のメディアサーバに現在ストリーミングしているクライアントデバイスから1又は複数のカメラの選択を受信する。612において、フローは、
図2に説明されるように、選択されたカメラ及びクライアントデバイスからの認証トークンを処理する。実施態様例では、メディアサーバは、キャッシュに利用可能なカメラからのトークンを既に有してもよく、これを使用して、他のクライアントデバイスから受信した任意のトークンと比較することができる。613において、認証が成功したか否かの決定が行われる。成功した場合(Yes)、フローは614に進み、選択されたカメラに対応する1又は複数のメディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間にWSS接続を確立し、615において、1又は複数のメディアサーバからのライブビデオのメディアチャンクをクライアントデバイスのウェブブラウザアプリケーションにWSS接続を介して転送する。
【0046】
図6(c)は、一実施態様例に従う、
図5に示されるような、VoDを介して、後の要求についてのビデオをメディアサーバに提供するフロー例を示す。このフローは、バックエンド管理サーバ、メディアサーバ、又は両方の組合せの何れかにより促進することができる。まず、621において、要求されたビデオが指定されたメディアサーバに記憶される。622において、フローは、指定されたメディアサーバから、ビデオにアクセスする要求を受信する。623において、
図5に示されるように、フローは、指定されたメディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間にHTTPS接続を確立する。624において、フローは、指定されたメディアサーバからクライアントデバイスのウェブブラウザアプリケーションにHTTPS接続を介してビデオを提供する。
【0047】
図7は、
図1及び
図4に示されるように、バックエンドサーバ又はメディアサーバ等の、幾つかの実施形態例での使用に適した計算装置を有する一計算環境例を示す。計算環境700のコンピュータ装置705は、1又は複数の処理ユニット、コア、又はプロセッサ710、メモリ715(例えばRAM、ROM等)、内部ストレージ720(例えば磁気、光学、ソリッドステートストレージ、及び/又は有機)、及び/又はIOインターフェース725を含むことができ、それらの何れかは、情報を通信するため又はコンピュータデバイス705に組み込むための通信機構又はバス730に接続され得る。IOインターフェース725は、所望の実施態様に応じて、カメラから画像を受信し、又は画像をプロジェクタ又はディスプレイに提供するようにも構成される。
【0048】
コンピュータ装置705は、入力/ユーザインターフェース735及び出力デバイス/インターフェース740に通信可能に接続し得る。入力/ユーザインターフェース735及び出力デバイス/インターフェース740の何れか一方又は両方は、有線又は無線インターフェースで有り得、脱着可能であり得る。入力/ユーザインターフェース735は、入力(例えばボタン、タッチスクリーンインターフェース、キーボード、ポインティング/カーソル制御、マイクロホン、カメラ、点字、運動センサ、光学リーダ等)を提供するために使用することができる、物理的又は仮想な、任意のデバイス、構成要素、センサ、又はインターフェースを含んでもよい。出力デバイス/インターフェース740は、ディスプレイ、テレビジョン、モニタ、プリンタ、スピーカ、点字等を含んでもよい。幾つかの実施態様例では、入力/ユーザインターフェース735及び出力デバイス/インターフェース740は、コンピュータデバイス705に組み込まれてもよく、又はそれに物理的に接続されてもよい。他の実施態様例では、他のコンピュータデバイスが、コンピュータデバイス705の入力/ユーザインターフェース735及び出力デバイス/インターフェース740として機能してもよく、又はそれらの機能を提供してもよい。
【0049】
コンピュータ装置705の例は、限定ではなく、高度モバイルデバイス(例えばスマートフォン、車両及び他の機械内のデバイス、人間又は動物によって携帯されるデバイス等)、モバイルデバイス(例えばタブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビジョン、ラジオ等)、及び可動であるように設計されていないデバイス(例えばデスクトップコンピュータ、他のコンピュータ、情報キオスク、1又は複数のプロセッサが組み込まれ、及び/又は1又は複数のプロセッサに接続されたテレビジョン、ラジオ等)を含んでもよい。
【0050】
コンピュータ装置705は、同じ又は異なる構成の1又は複数のコンピュータ装置を含む、任意の数のネットワーク接続された構成要素、デバイス、及びシステムと通信するために、外部ストレージ745及びネットワーク750に通信可能に接続し得る(例えばIOインターフェース725を介して)。コンピュータ装置705又は任意の接続されたコンピュータデバイスは、サーバ、クライアント、シンサーバ、汎用機、専用機、又は別のものとして機能してもよく、それらのサービスを提供してもよく、又はそれらと呼ばれてもよい。
【0051】
IOインターフェース725は、限定ではなく、計算環境700内の少なくとも全ての接続された構成要素、デバイス、及びネットワークに情報を通信し、及び/又はそれから情報を通信するために、任意の通信又はIOプロトコル又は規格(例えばEthernet、802.11x、ユニバーサルシリアルバス、WiMax、モデム、セルラネットワークプロトコル等)を使用する有線及び/又は無線インターフェースを含み得る。ネットワーク750は、任意のネットワーク又はネットワーク(例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話回線網、セルラネットワーク、衛星ネットワーク等)の組合せであり得る。
【0052】
コンピュータデバイス705は、一時的媒体及び非一時的媒体を含む、コンピュータ使用可能又はコンピュータ可読媒体を使用することができ、及び/又はそれを使用して通信することができる。一時的媒体は、伝送媒体(例えば金属ケーブル、光ファイバ)、信号、搬送波等を含む。非一時的媒体は、磁気媒体(例えばディスク及びテープ)、光学媒体(例えばCD-ROM、デジタルビデオディスク、Blu-rayディスク)、ソリッドステート媒体(例えばRAM、ROM、フラッシュメモリ、ソリッドステートストレージ)、及び他の不揮発性ストレージ又はメモリを含む。
【0053】
コンピュータデバイス705は、幾つかの計算環境例において技術、メソッド、アプリケーション、プロセス、又はコンピュータ実行可能命令を実装するために使用し得る。コンピュータ実行可能命令は、一時的媒体から取得し、非一時的媒体に記憶しそこから取得し得る。実行可能命令は、任意のプログラミング、スクリプト、及び機械言語(例えばC、C++、C#、Java、Visual Basic、Python、Perl、JavaScript等)の1又は複数に由来することができる。
【0054】
プロセッサ710は、ネイティブ環境又は仮想環境で任意のオペレーティングシステム(OS)(図示せず)下で実行することができる。異なるユニットが互いに、OSで、及び他のアプリケーション(図示せず)で通信するために、論理ユニット760、アプリケーションプログラミングインターフェース(API)ユニット765、入力ユニット770、出力ユニット775、及びユニット間通信メカニズム795を含む1又は複数のアプリケーションをデプロイし得る。記載されたユニット及び要素は、設計、機能、構成、又は実装が様々であることができ、提供された説明に限定されない。プロセッサ710は、中央演算処理装置(CPU)等のハードウェアプロセッサの形態であってもよく、又はハードウェアユニットとソフトウェアユニットとの組合せであってもよい。
【0055】
幾つかの実施態様例では、情報又は実行命令がAPIユニット765によって受信されると、情報又は実行命令は1又は複数の他のユニット(例えば論理ユニット760、入力ユニット770、出力ユニット775)に通信されてもよい。幾つかの場合、論理ユニット760は、上述した幾つかの実施態様例において、ユニット間の情報フローを制御し、APIユニット765、入力ユニット770、出力ユニット775により提供されるサービスを指示するように構成されてもよい。例えば、1又は複数のプロセス又は実装のフローは、論理ユニット760のみにより又はAPIユニット765と併せて制御されてもよい。入力ユニット770は、実施態様例において説明された計算の入力を取得するように構成されてもよく、出力ユニット775は、実施態様例において説明された計算に基づいて出力を提供するように構成されてもよい。
【0056】
メモリ615は、プロセッサ710にロードされる
図6(a)~
図6(c)のフロー図を容易にするための命令を記憶するように構成し得る。
【0057】
図1及び
図6(a)に示されるように、プロセッサ710は、ウェブブラウザアプリケーションを介して、メディアサーバとクライアントデバイスにより選択された1又は複数のカメラとの間にセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立し、メディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間にウェブソケットセキュア(WSS)接続を確立することと、メディアサーバにおいて、選択された1又は複数のカメラからライブビデオのメディアチャンクをHTTPS接続を介して受信し、メディアサーバから、選択された1つ又は複数のカメラから受信したライブビデオのメディアチャンクをクライアントデバイスのウェブブラウザアプリケーションにWSS接続を介して送信するように構成することができる。
図1に示されるように、メディアチャンクは断片化MP4フォーマットであり得る。
【0058】
図2、
図6(a)、及び
図6(b)に示されるように、プロセッサ710は、クライアントデバイスのウェブブラウザ及び選択された1又は複数のカメラから受信される認証トークンの検証に基づいて、クライアントデバイスのウェブブラウザアプリケーションが、選択された1又は複数のカメラからのライブビデオにアクセスするための認証を指揮するように構成し得る。
【0059】
図3に示されるように、プロセッサ710は、ウェブブラウザアプリケーションを介してクライアントデバイスにより選択された1又は複数のカメラの数が閾値を超える場合、ロードバランシングプロセスを実行するように構成してもよく、、ロードバランシングプロセスは、ウェブブラウザアプリケーションを介して、別のメディアサーバとクライアントデバイスにより選択された1又は複数のカメラのサブセットとの間に別のセキュアハイパーテキストトランスファープロトコル(HTTPS)接続を確立することと、メディアサーバとクライアントデバイスのウェブブラウザアプリケーションとの間に別のウェブソケットセキュア(WSS)接続を確立することと、別のメディアサーバにおいて、別のHTTPS接続を介して、1又は複数のカメラのサブセットから第2ライブビデオの第2メディアチャンクを受信することと、別のメディアサーバから、第2のライブビデオの第2のメディアチャンクをクライアントデバイスのウェブブラウザアプリケーションに別のWSS接続を介して送信することを含むように、構成してもよい。
【0060】
図4に示されるように、プロセッサ710は、ウェブブラウザアプリケーションを介してクライアントデバイスから、1又は複数のカメラの選択を受信し、選択された1又は複数のカメラのライブビデオをアクティブ化するようにエッジデバイスに指示するように構成し得る。
【0061】
図5及び
図6(c)に示されるように、プロセッサ710は、クライアントデバイスのウェブブラウザアプリケーションとメディアサーバとの間に別のHTTPS接続を確立し、別のHTTPS接続を介して、メディアサーバに記憶されたビデオをクライアントデバイスのウェブブラウザアプリケーションに送信するように構成し得る。
【0062】
詳細な説明の幾つかの部分は、コンピュータ内の動作のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズム的記述及び記号表現は、データ処理の分野の当業者が、革新の要点を他の当業者に伝えるために使用される手段である。アルゴリズムは、所望の最終状態又は結果に繋がる一連の定義されたステップである。実施態様例では、実行されるステップは、有形結果を達成するために、有形数量の物理的操作を必要とする。
【0063】
別段のことが特記されない限り、考察から明らかなように、説明全体を通して、「処理」、「計算」、「算出」、「決定」、「表示」等の用語を利用した議論が、コンピュータシステムのレジスタ及びメモリ内の物理的(電子)数量として表されるデータを操作し、コンピュータシステムのメモリ若しくはレジスタ又は他の情報記憶、伝送若しくは表示デバイス内の物理的数量として同様に表された他のデータに変換する、コンピュータシステム又は他の情報処理デバイスの動作及びプロセスを含むことができることが理解される。
【0064】
実施態様例は、本明細書における動作を実行する装置に関してもよい。この装置は、求められる目的に向けて特に構築されてもよく、又は1又は複数のコンピュータプログラムによって選択的にアクティブ化又は再構成される1又は複数の汎用コンピュータを含んでもよい。そのようなコンピュータプログラムは、コンピュータ可読媒体、例えばコンピュータ可読記憶媒体又はコンピュータ可読信号媒体に記憶してもよい。コンピュータ可読記憶媒体は、有形媒体、限定ではなく例として、光ディスク、磁気ディスク、リードオンリーメモリ、ランダムアクセスメモリ、ソリッドステートデバイス、及びドライブ又は電子情報を記憶するのに適した他の任意のタイプの有形又は非一時的媒体を含んでもよい。コンピュータ可読信号媒体は、搬送波等の媒体を含んでもよい。本明細書に提示されたアルゴリズム及びディスプレイは本質的に、いかなる特定のコンピュータ又は他の装置とも関連しない。コンピュータプログラムは、所望の実施態様の動作を実行する命令を含む純粋なソフトウェア実施態様を含むことができる。
【0065】
種々の汎用システムが、本明細書における例によるプログラム及びモジュールと併用してもよく、又は所望の方法ステップを実行するより特化された装置を構築するほうが好都合であると分かってもよい。加えて、実施態様例は、いかなる特定のプログラミング言語も参照して説明されていない。多様なプログラミング言語を使用して、本明細書に記載される実施態様例の教示を実施してもよいことが理解されよう。プログラミング言語の命令は、1又は複数の処理デバイス、例えば中央演算処理装置(CPU)、プロセッサ、又はコントローラにより実行してもよい。
【0066】
当技術分野で既知のように、上述した動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアとの何らかの組合せによって実行され得る。実施態様例の種々の態様は、回路及び論理デバイス(ハードウェア)を使用して実装されてもよく、機械可読媒体に記憶された命令(ソフトウェア)を使用して実装されてもよく、命令は、プロセッサにより実行されると、本願の実装を実行する方法をプロセッサに実行させる。さらに、本願の幾つかの実施態様例は、ハードウェアのみで実行されてもよく、ソフトウェアのみで実行されてもよい。さらに、記載される種々の機能は、単一のユニットで実行され得、又は任意の数の方法で幾つかの構成要素にわたって分散され得る。ソフトウェアにより実行される場合、方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータ等のプロセッサにより実行されてもよい。所望の場合、命令は、圧縮且つ/又は暗号化されたフォーマットで媒体に記憶され得る。
【0067】
さらに、本願の他の実施態様が、本明細書の検討及び本願の教示の実施から当業者に明らかになろう。記載された実施態様例の種々の態様及び/又は構成要素は、単独で又は任意の組合せで使用され得る。本明細書及び実施態様例が単なる例として見なされ、本願の真の範囲及び趣旨が以下の特許請求の範囲により示されることが意図される。