JP4643330B2 - 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム - Google Patents

通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4643330B2
JP4643330B2 JP2005092452A JP2005092452A JP4643330B2 JP 4643330 B2 JP4643330 B2 JP 4643330B2 JP 2005092452 A JP2005092452 A JP 2005092452A JP 2005092452 A JP2005092452 A JP 2005092452A JP 4643330 B2 JP4643330 B2 JP 4643330B2
Authority
JP
Japan
Prior art keywords
bit rate
client
data
throughput
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005092452A
Other languages
English (en)
Other versions
JP2006279283A (ja
Inventor
晃通 小川
卓也 五十嵐
一宏 舌間
成志 見山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005092452A priority Critical patent/JP4643330B2/ja
Priority to TW095105952A priority patent/TW200637282A/zh
Priority to EP20060251250 priority patent/EP1708438B1/en
Priority to DE200660001019 priority patent/DE602006001019T2/de
Priority to US11/385,770 priority patent/US7987284B2/en
Priority to KR20060027624A priority patent/KR101234890B1/ko
Priority to CN2006100714577A priority patent/CN1841984B/zh
Publication of JP2006279283A publication Critical patent/JP2006279283A/ja
Application granted granted Critical
Publication of JP4643330B2 publication Critical patent/JP4643330B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • H04W28/22Negotiating communication rate

Description

本発明は、通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラムに関する。特に、ストリーミングデータの送受信における的確なビットレート制御を行なう通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラムに関する。
昨今、インターネットを介したデータ通信が盛んに行なわれ、さらに家庭内においても家電機器やコンピュータ、その他の周辺機器をネットワーク接続して機器間での通信を可能としたホームネットワークが浸透しつつある。ホームネットワークは、例えば、ネットワーク接続機器間でのコンテンツ送受信を可能とし、ユーザに利便性・快適性を提供するものであり、今後、ますます普及することが予測される。
サーバの保持する画像データを、ネットワークを介してクライアントに送信し、クライアント側でデータ受信を実行しながら再生を行なうデータ配信処理は、いわゆるストリーミングデータ配信、あるいはデータストリーミングなどと呼ばれる。このようなストリーミングデータ配信を行なうサーバをストリーミングサーバ、ストリーミングサーバからデータを受信するクライアントをストリーミングクライアントと呼ぶ。ストリーミングサーバは、エンコードなどのデータ処理を実行して送信データを生成してネットワークに出力する。一方、ストリーミングクライアントは、受信データをバッファに一時蓄積し、その後、順次デコード処理、再生を行なう。
多くの場合、データストリーミングにおいて用いられる通信プロトコルは、RTP(Real Time Transport Protocol)である。RTPは、原則として再送制御を行わない。すなわち、パケットロス対策や伝送時間保証などは行われていないUDP(User Datagram Protocol)型のプロトコルである。パケットロスが発生した場合でも再送処理を行わないため、再送処理に起因する遅延が起こらずリアルタイム再生に適したプロトコルである。
RTPを適用した通信では、例えばRTCP(RTP Control Protocol)を用いたレート制御が行なわれる。例えば、特許文献1は、データ受信側の装置が、データ送信側の装置に対してパケット損失率などをRTCPのRR(Receiver Report)パケットに記載して通知し、送信側でデータの伝送状態を推定し、送信レートを制御するという方法を開示している。
ストリーミング配信では、最適な伝送レートでデータ配信を行なうことが重要となる。例えば特許文献2には、データ送受信装置の双方が、上りまたは下りの伝送レートを計測して、レート制御を実行する装置が、計測されたレートのうち、小さいほうのレートに制御することで安定的にデータ伝送を行なう構成を開示している。
上述のRTPによるストリーミング配信では、パケットロスが発生しても再送を行なわないため再生遅れを発生させないというメリットがあるが、データ品質を向上させるためには、クライアント側で、完全なデータ受信が行われることが好ましい。また、配信コンテンツが、暗号化データである場合などにおいては、クライアント側におけるコンテンツ復号の際に、消失データ部分があると復号が不可能となり再生ができなくなる場合もある。このようなコンテンツの場合、RTPのような再送制御を行わないプロトコルは不適当である。
このように転送データの完全性を望む場合は、パケットロスに対する対処を行なうプロトコル、例えばTCP(Transmission Control Protocol)などのトランスポートプロトコルが適用される。TCPによる画像データの配信構成については、例えば特許文献3に記載されている。
TCPなどのトランスポートプロトコルを用いた通信はベストエフォートで行われる。マルチメディアデータのストリーミングを行う場合、ベストエフォートの通信による通信帯域幅の変動は深刻な問題となる。この問題は例えばTCPでは顕著になる。TCPでは、データの喪失が無い代わりにデータの到達時間が遅れるため、通信帯域幅が狭くなるとデータ到達時間が遅れる。このデータ到達時間の遅れにより、TCPストリーミングでは、輻輳時に映像や音声が途切れやすくなる。そこで、その解決手法としてストリーミングサーバからのデータ配信において送信データのビットレートを増減させて、通信帯域幅の変動に適応させることが一般に行われる。映像データなどを含むマルチメディアデータのビットレート増減手法は、データストリーミングの品質に大きく影響を与える。
従来の手法ではストリーミングサーバが配信データのビットレートを増減させる判断材料は、主にクライアントからの情報である。例えば、クライアントのアプリケーションバッファに蓄えられているデータ量に関する情報が利用される。しかし、クライアントのアプリケーションバッファに蓄えられているデータ量の計算のみでは、ネットワークの帯域許容量以上のビットレートでデータを送信してしまう可能性がある。ネットワークの帯域許容量以上のビットレートでデータを送信すると、結果として輻輳が発生し、望むとおりにマルチメディアデータがクライアントに届かず、クライアントのアプリケーションバッファに蓄積されているデータ量の枯渇が起こり、映像や音声の途切れが発生する可能性が高まることになる。
また、クライアントからの情報を利用する従来の手法では、通信帯域幅の変動に迅速に対応できないという問題がある。例えばストリーミングサーバとストリーミングクライアント間の通信帯域幅が他トラフィックの出現などによって急激に狭くなったとする。通信帯域幅が狭くなった時点でストリーミングサーバが送信データのビットレートを減少させて対応すれば、送信データの再生が途切れることがない。しかし、上述した処理構成のように、クライアントからの情報を利用する構成では、通信帯域幅が狭くなった後、一定時間後にクライアントのバッファ蓄積データ量の減少が発生し、そのバッファデータの減少をサーバ側で認識するまでに時間を要することになる。従って、サーバは、通信帯域幅が細くなった時点での即時対応ができない。この結果、サーバ側でのビットレート削減などの処理を行なう以前に、クライアントのバッファが枯渇してしまい、映像や音声の途切れが発生するという事態が発生してしまうことになる。
特許公開2002−204278号公報 特許公開2004−297565号公報 特許公開2005−005823号公報
本発明は、上述の問題点に鑑みてなされたものであり、ストリーミングデータ送受信処理において、最適な送信態様に基づくデータ送信を実現する通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
さらに、具体的には、本発明は、通信経路上の輻輳や無線リンクの外乱の影響などを考慮した上で、サーバ側で送信データのビットレートの最適値を予測し、予測値に基づいてビットレートの動的変更を行なって最適なデータ送信態様に従ったデータストリーミングを実現する通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
本発明の第1の側面は、
クライアントに対するデータ送信処理を実行するサーバとしての通信処理装置であり、
クライアントとの通信処理を実行するデータ送受信部と、
クライアントに対する送信データのビットレートを決定するレート制御部と、
前記レート制御部において決定されたビットレートに対応する送信データの設定処理を実行するデータ処理部とを有し、
前記レート制御部は、
サーバクライアント間における通信コネクション設定期間内におけるデータ送受信実行期間の時間および送信データ量に基づいて最大スループットを算出するスループット算出部と、
前記スループット算出部の算出した最大スループットに相当するビットレートを最大許容ビットレートとして送信ビットレートを決定するビットレート決定部とを有し、
前記ビットレート決定部は、
(a)通信開始時にクライアントから通知されたバッファ量:[B_cli(byte)]
(b)クライアントが再生を開始してからの経過時間:[T(sec)]
(c)クライアントが再生を開始以降、経過時間[T(sec)]の間のサーバからの送信データ量:[D_serv(byte)]
(d)送信コンテンツから取得可能なコンテンツの再生レート[R(byte/sec)]
これら(a)〜(d)の情報を用いて、
クライアントバッファの見積もりバッファ量=B cli+D serv−R*T
として、
クライアントのバッファ量の見積もり処理を実行し、前記見積もりバッファ量の推移に基づいてビットレートを決定する構成であり、見積もりバッファ量が予め定めた閾値以上である場合、前記スループット算出部の算出した最大スループットに相当する最大許容ビットレートを上限としてビットレート上昇処理を行なう構成であることを特徴とする通信処理装置にある。
本発明の第の側面は、
データ送信処理を実行するサーバにおける通信処理方法であり、
クライアントに対する送信データのビットレートを決定するレート制御ステップと、
前記レート制御ステップにおいて決定されたビットレートに対応する送信データの設定処理を実行するデータ処理ステップとを有し、
前記レート制御ステップは、
サーバクライアント間における通信コネクション設定期間内におけるデータ送受信実行期間の時間および送信データ量に基づいて最大スループットを算出するスループット算出ステップと、
前記スループット算出ステップにおいて算出した最大スループットに相当するビットレートを最大許容ビットレートとして送信ビットレートを決定するビットレート決定ステップとを有し、
前記ビットレート決定ステップは、
(a)通信開始時にクライアントから通知されたバッファ量:[B_cli(byte)]
(b)クライアントが再生を開始してからの経過時間:[T(sec)]
(c)クライアントが再生を開始以降、経過時間[T(sec)]の間のサーバからの送信データ量:[D_serv(byte)]
(d)送信コンテンツから取得可能なコンテンツの再生レート[R(byte/sec)]
これら(a)〜(d)の情報を用いて、
クライアントバッファの見積もりバッファ量=B cli+D serv−R*T
として、
クライアントのバッファ量の見積もり処理を実行し、前記見積もりバッファ量の推移に基づいてビットレートを決定する構成であり、見積もりバッファ量が予め定めた閾値以上である場合、前記スループット算出部の算出した最大スループットに相当する最大許容ビットレートを上限としてビットレート上昇処理を行なうことを特徴とする通信処理方法にある。
本発明の第の側面は、
送信データのレート制御をコンピュータ上で実行させるコンピュータ・プログラムであり、
レート制御部において、クライアントに対する送信データのビットレートを決定させるレート制御ステップと、
データ処理部において、前記レート制御ステップにおいて決定されたビットレートに対応する送信データの設定処理を実行させるデータ処理ステップとを有し、
前記レート制御ステップは、
サーバクライアント間における通信コネクション設定期間内におけるデータ送受信実行期間の時間および送信データ量に基づいて最大スループットを算出させるスループット算出ステップと、
前記スループット算出ステップにおいて算出した最大スループットに相当するビットレートを最大許容ビットレートとして送信ビットレートを決定させるビットレート決定ステップとを有し、
前記ビットレート決定ステップは、
(a)通信開始時にクライアントから通知されたバッファ量:[B_cli(byte)]
(b)クライアントが再生を開始してからの経過時間:[T(sec)]
(c)クライアントが再生を開始以降、経過時間[T(sec)]の間のサーバからの送信データ量:[D_serv(byte)]
(d)送信コンテンツから取得可能なコンテンツの再生レート[R(byte/sec)]
これら(a)〜(d)の情報を用いて、
クライアントバッファの見積もりバッファ量=B cli+D serv−R*T
として、
クライアントのバッファ量の見積もり処理を実行し、前記見積もりバッファ量の推移に基づいてビットレートを決定する構成であり、見積もりバッファ量が予め定めた閾値以上である場合、前記スループット算出部の算出した最大スループットに相当する最大許容ビットレートを上限としてビットレート上昇処理を行なわせるステップであることを特徴とするコンピュータ・プログラムにある。
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本発明の構成によれば、「連続データ送信および受信確認応答(ack)の受信期間」、すなわち、[データ送受信実行期間]の計測値を適用して最大スループットを算出し、この最大スループットに基づいて、送信ビットレートの制御を行う構成とした。すなわち、データ送受信に対する寄与のない期間[データ送受信非実行期間]を省いたデータ送受信期間に基づく最大スループットを算出して、算出した最大スループットに相当する最大許容ビットレートを上限としたビットレート制御を行う。本構成により、実際の送信レートを考慮したビットレート制御が可能となり、ビットレートの上げすぎや抑えすぎといったことがなく、データ送信を確実に実行可能な最大許容ビットレートを上限としたデータ送信が実現される。
さらに、本発明の構成によれば、クライアントで計測される連続送信パケットの受信間隔に基づいて最大スループットが算出され、算出された最大スループットを上限としたビットレート制御を行うことができる。すなわち、実際に連続送信されるパケットの計測に基づいて定められる最大スループットを算出して、算出した最大スループットに相当する最大許容ビットレートを上限としたビットレート制御を行う。本構成により、実際の送信レートを考慮したビットレート制御が可能となり、ビットレートの上げすぎや抑えすぎといったことがなく、データ送信を確実に実行可能な最大許容ビットレートを上限としたデータ送信が実現される。
さらに、本発明の構成によれば、実際の送受信データ計測に基づいて算出される最大スループットに基づくビットレート制御に加え、基地局(AP)の測定する基地局とクライアント間の無線通信におけるRTT、RSSI、送信レートなどの通信帯域情報に基づいて、ビットレートの制御を行う構成としたので、無線通信における通信状態の変動に即応したビットレート制御が実現される。
以下、図面を参照しながら、本発明の通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラムの詳細について説明する。
[システム概要]
まず、図1を参照して、本発明の適用可能なネットワーク構成例について説明する。図1は、様々なクライアント装置からの処理要求に応じて処理を実行するコンテンツ配信装置としてのサーバ101と、サーバ101に対して処理要求を行なうコンテンツ受信装置としてのクライアント121〜124がネットワーク110を介して接続された構成、例えばホームネットワーク構成を示している。クライアント装置としては、パーソナルコンピュータ(PC)121、122、携帯端末123、再生装置124を例示している。ただし、クライアント装置としては、この他にも様々な電子機器、家電機器が接続可能である。
クライアント(携帯端末)123、クライアント(再生装置)124は、基地局(AP:Access Point)131を介して無線通信を行なうクライアントであり、クライアント(PC)121,122は有線LANによる通信をサーバ101と行なう。例えばクライアント121(PC)は100base−TX、クライアント(PC)122は10base−T規格による通信をサーバ101との間で実行する。クライアント(携帯端末)123、クライアント(再生装置)124は、基地局(AP)131を介してサーバ101との通信を実行し、基地局(AP)131とクライアント(携帯端末)123間では、IEEE02.11b規格による無線LAN通信を実行し、基地局(AP)131とクライアント(再生装置)124間では、IEEE02.11g規格による無線LAN通信を実行する。
このように、各クライアント121〜124は、サーバ101との通信、例えば、サーバ101から映像データの配信を受ける際に、それぞれの機器に対応した通信規格に従ったデータ通信を実行し、それぞれ異なるビットレートでのデータ受信を行なうことになる。サーバ101がクライアントからの要求に応じて実行する処理は、例えばサーバ101に装着されたハードディスク、DVD等の記憶手段に格納されたコンテンツ、あるいはサーバ101の有するチューナを介して受信するライブコンテンツの提供、すなわちコンテンツ配信サービス等である。
ネットワーク110は、例えばイーサネット(登録商標)フレーム等の通信パケットを、ネットワーク100を介して送受信する。すなわち、クライアントは、イーサネットフレームのデータ部に処理要求情報を格納してサーバ101に送信することにより、サーバ101に対するデータ処理要求を実行する。サーバ101は、処理要求フレームの受信に応じて、データ処理を実行し通信パケットに格納し、各クライアントに送信する。
サーバ101は、クライアント121〜124と個別に、TCP(Transmission Control Protocol)コネクションを確立して、例えばストリーミングデータ配信により映像データなどを含むマルチメディアデータの送信を実行する。本発明の構成において、TCPコネクションにおけるサーバ101からのクライアント121〜124に対するデータ配信は、動的なビットレート制御を伴う処理として実行される。
このビットレートの動的制御は、
サーバと各クライアントの間のデータ通信における最大スループット計測処理、
計測された最大スループットに相当するビットレートを最大許容ビットレートとしたビットレート制御処理、
これらの処理を含む処理として実行される。以下、このビットレートの動的制御処理の複数の実施例の詳細について、順次、説明する。
[実施例1]
図2にストリーミングデータ配信を実行するサーバ200と、ストリーミングデータの受信、再生を実行するクライアント300の機能を説明するブロック図を示す。サーバ200とクライアント300間ではTCPコネクションが設定されて通信が実行される。
サーバ200は、送信コンテンツ格納部としてのコンテンツ提供部201を有する。コンテンツ提供部201は、ハードディスクや、DVDなどの記憶手段、あるいは外部からのコンテンツ受信を行なうチューナ機能を備えた構成である。コンテンツ提供部201から、クライアント300に対する送信コンテンツがデータ処理部202に入力される。
データ処理部202では、エンコード処理などの送信データ生成処理を行なう。この送信データ生成処理では、動的レート制御部210において設定されたビットレートに対応するエンコードデータを生成する。なお、予め複数のビットレート対応のデータを準備し、これらの複数のビットレートデータから送信データを選択する処理を実行する構成としてもよい。
動的レート制御部210は、スループット算出部211と、ビットレート決定部212を有する。スループット算出部211は、サーバのデータ送受信部204とクライアントのデータ送受信部301との間で実行される通信状況の監視を実行し、監視結果に基づいてスループットを算出する。ビットレート決定部212は、スループット算出部211の算出したスループットに基づいて、クライアント300に対するデータの送信ビットレートを決定し、データ処理部202に通知する。この動的レート制御部210の処理の詳細については後述する。
データ処理部202は、ビットレート決定部212の決定したビットレートに応じた送信データのエンコード、あるいはビットレート決定部212の決定したビットレートに応じたエンコードデータの選択処理を実行し、送信バッファ203に入力する。データ送受信部204は、送信バッファ203に蓄積された送信ビットレートに対応するデータ(パケット)をクライアント300との間で設定したTCPコネクションを介してクライアント300に送信する。
クライアント300は、データ送受信部301を介してサーバ200からのストリーミングデータ(パケット)を受信し、受信バッファ302に格納する。受信バッファ302に格納されたデータは、再生処理部303によって順次、取り出されデコード処理、例えばデータ伸長処理、暗号化データであれば復号処理が実行され、ディスプレイ、スピーカなどによって構成される出力部304に出力される。
図3は、サーバクライアント間における通信処理のシーケンスについて説明する図である。まず、ステップS11において、サーバとクライアント間でTCPコネクションの確立処理が実行される。その後、ステップS12において、クライアントからサーバに対するバッファ量通知処理が実行される。なお、バッファ量通知処理はコネクション確立処理に含まれる処理として実行してもよい。
本実施例では、ストリーミングデータを受信するクライアントのアプリケーションバッファの最大量、すなわちストリーミングデータ受信のために準備されるバッファの最大量をストリーミング開始時にサーバへ通知する。図2の受信バッファ302は、ストリーミングデータを受信するクライアントのアプリケーションバッファを示しており、この受信バッファ302最大量がサーバに通知される。例えば、ストリーミングがHTTP方式に従ったストリーミングデータである場合、クライアントは、アプリケーションバッファ量をHTTPヘッダに含めてサーバへ通知する。サーバは、クライアントから通知されたバッファ量を、動的レート制御部210において決定するビットレートの増減処理の指標として利用する。この処理については、後述する。クライアントからサーバに対するバッファ量通知は、ストリーミング開始時の1回のみとなる。
その後、ステップS13において、サーバからクライアントに対してストリーミングデータの配信が実行される。このストリーミングデータの送信処理においては、図2に示すサーバ200の動的レート制御部210において動的な送信ビットレートの制御が行われ、最適なビットレートでのストリーミンクデータ送信が行われる。具体的な処理については後述する。全てのストリーミングデータの送信が終了すると、ステップS14において、サーバクライアント間のコネクション切断を実行して処理を終了する。
次に、図4〜図6を参照して、図2に示すサーバ200の動的レート制御部210において実行する送信データのビットレート制御処理の詳細について説明する。まず、図4を参照して、動的レート制御部210のスループット算出部211の実行するスループット算出処理について説明する。
図4は、図3におけるステップS13のデータ転送処理を、より詳細に示したシーケンス図である。サーバは、ストリーミング配信データをTCPパケット(TCPセグメント)に格納して、順次クライアントに送信する。図4に示すデータ1〜データ8は、個々の送信パケットを示す。TCP通信では、クライアントは、受信パケットの受信確認応答としてのackをサーバに送信する。図に示すack1〜4がクライアントからサーバに送信される受信確認応答(ack)を示している。なお、クライアントからサーバに送信される受信確認応答(ack)は、必ずしも全ての送信データに対応してクライアントから送信されるとは限らない。クライアント側では、時間的余裕のない場合は、受信確認応答(ack)を省略する場合もある。図4に示すack1は、データ1およびデータ2の受信確認応答(ack)であり、ack2は、データ3およびデータ4に対する受信確認応答(ack)である。
サーバからクライアントに対するデータ送信は、クライアントからサーバに提示されるウィンドウサイズに基づく連続送信処理として実行される。例えば、図4に示すデータ1〜データ4の送信は、連続送信処理として実行された処理である。すなわち各パケットの送信後、サーバが、その受信確認をクライアントから受領して次のパケットを送信するという処理を行なうと、スループットが低下しデータ送信処理の効率が落ちてしまう。
これを防止するため、一定の一括送信可能なデータ量としてのウィンドウサイズを決定して、このウィンドウサイズに基づいてパケットを連続して送信する。このウィンドウサイズは、例えばセッション確立時にクライアントからサーバに通知される。すなわち、クライアント側で一括受信可能なデータ量としてウィンドウサイズをサーバに通知する。サーバ側では、このウィンドウサイズに基づいて、ウィンドウサイズに対応するデータ量を持つパケットの連続送信を実行する。また、クライアントからサーバに対して送信される受信確認応答(ack)パケットに更新されたウィンドウサイズをサーバに通知して、サーバ側では更新されたウィンドウサイズに基づいて連続送信データ量を逐次変更制御する構成としてもよい。
ウィンドウサイズに基づくデータ送信を実行すると、サーバからクライアントに対するデータ送信は、図4に示すように間欠したデータ送信処理として実行されることになる。たとえば図4に示す期間Aは、連続データ送信および送信された連続データに対する最終の受信確認応答(ack)の受信までの期間である。
図4に示す期間Bは、期間Aの終了点、すなわち、期間Aにおける[TCPデータ群]の最終の受信確認応答(ack)の受信時間から、次の[TCPデータ群]の送信開始までの待機時間である。期間Cは、期間Bの後の次の[TCPデータ群]の送信および受信確認応答(ack)の受信期間である。
従来のスループット算出手法は、送信データの量を単純に送信時間で除算して算出していた。例えば図3のデータ送信処理シーケンスである場合にA〜Cの時間帯でのスループットを求める際は、
スループット=(データ1〜8の送信データ量)/(時間A+B+C)
によってスループットを算出していた。このスループット算出処理によれば、サーバから送信されたデータ量以上の値がTCPスループットとして測定されることはない。
しかし、TCPにおけるデータ送信において、データ送信ビットレートを制御して、より高いビットレートでの送信を行なう場合、どこまでビットレートを上昇させて良いか、すなわち最大許容ビットレートを決定することが必要となる。
本発明の構成では、図4に示すBの期間を省いた時間で転送データ量を除算することにより、最大スループットを予測し、この最大スループットに対応するビットレートを最大許容ビットレートとする。図4の期間Bは、サーバがクライアントに対するデータを送信していない期間である。期間Bの部分をスループット算出のための時間計測値に含めてしまうと、実際にデータの送受信を実行していない期間がスループット計測に適用されてしまうことになり、実際のスループットに対する寄与のない期間がスループット算出に適用されてしまうことになる。すなわち、データ送受信の実行されていないBの期間を入れて、最大スループットの算出を実行すると、最大スループットの値が低下してしまう。すなわち、この場合のTCPスループットの測定値はコンテンツのビットレート以上の値にならない。
本発明の構成では、期間Bのような[データ送受信非実行期間]の部分を除いた期間、すなわち、ウィンドウサイズに基づく連続データ送信およびその受信確認応答(ack)の受信に至るまでの期間、すなわち、図4に示す期間Aや期間Cをスループット算出の期間として適用する。具体的には、
スループット算出用サンプル1=(データ1〜4の送信データ量)/(時間A+B−B)
スループット算出用サンプル2=(データ5〜8の送信データ量)/(時間C+D−D)

スループット算出用サンプルn
のように、複数のスループット算出用サンプルを算出し、これら複数のスループット算出用サンプルに基づいて、最大スループットを算出する。なお、上記式においてDは、図4に示す期間Cの後に発生するデータ非送信期間である。
このように、本発明の最大スループット算出処理は、図4に示すAやCの「連続データ送信および受信確認応答(ack)の受信期間」、すなわち[データ送受信実行期間]のみをスループット算出処理に適用する期間とし、図4に示す期間Bのような[データ送受信非実行期間]についてはスループット算出処理の非適用期間とする。この処理により、TCPセッションにおいて実際のデータ送信および応答(ack)受信が行われている有効期間のみがスループット算出処理の適用期間となり、真のTCPの最大スループットが測定できる。
前述したように、TCPセッションにおけるデータパケットの送信では、ウィンドウサイズに基づくデータの連続送信が実行される。すなわち、クライアント側でウィンドウが空いているときに受信確認応答(ack)を待たずに連続してデータパケットを送信する。そのため、図4のA,Cに示すような、「連続データ送信および受信確認応答(ack)の受信期間」、すなわち、[データ送受信実行期間]と、Bに示すような[データ送受信非実行期間]が交互に発生する。
なお、図4のA,Cに示すような、「連続データ送信および受信確認応答(ack)の受信期間」、すなわち、[データ送受信実行期間]において送信されるTCPパケットデータを「TCPデータ群」と呼ぶ。個々のTCPデータ群に対応する[データ送受信実行期間]は、ウィンドウや瞬間的な輻輳に大きく影響される。そのため、値が大きく変動し、最大スループットの測定結果が安定しない。本発明では、この問題を回避するために、上述したように、複数のスループット算出用サンプル、すなわち、
スループット算出用サンプル1=(データ1〜4の送信データ量)/(時間A+B−B)
スループット算出用サンプル2=(データ5〜8の送信データ量)/(時間C+D−D)

スループット算出用サンプルn
を算出し、これら複数のスループット算出用サンプルに基づいて、スループットを算出する。なお、スループット算出用サンプルデータ中、他のサンプルデータと大きく外れる測定結果は、例外値として除外する処理を実行する。
本実施例において、図2に示すサーバ200の動的レート制御部210のスループット算出部211の実行する最大スループット算出処理の手順について図5に示すフローチャートを参照して説明する。スループット算出部211は、ウィンドウサイズに基づく連続データ送信の開始から、送信された連続データに対する受信確認応答(ack)を受信するまでの期間をデータ送受信実行期間とし、このデータ送受信実行期間の時間および送信データ量に基づいて最大スループットを算出する。図5は、サーバ200がクライアントとTCPコネクションを確立し、通信を実行して、TCPコネクションの切断を行なうまでの処理の流れを説明したフローチャートである。
まず、ステップS101において、サーバはストリーミングデータの配信対象としてのクライアントとTCPコネクションを確立する。なお、このコネクション確立時点で、サーバは、クライアントからバッファ量(ウィンドウサイズに相当)の通知を受ける。
ステップS102において、上位層のアプリケーションからのデータ送信要求ありの判定がなされると、ステップS103においてTCPセグメント(パケット)の送信を開始し、送信開始時間[Ts]をメモリに記憶する。なお、このパケット送信は、先にクライアントから通知されたウィンドウサイズに相当するデータ量のパケットの連続送信処理として実行される。例えば図4に示す期間Aの複数のデータ送信処理である。
ステップS104において、サーバはクライアントからの受信確認応答(TCP ACK)を受信したか否かを判定する。受信確認応答(TCP ACK)を受信していない場合は、ステップS105に進み、TCP送信ウィンドウがMAX、すなわち、ウィンドウサイズに相当するデータ量のパケットを送信済みか否かを判定する。ウィンドウサイズに相当するデータ量のパケットを送信済みでない場合は、ステップS106において、TCPセグメント(パケット)を継続して送信する。
TCP送信ウィンドウがMAX、すなわち、ウィンドウサイズに相当するデータ量のパケットを送信済みである場合は、受信確認応答を待機する。ステップS104において、受信確認応答を受信した場合は、ステップS107に進み、送信済みTCPセグメントの最終セグメントに対応する受信確認応答(TCP ACK)を受信したか否かを判定し、未受信の場合は、受信するまで待機する。この最終セグメントに対応する受信確認応答(TCP ACK)は、例えば図4の期間Aにおけるack2である。
ステップS107において、最終セグメントに対応する受信確認応答(TCP ACK)を受信したと判定すると、ステップS108において、最終セグメントに対応する受信確認応答(TCP ACK)の受信時間[Te]をメモリに記憶する。
次に、ステップS109において、スループット算出用サンプル対応時間Tn=Te−Tsを算出する。この処理は、図2に示すサーバ200の動的レート制御部210におけるスループット算出部211において実行される。このTn=Te−Tsは、すなわち、図4に示す期間AやCの「連続データ送信および受信確認応答(ack)の受信期間」、すなわち、[データ送受信実行期間]の計測値である。
次に、ステップS110において、測定サンプル数nが予め定めた閾値[Thn]以上となったか否かを判定する。測定サンプル数nが予め定めた閾値[Thn]以上でない場合は、ステップS111において通信が継続中か否かを判定し、通信継続中である場合は、ステップS102に進み、さらに、測定サンプル数nが予め定めた閾値[Thn]以上となるまで、同様の処理を繰り返し、スループット算出用サンプル対応時間Tn=Te−Tsを集める。この処理は、例えば図4における期間AやCの「連続データ送信および受信確認応答(ack)の受信期間」、すなわち、[データ送受信実行期間]の計測値を所定数、すなわち予め定めた閾値[Thn]以上となるまで集める処理である。
ステップS110において、測定サンプル数nが予め定めた閾値[Thn]以上となったと判定されると、ステップS112に進み、測定サンプル、すなわち、スループット算出用サンプル対応時間T1〜Tn中、値が大きくはずれたものを例外値として除去する処理を実行し、ステップS113において、例外値を除去したスループット算出用サンプル対応時間T1〜Tnのみを適用して、最大スループットを算出する。
ステップS113におけるスループット算出は、最大スループットを、
最大スループット=(Σ(各データ送受信実行期間における送信データ量))/(Σ(各データ送受信実行期間))
として算出する。ただし、上記式において、Σ(各データ送受信実行期間における送信データ量)、および、Σ(各データ送受信実行期間)には、例外値に対応する
期間および送信データ量は含まない。
このようにして、図2に示すサーバ200の動的レート制御部210におけるスループット算出部211は、複数の[データ送受信実行期間]の計測時間および送信データ量に基づいて、最大スループットを算出する。この処理において算出されるスループットは、図4に示すデータ送受信非実行期間(B)を含まない。スループット算出部211は、この算出スループットを最大スループットとして、図2に示すサーバ200の動的レート制御部210のビットレート決定部212に入力する。
ビットレート決定部212の処理について、図6、図7を参照して説明する。図6に示すように、ビットレート決定部212は、スループット算出部211が上述の処理によって算出した最大スループットを入力するとともに、クライアントのバッファ量を見積もり、ビットレートを決定し、エンコード処理あるいはエンコードデータの選択処理などを実行するデータ処理部202に対して、送信データのビットレート決定情報を入力する。
ビットレート決定部212では、クライアントのバッファ量の見積もり処理を以下の処理によって行なう。すなわち、
通信開始時にクライアントから通知されたバッファ量:[B_cli(byte)]
クライアントが再生を開始してからの経過時間:[T(sec)]
クライアントが再生を開始以降、経過時間[T(sec)]の間にサーバからの送信データ量:[D_serv(byte)]
送信コンテンツから取得可能なコンテンツの再生レート[R(byte/sec))
これらの情報を用いて、クライアントのバッファ量の見積もりを実行する。
サーバは、クライアントにおいて送信コンテンツの再生が開始されたことを、サーバが実際に送信したデータ量が、クライアントから通知されたバッファ量[B_cli]を上回ったことで判断することができる。つまり、クライアントは、コンテンツ再生開始前にクライアントバッファ量[B_cli]分だけ、バッファにデータを蓄積し、その分の量のデータをサーバが送信した時点で、サーバは、クライアントのバッファが一杯になり、再生が開始されたと判断する。
クライアント側においてコンテンツの再生が開始された時点では、クライアントのバッファ量は[B_cli]であり、再生開始後、時間Tが経過すると、サーバは[D_serv(byte)]のデータをクライアントに送信し、クライアントのバッファに送信データが蓄積される。クライアントは、[R*T(byte)]のデータ量を再生することで、このデータ量がクライアントのバッファから消去される。
サーバは、これらのデータの推移に基づき、
B_cli+D_serv−R*T
のデータ量が、現在のクライアントのバッファ量であると見積もる。このようにして見積もられたバッファ量は、図6のバッファ量情報250に示すように、0〜MAXの範囲で見積もられる。MAXはクライアントバッファ量[B_cli]に相当する。ビットレート決定部212は、このようにクライアント側バッファの見積もりバッファ量の推移に基づいてビットレートを決定する構成であり、見積もりバッファ量が予め定めた閾値以上である場合、スループット算出部211の算出した最大スループットに相当する最大許容ビットレートを上限としてビットレート上昇処理を行なう。
図7に示すフローチャートを参照して、ビットレート決定部212の処理シーケンスについて説明する。ステップS201において、ビットレート決定部212は、バッファ量が、予め定めた閾値Th1より少ないか否かを判定する。なお、バッファ量とは、上述の見積もり処理によって見積もられたバッファ量である。バッファ量が、予め定めた閾値Th1より少ないと判定された場合は、ステップS202に進み、送信ビットレートの低下処理を実行する。この処理は、図6に示すバッファ量情報250におけるバッファ量がBaの領域にある場合の処理である。
ステップS201において、バッファ量が、予め定めた閾値Th1より少なくないと判定されると、ステップS203に進み、バッファ量が、予め定めた閾値Th2より多いか否かを判定する。バッファ量が、予め定めた閾値Th2より多くない場合は、ステップS201に戻る。この処理は、図6に示すバッファ量情報250におけるバッファ量がBbの領域にある場合の処理である。
バッファ量が、予め定めた閾値Th2より多い場合は、ステップS204に進み、現在の送信データのビットレートと、スループット算出部211が上述の処理によって算出した最大スループットとを比較する。現在の送信データのビットレートが、スループット算出部211が算出した最大スループットに対応するビットレートより小さい場合は、ステップS205に進み、送信データのビットレートを上昇させる処理を実行する。ただし、スループット算出部211が算出した最大スループットに対応するビットレート、すなわち最大許容ビットレートを上限値とする。現在の送信データのビットレートが、スループット算出部211が算出した最大スループットに相当する最大許容ビットレートに等しい場合は、ビットレートの制御を行なうことなく、ステップS201に戻る。この処理は、図6に示すバッファ量情報250におけるバッファ量がBcの領域にある場合の処理である。
なお、先に説明した図5に示すフローチャートにおけるスループット算出処理は、データ通信の継続中、所定期間毎に繰り返し実行され、スループット算出部211は、最大スループットを逐次更新してビットレート決定部212に入力する。ビットレート決定部212においても、図7のフローチャートに示す処理を繰り返し実行し、スループット算出部211の算出した最新の最大スループットに対応する最大許容ビットレートに基づいてビットレートを逐次決定する。従って、ネットワーク状況に応じた最大スループットに基づくビットレート制御が行われる。
本実施例では、図4を参照して説明したように、図4に示す期間AやCの「連続データ送信および受信確認応答(ack)の受信期間」、すなわち、[データ送受信実行期間]の計測値を適用して最大スループットを算出し、この最大スループットに相当する最大許容ビットレートを上限とした送信ビットレートの制御を行う構成とした。すなわち、図4に示す期間Bのようなデータ送受信に対する寄与のない期間[データ送受信非実行期間]を省いたデータ送受信期間に基づく最大スループットを算出して、算出した最大スループットに相当する最大許容ビットレートを上限としたビットレート制御を行う。本構成により、実際の送信レートを考慮したビットレート制御が可能となり、ビットレートの上げすぎや抑えすぎといったことがなく、データ送信を確実に実行可能な最大ビットレートを上限としたデータ送信が実現される。
[実施例2]
次に、実施例2として、クライアント側において受信データに基づいてスループットを算出、あるいはスループット算出に適用する値を算出し、この算出値に基づいてサーバがビットレート制御を実行する構成例について説明する。
図8は、実施例2におけるストリーミングデータ配信を実行するサーバ200と、ストリーミングデータの受信、再生を実行するクライアント300の機能を説明するブロック図を示す。サーバ200とクライアント300間ではTCPコネクションが設定されて通信が実行される。
先に図2を参照して説明した実施例1の構成と異なる点は、クライアント300がパケット間隔計測部305を有する点である。その他の構成は図2の構成と同様である。ただし、各構成部における処理が異なる。以下、実施例2の構成において、実施例1と異なる点を中心として説明する。
実施例2の構成において、サーバ200のデータ送受信部204は、所定間隔で、緊急フラグ(URGフラグ)をON[1]としたデータ送信パケットを連続送信する。緊急フラグは、通常、TCPパケットに緊急データが含まれる場合にON[1]として送信する。本実施例では、緊急データの有無に関わらず、クライアント側でTCPパケットの受信間隔を測定するパケットであることを示すために、緊急フラグ(URGフラグ)をON[1]としたパケットを連続送信する。
図9を参照して、サーバクライアント間のデータ通信シーケンスを説明する。実施例2においても、実施例1と同様、サーバクライアント間で、コネクション確立が実行された後、サーバからクライアントに対してストリーミングデータの配信が実行される。図9に示すデータ通信シーケンスは、実施例1において説明した図3に示すステップS13のデータ転送処理の詳細を示す図である。
実施例2では、図9に示すように、サーバはTCPパケットとしてのデータ1から順にクライアントに送信する。サーバは、クライアントにおいてパケット受信間隔を計測する要求のあるパケットについて、緊急フラグをON[1]として連続送信する。図9に示すパケットn、パケットn+1のTCPパケットのヘッダに設定される緊急フラグがON[1]に設定されたパケットである。この緊急フラグがON[1]に設定された2つの連続するパケットをスループット計測用ペアパケットとする。
クライアントは、緊急フラグがON[1]に設定されたパケットを2つ連続して受信した場合、その受信間隔[t]を計測する。この計測値に基づいてスループットを算出し、サーバに通知する。あるいは、受信間隔データ[t]をサーバに通知して、サーバにおいて受信間隔データ[t]に基づいてスループットを算出してもよい。
サーバはこの連続パケット受信間隔データ[t]に基づいて算出されるスループットを最大スループットとして、この最大スループットに相当するビットレートを最大許容ビットレートとしたビットレート制御を実行する。図10、図11を参照して、実施例2におけるサーバの処理と、クライアントの処理シーケンスについて説明する。
まず図10を参照して、サーバの処理について説明する。図10は、サーバ200がクライアントとTCPコネクションを確立し、通信を実行して、TCPコネクションの切断を行なうまでの処理の流れを説明したフローチャートである。
まず、ステップS301において、サーバはストリーミングデータの配信対象としてのクライアントとTCPコネクションを確立する。ステップS302において、クライアントアプリケーションからのデータ送信要求ありの判定がなされると、ステップS303においてTCPセグメント(パケット)の送信を開始する。
ステップS304において、サーバは、クライアントに対する送信パケットをスループット計測用ペアパケットとするかを判定する。送信パケットをスループット計測用ペアパケットとする場合は、ステップS305に進み、緊急フラグをON[1]に設定したパケットを生成し、連続送信する。送信パケットをスループット計測用ペアパケットとしない場合は、ステップS306に進み、緊急フラグをOFF[0]に設定したパケットを生成して送信する。
ステップS307において、通信が継続していると判定した場合は、ステップS302以下の処理を繰り返し実行する。通信が終了した場合は、ステップS308に進みTCPコネクションを切断して処理を終了する。
次に、クライアント側の処理について、図11のフローチャートを参照して説明する。図11は、クライアント300がサーバ200とTCPコネクションを確立し、通信を実行して、TCPコネクションの切断を行なうまでの処理の流れを説明したフローチャートである。
まず、ステップS351において、クライアントはストリーミングデータの配信元としてのサーバとTCPコネクションを確立する。ステップS352において、クライアントは、サーバからのTCPパケットを受信し、ステップS353においてTCPパケットの受信時間をメモリに記憶する。
ステップS354において、受信パケットの緊急フラグがON[1]であるか否かを判定し、Noであれば、ステップS352に戻る。Yesであれば、1つ前の受信パケットの緊急フラグもON[1]であったかを確認し、Noであれば、ステップS352に戻る。Yesであれば、ステップS356に進み、緊急フラグがON[1]である2つの連続パケットの受信間隔[t]を算出する。この処理は、図8に示すクライアント300のパケット間隔計測部305において実行される。
ステップS357では、2つの連続パケットの受信間隔[t]に基づいて、最大スループットが算出される。
最大スループット=(ペアパケットの後ろパケットのデータ量)/t
によって算出される。この算出処理もパケット間隔計測部305において実行される。
ステップS358では、算出情報をサーバにフィードバックするか否かを判定し、フィードバックしない場合は、ステップS360において通信の継続を判定して、継続している場合はステップS352に戻り処理を繰り返す。ステップS358では、算出情報をサーバにフィードバックすると判定した場合は、ステップS359に進み、算出スループット情報、または受信間隔情報をサーバに送信する。
ステップS359の処理の後、ステップS360において通信の継続を判定して、継続している場合はステップS352に戻り処理を繰り返す。ステップS360において通信の終了と判定された場合は、ステップS361においてTCPコネクションを切断する。
なお、前述したように、クライアントは、緊急フラグがON[1]に設定されたパケットを2つ連続して受信した場合、その受信間隔[t]を計測して、計測値に基づいてスループットを算出し、サーバに通知する構成としてもよいが、受信間隔データ[t]をサーバに通知して、サーバにおいて受信間隔データ[t]に基づいてスループットを算出してもよい。この場合は、ステップS357の処理は、クライアントでは実行する必要がない。
サーバ側では、クライアントから受信した情報が受信間隔データ[t]である場合は、サーバ200のスループット算出部211において、受信間隔データ[t]に基づいて、上記と同様のスループット算出式、すなわち、
スループット=(ペアパケットの総データ量/2)/t
によって最大スループットを算出する。
サーバ側のビットレート決定部212は、クライアントから受信したスループット、あるいは、クライアントから受信した受信間隔データ[t]に基づいてサーバのスループット算出部211において算出したスループットを最大スループットとして、ビットレート入力部212に入力する。
ビットレート入力部212における処理は、実施例1と同様の処理であり、先に図7を参照して説明したビットレート制御処理が実行される。本処理でも実際の連続送信パケットの受信間隔に基づいて最大スループットが計測される。すなわち、先に図4を参照して説明した期間Bのようなデータ送受信に対する寄与のない期間[データ送受信非実行期間]を考慮しない最大スループットが算出され、算出した最大スループットに相当する最大許容ビットレートを上限としたビットレート制御を行うことができる。このように実施例2も、実際に連続送信されるパケットの計測に基づいて定められる最大スループットに相当する最大許容ビットレートに従ってビットレート制御を行う。本構成により、実際の送信レートを考慮したビットレート制御が可能となり、ビットレートの上げすぎや抑えすぎといったことがなく、データ送信を確実に実行可能な最大ビットレートを上限としたデータ送信が実現される。
[実施例3]
次に、実施例3として、基地局(AP:Access Point)において取得する情報を適用してビットレート制御を行う構成について説明する。
図1のネットワーク構成において、クライアント(携帯端末)123、クライアント(再生装置)124は、基地局(AP)131を介してサーバ101との通信を実行する。
サーバが基地局(AP)を介してクライアントに対してストリーミングデータを配信する際、サーバは、まず、サーバクライアント間にある最適な基地局(AP)を発見する処理を行なうことが必要である。まずこのAP発見処理について図12を参照して説明する。
まず、ストリーミング配信を実行するサーバ200は、ストリーミングを開始する前に、ステップS401において、サーバ200自身およびストリーミングデータの配信先クライアント123の二つのMACアドレスを格納した「AP発見メッセージ」をサブネット内にブロードキャストする。
ブロードキャストされた「AP発見メッセージ」は、LANに接続されたすべての基地局(AP)が受信する。図には2つの基地局a(APa)400aと基地局b(APb)400bを示している。サーバ200からの「AP発見メッセージ」を受信した各AP400a,400bは、ステップS402において、「AP発見メッセージ」に含まれるクライアントのMACアドレスをもつノードが無線リンク内に存在するかを、自身の無線アソシエーションリストを参照して調べる。
もし、アソシエーションリストに該当MACアドレスがある場合は、APは自身がそのストリーミングの通信経路上に存在していることがわかる。なお、アソシエーションリストに該当MACアドレスがあるないにかかわらず、受信した「AP発見メッセージ」は無線リンクへは転送せず、破棄する。
APがストリーミングの通信経路上に存在していることが分かった場合は、ステップS403において、AP、図12の例では、基地局a(APa)400aはサーバ200、クライアント123のMACアドレスに加え、基地局a(APa)400a自身のMACアドレスを格納した「AP発見応答メッセージ」を、サーバ200にユニキャストで送信する。ストリーミング配信実行サーバ200は、これから行うストリーミングの経路上に無線リンク(ボトルネック)が存在することが分かる。なお、APがストリーミングの通信経路上に存在していないことがわかった場合は、APは「AP発見応答メッセージ」を送信しない。
以上のやりとりにより、ストリーミングデータ配信を実行するサーバおよび通信経路上の基地局(AP)は、お互いのMACアドレスを把握することができるため、両者間で通信(無線リンク情報をAPからサーバへ通知)が可能となる。なお、ストリーミングデータを受信するクライアントの移動や電源OFF等で、基地局(AP)自身のアソシエーションリストから該当MACアドレスが削除された場合は、基地局(AP)はサーバへの通知を取りやめる。
また、サーバによる「AP発見メッセージ」をストリーミング開始だけでなく、ストリーミング最中も、定期的に送信することにより、ストリーミングクライアントがAP間をハンドオーバーした場合に対応可能となる。つまり、移動先で接続したAPが、「AP発見メッセージ」を受信した瞬間に、移動先APが、「AP発見応答メッセージ」をサーバに返答し、無線リンクの状況を通知し始める。なお、自身のアソシエーションリストから該当ストリーミングクライアントのMACアドレスが削除された、移動前に接続していたAPは、サーバへの無線リンク情報の通知は取りやめる。
なお、基地局(AP)からサーバへの通知をL2(データリンク層)レベルのメッセージではなく、上位レベル(IP)のメッセージで行う場合は、「AP発見メッセージ」「AP発見応答メッセージ」に、MACアドレスに加え、IPアドレスも格納しておく。また、基地局(AP)は、「AP発見応答メッセージ」の代わりに、即座に無線リンク情報をサーバに通知してもよい。
このようなAP発見処理によって、ストリーミング配信を実行するサーバと基地局(AP)とクライアントの関係が設定される。実施例3では、ストリーミング配信を実行するサーバが、ストリーミング配信経路上の基地局(AP)において取得する情報を適用してビットレート制御を行う。
図13を参照して、実施例3におけるストリーミングデータ配信を実行するサーバ200と、ストリーミングデータの受信、再生を実行するクライアント300、およびストリーミング配信経路上の基地局(AP)400の機能を説明する。サーバ200とクライアント300間では基地局(AP)400を介したTCPコネクションが設定されて通信が実行される。
サーバ200およびクライアント300の構成は、先に図2を参照して説明した実施例1の構成と同様である。ただしサーバ200における処理は異なる。基地局(AP)400は、図13に示すように、データ送受信部401、通信帯域監視部402、通信帯域情報生成部403を有する。
基地局(AP)400の通信帯域監視部402は、無線通信区間のL2(データリンク層)レイヤでのRTT(Round Trip Time)や、RSSI(電波強度)、送信レートなどの値を監視する。RTTは、基地局(AP)400からパケットが送信されてからクライアントから応答が戻ってくるまでの時間である。基地局(AP)400の通信帯域監視部402における監視動作は定期的に行われる。
通信帯域監視部402が取得した通信区間の情報は、必要に応じて通信帯域情報生成部403において、サーバに通知するためのデータ処理が実行される。データ処理の例としては加重平均値や標準偏差値の導出などである。RTT、RSSI、送信レートなどの各値について加重平均値や標準偏差値の導出がなされ、サーバへの報告値が生成される。通信帯域情報生成部403の生成したデータは、データ送受信部401、通信網を介してサーバ200に通知される。
基地局(AP)400からサーバ200に送信された通信帯域情報は、サーバ200のデータ送受信部204で受信され、動的レート制御部210のビットレート決定部212に入力される。ビットレート決定部212は、基地局(AP)400から取得した通信帯域情報を判定アルゴリズムにかけて解析し、ストリーミングデータのビットレートを減少させた方が良いと判断したときは、即座にビットレートを減少させる。
判定アルゴリズムは、例えば基地局(AP)400から取得した通信帯域情報と、ビットレート決定部212の保持する閾値との比較処理として実行される。具体的には、例えば基地局(AP)400から取得した通信帯域情報に含まれるRTT、RSSI、送信レートなどに基づく加重平均値や標準偏差値などのパラメータが、ビットレート決定部212の保持する閾値をN回連続で超過した場合にビットレートを減少させるなどの処理を実行する。このような複数回の閾値比較を行う理由は、突発的に1回だけパラメータが閾値を超過した場合などに、無駄にビットレートを減少させてしまうことを防ぐためである。
実施例3におけるビットレート決定部212の処理について、図14、図15を参照して説明する。実施例3は、実施例1または実施例2におけるスループット算出処理を併用して、ビットレート制御を行なう。図14に示すように、ビットレート決定部212は、スループット算出部211が実施例1または実施例2の処理によって算出した最大スループットを入力するとともに、上述した基地局(AP)400から取得した通信帯域情報、具体的には、基地局とクライアント間の無線通信におけるRTT、RSSI、送信レートなどに基づく加重平均値や標準偏差値などのパラメータを入力する。さらに、先に説明したクライアントのバッファ量の見積もり処理を実行して、ビットレートを決定し、エンコード処理あるいはエンコードデータの選択処理などを実行するデータ処理部202に対して、送信データのビットレート決定情報を入力する。見積もりバッファ量は、図14のバッファ量情報250に示すように、クライアントの見積もりバッファ量として0〜MAXの範囲の見積もりバッファ量がビットレート決定部212によって取得される。
図15に示すフローチャートを参照して、ビットレート決定部212の処理シーケンスについて説明する。ビットレート決定部212は、ステップS501において、基地局(AP)400から通信帯域情報の入力の有無を判定する。具体的には、RTT、RSSI、送信レートなどに基づく加重平均値や標準偏差値などのパラメータである。ステップS501において、基地局(AP)400から通信帯域情報の入力有りと判定すると、ステップS502に進み、基地局(AP)400から入力した通信帯域情報の解析処理を実行する。
ステップS502の解析処理は、例えば、上述したように、基地局(AP)400から取得した通信帯域情報と、ビットレート決定部212の保持する閾値との比較処理である。例えば基地局(AP)400から取得した基地局とクライアント間の無線通信におけるRTT、RSSI、送信レートなどに基づく加重平均値や標準偏差値などのパラメータと、ビットレート決定部212の保持する閾値との比較処理として実行される。
ステップS503では、ステップS502における解析結果として、送信ビットレートの低下が必要と判断されたか否かを判定し、送信ビットレートの低下が必要と判定された場合は、ステップS504に進み、送信ビットレートの低下処理を実行する。また、ステップS505において、ステップS502における解析結果として、送信ビットレートの上昇が可能と判断されたか否かを判定し、送信ビットレートの上昇が可能と判定された場合は、ステップS506に進み、送信ビットレートの上昇処理を実行する。ただし、スループット算出部211が算出した最大スループットに相当するビットレートを最大許容ビットレート、すなわち上限値とする。この上限値は、実施例1、実施例2で説明したスループット算出部211またはクライアントが算出する最大スループットに相当する最大許容ビットレートである。
ステップS503およびステップS505において、基地局(AP)400から取得した通信帯域情報の解析に基づいて、送信ビットレートの低下あるいは上昇が必要と判断するのは、前述したように、基地局(AP)400から取得した基地局とクライアント間の無線通信におけるRTT、RSSI、送信レートなどに基づく加重平均値や標準偏差値などのパラメータと、ビットレート決定部212の保持する閾値との比較処理の結果、複数回、連続して同様の結果が発生した場合にビットレートの変更制御を必要と判断する。
例えば、基地局とクライアント間の無線通信におけるRTTが閾値aより長い状態が継続した場合は、送信ビットレートを低下させる。閾値bより短い状態が継続した場合は、送信ビットレートを上昇させる。基地局とクライアント間の無線通信におけるRSSI(電波強度)が閾値cより高い状態が継続した場合は、送信ビットレートを上昇させる。閾値dより低い状態が継続した場合は、送信ビットレートを低下させる。基地局とクライアント間の無線通信におけるビットレートが閾値eより低い状態が継続した場合は、送信ビットレートを低下させる。閾値fより高い状態が継続した場合は、送信ビットレートを上昇させるなどの処理が行なわれることになる。
ステップS507〜S509の処理は、実施例1と同様の処理であり、見積もりバッファ量に基づいてビットレートを制御する処理である。すなわち、ステップS507において、ビットレート決定部212は、バッファ量が、予め定めた閾値Th1より少ないか否かを判定する。バッファ量が、予め定めた閾値Th1より少ないと判定された場合は、ステップS504に進み、送信ビットレートの低下処理を実行する。この処理は、図14に示すバッファ量情報250におけるバッファ量がBaの領域にある場合の処理である。
ステップS507において、バッファ量が、予め定めた閾値Th1より少なくないと判定されると、ステップS508に進み、バッファ量が、予め定めた閾値Th2より多いか否かを判定する。バッファ量が、予め定めた閾値Th2より多くない場合は、ステップS501に戻る。この処理は、図6に示すバッファ量情報250におけるバッファ量がBbの領域にある場合の処理である。
バッファ量が、予め定めた閾値Th2より多い場合は、ステップS506に進み、現在の送信データのビットレートと、スループット算出部211が実施例1の処理に従って算出した最大スループット、あるいは実施例2の処理に従って、クライアントまたはスループット算出部211が算出した最大スループットに相当する最大許容ビットレートとを比較する。現在の送信データのビットレートが、最大スループットに相当する最大許容ビットレートより小さい場合は、ステップS506に進み、送信データのビットレートを上昇させる処理を実行する。ただし、最大許容ビットレートを上限値とする。現在の送信データのビットレートが、最大スループットに相当する最大許容ビットレートを等しい場合は、ビットレートの制御を行なうことなく、ステップS501に戻る。この処理は、図14に示すバッファ量情報250におけるバッファ量がBcの領域にある場合の処理である。
実施例3の処理では、実施例1または実施例2のスループット算出処理に従って算出される最大スループットに基づくビットレート制御に加え、基地局(AP)の測定する基地局とクライアント間の無線通信におけるRTT、RSSI、送信レートなどの通信帯域情報に基づいて、ビットレートの制御を行う構成としたので、無線通信における通信状態の変動に即応したビットレート制御が実現される。また、実施例1、実施例2と同様、有効なデータ送受信期間に基づくスループット算出値を最大スループットとした設定であるので、実際の送信レートを考慮したビットレート制御が可能となり、ビットレートの上げすぎや抑えすぎといったことがなく、データ送信を確実に実行可能な最大ビットレートを上限としたデータ送信が実現される。
なお、基地局(AP)の測定する基地局とクライアント間の無線通信における通信帯域情報に基づいて、サーバクライアント間のストリーミングデータの配信の続行が困難と判断された場合は、サーバまたは基地局(AP)からクライアントに対してストリーミングデータの配信の続行が困難になったことを通知する構成としてもよい。クライアントでは、通知をディスプレイに表示し、ユーザにデータ配信が困難であることを知らせる処理を実行する。この処理によって、ユーザは、例えばクライアント端末を基地局(AP)に近づけたり、あるいは障害を発生させている機器、例えば電子レンジの停止などの処置を行なうなどの適切な対応ができる。
[サーバ、基地局(AP)、クライアントのハードウェア例]
次に、サーバ、基地局(AP)、クライアントのハードウェア構成例について、図16参照して説明する。図1を参照して説明したように、サーバやクライアントは様々な機器によって構成可能である。図16は、サーバ、基地局(AP)、クライアントとして適用可能なハードウェア構成の一例を示している。
図16のハード構成について説明する。CPU(Central Processing Unit)501は、ROM(Read Only Memory)502、またはHDD(Hard Disk Drive)等の記録媒体514等に記憶されているプログラムに従って、各種の処理を実行し、データ処理手段、あるいは通信制御処理手段として機能する。RAM(Random Access Memory)503には、CPU501が実行するプログラムやデータが適宜記憶される。CPU501、ROM502、およびRAM503は、バス521を介して相互に接続されている。
バス521には、入出力インタフェース522が接続されており、この入出力インタフェース522には、例えば、ユーザにより操作されるキーボード、スイッチ、ボタン、ポインティングデバイス、あるいはマウス等により構成される入力部511、ユーザに各種の情報を提示するLCD、CRT、スピーカ等により構成される出力部512が接続される。さらに、データ送受信手段として機能する通信部504、さらに、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどの記録媒体514を装着し、記録媒体514からのデータ読み出しあるいは書き込み処理を実行するドライブ513が接続される。ただし、基地局(AP)においては、入力部511、出力部512、ドライブ513、記録媒体514等は必ずしも必要とはならない。各種設定を行う設定部当が備えられればよい。
図16に示す構成は、図1に示すネットワーク接続機器としてのサーバ、基地局(AP)、クライアントとして利用可能な機器の一例であるが、ネットワーク接続機器は図16の構成に限らず、様々な電子機器、情報処理装置によって構成することが可能である。従って、それぞれの機器固有のハードウェア構成を持つことが可能である。
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
例えば、プログラムは記録媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
以上、説明したように、本発明の構成によれば、「連続データ送信および受信確認応答(ack)の受信期間」、すなわち、[データ送受信実行期間]の計測値を適用して最大スループットを算出し、この最大スループットに基づいて、送信ビットレートの制御を行う構成とした。すなわち、データ送受信に対する寄与のない期間[データ送受信非実行期間]を省いたデータ送受信期間に基づく最大スループットを算出して、算出した最大スループットに相当する最大許容ビットレートを上限としたビットレート制御を行う。本構成により、実際の送信レートを考慮したビットレート制御が可能となり、ビットレートの上げすぎや抑えすぎといったことがなく、データ送信を確実に実行可能な最大許容ビットレートを上限としたデータ送信が実現される。
さらに、本発明の構成によれば、クライアントで計測される連続送信パケットの受信間隔に基づいて最大スループットが算出され、算出された最大スループットを上限としたビットレート制御を行うことができる。実際に連続送信されるパケットの計測に基づいて定められる最大スループットを算出して、算出した最大スループットに相当する最大許容ビットレートを上限としたビットレート制御を行う。本構成により、実際の送信レートを考慮したビットレート制御が可能となり、ビットレートの上げすぎや抑えすぎといったことがなく、データ送信を確実に実行可能な最大許容ビットレートを上限としたデータ送信が実現される。
さらに、本発明の構成によれば、実際の送受信データ計測に基づいて算出される最大スループットに基づくビットレート制御に加え、基地局(AP)の測定する基地局とクライアント間の無線通信におけるRTT、RSSI、送信レートなどの通信帯域情報に基づいて、ビットレートの制御を行う構成としたので、無線通信における通信状態の変動に即応したビットレート制御が実現される。
本発明の適用可能なネットワーク構成例を示す図である。 ストリーミングデータの送受信装置としてのサーバおよびクライアントの構成を説明するブロック図である。 サーバクライアント間で実行するTCPコネンションの確立に基づくデータ配信処理シーケンスを説明する図である。 ウィンドウサイズに基づくデータの連続配信処理シーケンスについて説明する図である。 本発明の実施例1におけるサーバの処理シーケンスについて説明するフローチャートを示す図である。 本発明の実施例1におけるビットレート決定部の処理について説明する図である。 本発明の実施例1におけるビットレート決定部の処理シーケンスについて説明するフローチャートを示す図である。 本発明の実施例2に対応するストリーミングデータの送受信装置としてのサーバおよびクライアントの構成を説明するブロック図である。 本発明の実施例2のサーバクライアント間のデータ送受信処理において送信される緊急フラグ設定データについて説明する図である。 本発明の実施例2におけるサーバの処理シーケンスについて説明するフローチャートを示す図である。 本発明の実施例2におけるクライアントの処理シーケンスについて説明するフローチャートを示す図である。 サーバのAP発見処理シーケンスについて説明する図である。 本発明の実施例3に対応するストリーミングデータの送受信装置としてのサーバおよびクライアントおよび基地局(AP)の構成を説明するブロック図である。 本発明の実施例3におけるビットレート決定部の処理シーケンスについて説明する図である。 本発明の実施例3におけるビットレート決定部の処理シーケンスについて説明するフローチャートを示す図である。 サーバ、クライアント、基地局を構成するハードウェアについて説明する図である。
符号の説明
101 サーバ
110 ネットワーク
121,122 クライアント(PC)
123 クライアント(携帯端末)
124 クライアント(再生装置)
131 基地局(AP)
200 サーバ
201 コンテンツ提供部
202 データ処理部
203 送信バッファ
204 データ送受信部
210 動的レート制御部
211 スループット算出部
212 ビットレート決定部
300 クライアント
301 データ送受信部
302 受信バッファ
303 再生処理部
304 出力部
305 パケット間隔計測部
400 基地局(AP)
401 データ送受信部
402 通信帯域監視部
403 通信帯域情報生成部
501 CPU
502 ROM
503 RAM
504 通信部
511 入力部
512 出力部
513 ドライブ
514 記録媒体
521 バス
522 入出力インタフェース

Claims (3)

  1. クライアントに対するデータ送信処理を実行するサーバとしての通信処理装置であり、
    クライアントとの通信処理を実行するデータ送受信部と、
    クライアントに対する送信データのビットレートを決定するレート制御部と、
    前記レート制御部において決定されたビットレートに対応する送信データの設定処理を実行するデータ処理部とを有し、
    前記レート制御部は、
    サーバクライアント間における通信コネクション設定期間内におけるデータ送受信実行期間の時間および送信データ量に基づいて最大スループットを算出するスループット算出部と、
    前記スループット算出部の算出した最大スループットに相当するビットレートを最大許容ビットレートとして送信ビットレートを決定するビットレート決定部とを有し、
    前記ビットレート決定部は、
    (a)通信開始時にクライアントから通知されたバッファ量:[B_cli(byte)]
    (b)クライアントが再生を開始してからの経過時間:[T(sec)]
    (c)クライアントが再生を開始以降、経過時間[T(sec)]の間のサーバからの送信データ量:[D_serv(byte)]
    (d)送信コンテンツから取得可能なコンテンツの再生レート[R(byte/sec)]
    これら(a)〜(d)の情報を用いて、
    クライアントバッファの見積もりバッファ量=B cli+D serv−R*T
    として、
    クライアントのバッファ量の見積もり処理を実行し、前記見積もりバッファ量の推移に基づいてビットレートを決定する構成であり、見積もりバッファ量が予め定めた閾値以上である場合、前記スループット算出部の算出した最大スループットに相当する最大許容ビットレートを上限としてビットレート上昇処理を行なう構成であることを特徴とする通信処理装置。
  2. データ送信処理を実行するサーバにおける通信処理方法であり、
    クライアントに対する送信データのビットレートを決定するレート制御ステップと、
    前記レート制御ステップにおいて決定されたビットレートに対応する送信データの設定処理を実行するデータ処理ステップとを有し、
    前記レート制御ステップは、
    サーバクライアント間における通信コネクション設定期間内におけるデータ送受信実行期間の時間および送信データ量に基づいて最大スループットを算出するスループット算出ステップと、
    前記スループット算出ステップにおいて算出した最大スループットに相当するビットレートを最大許容ビットレートとして送信ビットレートを決定するビットレート決定ステップとを有し、
    前記ビットレート決定ステップは、
    (a)通信開始時にクライアントから通知されたバッファ量:[B_cli(byte)]
    (b)クライアントが再生を開始してからの経過時間:[T(sec)]
    (c)クライアントが再生を開始以降、経過時間[T(sec)]の間のサーバからの送信データ量:[D_serv(byte)]
    (d)送信コンテンツから取得可能なコンテンツの再生レート[R(byte/sec)]
    これら(a)〜(d)の情報を用いて、
    クライアントバッファの見積もりバッファ量=B cli+D serv−R*T
    として、
    クライアントのバッファ量の見積もり処理を実行し、前記見積もりバッファ量の推移に基づいてビットレートを決定する構成であり、見積もりバッファ量が予め定めた閾値以上である場合、前記スループット算出部の算出した最大スループットに相当する最大許容ビットレートを上限としてビットレート上昇処理を行なうことを特徴とする通信処理方法。
  3. 送信データのレート制御をコンピュータ上で実行させるコンピュータ・プログラムであり、
    レート制御部において、クライアントに対する送信データのビットレートを決定させるレート制御ステップと、
    データ処理部において、前記レート制御ステップにおいて決定されたビットレートに対応する送信データの設定処理を実行させるデータ処理ステップとを有し、
    前記レート制御ステップは、
    サーバクライアント間における通信コネクション設定期間内におけるデータ送受信実行期間の時間および送信データ量に基づいて最大スループットを算出させるスループット算出ステップと、
    前記スループット算出ステップにおいて算出した最大スループットに相当するビットレートを最大許容ビットレートとして送信ビットレートを決定させるビットレート決定ステップとを有し、
    前記ビットレート決定ステップは、
    (a)通信開始時にクライアントから通知されたバッファ量:[B_cli(byte)]
    (b)クライアントが再生を開始してからの経過時間:[T(sec)]
    (c)クライアントが再生を開始以降、経過時間[T(sec)]の間のサーバからの送信データ量:[D_serv(byte)]
    (d)送信コンテンツから取得可能なコンテンツの再生レート[R(byte/sec)]
    これら(a)〜(d)の情報を用いて、
    クライアントバッファの見積もりバッファ量=B cli+D serv−R*T
    として、
    クライアントのバッファ量の見積もり処理を実行し、前記見積もりバッファ量の推移に基づいてビットレートを決定する構成であり、見積もりバッファ量が予め定めた閾値以上である場合、前記スループット算出部の算出した最大スループットに相当する最大許容ビットレートを上限としてビットレート上昇処理を行なわせるステップであることを特徴とするコンピュータ・プログラム。
JP2005092452A 2005-03-28 2005-03-28 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム Expired - Fee Related JP4643330B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2005092452A JP4643330B2 (ja) 2005-03-28 2005-03-28 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
TW095105952A TW200637282A (en) 2005-03-28 2006-02-22 Communication processing apparatus, data communication system, and communication processing method
DE200660001019 DE602006001019T2 (de) 2005-03-28 2006-03-09 Kommunikationsverarbeitungsvorrichtung, Datenübertragungssystem und Verfahren für Kommunikationsverarbeitung
EP20060251250 EP1708438B1 (en) 2005-03-28 2006-03-09 Communication processing apparatus, data communication system, and communication processing method
US11/385,770 US7987284B2 (en) 2005-03-28 2006-03-22 Communication processing apparatus, data communication system, and communication processing method
KR20060027624A KR101234890B1 (ko) 2005-03-28 2006-03-27 통신 처리 장치, 데이터 통신 시스템, 및 통신 처리 방법
CN2006100714577A CN1841984B (zh) 2005-03-28 2006-03-28 通信处理装置、数据通信系统以及通信处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005092452A JP4643330B2 (ja) 2005-03-28 2005-03-28 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008297631A Division JP4730427B2 (ja) 2008-11-21 2008-11-21 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2006279283A JP2006279283A (ja) 2006-10-12
JP4643330B2 true JP4643330B2 (ja) 2011-03-02

Family

ID=36271430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005092452A Expired - Fee Related JP4643330B2 (ja) 2005-03-28 2005-03-28 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム

Country Status (7)

Country Link
US (1) US7987284B2 (ja)
EP (1) EP1708438B1 (ja)
JP (1) JP4643330B2 (ja)
KR (1) KR101234890B1 (ja)
CN (1) CN1841984B (ja)
DE (1) DE602006001019T2 (ja)
TW (1) TW200637282A (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
JP4819873B2 (ja) * 2005-04-11 2011-11-24 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 可変ビットレート・データのデータパケット送信を制御する技術
JP4407700B2 (ja) 2007-02-02 2010-02-03 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
JP4367505B2 (ja) 2007-03-06 2009-11-18 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
US9300923B2 (en) * 2007-03-26 2016-03-29 Pelco, Inc. Method and apparatus for improving video performance in a wireless surveillance system
KR100861594B1 (ko) * 2007-04-23 2008-10-07 주식회사 케이티프리텔 멀티미디어 데이터 전송률 제어 장치 및 그 방법
US9872066B2 (en) * 2007-12-18 2018-01-16 Ibiquity Digital Corporation Method for streaming through a data service over a radio link subsystem
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) * 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
EP2129130A1 (fr) * 2008-05-26 2009-12-02 THOMSON Licensing Procédé de transmission simplifié d'un flux de signaux entre un émetteur et un appareil électronique
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8254441B2 (en) * 2008-08-18 2012-08-28 Sprint Communications Company L.P. Video streaming based upon wireless quality
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
KR101051709B1 (ko) * 2008-12-18 2011-07-25 (주)씨디네트웍스 데이터 전송 방법 및 장치
US9380091B2 (en) * 2012-06-12 2016-06-28 Wi-Lan Labs, Inc. Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US8631455B2 (en) * 2009-07-24 2014-01-14 Netflix, Inc. Adaptive streaming for digital content distribution
EP2474160A4 (en) * 2009-08-31 2013-08-21 Hewlett Packard Development Co REDUCING COMMUNICATION DELAY IN VIDEO DATA
US20120314616A1 (en) * 2009-12-09 2012-12-13 Tengywe Eric Hong Method and apparatus pertaining to data-session peak-throughput measurements
WO2011075670A1 (en) * 2009-12-18 2011-06-23 Google Inc. Matching encoder output to network bandwidth
CN101808239A (zh) * 2010-03-01 2010-08-18 北京东方广视科技股份有限公司 一种控制ts流播出的方法和装置
EP2381621A1 (en) * 2010-04-21 2011-10-26 Thomson Licensing Method for evaluating an available path bitrate based on an acknowledgment path selection
US9003022B2 (en) 2010-06-17 2015-04-07 Zettics, Inc. Determining an average effective data through-put as corresponds to a network-served end user
JP5737871B2 (ja) * 2010-06-29 2015-06-17 キヤノン株式会社 情報処理装置、画像出力装置、情報処理方法およびプログラム
JP5329581B2 (ja) 2011-02-04 2013-10-30 株式会社東芝 無線通信端末および無線通信方法
EP2695335A4 (en) * 2011-04-06 2014-11-26 Sejent Corp INSTANT BIT RATE MEASUREMENT IN A NETWORK CONNECTION
JP5909886B2 (ja) * 2011-06-10 2016-04-27 ソニー株式会社 通信装置及び通信方法、並びに通信システム
JP5803306B2 (ja) * 2011-06-10 2015-11-04 ソニー株式会社 通信装置及び通信方法、並びに通信システム
US9391911B1 (en) * 2011-07-15 2016-07-12 Google Inc. Congestion window modification
US9736045B2 (en) 2011-09-16 2017-08-15 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
US20130246575A1 (en) * 2011-09-16 2013-09-19 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
CN102333350B (zh) * 2011-10-19 2014-02-26 华为技术有限公司 提高小流量用户体验的方法、装置和系统
JP5814829B2 (ja) * 2012-03-01 2015-11-17 株式会社東芝 無線通信装置及び方法
US20130305332A1 (en) * 2012-05-08 2013-11-14 Partha Narasimhan System and Method for Providing Data Link Layer and Network Layer Mobility Using Leveled Security Keys
EP2916521B1 (en) * 2012-11-05 2018-02-21 Nec Corporation Communication device, transmission data output control method, and program for same
US9049731B2 (en) * 2012-12-03 2015-06-02 At&T Mobility Ii Llc Facilitation of bandwidth-based femto cell management
US9307432B2 (en) * 2013-01-03 2016-04-05 Qualcomm Incorporated Processing delay estimate based on crowdsourcing data
US10171887B2 (en) * 2013-03-13 2019-01-01 Comcast Cable Communications, Llc Methods and systems for intelligent playback
JP6163954B2 (ja) * 2013-08-08 2017-07-19 富士通株式会社 パケット解析プログラム、パケット解析装置およびパケット解析方法
KR102154800B1 (ko) * 2014-01-10 2020-09-10 삼성전자주식회사 전자 장치의 데이터 스트리밍 방법 및 그 전자 장치
JP6459645B2 (ja) * 2015-03-06 2019-01-30 富士通株式会社 スループット計測プログラム、スループット計測方法及びスループット計測装置
JP2016184824A (ja) * 2015-03-25 2016-10-20 富士通株式会社 パケット解析プログラム、パケット解析装置およびパケット解析方法
DE102015106405A1 (de) * 2015-04-27 2016-10-27 Intel IP Corporation Verfahren und vorrichtungen auf der basis vondynamischer empfangsdiversität
JP6464911B2 (ja) * 2015-05-01 2019-02-06 富士通株式会社 情報処理システム、情報処理システムの制御方法及び受信装置
US9749178B2 (en) * 2015-09-18 2017-08-29 Whatsapp Inc. Techniques to dynamically configure target bitrate for streaming network connections
US10412779B2 (en) 2015-09-18 2019-09-10 Whatsapp Inc. Techniques to dynamically configure jitter buffer sizing
JP6589505B2 (ja) 2015-09-24 2019-10-16 ヤマハ株式会社 ルータ
US10516593B2 (en) * 2016-02-17 2019-12-24 Amit Goel Method and network monitoring device for calculating throughput of traffic flows in communication networks
US10237779B2 (en) * 2016-03-23 2019-03-19 Arris Enterprises Llc Identifying congested access points within a network based on measured throughput
JP2017183842A (ja) * 2016-03-28 2017-10-05 富士通株式会社 計測装置、計測方法、および、通信システム
US10499285B2 (en) * 2016-07-14 2019-12-03 Cloudstreet Oy Maximum cell throughput estimation
US10887794B2 (en) * 2018-04-03 2021-01-05 Samsung Electronics Co., Ltd. Method and apparatus for controlling data receiving rate in mobile communication system
CN110300315B (zh) * 2019-07-24 2021-08-13 北京达佳互联信息技术有限公司 一种视频码率确定方法、装置、电子设备及存储介质
JPWO2022269723A1 (ja) * 2021-06-21 2022-12-29

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513185A (en) * 1992-11-23 1996-04-30 At&T Corp. Method and apparatus for transmission link error rate monitoring
US6105064A (en) * 1997-05-30 2000-08-15 Novell, Inc. System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
JPH1172850A (ja) 1997-08-29 1999-03-16 Dainippon Printing Co Ltd 透過型投影スクリーン及びマルチ投影装置
JP3602972B2 (ja) * 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
JP2000216811A (ja) 1999-01-22 2000-08-04 Chokosoku Network Computer Gijutsu Kenkyusho:Kk フロ―制御方法
JP2000270015A (ja) 1999-03-18 2000-09-29 Toshiba Corp コンテンツ配信システム、同システムに用いられるサーバコンピュータ、およびサーバコンピュータの制御方法
CA2299022A1 (en) 1999-04-30 2000-10-30 Nortel Networks Corporation Method and apparatus for bandwidth management of aggregate data flows
JP2001144802A (ja) 1999-11-11 2001-05-25 Canon Inc データ通信装置及びその方法及び通信システム及び記憶媒体
JP4588201B2 (ja) * 1999-11-29 2010-11-24 パナソニック株式会社 無線通信システム
JP4596693B2 (ja) 2000-07-06 2010-12-08 パナソニック株式会社 ストリーミング方法およびそれを実行するシステム
JP3662907B2 (ja) * 2000-09-22 2005-06-22 松下電器産業株式会社 データ送受信方法、送信装置、受信装置、送受信システム、およびプログラム
JP2002204255A (ja) 2000-10-27 2002-07-19 Matsushita Electric Ind Co Ltd 伝送レート制御装置及び伝送レート制御方法
JP3699910B2 (ja) * 2000-10-31 2005-09-28 株式会社東芝 データ伝送装置、データ伝送方法及びプログラム
US20020071388A1 (en) * 2000-11-16 2002-06-13 Einar Bergsson Selectable network protocol
JP2004515163A (ja) * 2000-11-29 2004-05-20 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー リアルタイムデータの送信および受信
EP1428357A1 (en) * 2001-09-21 2004-06-16 British Telecommunications Public Limited Company Data communications method and system using receiving buffer size to calculate transmission rate for congestion control
JP2003169090A (ja) * 2001-11-30 2003-06-13 Fujitsu Ltd 伝送システム
KR100474719B1 (ko) * 2001-11-30 2005-03-08 삼성전자주식회사 이동통신시스템에서 제어정보를 송수신하는 방법 및 장치
US7237007B2 (en) * 2001-12-05 2007-06-26 Qualcomm Incorporated Method and system for flow control between a base station controller and a base transceiver station
WO2004019521A1 (ja) * 2002-07-31 2004-03-04 Sharp Kabushiki Kaisha データ通信装置、その間欠通信方法、その方法を記載するプログラム、及びそのプログラムを記録する記録媒体
FI20021527A0 (fi) * 2002-08-27 2002-08-27 Oplayo Oy Menetelmä ja järjestelmä mediavirran kaistanleveyden säätämiseksi
JP4061643B2 (ja) 2002-12-11 2008-03-19 ソニー株式会社 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
JP4192627B2 (ja) 2003-02-26 2008-12-10 日本電気株式会社 パケット送受信方法、及び装置
JP2004266741A (ja) 2003-03-04 2004-09-24 Sony Corp 配信システム、送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
JP3731665B2 (ja) 2003-03-27 2006-01-05 ソニー株式会社 データ通信システム、情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US7502352B2 (en) * 2003-05-16 2009-03-10 Alcatel-Lucent Usa Inc. Scheduling method for quality of service differentiation for non-real time services in packet radio networks
JP3988682B2 (ja) * 2003-06-10 2007-10-10 ソニー株式会社 送信装置および方法、記録媒体、並びにプログラム
DE10337067B4 (de) * 2003-08-12 2008-04-17 Infineon Technologies Ag Optimierung des Datendurchsatzes einer Mobilfunk-Verbindung über effiziente Pakettypwechsel
KR20050020526A (ko) * 2003-08-23 2005-03-04 삼성전자주식회사 이동통신시스템에서 비트 인터리빙장치 및 방법

Also Published As

Publication number Publication date
KR101234890B1 (ko) 2013-02-19
US20060218264A1 (en) 2006-09-28
TW200637282A (en) 2006-10-16
DE602006001019T2 (de) 2009-05-28
TWI308440B (ja) 2009-04-01
CN1841984A (zh) 2006-10-04
KR20060104915A (ko) 2006-10-09
CN1841984B (zh) 2011-11-09
JP2006279283A (ja) 2006-10-12
EP1708438A1 (en) 2006-10-04
DE602006001019D1 (de) 2008-06-12
US7987284B2 (en) 2011-07-26
EP1708438B1 (en) 2008-04-30

Similar Documents

Publication Publication Date Title
JP4643330B2 (ja) 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
JP4730427B2 (ja) 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
JP4448341B2 (ja) 帯域制御プログラム、方法およびエンド・システム
US8190750B2 (en) Content rate selection for media servers with proxy-feedback-controlled frame transmission
US20190274062A1 (en) Adapting communication parameters to link conditions, traffic types, and/or priorities
US9203886B2 (en) Content rate control for streaming media servers
KR101107816B1 (ko) 프록시 기반 시그널링 방법
KR101293372B1 (ko) 멀티플 인터페이스들을 통한 비디오 스트리밍
JP4878391B2 (ja) 適応的なキュー待ち時間を伴うスケジューリング及びキューマネージメント
WO2017119408A1 (ja) 送信データ量制御装置、方法および記録媒体
JP2017069849A (ja) 映像制御装置、映像配信システムおよび映像制御方法
Park et al. A network-aware encoding rate control algorithm for real-time up-streaming video services
Eswara et al. etvsq based video rate adaptation in cellular networks with α-fair resource allocation
WO2007103205A1 (en) Link layer packet loss classification for link adaptation in wlan
Lee et al. Handoff-aware adaptive media streaming in mobile IP networks

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081121

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081208

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090109

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101202

R150 Certificate of patent or registration of utility model

Ref document number: 4643330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees