(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-08
(54)【発明の名称】ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステム
(51)【国際特許分類】
H04N 21/462 20110101AFI20221031BHJP
H04N 21/435 20110101ALI20221031BHJP
【FI】
H04N21/462
H04N21/435
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022514486
(86)(22)【出願日】2020-09-01
(85)【翻訳文提出日】2022-03-03
(86)【国際出願番号】 KR2020011682
(87)【国際公開番号】W WO2021045474
(87)【国際公開日】2021-03-11
(31)【優先権主張番号】10-2019-0109653
(32)【優先日】2019-09-04
(33)【優先権主張国・地域又は機関】KR
(81)【指定国・地域】
(71)【出願人】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】キム,ソンホ
(72)【発明者】
【氏名】チョウ,ソンテク
(72)【発明者】
【氏名】アン,ジェチョル
(72)【発明者】
【氏名】ファン,ヒョンドン
(72)【発明者】
【氏名】チェー,ビョンギュ
(72)【発明者】
【氏名】イ,ジョンヒョク
(72)【発明者】
【氏名】パク,ソンヒョン
(72)【発明者】
【氏名】キム,ヨンマル
(72)【発明者】
【氏名】チャン,ジュンキ
【テーマコード(参考)】
5C164
【Fターム(参考)】
5C164FA06
5C164MB44S
5C164SC03S
5C164UB10P
5C164UB38S
5C164UC21P
(57)【要約】
ストリーミングコンテンツの再生方法およびシステムを提供する。一実施形態によるストリーミングコンテンツ再生方法は、ストリーミングプレーヤクライアントで、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階、ストリーミングプレーヤクライアントで、プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達する段階、ローカルプロキシサーバで、ストリーミングサーバから伝達されるマニフェストファイルを設定された初期ビットレートに基づいて編集する段階、およびローカルプロキシサーバで、ストリーミングプレーヤクライアントを通じて編集されたマニフェストファイルをプレーヤモジュールに伝達する段階を含む。
【特許請求の範囲】
【請求項1】
コンピュータ装置と結合してストリーミングコンテンツ再生方法をコンピュータ装置に実行させるために、コンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、
前記ストリーミングコンテンツ再生方法は、
ストリーミングプレーヤクライアントで、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階と、
前記ストリーミングプレーヤクライアントで、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達する段階と、
ローカルプロキシサーバで、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集する段階と、
前記ローカルプロキシサーバで、前記ストリーミングプレーヤクライアントを通じて前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達する段階と、を含むことを特徴とする、コンピュータプログラム。
【請求項2】
前記編集する段階は、
前記設定された初期ビットレートに基づいて前記マニフェストファイルに記録されたトラックのうちから1つのトラックを選択する段階と、
前記選択されたトラックが前記マニフェストファイルの1番目のトラックに記録されるように前記マニフェストファイルを編集する段階と、を含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項3】
前記プレーヤモジュールで前記編集されたマニフェストファイルから1番目のトラックを選択することにより、前記設定された初期ビットレートに基づいて選択されたトラックが選択されることを特徴とする、請求項2に記載のコンピュータプログラム。
【請求項4】
前記ストリーミングコンテンツ再生方法は、
前記ストリーミングプレーヤクライアントで、前記プレーヤモジュールからの前記編集されたマニフェストファイルから選択されたトラックのトラック情報に対する要請を前記ストリーミングサーバに伝達する段階と、
前記ストリーミングプレーヤクライアントで、前記ストリーミングサーバから伝達されるトラック情報を前記プレーヤモジュールに伝達する段階と、をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項5】
前記ストリーミングコンテンツ再生方法は、
前記プレーヤモジュールで前記ストリーミングコンテンツが再生される間に、前記ローカルプロキシサーバで、前記ストリーミングコンテンツが含まれたコンテンツリストビューの他のストリーミングコンテンツに対するデータをプリロードおよびキャッシュする段階をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項6】
前記プリロードおよびキャッシュする段階は、
前記コンテンツリストビューにおいて前記ストリーミングコンテンツが配置された位置と前記ストリーミングコンテンツそれぞれが配置された位置との相対的な距離に基づいて、前記他のストリーミングコンテンツそれぞれのプリロードの順序およびキャッシュの順序のうちの少なくとも1つを決定することを特徴とする、請求項5に記載のコンピュータプログラム。
【請求項7】
少なくとも1つのプロセッサを含むコンピュータ装置のストリーミングコンテンツ再生方法であって、
前記少なくとも1つのプロセッサにより、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階と、
前記少なくとも1つのプロセッサにより、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達する段階と、
前記少なくとも1つのプロセッサにより、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集する段階と、
前記少なくとも1つのプロセッサにより、前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達する段階と、を含む、ストリーミングコンテンツ再生方法。
【請求項8】
前記編集する段階は、
前記設定された初期ビットレートに基づいて前記マニフェストファイルに記録されたトラックのうちから1つのトラックを選択する段階と、
前記選択されたトラックが前記マニフェストファイルの1番目のトラックに記録されるように前記マニフェストファイルを編集する段階と、を含むことを特徴とする、請求項7に記載のストリーミングコンテンツ再生方法。
【請求項9】
前記少なくとも1つのプロセッサにより、前記プレーヤモジュールからの前記編集されたマニフェストファイルから選択されたトラックのトラック情報に対する要請を前記ストリーミングサーバに伝達する段階と、
前記少なくとも1つのプロセッサにより、前記ストリーミングサーバから伝達されるトラック情報を前記プレーヤモジュールに伝達する段階と、をさらに含むことを特徴とする、請求項7に記載のストリーミングコンテンツ再生方法。
【請求項10】
前記プレーヤモジュールで前記ストリーミングコンテンツが再生される間に、前記少なくとも1つのプロセッサにより、前記ストリーミングコンテンツが含まれたコンテンツリストビューの他のストリーミングコンテンツに対するデータをプリロードおよびキャッシュする段階をさらに含むことを特徴とする、請求項7に記載のストリーミングコンテンツ再生方法。
【請求項11】
前記プリロードおよびキャッシュする段階は、
前記コンテンツリストビューにおいて前記ストリーミングコンテンツが配置された位置と前記ストリーミングコンテンツそれぞれが配置された位置との相対的な距離に基づいて、前記他のストリーミングコンテンツそれぞれのプリロードの順序およびキャッシュの順序のうちの少なくとも1つを決定することを特徴とする、請求項10に記載のストリーミングコンテンツ再生方法。
【請求項12】
請求項7~11のうちのいずれか一項に記載のストリーミングコンテンツ再生方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体。
【請求項13】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、
前記少なくとも1つのプロセッサにより、
ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定し、
前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達し、
前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集し、
前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達することを特徴とする、コンピュータ装置。
【請求項14】
前記少なくとも1つのプロセッサにより、
前記設定された初期ビットレートに基づいて前記マニフェストファイルに記録されたトラックのうちから1つのトラックを選択し、
前記選択されたトラックが前記マニフェストファイルの1番目のトラックに記録されるように前記マニフェストファイルを編集することを特徴とする、請求項13に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、ローカルストリーミングサーバを利用したストリーミングコンテンツの再生方法およびシステムに関する。
【背景技術】
【0002】
ストリーミングコンテンツを再生するための従来のソリューションの一例として、HLS(HTTP Live Streaming)、MPEG-DASH(Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP)、mp4などが存在する。例えば、韓国登録特許第10-1397183号公報は、ストリーミングサービスにおける再生リストファイルの管理方法およびその装置を開示している。
【0003】
このような従来のソリューションにおいて、1つの動画ファイルは互いに異なるビットレートのトラックで予め準備され、クライアントが必要なビットレートのトラックを選択すると、該当のビットレートでサーバからストリーミングコンテンツの提供を受ける。しかし、クライアントは、最初は自身のビットレートを認知していないため、マニフェストファイルの最上端に記されたトラック(1番目のトラック、#0トラック)を選択するようになり、次の呼び出しで適応型トラックを再選択しなければならないという問題があった。例えば、HLSの場合、クライアントは、マニフェストファイルであるmaster.m3u8に登録された1番目のトラックを選択して0つ目のフラグメントファイル(0.ts)を要請する。しかし、クライアントでは、ネットワーク帯域幅、バッファ残量、画面サイズなどを考慮した上で、新たなトラックを選択するようになるアルゴリズムが直ぐに作動するようになる。次の呼び出しでは新たなトラックが選択される確率が高く、新たなトラックが選択された場合、クライアントは、1番目のトラックでダウンロードした0番目のフラグメントファイル(0.ts)を廃棄し、新たなトラックの0番目のフラグメントファイル(0.ts)を新たにダウンロードするようになる。したがって、このような過程では、1度のトラック情報要請と1度の0番目のフラグメントファイル(0.ts)の要請が無駄になる。
【0004】
さらに、従来のソリューションでは、動画フラグメントファイルに対するキャッシュとプリロードがないという問題がある。例えば、多数のストリーミングコンテンツのリストであるコンテンツリストビューにはキャッシュ政策がないため、コンテンツリストビューの多数のストリーミングコンテンツのうちの1つがフォーカスを受けたときに0番目のフラグメントファイル(0.ts)から新たにダウンロードが始まるため、データの浪費と実行速度の損失が発生していた。
【発明の概要】
【発明が解決しようとする課題】
【0005】
HLS(HTTP Live Streaming)、MPEG-DASH(Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP)、mp4(MPEG-4)などのストリーミングサービスにおいて、プレーヤモジュールとストリーミングプレーヤクライアントとの間に初期ビットレートを設定し、ローカルストリーミングサーバ(一例として、ローカルプロキシサーバ)を利用しながらこのような初期ビットレートに最適化したトラックを1番目のトラックとして選択するようにすることにより、適応型トラックを再選択しなければならないという問題を解決することができる、ストリーミングコンテンツ再生方法およびシステムを提供する。
【0006】
ローカルストリーミングサーバを利用して、コンテンツリストビューが含む多数のストリーミングコンテンツのうちで現在フォーカスされて再生されるストリーミングコンテンツのコンテンツリストビューにおける配置によって他のストリーミングコンテンツのキャッシュの順序を決定することにより、キャッシュされたデータのヒット確率を高めることができる、ストリーミングコンテンツ再生方法およびシステムを提供する。
【課題を解決するための手段】
【0007】
コンピュータ装置と結合してストリーミングコンテンツ再生方法をコンピュータ装置に実行させるために、コンピュータ読み取り可能な記録媒体に記録されたコンピュータプログラムであって、前記ストリーミングコンテンツ再生方法は、ストリーミングプレーヤクライアントで、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階、前記ストリーミングプレーヤクライアントで、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイルの要請をストリーミングサーバに伝達する段階、ローカルプロキシサーバで、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集する段階、および前記ローカルプロキシサーバで、前記ストリーミングプレーヤクライアントを通じて前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達する段階を含むことを特徴とする、コンピュータプログラムを提供する。
【0008】
一態様によると、前記編集する段階は、前記設定された初期ビットレートに基づいて前記マニフェストファイルに記録されたトラックのうちから1つのトラックを選択する段階、および前記選択されたトラックが前記マニフェストファイルの1番目のトラックに記録されるように前記マニフェストファイルを編集する段階を含むことを特徴としてよい。
【0009】
他の態様によると、前記プレーヤモジュールで前記編集されたマニフェストファイルから1番目のトラックを選択するにより、前記設定された初期ビットレートに基づいて選択されたトラックが選択されることを特徴としてよい。
【0010】
また他の態様によると、前記ストリーミングコンテンツ再生方法は、前記ストリーミングプレーヤクライアントで、前記プレーヤモジュールからの前記編集されたマニフェストファイルから選択されたトラックのトラック情報に対する要請を前記ストリーミングサーバに伝達する段階、および前記ストリーミングプレーヤクライアントで、前記ストリーミングサーバから伝達されるトラック情報を前記プレーヤモジュールに伝達する段階をさらに含むことを特徴としてよい。
【0011】
また他の態様によると、前記ストリーミングコンテンツ再生方法は、前記プレーヤモジュールで前記ストリーミングコンテンツが再生される間に、前記ローカルプロキシサーバで、前記ストリーミングコンテンツが含まれたコンテンツリストビューの他のストリーミングコンテンツに対するデータをプリロードおよびキャッシュする段階をさらに含むことを特徴としてよい。
【0012】
さらに他の態様によると、前記プリロードおよびキャッシュする段階は、前記コンテンツリストビューにおいて前記ストリーミングコンテンツが配置された位置と前記ストリーミングコンテンツそれぞれが配置された位置との間の相対的な距離に基づいて、前記他のストリーミングコンテンツそれぞれのプリロードの順序およびキャッシュの順序のうちの少なくとも1つを決定することを特徴としてよい。
【0013】
少なくとも1つのプロセッサを含むコンピュータ装置のストリーミングコンテンツ再生方法であって、前記少なくとも1つのプロセッサにより、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定する段階、前記少なくとも1つのプロセッサにより、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイルの要請をストリーミングサーバに伝達する段階、前記少なくとも1つのプロセッサにより、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集する段階、および前記少なくとも1つのプロセッサにより、前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達する段階を含む、ストリーミングコンテンツ再生方法を提供する。
【0014】
前記方法をコンピュータ装置に実行させるためのプログラムが記録されている、コンピュータ読み取り可能な記録媒体を提供する。
【0015】
コンピュータ読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサにより、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定し、前記プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイルの要請をストリーミングサーバに伝達し、前記ストリーミングサーバから伝達されるマニフェストファイルを前記設定された初期ビットレートに基づいて編集し、前記編集されたマニフェストファイルを前記プレーヤモジュールに伝達することを特徴とする、コンピュータ装置を提供する。
【発明の効果】
【0016】
HLS(HTTP Live Streaming)、MPEG-DASH(Moving Picture Experts Group-Dynamic Adaptive Streaming over HTTP)、mp4(MPEG-4)などのストリーミングサービスにおいて、プレーヤモジュールとストリーミングプレーヤクライアントとの間に初期ビットレートを設定し、ローカルストリーミングサーバ(一例として、ローカルプロキシサーバ)を利用しながらこのような初期ビットレートに最適化したトラックを1番目のトラックとして選択するようにすることにより、適応型トラックを再選択しなければならないという問題を解決することができる。
【0017】
前記ローカルストリーミングサーバを利用して、コンテンツリストビューが含む多数のストリーミングコンテンツのうちで現在フォーカスされて再生されるストリーミングコンテンツの前記コンテンツリストビューにおける配置によって他のストリーミングコンテンツのキャッシュの順序を決定することにより、キャッシュされたデータのヒット確率を高めることができる。
【図面の簡単な説明】
【0018】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。
【
図3】従来のストリーミングサービスの基本動作の例を示した図である。
【
図4】本発明の一実施形態における、最適化されたトラック選択方式が適用されたストリーミングサービスの基本動作の例を示した図である。
【
図5】本発明の一実施形態における、キャッシュおよびプリロード方式が適用されたストリーミングサービスの基本動作の例を示した図である。
【
図6】本発明の一実施形態における、コンテンツリストビューにおけるプリロードおよびキャッシュの順序の例を示した図である。
【
図7】本発明の一実施形態における、クライアントのストリーミングコンテンツ再生方法の例を示したフローチャートである。
【発明を実施するための形態】
【0019】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0020】
本発明の実施形態によるストリーミングコンテンツ再生システムは、少なくとも1つのコンピュータ装置によって実現されてよく、本発明の実施形態によるストリーミングコンテンツ再生方法は、ストリーミングコンテンツ再生システムに含まれる少なくとも1つのコンピュータ装置によって実行されてよい。このとき、コンピュータ装置においては、本発明の一実施形態によるコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されたコンピュータプログラムの制御に従って本発明の実施形態によるストリーミングコンテンツ再生方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合してストリーミングコンテンツ再生方法をコンピュータに実行させるためにコンピュータ読み取り可能な記録媒体に記録されてよい。
【0021】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。また、
図1のネットワーク環境は、本実施形態に適用可能な環境を説明するための一例に過ぎず、本実施形態に適用可能な環境が
図1のネットワーク環境に限定されることはない。
【0022】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、
図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
【0023】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網、衛星網など)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0024】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、グループ通話サービス(または、音声会議サービス)、メッセージングサービス、メールサービス、ソーシャルネットワークサービス、地図サービス、翻訳サービス、金融サービス、決済サービス、検索サービス、コンテンツ提供サービスなど)を提供するシステムであってよい。
【0025】
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、
図2に示したコンピュータ装置200によって実現されてよい。
【0026】
このようなコンピュータ装置200は、
図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
【0027】
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードに従って受信される命令を実行するように構成されてよい。
【0028】
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードに従って生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御に従ってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどはプロセッサ220やメモリ210に伝達されてよく、ファイルなどはコンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0029】
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、少なくとも1つのコンピュータ装置200と1つの装置で構成されてもよい。
【0030】
また、他の実施形態において、コンピュータ装置200は、
図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバやデータベースなどのような他の構成要素をさらに含んでもよい。
【0031】
図3は、従来のストリーミングサービスの基本動作の例を示した図である。
図3は、プレーヤモジュール310、ストリーミングプレーヤクライアント320、およびストリーミングサーバ330を示している。ここで、プレーヤモジュール310は、ストリーミングコンテンツを再生するためにユーザの端末装置においてインストールされて実行されるソフトウェアモジュールであってよく、ストリーミングプレーヤクライアント320は、ストリーミングサービスの提供を受けるためにユーザの端末装置においてインストールされて実行されるソフトウェアモジュールであってよい。また、ストリーミングサーバ330は、ストリーミングサービスを提供するサーバ装置においてインストールされて実行されるソフトウェアモジュールに対応してよい。
【0032】
第1過程341は、ストリーミングプレーヤクライアント320がストリーミングサーバ330にマニフェストファイル(一例として、HLSのmaster.m3u8)を要請する過程の例であってよく、第2過程341は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよい。例えば、第2過程342で、ストリーミングサーバ330は、ストリーミングプレーヤクライアント320にマニフェストファイルを提供してよい。
【0033】
第3過程343は、プレーヤモジュール310が1番目のトラック(#0トラック)を選択する過程の例であってよい。上述したように、1つの動画ファイルは、互いに異なるビットレートのトラックで予め準備されてよく、プレーヤモジュール310は、必要なビットレートのトラックを選択してよい。ただし、プレーヤモジュール310は、最初は自身のビットレートを認知していないため、プレーヤモジュール310は、第3過程343のように、マニフェストファイルの最上端に記録されている1番目のトラックを選択するようになる。
【0034】
第4過程344は、プレーヤモジュール310が、ストリーミングプレーヤクライアント320が選択したトラック(#0トラック)のトラック情報(一例として、HLSの#0トラックのplaylist.m3u8)を要請する過程の例であってよく、第5過程345は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請をストリーミングサーバ330に伝達する過程の例であってよい。また、第6過程346は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよく、第7過程347は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請に応答する過程の例であってよい。例えば、第6過程346と第7過程347において、プレーヤモジュール310が要請した、選択されたトラックのトラック情報がプレーヤモジュール310に伝達されてよい。
【0035】
第8過程348で、プレーヤモジュール310は、ストリーミングプレーヤクライアント320に選択されたトラック(#0トラック)の1番目のフラグメントファイル(一例として、HLSの#0トラックの0.ts)を要請する過程の例であってよく、第9過程349は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請をストリーミングサーバ330に伝達する過程の例であってよい。また、第10過程350は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよく、第11過程351は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請に応答する過程の例であってよい。例えば、第10過程350と第11過程351において、プレーヤモジュール310が要請した、選択されたトラックの1番目のフラグメントファイルがプレーヤモジュール310に伝達されてよい。
【0036】
第12過程352は、プレーヤモジュール310が、伝達された1番目のフラグメントファイルに基づいてネットワークビットレートを測定して最適なビットレートを探索し、トラックを最適なビットレートに適したトラック(一例として、#nトラック)に変更する過程の例であってよい。
【0037】
第13過程353は、プレーヤモジュール310がストリーミングプレーヤクライアント320に変更されたトラック(#nトラック)のトラック情報(一例としてHLSの#nトラックのplaylist.m3u8)を要請する過程の例であってよく、第14過程354は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請をストリーミングサーバ330に伝達する過程の例であってよい。また、第15過程355は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよく、第16過程356は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請に応答する過程の例であってよい。例えば、第15過程355と第16過程356において、プレーヤモジュール310が要請した、変更されたトラックのトラック情報がプレーヤモジュール310に伝達されてよい。
【0038】
第17過程357は、プレーヤモジュール310がストリーミングプレーヤクライアント320に、変更されたトラック(#nトラック)の1番目のフラグメントファイル(一例として、HLSの#nトラックの0.ts)を要請する過程の例であってよく、第18過程358は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請をストリーミングサーバ330に伝達する過程の例であってよい。また、第19過程359は、ストリーミングサーバ330がストリーミングプレーヤクライアント320の要請に応答する過程の例であってよく、第20過程360は、ストリーミングプレーヤクライアント320がプレーヤモジュール310の要請に応答する過程の例であってよい。例えば、第19過程359と第20過程360において、プレーヤモジュール310が要請した、変更されたトラックの1番目のフラグメントファイルがプレーヤモジュール310に伝達されてよい。言い換えれば、プレーヤモジュール310は、フォーカシングされたストリーミングコンテンツを再生するための1番目のフラグメントファイルを第20過程360でしか取得することができない。
【0039】
この後、第21過程361~第24過程364は、プレーヤモジュール310が、変更されたトラック(#nトラック)の2つ目のフラグメントファイル(一例として、HLSの#nトラックの1.ts)を取得するための過程の例を示している。この後のフラグメントファイルも、第21過程361~第24過程364と類似の方式によって取得するようになる。
【0040】
図4は、本発明の一実施形態における、最適化されたトラック選択方式が適用されたストリーミングサービスの基本動作の例を示した図である。
図4は、プレーヤモジュール410、ストリーミングプレーヤクライアント420、ローカルプロキシサーバ430、およびストリーミングサーバ450をそれぞれ示している。ここで、プレーヤモジュール410は、ストリーミングコンテンツの再生のためにユーザの端末装置においてインストールされて実行されるソフトウェアモジュールであってよく、ストリーミングプレーヤクライアント420とローカルプロキシサーバ430は、ストリーミングサービスの提供を受けるためにユーザの端末装置においてインストールされて実行されるソフトウェアモジュールであってよい。また、ストリーミングサーバ440は、ストリーミングサービスを提供するためにサーバ装置においてインストールされて実行されるソフトウェアモジュールであってよい。ここで、ソフトウェアモジュールは、コンピュータ装置200においてインストールされて実行されるコンピュータプログラムに対応してよい。
【0041】
第1過程451は、ストリーミングプレーヤクライアント420がプレーヤモジュール410に初期ビットレートを設定する過程の例であってよい。例えば、ストリーミングプレーヤクライアント420は、ネットワーク帯域幅、バッファ残量、画面サイズなどを考慮しながら、プレーヤモジュール410のための初期ビットレートを設定してよい。サービス的にコンテンツのリストが表示される画面では、フレームバッファを迅速にダウンロードしてコンテンツのプレビューを再生させるために低いビットレートが要求されると同時に、高解像度のための鮮明な映像をレンダリングするために高いビットレートも要求される。したがって、高過ぎず低過ぎない適切な初期ビットレートが選択されなればならない。このようなサービスにおける初期ビットレートは、経験的に予め設定されてよい。例えば、モバイルのコンテンツリスト画面では360pの解像度のトラックが適切であることが確認された。これにより、原本動画の複雑度によって解像度ごとにビットレートが少しずつ異なったとしても、約750kbpsの初期ビットレートを使用することによってモバイルのコンテンツリスト画面のための初期ビットレートが経験的に予め設定されてよい。この場合、ストリーミングプレーヤクライアント420は、予め設定された初期ビットレートをプレーヤモジュール410に設定してよい。
【0042】
第2過程452は、プレーヤモジュール410がストリーミングプレーヤクライアント420にマニフェストファイル(一例として、HLSのmaster.m3u8)を要請する過程の例であってよく、第3過程453は、ストリーミングプレーヤクライアント420がストリーミングサーバ440にマニフェストファイルを要請する過程の例であってよい。
【0043】
第4過程454は、ストリーミングサーバ440が要請されたマニフェストファイルを伝達する過程の例であってよい。実質的に、ストリーミングサーバ440は、自身にマニフェストファイルを要請したストリーミングプレーヤクライアント420に要請されたマニフェストファイルを送信してよいが、ローカルストリーミングサーバであるローカルプロキシサーバ430がこのようなマニフェストファイルを横取りしてよい。第5過程455は、ローカルプロキシサーバ430が第1過程451で設定された初期ビットレートを利用してマニフェストファイルを編集する過程の例であってよい。例えば、ローカルプロキシサーバ430は、設定された初期ビットレートとマニフェストファイルに記録されたトラックを比較して最適なトラック(一例として、#nトラック)を選択してよい。この後、ローカルプロキシサーバ430は、選択したトラックがマニフェストファイルの1番目のトラックになるようにマニフェストファイルを編集(#nトラック->#0トラック)してよい。第6過程456は、ローカルプロキシサーバ430がストリーミングプレーヤクライアント420に編集されたマニフェストファイルを伝達する過程の例であってよく、第7過程457は、ストリーミングプレーヤクライアント420がプレーヤモジュール410に編集されたマニフェストファイルを伝達する過程の例であってよい。
【0044】
以下の表1は、最初のマニフェストファイルの例を、表2は、編集されたマニフェストファイルの例をそれぞれ示している。
【0045】
【0046】
【0047】
表2は、表1に示された3つ目のトラック(1a37eb4f-3cb5-11e9-a5ac-246e963a49b9.m3u8)が1番目のトラックとして編集された例を示している。第8過程458は、プレーヤモジュール410がマニフェストファイルから1番目のトラックを選択する過程の例であってよい。上述したように、マニフェストファイルは、1番目のトラック(#0トラック)が、設定された初期ビットレートに最適なトラックとして変更されたため、プレーヤモジュール410は、第1過程451で設定された初期ビットレートに最適なトラックを1番目のトラック(#0トラック)として選択するようになる。
【0048】
第9過程459は、プレーヤモジュール410がストリーミングプレーヤクライアント420に選択されたトラック(#0トラック)のトラック情報(一例として、HLSの#0トラックのplaylist.m3u8)を要請する過程の例であってよく、第10過程460は、ストリーミングプレーヤクライアント420がストリーミングサーバ440に選択されたトラックのトラック情報を要請する過程の例であってよい。また、第11過程461は、ストリーミングサーバ440がストリーミングプレーヤクライアント420に要請されたトラック情報を伝達する過程の例であってよく、第12過程462は、ストリーミングプレーヤクライアント420がプレーヤモジュール410に要請されたトラック情報を伝達する過程の例であってよい。
【0049】
第13過程463は、プレーヤモジュール410がストリーミングプレーヤクライアント420に該当のトラック(#0トラック)の1番目のフラグメントファイル(一例として、HLSの#0トラックの0.ts)を要請する過程の例であってよく、第14過程464は、ストリーミングプレーヤクライアント420がストリーミングサーバ440に該当のトラックの1番目のフラグメントファイルを要請する過程の例であってよい。また、第15過程465は、ストリーミングサーバ440がストリーミングプレーヤクライアント420に要請された1番目のフラグメントファイルを伝達する過程の例であってよく、第16過程466は、ストリーミングプレーヤクライアント420がプレーヤモジュール410に要請された1番目のフラグメントファイルを伝達する過程の例であってよい。このとき、プレーヤモジュール410は、設定された初期ビットレートに適したトラックの1番目のフラグメントファイルを取得したためトラックを再変更する確率が低く、トラックを再変更しない場合は、現在の1番目のフラグメントファイルによってフォーカシングされたストリーミングコンテンツを再生することが可能となる。言い換えれば、従来に無駄にしていた、1度のトラック情報の要請と1度の1番目のフラグメントファイル要請を取り除くことができる。したがって、フォーカシングされたストリーミングコンテンツの最初の再生時間を短縮することができる。
【0050】
この後の第17過程467~第20過程470は、プレーヤモジュール410が1番目のトラック(#0トラック)の2つ目のフラグメントファイル(一例として、HLSの#0トラックの1.ts)を取得するための過程の例を示している。この後のフラグメントファイルも、第17過程467~第20過程470と同じように取得することができる。
【0051】
図5は、本発明の一実施形態における、キャッシュおよびプリロード方式が適用されたストリーミングサービスの基本動作の例を示した図である。
図4を参照しながら説明した最適化されたトラック選択方式と
図5を参照しながら説明するキャッシュおよびプリロード方式は、個別に適用されてもよいし、ともに適用されてもよい。
図5では、キャッシュおよびプリロード方式が個別に適用された場合の実施形態について説明する。
【0052】
第1過程511は、プレーヤモジュール410がストリーミングプレーヤクライアント420にマニフェストファイル(一例として、HLSのmaster.m3u8)を要請する過程の例であってよく、第2過程512は、ストリーミングプレーヤクライアント420がローカルプロキシサーバ430にマニフェストファイルを要請する過程の例であってよい。このとき、第3過程513は、ローカルプロキシサーバ430がキャッシュを照会する過程の例であってよい。このとき、要請されたマニフェストファイルがキャッシュに記録されていない場合、ローカルプロキシサーバ430は、要請されたマニフェストファイルをストリーミングサーバ440から取得してきてよく、要請されたマニフェストファイルがキャッシュに記録されている場合、ローカルプロキシサーバ430は、キャッシュに記録されているマニフェストファイルを提供してよい。第4過程514は、ローカルプロキシサーバ430がストリーミングプレーヤクライアント420に要請されたマニフェストファイルを伝達する過程の例であってよく、第5過程515は、ストリーミングプレーヤクライアント420がプレーヤモジュール410にマニフェストファイルを伝達する過程の例であってよい。
【0053】
このように、ローカルプロキシサーバ430は、
図4を参照しながら説明したように、マニフェストファイルの1番目のトラックを予め設定された初期ビットレートに適したトラックに変更するトラック最適化はもちろん、データのプリロードとキャッシュを処理することにより、ストリーミングコンテンツの初期再生速度を高めることができる。
【0054】
この後、第6過程516~第10過程520は、プレーヤモジュール410がトラック情報(一例として、HLSのplaylist.m3u8)を取得するための過程の例を、第11過程521~第15過程525は、プレーヤモジュール410が1番目のフラグメントファイル(一例として、HLSの0.ts)を取得するための過程の例を、第16過程526~第20過程530は、プレーヤモジュール410が2つ目のフラグメントファイル(一例として、HLSの1.ts)を取得するための過程の例をそれぞれ示している。
【0055】
このとき、ローカルプロキシサーバ430は、キャッシュ内のデータに対するヒット確率を高めるために、コンテンツリストビューで現在フォーカシングされて再生される第1ストリーミングコンテンツを基準に、コンテンツリストビューで第1ストリーミングコンテンツと相対的に近い位置に配置されたストリーミングコンテンツから第1ストリーミングコンテンツと相対的に離れた位置に配置されたストリーミングコンテンツの順にデータをプリロードおよびキャッシュしてよい。ユーザは、コンテンツリストビューで現在フォーカシングされて再生される第1ストリーミングコンテンツの周辺に位置するストリーミングコンテンツを再びフォーカシングする可能性が高いため、上述した順にデータをプリロードおよびキャッシュすることにより、キャッシュ内のデータに対するヒット確率を高めることが可能となる。
【0056】
図6は、本発明の一実施形態における、コンテンツリストビューにおけるプリロードおよびキャッシュの順序の例を示した図である。
図6のコンテンツリストビュー600は、ストリーミングコンテンツ1(610)~ストリーミングコンテンツ5(650)を含む例を示している。ユーザがストリーミングコンテンツ1(610)をフォーカシングする場合(一例として、PC環境においてストリーミングコンテンツ1(610)が表示された領域にマウスオーバーイベントが発生する場合)、ストリーミングコンテンツ1(610)が再生されてよい。このとき、ローカルプロキシサーバ430は、フォーカシングされて再生されるストリーミングコンテンツ1(610)と相対的に近い位置に配置されたストリーミングコンテンツ2(620)のデータ(一例として、マニフェストファイル、トラック情報など)をプリロードおよびキャッシュしてよく、その次に、相対的にストリーミングコンテンツ3(630)、ストリーミングコンテンツ4(640)、ストリーミングコンテンツ5(650)の順にデータをプリロードおよびキャッシュしてよい。ユーザがストリーミングコンテンツ3(630)をフォーカシングする場合、ローカルプロキシサーバ430は、先ず、ストリーミングコンテンツ3(610)と相対的に近い位置に配置されたストリーミングコンテンツ2(620)とストリーミングコンテンツ4(640)をプリロードおよびキャッシュしてよく、この後、ストリーミングコンテンツ1(610)とストリーミングコンテンツ5(650)をプリロードおよびキャッシュしてよい。
【0057】
また、ローカルプロキシサーバ430は、同じ基準でキャッシュからデータを削除してよい。例えば、ローカルプロキシサーバ430は、キャッシュからデータを削除するときに、現在再生中のストリーミングコンテンツから相対的に離れた位置に配置されたストリーミングコンテンツのデータから優先的にキャッシュから削除してよい。
【0058】
また、ローカルプロキシサーバ430は、マニフェストファイルやトラック情報が含まれるデータがキャッシュに相対的に長く記録されるように優先順位を調整してよい。例えば、HLSのm3u8ファイルやmp4のmoovファイルが含まれる1番目のチャンク(chunk)が残りのデータよりもキャッシュに長く残るように優先順位を調整してよい。より具体的な例として、mp4の開始部分の1mbサイズのデータがmoovファイルを含むものと決定される場合、ローカルプロキシサーバ430は、mp4の開始部分の1mbサイズのデータに優先順位を与えて他のデータよりも相対的に長くキャッシュに残るようにキャッシュ政策が設定されてよい。
【0059】
図7は、本発明の一実施形態における、クライアントのストリーミングコンテンツ再生方法の例を示したフローチャートである。本実施形態によるストリーミングコンテンツ再生方法は、ストリーミングサービスのクライアントが実現するコンピュータ装置200によって実行されてよい。この場合、コンピュータ装置200のプロセッサ220は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ220は、コンピュータ装置200に記録されたコードが提供する制御命令に従ってコンピュータ装置200が
図7の方法に含まれる段階710~750を実行するようにコンピュータ装置200を制御してよい。
【0060】
段階710で、コンピュータ装置200は、ストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定してよい。例えば、コンピュータ装置200においてインストールされて実行されるコンピュータプログラムによって生成されるストリーミングプレーヤクライアントに対応するコードの制御に従って、プロセッサ220がストリーミングコンテンツを再生するプレーヤモジュールのための初期ビットレートを設定してよい。このとき、初期ビットレートは、ネットワーク帯域幅、バッファ残量、画面サイズなどを考慮しながら、プレーヤモジュールのための初期ビットレートを設定してよい。
【0061】
段階720で、コンピュータ装置200は、プレーヤモジュールからのストリーミングコンテンツに対するマニフェストファイル要請をストリーミングサーバに伝達してよい。例えば、上述したストリーミングプレーヤクライアントに対応するコードの制御に従って、プロセッサ220がプレーヤモジュールからマニフェストファイルに対する要請を受信してよく、ネットワーク170を介してこれをストリーミングサーバに伝達してよい。この場合、ストリーミングサーバは、マニフェストファイルをコンピュータ装置200に送信してよい。
【0062】
段階730で、コンピュータ装置200は、ストリーミングサーバから伝達されるマニフェストファイルを設定された初期ビットレートに基づいて編集してよい。例えば、コンピュータ装置200においてインストールされて実行されるコンピュータプログラムによって生成されるローカルプロキシサーバに対応するコードの制御に従って、プロセッサ220がマニフェストファイルを編集してよい。
【0063】
このとき、コンピュータ装置200は、設定された初期ビットレートに基づいて、マニフェストファイルに記録されたトラックのうちから1つのトラックを選択してよい。例えば、コンピュータ装置200は、設定された初期ビットレートとマニフェストファイルに記録されたトラックそれぞれを比較して、設定された初期ビットレートに最適なトラックを選択してよい。この後、コンピュータ装置200は、選択されたトラックがマニフェストファイルの1番目のトラックとして記録されるようにマニフェストファイルを編集してよい。
【0064】
段階740で、コンピュータ装置200は、編集されたマニフェストファイルを、ストリーミングプレーヤクライアントを通じてプレーヤモジュールに伝達してよい。この場合、プレーヤモジュールで編集されたマニフェストファイルから1番目のトラックを選択することによって設定された初期ビットレートに基づいて選択されたトラックが選択されてよい。
【0065】
この後、プレーヤモジュールは、従来の過程と同じように、1番目のトラックのトラック情報を要請してよく、1番目のトラックの1番目のフラグメントファイルを要請してよい。これにより、コンピュータ装置200は、プレーヤモジュールからの編集されたマニフェストファイルから選択されたトラックのトラック情報に対する要請をストリーミングサーバに伝達してよく、ストリーミングサーバから伝達されるトラック情報をプレーヤモジュールに伝達してよい。また、この後、プレーヤモジュールからの1番目のフラグメントファイルに対する要請をストリーミングサーバに伝達してよく、ストリーミングサーバから伝達される1番目のフラグメントファイルをプレーヤモジュールに伝達してよい。このような過程により、プレーヤモジュールは、該当のストリーミングコンテンツを再生することが可能となる。
【0066】
段階750で、コンピュータ装置200は、プレーヤモジュールでストリーミングコンテンツが再生される間に、ストリーミングコンテンツが含まれたコンテンツリストビューの他のストリーミングコンテンツに対するデータをプリロードおよびキャッシュしてよい。
図5では、ローカルプロキシサーバでデータをプリロードおよびキャッシュする例について説明した。このとき、コンピュータ装置200は、コンテンツリストビューにおいてストリーミングコンテンツが配置された位置とストリーミングコンテンツそれぞれが配置された位置との相対的な距離に基づいて、他のストリーミングコンテンツそれぞれのプリロードの順序およびキャッシュの順序のうちの少なくとも1つを決定してよい。例えば、コンピュータ装置200は、現在再生中のストリーミングコンテンツから相対的に近い位置にある他のストリーミングコンテンツから相対的に離れた位置にある他のストリーミングコンテンツの順にデータをプリロードおよびキャッシュしてよい。
【0067】
このように、本発明の実施形態によると、HLS、MPEG-DASH、mp4などのストリーミングサービスにおいて、プレーヤモジュールとストリーミングプレーヤクライアントとの間に初期ビットレートを設定し、ローカルストリーミングサーバ(一例として、ローカルプロキシサーバ)を利用してこのような初期ビットレートに最適化されたトラックを1番目のトラックとして選択するようにすることにより、適応型トラックを再選択しなければならないという問題を解決することができる。また、ローカルストリーミングサーバを利用して、コンテンツリストビューが含む多数のストリーミングコンテンツのうちで現在フォーカスされて再生されるストリーミングコンテンツのコンテンツリストビューにおける配置によって他のストリーミングコンテンツのキャッシュの順序を決定することにより、キャッシュされたデータのヒット確率を高めることができる。
【0068】
上述したシステムまたは装置は、ハードウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0069】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0070】
実施形態による方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体は、コンピュータ実行可能なプログラムを継続して記録するものであっても、実行またはダウンロードのために一時記録するものであってもよい。また、媒体は、単一または複数のハードウェアが結合した形態の多様な記録手段または格納手段であってよく、あるコンピュータシステムに直接接続する媒体に限定されることはなく、ネットワーク上に分散して存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含み、プログラム命令が記録されるように構成されたものであってよい。また、媒体の他の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体も挙げられる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【0071】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0072】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【国際調査報告】