(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6542866
(24)【登録日】2019年6月21日
(45)【発行日】2019年7月10日
(54)【発明の名称】リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信のための方法およびシステム
(51)【国際特許分類】
H04L 12/811 20130101AFI20190628BHJP
H04L 12/823 20130101ALI20190628BHJP
H04N 21/24 20110101ALI20190628BHJP
H04L 12/853 20130101ALI20190628BHJP
【FI】
H04L12/811
H04L12/823
H04N21/24
H04L12/853
【請求項の数】20
【全頁数】15
(21)【出願番号】特願2017-248043(P2017-248043)
(22)【出願日】2017年12月25日
(65)【公開番号】特開2018-110387(P2018-110387A)
(43)【公開日】2018年7月12日
【審査請求日】2017年12月25日
(31)【優先権主張番号】10-2016-0181134
(32)【優先日】2016年12月28日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】505205812
【氏名又は名称】ネイバー コーポレーション
【氏名又は名称原語表記】NAVER Corporation
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】チャン ジュンギ
(72)【発明者】
【氏名】キム ソンホ
(72)【発明者】
【氏名】チョウ ソンテク
(72)【発明者】
【氏名】カン インチョル
(72)【発明者】
【氏名】ア ジフン
(72)【発明者】
【氏名】キム ジョンミョン
(72)【発明者】
【氏名】イ ヨンス
【審査官】
松崎 孝大
(56)【参考文献】
【文献】
特開2006−115306(JP,A)
【文献】
特開2006−140984(JP,A)
【文献】
特開2010−245822(JP,A)
【文献】
特開2014−011636(JP,A)
【文献】
特開2014−112779(JP,A)
【文献】
国際公開第2006/077621(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/811
H04L 12/823
H04L 12/853
H04N 21/24
(57)【特許請求の範囲】
【請求項1】
コンピュータで実現される方法であって、
前記方法は、サーバにより実施され、
前記サーバ側で、リアルタイムライブ環境でデータパケットを管理するライブ送出パブリッシャーが持っているバッファのデュレーションを確認する段階、および
前記バッファのデュレーションを基準としてネットワークの状態を推定して前記バッファのデュレーションに相応する帯域幅を推定し、前記帯域幅に適応的にデータ送信速度を制御する段階
を含む、方法。
【請求項2】
前記確認する段階は、
周期的に第1時間間隔ごとに前記バッファのデュレーションを確認する、
請求項1に記載の方法。
【請求項3】
前記制御する段階は、
前記バッファのデュレーションが第2時間以上であればビットレートを減少させる段階、および
前記バッファのデュレーションが前記第2時間未満であれば前記ビットレートを増加させる段階
を含む、請求項1に記載の方法。
【請求項4】
前記減少させる段階は、
前記バッファのデュレーションが第2時間以上である場合に推定された前記ネットワークの帯域幅を可用帯域幅として推定し、前記可用帯域幅に応じて前記ビットレートを減少させる、
請求項3に記載の方法。
【請求項5】
前記減少させる段階は、
前記データパケットに含まれるビデオパケットおよびオーディオパケットのうちの少なくとも1つをドロップさせる、
請求項3に記載の方法。
【請求項6】
前記減少させる段階は、
前記バッファのデュレーションが第3時間以下である場合、前記データパケットに含まれるビデオパケットおよびオーディオパケットのうちの前記ビデオパケットだけをドロップさせる段階、および
前記バッファのデュレーションが前記第3時間を超える場合、前記ビデオパケットおよび前記オーディオパケットの両方をドロップさせる段階
を含む、請求項3に記載の方法。
【請求項7】
前記増加させる段階は、
前記バッファのデュレーションが前記第2時間未満であれば、ステップ単位で前記ビットレートを増加させる、
請求項3に記載の方法。
【請求項8】
前記増加させる段階は、
前記バッファのデュレーションが前記第2時間未満である状態が連続的に設定回数以上持続すれば、ステップ単位で前記ビットレートを増加させる段階
を含む、請求項3に記載の方法。
【請求項9】
前記増加させる段階は、
前記ビットレートを増加させた後、前記バッファのデュレーションが前記第2時間未満である状態が第4時間維持されなければ前記設定回数を増やす段階、および
前記ビットレートを増加させた後、前記バッファのデュレーションが前記第2時間未満である状態が前記第4時間維持されれば前記設定回数を減らす段階
をさらに含む、請求項8に記載の方法。
【請求項10】
前記確認する段階は、
前記第1時間内に前記バッファのデュレーションを1回確認し、前記第1時間内の前記バッファのデュレーションの全体平均値として計算する、
請求項2に記載の方法。
【請求項11】
前記確認する段階は、
前記第1時間内に一定の間隔で前記バッファのデュレーションを複数回確認し、デュレーションの増加または減少速度に応じた加重値を利用して前記バッファのデュレーションを計算する、
請求項2に記載の方法。
【請求項12】
コンピュータに請求項1ないし11のうちのいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【請求項13】
コンピュータで実現されるシステムであって、
コンピュータが読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサ
を含み、
前記少なくとも1つのプロセッサは、
前記システム側で、リアルタイムライブ環境でデータパケットを管理するライブ送出パブリッシャーが持っているバッファのデュレーションを確認するバッファ確認部、および
前記バッファのデュレーションを基準としてネットワークの状態を推定して前記バッファのデュレーションに相応する帯域幅を推定し、前記帯域幅に適応的にデータ送信速度を制御する送信速度制御部
を備える、システム。
【請求項14】
前記バッファ確認部は、
周期的に第1時間間隔ごとに前記バッファのデュレーションを確認する、
請求項13に記載のシステム。
【請求項15】
前記送信速度制御部は、
前記バッファのデュレーションが第2時間以上であればビットレートを減少させ、
前記バッファのデュレーションが前記第2時間未満であれば前記ビットレートを増加させる、
請求項13に記載のシステム。
【請求項16】
前記送信速度制御部は、
前記バッファのデュレーションが第2時間以上である場合に推定された前記ネットワークの帯域幅を可用帯域幅として推定し、前記可用帯域幅に応じて前記ビットレートを減少させる、
請求項15に記載のシステム。
【請求項17】
前記送信速度制御部は、
前記ビットレートを減少させるにあたり、前記データパケットに含まれるビデオパケットおよびオーディオパケットのうちの少なくとも1つをドロップさせる、
請求項16に記載のシステム。
【請求項18】
前記送信速度制御部は、
前記バッファのデュレーションが前記第2時間未満であればステップ単位で前記ビットレートを増加させる、
請求項15に記載のシステム。
【請求項19】
前記送信速度制御部は、
前記バッファのデュレーションが前記第2時間未満である状態が連続的に設定回数以上持続すれば、ステップ単位で前記ビットレートを増加させる、
請求項15に記載のシステム。
【請求項20】
前記送信速度制御部は、
前記ビットレートを増加させた後、前記バッファのデュレーションが前記第2時間未満である状態が第4時間維持されなければ前記設定回数を増やし、
前記ビットレートを増加させた後、前記バッファのデュレーションが前記第2時間未満である状態が前記第4時間維持されれば前記設定回数を減らす、
請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、ネットワークの帯域幅を測定し、測定された帯域幅に合わせてデータを送信する技術に関する。
【背景技術】
【0002】
インターネットは、パケット単位でデータを送受信するのが一般的であるが、通信する2つの端末間に送信帯域幅が常に保障されるのではなく、経路が選定されると、各パケット単位で動的に帯域幅を占有しながらデータが送受信されるようになる。
【0003】
最近では、動画などの大容量データの使用が一般化しているが、動画データをリアルタイムでストリーミングするサービスの場合、ネットワークの送信帯域幅に合わせて動画データを送信することで、QoS(Quality of Service)を満たしたサービスを提供することができる。
【0004】
この場合、ネットワークを介してデータを送信するときに実際に送信可能なデータの帯域幅を測定する技術は、極めて重要な役割を担っている。一例として、特許文献1には、モバイル送信網の帯域幅をリアルタイムで測定する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】韓国登録特許第10−1182550号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
リアルタイムライブ環境でデータパケットを管理するバッファのデュレーション(duration)に基づいてネットワーク帯域幅を測定し、測定された帯域幅に適応的にデータ送信速度を変更するABP(Adaptive Bitrate Publish)技術を提供する。
【課題を解決するための手段】
【0007】
コンピュータで実現される方法であって、リアルタイムライブ環境でデータパケットを管理するバッファのデュレーションを確認する段階、および前記バッファのデュレーションに基づいてネットワークの帯域幅を測定し、前記帯域幅に適応的にデータ送信速度を制御する段階を含む方法を提供する。
【0008】
一側面によると、前記確認する段階は、周期的に第1時間間隔ごとに前記バッファのデュレーションを確認してよい。
【0009】
他の側面によると、前記制御する段階は、前記バッファのデュレーションが第2時間以上であればビットレートを減少させる段階、および前記バッファのデュレーションが前記第2時間未満であれば前記ビットレートを増加させる段階を含む。
【0010】
また他の側面によると、前記減少させる段階は、前記バッファのデュレーションが第2時間以上であれば前記ネットワークの可用帯域幅を測定し、前記可用帯域幅に応じて前記ビットレートを減少させてよい。
【0011】
また他の側面によると、前記減少させる段階は、前記データパケットに含まれるビデオパケットおよびオーディオパケットのうちの少なくとも1つをドロップ(drop)させてよい。
【0012】
また他の側面によると、前記減少させる段階は、前記バッファのデュレーションが第3時間以下である場合、前記データパケットに含まれるビデオパケットおよびオーディオパケットのうちの前記ビデオパケットだけをドロップさせる段階、および前記バッファのデュレーションが前記第3時間を超える場合、前記ビデオパケットおよび前記オーディオパケットの両方をドロップさせる段階を含む。
【0013】
また他の側面によると、前記増加させる段階は、前記バッファのデュレーションが前記第2時間未満であれば、ステップ(step)単位で前記ビットレートを増加させてよい。
【0014】
また他の側面によると、前記増加させる段階は、前記バッファのデュレーションが前記第2時間未満である状態が連続して設定回数以上持続すれば、ステップ単位で前記ビットレートを増加させる段階を含む。
【0015】
また他の側面によると、前記増加させる段階は、前記ビットレートを増加させた後、前記バッファのデュレーションが前記第2時間未満である状態が第4時間維持されなければ前記設定回数を増やす段階、および前記ビットレートを増加させた後、前記バッファのデュレーションが前記第2時間未満である状態が前記第4時間維持されれば前記設定回数を減らす段階をさらに含む。
【0016】
また他の側面によると、前記確認する段階は、前記第1時間内に前記バッファのデュレーションを1回確認し、前記第1時間内の前記バッファのデュレーションの全体平均値として計算してよい。
【0017】
また他の側面によると、前記確認する段階は、前記第1時間内に一定の間隔で前記バッファのデュレーションを複数回確認し、デュレーションの増加または減少速度に応じた加重値を利用して前記バッファのデュレーションを計算してよい。
【0018】
コンピュータに上記の方法を実行させるためのコンピュータプログラムを提供する。
【0019】
コンピュータで実現されるシステムであって、コンピュータが読み取り可能な命令を実行するように実現される少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、リアルタイムライブ環境でデータパケットを管理するバッファのデュレーションを確認するバッファ確認部、および前記バッファのデュレーションに基づいてネットワークの帯域幅を測定し、前記帯域幅に適応的にデータ送信速度を制御する送信速度制御部を備えるシステムを提供する。
【発明の効果】
【0020】
本発明の実施形態によると、データパケットを管理するバッファのデュレーションに基づいてネットワーク帯域幅を測定し、測定された帯域幅に適応的にデータ送信速度を変更することにより、リアルタイムライブ環境に適した適応的データ送信技術を実現することができる。
【図面の簡単な説明】
【0021】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【
図3】本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図である。
【
図4】本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【
図5】本発明の一実施形態における、適応的データ送信過程を示したフローチャートである。
【
図6】本発明の一実施形態における、帯域幅に応じたビットレート変化過程を示したグラフである。
【発明を実施するための形態】
【0022】
以下、本発明の実施形態について、添付の図面を参照しながら詳細に説明する。
【0023】
本発明の実施形態は、ネットワーク帯域幅を測定して帯域幅に適応的なリアルタイムライブ環境を提供する技術に関する。
【0024】
本明細書で具体的に開示される事項などを含む実施形態は、リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信を実現することができ、これにより、サービス品質向上、効率性、コスト節減などの側面において相当な長所を達成する。
【0025】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。
【0026】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、コンピュータ、ノート型パソコン、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、電子機器1(110)は、無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信してよい。
【0027】
通信方式が限定されることはなく、ネットワーク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は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター−バスネットワーク、ツリーまたは階層的(hierarchical)ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0028】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。
【0029】
一例として、サーバ160は、ネットワーク170を介して接続した電子機器1(110)にアプリケーションのインストールのためのファイルを提供してよい。この場合、電子機器1(110)は、サーバ160から提供されたファイルを利用してアプリケーションをインストールしてよい。また、電子機器1(110)が含むオペレーティングシステム(Operating System:OS)や少なくとも1つのプログラム(一例として、ブラウザやインストールされたアプリケーション)の制御にしたがってサーバ150に接続し、サーバ150が提供するサービスやコンテンツの提供を受けてよい。例えば、電子機器1(110)がアプリケーションの制御にしたがい、ネットワーク170を介してサービス要求メッセージをサーバ150に送信すると、サーバ150はサービス要求メッセージに対応するコードを電子機器1(110)に送信してよく、電子機器1(110)はアプリケーションの制御にしたがってコードに基づいた画面を構成して表示することにより、ユーザにコンテンツを提供してよい。
【0030】
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
図2では、1つの電子機器に対する例として電子機器1(110)の内部構成を、1つのサーバに対する例としてサーバ150の内部構成を説明する。他の電子機器120、130、140やサーバ160も、同一または類似の内部構成を有してよい。
【0031】
電子機器1(110)およびサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、コンピュータで読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記憶装置を含んでよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電子機器1(110)にインストールされ駆動するアプリケーションなどのためのコード)が格納されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータで読み取り可能な記録媒体からロードされてよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD−ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてよい。
【0032】
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0033】
通信モジュール213、223は、ネットワーク170を介して電子機器1(110)とサーバ150とが互いに通信するための機能を提供してもよいし、他の電子機器(一例として、電子機器2(120))または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器1(110)のプロセッサ212がメモリ211のような記録装置に格納されたプログラムコードにしたがって生成した要求(一例として、検索要求)が、通信モジュール213の制御にしたがってネットワーク170を介してサーバ150に伝達されてよい。これとは逆に、サーバ150のプロセッサ222の制御にしたがって提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223およびネットワーク170を経て電子機器1(110)の通信モジュール213を通じて電子機器1(110)に受信されてもよい。例えば、通信モジュール213を通じて受信したサーバ150の制御信号や命令などは、プロセッサ212やメモリ211に伝達されてよく、コンテンツやファイルなどは、電子機器1(110)がさらに含むことのできる格納媒体に格納されてよい。
【0034】
入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、アプリケーションの通信セッションを表示するためのディスプレイのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力および出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器1(110)のプロセッサ212は、メモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器2(120)が提供するデータを利用して構成されるサービス画面やコンテンツが入力/出力インタフェース214を通じてディスプレイに表示されてよい。
【0035】
また、他の実施形態において、電子機器1(110)およびサーバ150は、
図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器1(110)は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器1(110)がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラ、各種の物理的なボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が電子機器1(110)にさらに含まれるように実現されてよいことが分かる。
【0036】
以下では、リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信のための方法およびシステムの具体的な実施形態について説明する。
【0037】
ネットワークのRTT(round trip time)に基づいてデータ送信速度を測定する方法は、データのサイズが小さかったり連続的でなかったりする場合に誤差が大きく発生することから、リアルタイムライブプロトコル(例えば、RTMP(real time messaging protocol)など)には適さない。
【0038】
本発明では、リアルタイムライブ環境に適したデータ送信環境を実現するために、サーバ150側で(一例として、ライブ送信モジュールで)管理しているデータ(オーディオ/ビデオ)パケットバッファのデュレーションに基づいてネットワーク帯域幅を測定し、測定された帯域幅に適応的にビットレートおよびfps(frame per second)を即時(on the fly)変更する適応的データ送信技術を提供する。
【0039】
言い換えれば、RTMPのようなパブリッシャが持っているバッファのデュレーションに基づいてネットワーク状態を推定し、これによって適応的にデータ送信速度を高めたり低めたりする機能を提供する。
【0040】
図3は、本発明の一実施形態における、サーバのプロセッサが含むことのできる構成要素の例を示した図であり、
図4は、本発明の一実施形態における、サーバが実行することのできる方法の例を示したフローチャートである。
【0041】
図3に示すように、サーバ150のプロセッサ222は、構成要素として、バッファ確認部310および送信速度制御部320を備えてよい。このようなプロセッサ222およびプロセッサ222の構成要素は、
図4の方法が含む段階410〜420を実行するようにサーバ150を制御してよい。ここで、プロセッサ222およびプロセッサ222の構成要素は、メモリ221が含むオペレーティングシステムのコードおよび少なくとも1つのプログラムのコードによる命令を実行するように実現されてよい。また、プロセッサ222の構成要素は、オペレーティングシステムや少なくとも1つのプログラムが提供する制御命令にしたがってプロセッサ222によって実行される互いに異なる機能の表現であってよい。例えば、プロセッサ222が上述した制御命令にしたがってバッファのデュレーションを確認する機能的表現としてバッファ確認部310が使用されてよい。
【0042】
段階410で、バッファ確認部310は、電子機器1(110)に動画などのデータをリアルタイムで送信するリアルタイムライブ環境でデータ(オーディオ/ビデオ)パケットを一時格納するために利用されるバッファのデュレーションを確認してよい。このとき、バッファ確認部310は、周期的に第1時間(例えば、2秒)間隔ごとにデータパケットを管理するバッファの待ち行列であるキューのデュレーションを確認してよい。一例として、バッファ確認部310は、A秒(第1時間)を周期としてA秒間に1回またはa秒間隔ごとにN回(a秒×N回=A秒)バッファのデュレーションを確認してよい。A秒間に1回の測定をする場合、バッファデュレーションの全体平均値としてデュレーションを計算してよい。a秒間隔ごとにA秒間でN回の測定をする場合、バッファデュレーションの増加または減少速度をみながらi回ごとに加重値をおいてデュレーションを計算してよい。
【0043】
段階420で、送信速度制御部320は、段階410で確認されたバッファのデュレーションに基づいて電子機器1(110)に接続するネットワーク170の帯域幅を測定し、ネットワーク170の帯域幅に適応的にデータ送信速度を制御してよい。これにより、送信速度制御部320は、データパケットを管理するバッファのデュレーションに基づいてデータ送信速度を変更する適応的データ送信環境を実現することができる。
【0044】
送信速度制御部320の適応的データ送信過程は、
図5を参照しながらより具体的に説明される。
【0045】
本発明に係る適応的データ送信技術の基本動作条件は、次のとおりとなる。
【0046】
(1)ビットレート減少方策:ビットレートを低めること(例えば、動画画質を低めること)は、敏感に動作しなければならない。
【0047】
(2)ビットレート増加方策:ビットレートを高めること(例えば、動画画質を高めること)は、保守的に動作しなければならない。
【0048】
図5を参照すると、段階501で、送信速度制御部320は、バッファのデュレーションが第2時間(例えば、1秒)以上であれば、ビットレート減少方策を適用し、バッファのデュレーションに基づいてネットワーク170の可用帯域幅を測定してビットレートを減少させてよい。第2時間は、ビットレート減少方策またはビットレート増加方策のどちらを適用するかを決める基準となってよい。
【0049】
送信速度制御部320は、バッファデュレーションが第2時間を超える場合、ビットレート減少方策にしたがって帯域幅を測定してビットレート(以下のnew bitrate)を変更してよいが、このとき、ビットレート(new bitrate)は、以下の式(1)のように定義されてよい。
【0050】
new bitrate=(1.0−(B/A))×current bitrate×加重値・・・(1)
【0051】
ここで、Aは第1時間を、Bは第2時間を、current bitrateは現在のビットレートを意味する。
【0052】
式(1)の加重値ファクタにより、ネットワーク170の可用帯域幅をもう少し肯定的にまたは保守的に処理してよい。例えば、1.0よりも大きい加重値を適用することによって帯域幅を肯定的に処理してよく、1.0よりも小さい加重値を適用することによって帯域幅を保守的に処理してよい。
【0053】
送信速度制御部320は、ビットレート減少方策にしたがい、変更しようとするビットレート(new bitrate)が事前に定められた最小ビットレートよりも低ければ、最小ビットレートとして設定および変更してよい。
【0054】
ビットレートを減らすためには、ビデオパケットおよびオーディオパケットのうちの少なくとも1つをドロップさせてよい。
【0055】
ビデオパケットをドロップさせる場合には、ユーザ端でfpsが離れている感じがするといった程度であるが、オーディオパケットをドロップさせる場合には、音が切れて連続的な感じが失われるため、ユーザのサービス利用に不快感を与えるようになる。
【0056】
したがって、ビットレート減少方策では、オーディオパケットをビデオパケットよりも優先的に最大限送信するように例外処理してよい。一例として、送信速度制御部320は、バッファデュレーションが第3時間以下である場合にはビデオパケットだけをドロップさせ、バッファデュレーションが第3時間を超える場合にはビデオパケットおよびオーディオパケットの両方をドロップさせてよい。ただし、送信速度制御部320は、バッファデュレーションが第2時間を超える状況でターゲットビットレートが事前に定められた最小ビットレートである場合、ビデオパケットおよびオーディオパケットの両方をドロップさせてよい。
【0057】
再び
図5において、段階502で、送信速度制御部320は、バッファのデュレーションが第2時間未満であれば、ビットレート増加方策を適用し、ビットレートを段階的に増加させてよい。例えば、第2時間が1秒である場合、バッファのデュレーションが1秒以上であればビットレート減少方策を適用し、バッファのデュレーションが1秒未満であればビットレート増加方策を適用してよい。
【0058】
バッファ確認部310は、周期的に第1時間ごとにバッファのデュレーションを確認するようになるが、このとき、送信速度制御部320は、第1時間ごとに確認されたバッファのデュレーションが第2時間未満である状態が連続的に設定回数(N回)以上持続すれば、ビットレートを一段階高めてよい。
【0059】
バッファデュレーションに基づいて帯域幅を測定するとき、現在送信中であるビットレート以上での速度測定は不可能であるため、ビットレート増加方策の場合、ステップ単位でビットレートを段階的に高めてよい。この場合、ビットレートを増加させるとき、ステップサイズは、特定の定数値または基本ビットレートの1/N値であってよい。
【0060】
ビットレート増加を決定する1つの基準となる設定回数は、他のファクタに基づいて変更されてよい。一例として、ビットレートを高めた後、バッファのデュレーションが第2時間未満である状態が第4時間(例えば、30秒)以上持続せずにビットレート減少条件を満たすようになれば、設定回数に該当するFファクタに一定の定数(K)を掛ける。例えば、Fファクタの初期値が5、最大値が30、一定の定数が2である場合に、上述した条件が繰り返し満たされる場合、設定回数は5→10→20→30に変更されてよい。言い換えれば、送信速度制御部320は、ビットレートを高めた後、バッファのデュレーションが第2時間未満である状態が第4時間維持されないときには設定回数を増やし、以後からはもう少し保守的にビットレートを高めてよい。一方、以前にビットレートを高めた状態でビットレート増加方策の条件を満たし、ビットレートをまた高めるようになる場合、Fファクタを一定の定数(K)で割ってよい。Fファクタの初期値が30、最小値が5、一定の定数が2である場合に、上述した条件が繰り返し満たされる場合、設定回数は30→15→7→5に変更されてよい。すなわち、送信速度制御部320は、ビットレートを高めてバッファのデュレーションが第2時間未満である状態が第4時間維持されるときには設定回数を減らし、以後からはもう少し積極的にビットレートを高めてよい。
【0061】
送信速度制御部320は、ビットレート減少/増加方策を適用する前にfpsを変更し、バッファリング状態の復旧または画質向上が可能であると判断されれば、ビットレートに比べてfpsを優先的に変更処理してよい。例えば、30fpsで送信中の状態と測定された帯域幅が現在はビットレートの1/2である場合、15fpsに変更してよい。
【0062】
図6は、本発明の一実施形態における、帯域幅制限によるビットレート変化過程を示したグラフである。
【0063】
図6を参照すると、初期帯域幅(BW)2Mbpsから帯域幅を500Kbpsに制限する場合、ビットレート減少方策によって比較的短い時間内にビットレートが急激に下がるようになる。この後、帯域幅が500Kbpsから1200Kbpsに増加するようになれば、ビットレート増加方策が適用されながらビットレートが段階的に高くなる。再び、帯域幅が1200Kbpsから500Kbpsに減少するようになれば、ビットレート減少方策により、ビットレートが減少した後は一定の水準を維持するようになる。
図6に示すように、ビットレート減少方策では、敏感な動作条件によって早い時間内にターゲットビットレートに到達するのに対し、ビットレート増加方策では、保守的な動作条件により、ビットレート減少方策に比べてターゲットビットレートまでの到達時間が比較的長い。
【0064】
このように、本発明の実施形態によると、データパケットを管理するバッファのデュレーションに基づいてネットワーク帯域幅を測定し、測定された帯域幅に適応的にデータ送信速度を変更することにより、リアルタイムライブ環境に適した適応的データ送信技術を実現することができる。
【0065】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0066】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてよい。
【0067】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてよい。このとき、媒体は、コンピュータによって実行可能なプログラムを継続格納してもよいし、実行またはダウンロードのために一時格納してもよい。また、媒体は、単一または複数のハードウェアが結合した状態の多様な記録手段または格納手段であってよいが、あるコンピュータシステムに直接接続する媒体に限定されるのではなく、ネットワーク上に分散存在するものであってもよい。媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD−ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどを含んでプログラム命令が格納されるように構成されたものであってよい。また、他の媒体の例として、アプリケーションを配布するアプリケーションストアやその他の多様なソフトウェアを供給または配布するサイト、サーバなどで管理する記録媒体または格納媒体が挙げられる。
【0068】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0069】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【0070】
310:バッファ確認部
320:送信速度制御部