JP2002084339A - ストリーミング方法およびそれを実行するシステム - Google Patents

ストリーミング方法およびそれを実行するシステム

Info

Publication number
JP2002084339A
JP2002084339A JP2001202147A JP2001202147A JP2002084339A JP 2002084339 A JP2002084339 A JP 2002084339A JP 2001202147 A JP2001202147 A JP 2001202147A JP 2001202147 A JP2001202147 A JP 2001202147A JP 2002084339 A JP2002084339 A JP 2002084339A
Authority
JP
Japan
Prior art keywords
terminal
buffer
server
target amount
data
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.)
Granted
Application number
JP2001202147A
Other languages
English (en)
Other versions
JP2002084339A5 (ja
JP4596693B2 (ja
Inventor
Hideaki Harumoto
英明 春元
Yuuki Horiuchi
優希 堀内
Takahisa Fujita
隆久 藤田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2001202147A priority Critical patent/JP4596693B2/ja
Publication of JP2002084339A publication Critical patent/JP2002084339A/ja
Publication of JP2002084339A5 publication Critical patent/JP2002084339A5/ja
Application granted granted Critical
Publication of JP4596693B2 publication Critical patent/JP4596693B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • H04N21/25808Management of client data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440281Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Graphics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 端末のバッファ容量が機種によって異なって
いても、ネットワークの伝送能力が変動しても、ストリ
ーミング再生の破綻を回避することが可能であり、しか
も、ストリーミング再生の破綻回避と、頭出し時の待ち
時間短縮とを互いに両立させることができるようなスト
リーミング方法を提供する。 【解決手段】 端末は、自身のバッファ容量とネットワ
ークの伝送能力とに関連して、自身のバッファに蓄積す
べきストリームの目標量(S_target)を決定
し、また、バッファ容量を伝送能力で除して得られる値
を超えない範囲内で任意に、自身のバッファにストリー
ムの先頭データを書き込んでからそのデータを読み出し
て再生開始するまでの遅延時間(T_delay)を決
定して、それら目標量および遅延時間をサーバに通知す
る。サーバは、通知に基づき、端末のバッファ占有量
(Sum)が目標量の近傍で目標量を超えずに遷移する
ように、送信速度を制御する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ストリーミング方
法に関し、より特定的には、サーバが端末へインターネ
ットを通じてマルチメディアデータを送信し、かつ端末
がそのデータを受信しつつ再生するためのストリーミン
グ方法に関する。
【0002】
【従来の技術】(マルチメディアデータの符号化圧縮方
式およびバッファモデルの説明)インターネットでの伝
送に使用されるマルチメディアデータには、動画、静止
画、音声、テキスト、およびそれらが多重化されたデー
タ等、さまざまな種類がある。動画では、H.263や
MPEG1、2、4といった符号化圧縮方式が著名であ
るし、静止画としてはJPEG、音声では、MPEGオ
ーディオ、G.729など枚挙にいとまがない。
【0003】本発明では、ストリーミング再生に的を絞
っているので、動画および音声が伝伝送の対象となる。
ここでは、動画圧縮方式の代表であるMPEGビデオ、
中でも比較的仕組みが単純なMPEG1(ISO/IE
C 11172)ビデオや、MPEG2(ISO/IE
C 13818)ビデオについて説明する。
【0004】MPEGビデオは、高効率なデータ圧縮を
実現するために、主に次の2つの特徴を有している。一
つ目は、動画像データの圧縮において、従来から行われ
ていた空間周波数特性を用いた圧縮方式の他に、フレー
ム間での時間相関特性を用いた圧縮方式を取り入れたこ
とである。MPEGでは、ストリームを構成している各
フレーム(ピクチャとも呼ぶ)を、Iフレーム(フレー
ム内符号化ピクチャ)、Pフレーム(フレーム内符号化
と過去からの参照関係を使用したピクチャ)、Bフレー
ム(フレーム内符号化と過去および未来からの参照関係
を使用したピクチャ)の3種類に分類してデータ圧縮を
行う。これらの3種では、Iフレームが最も大きく(つ
まり情報量が最も多く)、次いでP、Bの順である。圧
縮アルゴリズムにも大きく依存するが、情報量の比は、
おおよそI:P:B=4:2:1程度となる。また一般
的に、MPEGビデオストリームは、15フレーム(=
1GOP)を単位として、1GOPについてIフレーム
が1枚、Pフレームが4枚、Bフレームが10枚の割合
で含まれている。
【0005】MPEGビデオの二つ目の特徴は、画像の
複雑さに応じた動的な符号量割り当てをピクチャ単位で
行える点である。MPEGのデコーダは、デコーダバッ
ファを備え、このデコーダバッファにデータを蓄積して
からデコードを行うことで、圧縮の難しい複雑な画像に
対して大量の符号量を割り当てることが可能になってい
る。MPEGに限らず動画圧縮では、標準的なデコーダ
バッファの容量を規格で定義する場合が殆どである。M
PEG1やMPEG2の場合、標準デコーダバッファ
は、規格で容量が224KByteと定義されており、
MPEGエンコーダは、この容量の範囲内でデコーダバ
ッファ占有量が遷移するようにピクチャデータを生成し
なければならない。
【0006】図19(A)〜(C)は、従来のストリー
ミング方法を説明するための図である。図19(A)
は、ビデオフレームを示す図、図19(B)は、バッフ
ァ占有量の遷移を模式的に示した図、図19(C)は、
従来端末の構成例を示す図である。図19(C)におい
て、端末は、ビデオバッファと、ビデオデコーダと、
I,P並べ替えバッファと、スイッチとを備えている。
ビデオバッファが、前述のデコーダバッファに相当し、
転送されてくるデータは、ビデオバッファに蓄積された
後、ビデオデコーダによってデコードされる。デコード
されたデータは、I,P並べ替えバッファおよびスイッ
チを通じて再生時刻順に並べ替えられる。
【0007】図19(B)において、縦軸はバッファ占
有量(ビデオバッファのデータ蓄積量)を、横軸は時間
を示し、図中の太線がバッファ占有量の時間的遷移を示
している。また、太線の傾きは、ビデオのビットレート
に相当し、一定のレートでデータがバッファに入力され
ていることを示している。また、一定間隔(33.36
67msec)でバッファ占有量の削減が起こっている
が、これは、一定周期で各フレームのデータがデコード
されていくことによる。また、斜め点線と時間軸との交
点は、各ビデオフレーム内のデータがビデオバッファへ
向けて転送開始される時刻を示している。従って、図1
9(A)に示されたフレームXの転送開始時刻はt1、
フレームYの転送開始時刻はt2となる。
【0008】図19(A),(B)において、ビデオの
先頭フレームXがビデオバッファに入力開始される時刻
t1から、最初にデコードが実行される時刻(図中、太
線の第1の立ち下がり位置)までの時間を一般に、vb
v_delay時間と呼ぶ。最初のデコードは、ビデオ
バッファが満杯になった瞬間に実行されるので、vbv
_delay時間は、通常、データ入力開始から容量2
24KByteのビデオバッファが満杯になるまでの時
間であり、従って、ビデオの入力が開始されてから、デ
コーダを通じてビデオ再生が開始されるまでの初期遅延
時間(頭出し時の待ち時間)ということになる。
【0009】図19(A)のフレームYが複雑な画像で
ある場合、図19(B)に示されているように、その符
号量が大量なので、フレームYのデコード時刻(図中の
t3)よりも早い時刻(図中のt2)から、ビデオバッ
ファへのデータ転送を開始しなければならない。ただ
し、どんなに複雑な画像でも、バッファを占有するピク
チャ量は、224KByteの許容範囲内である。
【0010】図19(B)に示したバッファ遷移がきち
んと保たれるようにビデオバッファにデータが転送され
るならば、ビデオバッファのアンダーフローやオーバー
フローによるストリーミング破綻が起こらないことは、
MPEGの規格で保証されている。
【0011】(ネットワーク転送ジッタ吸収用の受信バ
ッファの説明)ところが、図20に示すように、サーバ
201と端末202とをネットワーク203で接続し、
ストレージ210中のMPEGデータを配信する場合、
生成モジュール211でパケットを生成する時間や、ネ
ットワーク機器204,205における転送手続き時
間、ネットワーク203の混雑などに伴なう伝送遅延時
間などのために、データの転送レートに揺れが生じる。
従って、実際には、図19(B)に示したバッファ遷移
が保たれないのが実情である。このような転送レートの
揺れ(ジッタ)を緩和吸収する方法としては、まず、ネ
ットワークの帯域に比べ十分小さい符号化レートのコン
テンツを流すことが考えられる。しかし、ネットワーク
資源をできる限り有効に使って高品位な映像や音声を提
供する必要があるので、この方法は適切ではない。そこ
で、一般には、ネットワーク機器204,205に、そ
れぞれ適当な容量の送受信バッファ206,207を設
け、普段からデータを多少先送り気味に転送しておい
て、データ転送に遅延が発生した時の不足を補う方法が
採用される。
【0012】ここで、端末202側に受信バッファ20
7を設けるということは、結局、図19(B)のバッフ
ァ遷移において、バッファ占有量の上限を、デコーダバ
ッファ208の規格である224KByteから受信バ
ッファ207による蓄積量の分だけかさ上げするのとお
おむね等価である。図21(A),(B)に、受信バッ
ファ297を追加する前後のバッファ占有量を並べて示
す。なお、図21(A)に示されているのは、図19
(B)と同一のバッファ遷移である。
【0013】受信バッファ207の追加によって、バッ
ファ遷移の許容範囲が拡がり、その結果、図19(B)
のバッファ遷移、すなわち図21(A)のバッファ遷移
は、図21(B)のようになって、ネットワークの転送
レートが低下しても、アンダーフローを回避することが
可能となる。反面、vbv_delay時間が、受信バ
ッファ207による蓄積量に相当する時間だけ長くな
り、デコーダ209でのデコード開始および再生装置2
12での再生開始が遅れる。つまり、頭出し時間が、受
信バッファ207へのデータ蓄積にかかる時間の分だけ
長くなる。
【0014】
【発明が解決しようとする課題】以上から明らかなよう
に、小規模LANなどの信頼性や伝送速度の保証された
ネットワーク環境において、MPEG等のマルチメディ
アデータをストリーミング再生する場合には、基本的
に、コーデックの規格で定められた再生初期遅延時間
(vbv_delay)やデコーダバッファ遷移をきち
んと遵守するようなシステム設計になってさえいれば、
デコーダバッファのアンダーフローやオーバーフローが
起こってストリーミング再生が破綻をきたすことはな
い。
【0015】しかしながら、インターネットなどの広域
ネットワーク環境においては、通信経路の伝送特性変動
に伴なう転送ジッタが無視できないほど大きいため、従
来の端末202は、コーデックの規格で定められたデコ
ーダバッファ(vbvバッファ)に加えて、図20の受
信バッファ207のような、転送ジッタ吸収のためのバ
ッファを持つ場合が多い。このとき、次のような課題が
存在する。
【0016】端末に搭載されるジッタ吸収用のバッファ
の容量は、一般に、機種によって様々である。そのた
め、同じデータを同じ条件下で配信しても、バッファ容
量の多い機種ではストリーミング再生を破綻なく行える
が、少ない機種では、ジッタを吸収しきれずに破綻する
場合があった。
【0017】この課題を解決するには、例えば、端末の
搭載メモリ量を増やして、ジッタ吸収用のバッファ容量
を十分確保すればよい。しかしながら、搭載メモリ量
は、端末の価格を決める主な要因の一つであり、可能な
限り少なく抑えたい要求がある。加えて、ジッタ吸収用
のバッファ容量が多すぎると、再生開始までの頭出し時
間が長くなって、ユーザにいらだちを感じさせてしまう
という新たな問題が発生する。
【0018】それゆえに、本発明の目的は、端末のバッ
ファ容量が機種によって異なっていても、ネットワーク
の伝送能力が変動しても、バッファのアンダーフローや
オーバーフローによるストリーミング再生の破綻を回避
することが可能であり、しかも、ストリーミング再生の
破綻回避と、頭出し時の待ち時間短縮とを互いに両立さ
せることができるようなストリーミング方法を提供する
ことである。
【0019】
【課題を解決するための手段および発明の効果】第1の
発明は、サーバが端末へネットワークを通じてストリー
ムデータを送信し、かつ端末が当該ストリームデータを
受信しつつ再生するストリーミング方法であって、端末
が、自身のバッファ容量とネットワークの伝送能力とに
関連して、自身のバッファに蓄積すべきストリームデー
タの目標量を決定する目標量決定ステップ、当該バッフ
ァ容量を当該伝送能力で除して得られる値を超えない範
囲内で任意に、端末が、自身のバッファにストリームの
先頭データを書き込んでから当該データを読み出して再
生開始するまでの遅延時間を決定する遅延時間決定ステ
ップ、決定した目標時間および遅延時間を、端末がサー
バに通知するステップ、サーバが端末へネットワークを
通じてストリームデータを送信する際に、通知された目
標量および遅延時間に基づいて送信速度を制御する制御
ステップを備える。
【0020】上記第1の発明では、端末が、自身のバッ
ファ容量とネットワークの伝送能力とに応じた目標量を
決定し、さらに、バッファ容量を伝送能力で除して得ら
れる値を超えない範囲内で、遅延時間を決定する。サー
バは、こうして端末が決定した目標量および遅延時間に
基づいて送信速度を制御するので、端末のバッファ容量
が機種によって異なっていても、ネットワークの伝送能
力が変動しても、バッファ量および伝送能力に応じた送
信速度制御が行え、その結果、バッファのアンダーフロ
ーやオーバーフローによるストリーミング再生の破綻を
回避することが可能となる。しかも、目標量とは独立に
遅延時間が決定されるので、ストリーミング再生の破綻
回避と、頭出し時の待ち時間短縮とを互いに両立させる
ことができる。
【0021】ここで、遅延時間が、バッファ容量を伝送
能力で除して得られる値以下に制限されるのは、遅延時
間がこの値を超えると、ストリーミング再生の破綻が起
こる恐れがあるためである。この値を超えない範囲であ
れば、遅延時間をどのような値に決めてもよい。ただ
し、値を決める際には、伝送能力の変動に対する耐性
と、頭出し時の待ち時間との間のバランスが考慮され
る。
【0022】第2の発明は、第1の発明において、制御
ステップにおいて、サーバは、端末のバッファに蓄積さ
れているストリームデータの量が、当該目標量の近傍に
おいて当該目標量を超えることなく遷移するように、当
該送信速度を制御することを特徴とする。
【0023】上記第2の発明では、蓄積量が目標量の近
傍において目標量を超えることなく遷移するので、バッ
ファのアンダーフローやオーバーフローが起こりにく
い。
【0024】第3の発明は、第2の発明において、制御
ステップにおいて、サーバは、当該送信速度と、当該遅
延時間と、端末がストリームデータをデコードする速度
とに基づいて、端末のバッファに蓄積されるストリーム
データの量を予測算出することを特徴とする。
【0025】上記第3の発明では、サーバが蓄積量を予
測算出して、その量に基づいて送信速度制御を行うの
で、蓄積量を目標量の近傍で目標量を超えないように遷
移させることができる。
【0026】ここで、端末が現在の蓄積量をサーバに通
知し、サーバは、通知に基づいて送信速度制御を行って
もよい。しかし、この場合、端末からサーバへの情報伝
達に時間がかかるので、サーバは、過去の蓄積量に基づ
いて送信速度制御を行うことになる。そのため、蓄積量
を目標量の近傍で目標量を超えないように遷移させるこ
とができるとは限らない。
【0027】第4の発明は、第1の発明において、端末
が、ネットワークの伝送能力が所定の閾値を跨いで変化
したことを検出する検出ステップ、検出ステップでの検
出結果に応じて、端末が当該目標量を変更する目標量変
更ステップ、および変更後の目標量を、端末がサーバに
通知するステップをさらに備え、制御ステップにおい
て、サーバは、変更後の目標量の通知を受けると、端末
のバッファに蓄積されるストリームデータの量が、当該
変更後の目標量の近傍において当該変更後の目標量を超
えることなく遷移するように、当該送信速度を制御する
ことを特徴とする。
【0028】上記第4の発明では、伝送能力が閾値を跨
いで変化すると、端末によって目標量が変更される。サ
ーバは、変更後の目標量の近傍において変更後の目標量
を超えることなく遷移するように送信速度を制御して、
目標量の変更に追従する。
【0029】第5の発明は、第4の発明において、検出
ステップでネットワークの伝送能力が第1の閾値を跨い
で低下したことを検出すると、端末は、目標量変更ステ
ップにおいて、当該目標量を増加させる向きに変更し、
制御ステップにおいて、サーバは、当該目標量が増加さ
れたのに応じて、当該送信速度を上昇させる向きに制御
することを特徴とする。
【0030】上記第5の発明では、伝送能力が第1の閾
値を跨いで変化すると、端末によって目標量が増加され
る。サーバは、送信速度を上昇させることにより、目標
量の増加に追従する。
【0031】第6の発明は、第5の発明において、当該
第1の閾値は、実現可能な最大の伝送能力と、ストリー
ムデータの転送ロスが発生し始めるような伝送能力との
略中間の値であることを特徴とする。
【0032】上記第6の発明では、伝送能力が低下しつ
つあるとき、ストリームデータの転送ロスが発生し始め
る前に、送信速度を上昇させて蓄積量を増やしておく。
これにより、伝送能力の低下が進行したときに、ストリ
ーミング再生が破綻するのを防ぐことができる。
【0033】第7の発明は、第4の発明において、検出
ステップでネットワークの伝送能力が当該第1の閾値よ
り小さい第2の閾値を跨いで低下したことを検出する
と、端末は、目標量変更ステップにおいて、当該目標量
を減少させる向きに変更し、制御ステップにおいて、サ
ーバは、当該目標量が減少方向に変更されたのに応じ
て、当該送信速度を低下させる向きに制御することを特
徴とする。
【0034】上記第7の発明では、伝送能力が第2の閾
値を跨いで変化すると、端末によって目標量が減少され
る。サーバは、送信速度を低下させることにより、目標
量の減少に追従する。
【0035】第8の発明は、第7の発明において、当該
第2の閾値は、ストリームデータの転送ロスが発生し始
めるような伝送能力と対応する値であることを特徴とす
る。
【0036】上記第8の発明では、伝送能力の低下が進
行して、ストリームデータの転送ロスが発生し始める
と、一転、送信速度を低下させる。失われたデータの再
送処理を妨害しないためである。
【0037】ここで、送信速度を低下させる場合、サー
バは、低下幅に応じた頻度でフレームの送信をスキップ
しなければならない。フレームがスキップされると、端
末が再生して得られる映像や音声の品位劣化が起こる。
この品位劣化を抑えるために、下記第9の発明では、ス
キップされるフレームとして、再生時刻に間に合わない
フレームが選択される。下記第10の発明では、スキッ
プされるフレームとして、重要度の低いフレームと、重
要度は高いが再生時刻に間に合わないようなフレームと
が選択される。
【0038】第9の発明は、第8の発明において、目標
量変更ステップにおいて、端末が当該目標量を減少させ
る向きに変更すると、制御ステップにおいて、サーバ
は、送信しようとするストリームを構成する各フレーム
の再生時刻を現在時刻と逐次比較して、再生時刻が現在
時刻よりも古いフレームの送信をスキップし、それよっ
て当該送信速度を低下方向に制御することを特徴とす
る。
【0039】上記第11の発明では、再生時刻に間に合
わないフレームが選択的にスキップされるので、無作為
的にスキップするのと比べて、送信速度の低下による品
位劣化を少なく抑えることができる。
【0040】第10の発明は、第8の発明において、目
標量変更ステップにおいて、端末が当該目標量を減少さ
せる向きに変更すると、制御ステップにおいて、サーバ
は、送信しようとするストリームを構成する各フレーム
の重要度を基準値と逐次比較して、重要度が基準値未満
であるフレームについては、全て送信をスキップし、重
要度が基準値以上であるフレームについては、それぞれ
の再生時刻を現在時刻と逐次比較して、再生時刻が現在
時刻よりも古いものだけ送信をスキップし、それによっ
て当該送信速度を低下方向に制御することを特徴とす
る。
【0041】上記第10の発明では、重要度の低いフレ
ームと、重要度は高いが再生時刻に間に合わないような
フレームとが選択的にスキップされるので、無作為的に
スキップするのと比べて、送信速度の低下による品位劣
化を少なく抑えることができる。
【0042】ここで、第10の発明のような、スキップ
すべきフレームを選択する際に再生時刻に間に合うか否
かに加えて重要度をも考慮する方法は、典型的には、M
PEGによる映像フレームに対して用いられる。この場
合、送信速度を低下させるとき、PやBのフレームが重
要度の低いフレームとしてスキップされる一方、Iフレ
ームは、重要度の高いフレームとして、再生時刻に間に
合わない場合を除いてスキップされることがないので、
送信速度低下による再生画像の品位劣化が最小限に抑え
られる。なお、MPEGによる音声フレームの場合、フ
レーム間に重要度の違いがないので、再生時刻に間に合
うか否かだけを考慮すればよい。
【0043】第11の発明は、ネットワークを通じてス
トリームデータを送信するサーバと、当該ストリームデ
ータを受信しつつ再生する端末とからなるシステムであ
って、端末は、自身のバッファ容量とネットワークの伝
送能力とに関連して、自身のバッファに蓄積すべきスト
リームデータの目標量を決定する目標量決定手段、当該
バッファ容量を当該伝送能力で除して得られる値を超え
ない範囲内で任意に、自身のバッファにストリームの先
頭データを書き込んでから当該データを読み出して再生
開始するまでの遅延時間を決定する遅延時間決定手段、
および決定した目標時間および遅延時間をサーバに通知
する手段を備え、サーバは、端末へネットワークを通じ
てストリームデータを送信する際に、通知された目標量
および遅延時間に基づいて送信速度を制御する制御手段
を備える。
【0044】第12の発明は、ネットワークを通じてス
トリームデータを送信するサーバと共に用いられ、当該
ストリームデータを受信しつつ再生する端末であって、
サーバには、端末へネットワークを通じてストリームデ
ータを送信する際に、通知された目標量および遅延時間
に基づいて送信速度を制御する制御手段が備わり、自身
のバッファ容量とネットワークの伝送能力とに関連し
て、自身のバッファに蓄積すべきストリームデータの目
標量を決定する目標量決定手段、当該バッファ容量を当
該伝送能力で除して得られる値を超えない範囲内で任意
に、自身のバッファにストリームの先頭データを書き込
んでから当該データを読み出して再生開始するまでの遅
延時間を決定する遅延時間決定手段、および決定した目
標時間および遅延時間をサーバに通知する手段を備え
る。
【0045】第13の発明は、ストリームデータを受信
しつつ再生する端末と共に用いられ、ネットワークを通
じて当該ストリームデータを送信するサーバであって、
端末には、自身のバッファ容量とネットワークの伝送能
力とに関連して、自身のバッファに蓄積すべきストリー
ムデータの目標量を決定する目標量決定手段、当該バッ
ファ容量を当該伝送能力で除して得られる値を超えない
範囲内で任意に、自身のバッファにストリームの先頭デ
ータを書き込んでから当該データを読み出して再生開始
するまでの遅延時間を決定する遅延時間決定手段、およ
び決定した目標時間および遅延時間をサーバに通知する
手段が備わり、端末へネットワークを通じてストリーム
データを送信する際に、通知された目標量および遅延時
間に基づいて送信速度を制御する制御手段を備え、制御
手段は、端末のバッファに蓄積されているストリームデ
ータの量が、当該目標量の近傍において当該目標量を超
えることなく遷移するように、当該送信速度を制御する
ことを特徴とする。
【0046】第14の発明は、上記第1の発明のような
ストリーミング方法を記述したプログラムである。
【0047】第15の発明は、上記第14の発明のよう
なプログラムを記録した記録媒体である。
【0048】
【発明の実施の形態】以下、本発明の実施形態につい
て、図面を参照しながら説明する。図1は、本発明の一
実施形態に係るストリーミング方法を実行するサーバ・
クライアント・システムの構成例を示すブロック図であ
る。図1において、本システムは、サーバ101と、そ
のクライアントとして動作する端末102とを備えてい
る。サーバ101側には、映像や音声のデータが蓄積さ
れている。このデータは、MPEGによって符号化圧縮
されたデータである。サーバ101は、端末102から
の要求に応じ、蓄積しているデータをパケット化してス
トリームを生成する。そして、ネットワーク103を通
じ、生成したストリームを端末102に送信する。端末
102は、サーバ101から送信されるストリームを受
信してデコードし、得られた映像や音声を表示出力す
る。
【0049】図2は、図1のサーバ101の構成を示す
ブロック図である。図2において、サーバ101は、蓄
積デバイス411と、送受信モジュール402と、生成
モジュール405と、RAM404と、CPU412
と、ROM413とを備えている。蓄積デバイス411
には、映像や音声のデータが蓄積されている。この蓄積
デバイス411内のデータが生成モジュール405に与
えられる。生成モジュール405は、読み出しバッファ
407と、パケット生成回路406と、パケット生成バ
ッファ408とを含み、与えられるデータをパケット化
してストリームを生成する。
【0050】送受信モジュール402は、ネットワーク
コントローラ410と、送信バッファ409とを含み、
生成モジュール405によって生成されたストリームを
端末102へ、ネットワーク103経由で送信する。ま
た、端末102からネットワーク103経由で送信され
てくる情報を受信する。
【0051】送受信モジュール402によって受信され
た端末102からの情報は、RAM404に書き込まれ
る。ROM413には、サーバ制御プログラムが格納さ
れており、CPU412は、RAM404に記憶されて
いる端末からの情報を参照しつつROM413内のプロ
グラムを実行し、それによって、送受信モジュール40
2および生成モジュール405の制御を行う。なお、こ
こではプログラムがROM413に格納されているとし
たが、ROM以外の記憶媒体、例えばハードディスクや
CD−ROM等に格納されていてもよい。
【0052】図3は、図1の端末102の構成を示すブ
ロック図である。図3において、端末102は、送受信
モジュール507と、再生モジュール510と、表示デ
バイス511と、ROM502と、CPU503とを備
えている。送受信モジュール507は、ネットワークコ
ントローラ506と、受信バッファ505とを含み、サ
ーバ101からネットワーク103経由で送信されてく
るストリームを受信する。また、CPU503からの情
報をサーバ101へ、ネットワーク103経由で送信す
る。
【0053】送受信モジュール507によって受信され
たストリームが、再生モジュール510に入力される。
再生モジュール510は、デコーダバッファ508と、
デコーダ509とを含み、入力されるストリームをデコ
ードして再生する。再生モジュール510により再生さ
れたデータが表示デバイス511に与えられ、表示デバ
イス511は、そのデータを映像に変換して表示する。
【0054】ROM502には、端末制御プログラムが
格納されており、CPU503は、ROM502内のプ
ログラムを実行し、それによって、送受信モジュール5
07、再生モジュール510および表示デバイス511
の制御を行う。
【0055】以上のように構成されたシステムの動作
を、以下に説明する。図4は、図1のシステムの全体動
作を説明するためのシーケンス図である。図4には、サ
ーバ101側の送受信層および制御層と、端末102側
の送受信層および制御層とが示されており、これら各層
の間でやりとりされるコマンドやストリームが時系列的
に並べられている。
【0056】最初、本システムの全体的な動作につい
て、図4を用いて説明する。図4において、最初、端末
102からサーバ101へ、コマンド”SETUP”が
送信される。サーバ101では、”SETUP”に応じ
て初期設定が行われ、設定が完了すると、サーバ101
から端末102へ、”OK”が応答される。
【0057】サーバ101から”OK”が返ってくる
と、端末102からサーバ101へ、コマンド”PLA
Y”が送信される。サーバ101では、送信準備が行わ
れ、準備が完了すると、サーバ101から端末102
へ、”OK”が応答される。
【0058】サーバ101から”OK”が返ってくる
と、端末102は、ストリームを待ち受ける態勢へと移
行する。この”OK”の応答に引き続いて、サーバ10
1は、ストリームの送信を開始する。
【0059】その後、端末102からサーバ101へ、
コマンド”TEARDOWN”が送信され、サーバ10
1は、”TEARDOWN”に応じてストリーム送信を
終了する。送信が終了されると、サーバ101から端末
102へ、”OK”が応答される。サーバ101から”
OK”が返ってくると、端末102は、ストリーム待ち
受け態勢から脱する。
【0060】以上が本システムの全体的な動作の概要で
あり、上で説明した限りでは、本システムの動作は、従
来と同様である。本システムの動作が従来と異なるの
は、次の(1)および(2)の2点である。 (1)端末102からサーバ101へのコマンド”SE
TUP”にパラメータ”S_target”および”T
_delay”が添付されており、サーバ101は、ス
トリームを送信する際、これらのパラメータに基づいて
送信速度を制御する。
【0061】上記(1)において、”S_targe
t”は、端末102がバッファに蓄積するデータ量の目
標値であり、その端末102に備わるバッファ(図3の
例では、受信バッファ505およびデコーダバッファ5
08)の総容量(”S_max”)と、ネットワーク1
03の伝送能力とに基づいて決定される。従って、”S
_target”は、一般に、端末102の機種によっ
て値が異なる。
【0062】また、”T_delay”は、端末102
が先頭データをバッファに書き込んでから、そのデータ
を読み出してデコードを開始するまでの時間(つまり頭
出し遅延時間)であり、”S_target”を送信速
度(後述)で除して得られる値を最大値として、その最
大値を超えない範囲内で任意の値に決定される。すなわ
ち、「”S_target”を送信速度で除して得られ
る値を超えない範囲内で」という条件が付くものの、端
末102は、”S_target”とは独立に”T_d
elay”を決めることができる。
【0063】また、「送信速度」は、単位時間に送信す
る情報の量をいい、例えば、単位時間に送信するパケッ
トの個数が決められている場合、各パケットに詰め込む
データの量を増減させることによって、送信速度を制御
することができる。また、各パケットに詰め込むデータ
の量が決められている場合、パケットと次のパケットと
の時間的な間隔を伸縮させることによって、送信速度を
制御することができる。あるいは、両方を同時に行う
(すなわち、各パケットに詰め込むデータの量を増減さ
せ、かつパケットと次のパケットとの時間的な間隔を伸
縮させる)ことによっても、送信速度を制御することが
できる。本実施形態では、各パケットに詰め込むデータ
の量を増減させることにより速度制御を行うものとす
る。
【0064】(2)端末102は、ストリームの配信
中、必要に応じて”S_target”を変更すること
ができる。この場合、変更後の”S_target”が
端末102からサーバ101に通知され、以降、サーバ
101は、変更後の”S_target”に基づいて送
信速度を制御する。
【0065】上記(2)において、”S_targe
t”の変更は、ネットワーク103の伝送能力の変動に
応じて行われる。具体的には、端末102が携帯電話の
場合、電界強度(例えば「強・中・弱・圏外」の4段階
の強度)を検知することができるので、この電界強度の
変化を「ネットワーク103の伝送能力の変動」と見な
して、”S_target”を変化させる。例えば、電
界強度が「強」から「中」に変化すると、端末102
は、”S_target”の値をより大きな値に変更
し、「中」から「弱」に変化すると、”S_targe
t”の値をより小さな値に変更する。本システムの動作
が従来と異なるのは、主として上の2点である。
【0066】次に、本システムの全体動作の具体例を詳
細に説明する。図4において、端末102は、ストリー
ム再生を開始するのに先立ち、端末制御プログラムに従
ってCPU503がROM502より端末に固有のパラ
メータ群を抽出する。このパラメータ群中には、受信バ
ッファ505とデコーダバッファ508とを合わせた総
容量(端末102が実際に蓄積できる最大データ量)S
_maxが含まれる。一方、CPU503は、ストリー
ム再生補助データなどの事前入手の手続きによって、受
信したいストリームデータの符号化圧縮レートVrや、
ビデオないしオーディオのフレーム発生周期Tfrmを
知っているものとする。また、CPU503は、ネット
ワークインターフェースを通じ、ネットワーク103の
伝送能力、たとえば携帯電話における受信電波強度や、
通信速度(PHSの場合では64Kbps接続ないし3
2Kbps接続などの情報)も検出しているものとす
る。
【0067】CPU503は、これらS_max、V
r、Tfrm、ネットワーク103の伝送能力(例えば
有効転送速度=networkRate)などをもと
に、端末102内のバッファにどれだけのデータを蓄積
するかを示す目標量S_target、およびストリー
ム再生を始めるまでのプレバッファリング時間(すなわ
ち頭出し遅延時間)T_delayを決定する。
【0068】ここで、S_targetの本質的な意味
は、今から開始するストリーミング再生において、S_
target近傍かつそれを越えないように端末の蓄積
バッファ量が遷移すれば、途切れなく正常にストリーミ
ング再生が持続できるような基準値のことである。前述
のように、T_delayが大きいと頭出し遅延時間が
長くなるが、ネットワーク103の転送ジッタに対して
は強くなる。しかし、遅延時間があまり長いとサービス
仕様として不適切なので、T_delayを決める際に
は、転送ジッタに対する耐性と、頭出し時の待ち時間と
の間のバランスをとる配慮が必要である。
【0069】なお、T_delayの代わり、もしくは
T_delayと併せて、端末102内のバッファにデ
ータを何バイトまで充填したらデコードを開始するかと
いう充填量S_delayを決定してもよい。端末10
2がS_delayのみを決定してサーバ101に通知
する場合は、サーバ101側でT_delay=S_d
elay/networkRateなる式を用いて、S
_delayをT_delayに換算することが可能で
ある。また、S_delayの値は、バッファ総量S_
maxに対する充填率rS(%)であってもよい(この
場合、換算式は、S_delay=S_max*rS/
100となる)。
【0070】端末102は、S_targetと、T_
delay(および/またはS_delay)とを準備
すると、図4に示されているように、サーバ101に対
し、ストリーム配信の準備を促すSETUPコマンドを
発行する。SETUPコマンド中には、引数としてS_
targetと、T_delay(および/またはS_
delay)とが含まれている。サーバ101は、SE
TUPを受信すると、引数をRAM404に記憶して、
ストリーム配信のための初期設定を行う。具体的には、
サーバ101のCPU412が、最初メモリ404から
引数を取り出し、次いで、たとえばストリームのソース
ファイルを蓄積デバイス411から読み出してバッファ
407に書き込む操作と、読み出したデータをパケット
化するパケット生成回路406のパラメータ設定とを行
う。なお、パケット生成回路406は、必ずしも専用の
ハードウエアである必要はなく、サーバ101(例えば
ワークステーションなどで実現される)のCPU412
に同様のパケット化処理を実行させるプログラム(ソフ
トウエアアルゴリズム)であってもよい。
【0071】前述のS_targetと、T_dela
y(および/またはS_delay)との2つの値も、
パケット生成回路406に引き渡される。パケット生成
回路406では、これらの値を用いて最適なレート制御
パラメータの算出が行われ、その結果、端末102への
ストリーム配信に適したレートでパケットが生成、送出
されるようになる。ネットワーク103中にパケットを
送出する準備が正常に完了すると、図4のように、送受
信層から制御層にOKが返り、次いで、端末102へ向
けてSETUPコマンドに対するOKが返る。こうし
て、本システムにおいて、ストリーム配信準備が完了す
る。
【0072】次いで、端末102がサーバ101に対
し、ストリーム配信の開始を促すPLAYコマンドを発
行する。サーバ101は、PLAYを受信すると、スト
リームデータの配信を開始する。端末102は、サーバ
101からのストリームデータを受信して蓄積する。そ
して、蓄積開始から前述のプレバッファリング時間(T
_delay)が経過したのちに、ストリームデータの
デコード、再生を開始する。このときストリーム配信
は、SETUP時に設定された適切なレート制御パラメ
ータに基づいてなされていることはいうまでもない。
【0073】ストリーム再生の終了時には、端末102
よりサーバ101に対し、TEARDOWNコマンドが
発行される。サーバ101は、TEARDOWNを受信
すると、ストリーム配信の終了処理を行い、全手続きを
完了させる。以上が、本システムの具体的な動作例であ
る。
【0074】以下には、端末102の動作について詳細
に説明する。端末102は、インターネットに接続可能
な携帯電話であり、電界強度(受信電波強度)を検知す
る機能を持っているとする。図5は、図1の端末102
の動作を示すフローチャートである。図5において、最
初、端末102は、2つのパラメータS_target
およびT_delayの値を決定する(ステップS10
1)。
【0075】ここで、上記ステップS101の処理内容
を具体的に説明する。図6は、図3のROM502の記
憶内容を示す図である。図6に示すように、ROM50
2内には、端末制御プログラムと、電界強度およびS_
targetが互いに対応付けて記載されたテーブル6
01と、パラメータT_delayの値とが記憶され
る。パラメータS_targetの値としては、電界強
度「強」と対応するS_target1、「中」と対応
するS_target2、「弱/圏外」と対応するS_
target3の3つの値が記憶されている。一方、パ
ラメータT_delayの値は、1つだけが記憶されて
いる。
【0076】上記3つの値S_target1〜3は、
次の関係を満たすように決められる。 S_target3<S_target1<S_tar
get2≦S_max 一方、値T_delayは、値S_maxをネットワー
ク103の実効的な伝送能力で除して得られる値を超え
ないように決められる。
【0077】一例として、S_maxが512(KB)
であれば、S_target1=256(KB),S_
target2=384(KB),S_target3
=128(KB)などのように決められる。また、ネッ
トワーク103の実効的な伝送能力を384(Kbp
s)すなわち48(KB/sec)とすると、T_de
layは、512÷48≒10.7(秒)を超えない範
囲で、任意の値(例えば4秒や3秒など)に決定され
る。
【0078】上記ステップS101では、ROM502
から、初期値としてのS_target1と、値T_d
elayとが読み出される。
【0079】なお、ここでは、S_target1〜3
と、T_delayの値とが予め計算されてROM50
2に記憶されており、CPU503は、必要な値をRO
M502から読み出すようにしているが、代わりに、バ
ッファの総容量と、ネットワーク103の実効的な伝送
能力と、S_targetおよびT_delayの値を
計算するためのプログラムとをROM502に記憶して
おいてもよい。この場合、CPU503は、必要があれ
ば、その都度、ROM502から容量、速度およびプロ
グラムを読み出して、S_targetおよびT_de
layの値を計算する。また、ここでは、T_dela
yの値が1つだけであるが、複数の値を準備しておい
て、その中から選択してもよい。以上がステップS10
1の処理内容である。
【0080】再び図5において、端末102は、ステッ
プS101で決定されたS_targetおよびT_d
elayをSETUPコマンドに添付して、サーバ10
1へ向けて送信する(ステップS102)。応じて、サ
ーバ101からストリームが送られてくる。ストリーム
送信の際、サーバ101は、端末から通知されたS_t
argetおよびT_delayに基づく送信速度制御
を実行する(サーバ側の動作ついては後述)。
【0081】次に、端末102は、サーバ101から送
られてくるストリームを受信して、バッファに書き込む
動作を開始する(ステップS103)。具体的には、図
3に示されているように、ネットワーク103を通じて
送られてくるストリームは、まずネットワークコントロ
ーラ506を経由して受信バッファ505に書き込まれ
る。時間が経過して受信バッファ505が満杯になる
と、受信バッファ505内のストリームが先頭データか
ら順番に読み出されて、デコーダバッファ508へと書
き込まれていく。
【0082】次に、端末102は、バッファリング開始
から時間がT_delayだけ経過したか否かを判定し
(ステップS104)、その判定結果が否定であれば、
肯定となるまで待機する。ステップS104の判定結果
が肯定となると、端末102は、バッファからストリー
ムを読み出してデコード・再生する動作を開始する(ス
テップS105)。具体的には、図3において、CPU
503がバッファリング開始からの経過時間を計測して
おり、その計測結果がROM502内のT_delay
と一致した瞬間、再生モジュール510に命じて、デコ
ーダバッファ508内のストリームを先頭データから順
番に読み出してデコーダ509に入力する処理を開始さ
せる。
【0083】次に、端末102は、ネットワーク103
の伝送能力が閾値を跨いで変化したか否かを判定する
(ステップS106)。この判定は、具体的には、次の
ようにして行われる。例えば、ネットワーク103を管
理するホストコンピュータ(図示せず)が、ネットワー
ク103の伝送能力に関する情報をネットワーク103
経由で端末102に随時配信するようにし、端末102
は、ホストコンピュータからの情報をもとに変化の有無
を判定する。
【0084】この場合、具体的には、図3に示すよう
に、伝送能力に関する情報が送受信モジュール507を
通じてCPU503へと送られる。ROM502には、
予め閾値が格納されており、CPU503は、送られて
きた情報と、保持している前回の情報と、ROM502
内の閾値とを互いに比較することにより、伝送能力が閾
値を跨いで変化したか否かを判定することができる。
【0085】または、ネットワーク103を管理するホ
ストコンピュータがその伝送能力に関する情報を端末1
02に配信する機能を持たない場合、端末102は、例
えば、次のようにして自ら判定を行うことができる。す
なわち、端末102が携帯電話の場合、図7(後述)に
示すように、周囲の電界強度を検知して、検知結果を
「強・中・弱・圏外」のように表示する機能を持ってい
る。この電界強度の変化をネットワーク103の伝送能
力の変化と見なせば、端末102は、検出を簡単に行え
ることになる。
【0086】ステップS106の判定結果が肯定の場
合、端末102は、新たなS_targetを決定し
(ステップS107)、それをサーバ101へ向けて送
信する(ステップS108)。一方、ステップS106
の判定結果が否定の場合、ステップS107,S108
をスキップして、ステップS109(後述)を実行す
る。
【0087】ここで、上記ステップS106およびステ
ップS107の処理内容について、詳しく説明する。以
下では、端末102が携帯電話であり、電界強度の変化
に応じてS_targetを変更する場合を説明する。
図7は、あるエリアにおける電界強度の分布と、端末の
移動に伴う伝送能力の変化とを示す模式図である。図7
(A)には、3つの中継局B1〜B3を含むエリアにお
ける電界強度分布が示されている。図7(A)におい
て、各中継局B1〜B3を中心とする同心円が、互いに
等しい電界強度の点を繋いでできる等電界曲線である。
【0088】例えば、中継局に最も近い同心円703内
では、電界強度が「強」であり、この同心円703から
次の同心円704までの間の領域では「中」となる。さ
らに、同心円704から同心円705までの間では
「弱」、同心円705の外側の領域では「圏外」とな
る。ただし、各中継局を中心とする同心円は、一部が互
いに交差しており、電界強度が「圏外」となる領域は、
わずかしかない。
【0089】いま、端末102は、矢印702で示され
る経路に沿って、中継局B1の近傍から中継B2の近傍
へ移動しようとしている。図7(B)には、図7(A)
の矢印702に沿った電界強度(これをネットワーク1
03の伝送能力と見なすことができる)が示されてい
る。図7(B)に示されているように、電界強度は、端
末102が中継局の近傍にあるとき「強」であり、中継
局B1から離れるにつれて「中」、「弱」、「圏外」の
ようにだんだん弱くなっていく。そして、中継局B1の
「圏外」となった直後、端末102は、中継局B2の
「圏内」に入り、電波強度が「弱」、「中」、「強」の
ようにだんだん強くなっていく。
【0090】上記のように移動する端末102は、電界
強度が「強」から「中」へと変化した瞬間、ネットワー
ク103の伝送能力が閾値Aを跨いで変化したと判定し
て、新たなS_targetを決定し、「中」から
「弱」へと変化した瞬間、伝送能力が閾値Bを跨いで変
化したと判定して、新たなS_targetを決定す
る。逆に、「弱」から「中」へと変化した瞬間、伝送能
力が閾値Bを跨いで変化したと判定して、新たなS_t
argetを決定し、「中」から「強」へと変化した瞬
間、伝送能力が閾値Aを跨いで変化したと判定して、新
たなS_targetを決定する。
【0091】なお、一般的には、閾値Aは、ネットワー
ク103において実現可能な最大の伝送能力と、ストリ
ームの転送ロスが発生し始めるような伝送能力との略中
間の値である。閾値Bは、ストリームの転送ロスが発生
し始めるような伝送能力と対応する値である。
【0092】新たなS_targetは、ROM502
内のテーブル601(図6)を参照することにより、次
のように決定される。図8は、図5のステップS107
の詳細を示すフローチャートである。図8において、端
末102は、最初、変化後の電界強度が「強」か否かを
判定し(ステップS201)、判定結果が肯定であれ
ば、新たなS_targetをS_target1に決
定する(ステップS202)。ステップS201の判定
結果が否定あれば、ステップS202をジャンプして、
ステップS203に進む。
【0093】次に、端末102は、変化後の電界強度が
「中」か否かを判定し(ステップS203)、判定結果
が肯定であれば、新たなS_targetをS_tar
get2に決定する(ステップS204)。ステップS
203の判定結果が否定であれば、ステップS204を
ジャンプして、ステップS205に進む。
【0094】次に、端末102は、変化後の電界強度が
「弱/圏外」か否かを判定し(ステップS205)、判
定結果が肯定であれば、新たなS_targetをS_
target3に決定し(ステップS206)、その
後、図5のフローに戻る。ステップS205の判定結果
が否定であれば、ステップS206をジャンプして、図
5のフローに戻る。
【0095】従って、図7(A)の矢印702に沿って
端末102が移動して行く場合、電界強度の変化に伴っ
て、端末102は、パラメータS_targetの値
を、S_target1→S_target2→S_t
arget3→S_target2→S_target
1のように変化させる。具体例を挙げれば、256(K
B)→384(KB)→128(KB)→384(K
B)→128(KB)のように変化させる。以上が、ス
テップS106およびステップS107の具体的な処理
例である。
【0096】再び図5において、ステップS108で端
末102が新たなS_targetをサーバ101へ向
けて送信すると、それに応じて、サーバ101は、パラ
メータS_targetの値を、端末102から新たに
通知された値に変更して、送信速度制御を続行する。
【0097】次に、端末102は、ストリーミング再生
を終了するか否かを判断し(ステップS109)、終了
する場合は、サーバ101へコマンドTEARDOWN
を送信すると共に、ストリームの受信およびバッファリ
ングを停止し(ステップS110)、次いで、再生処理
を停止する(ステップS111)。一方、ストリーミン
グ再生を継続する場合には、端末102は、ステップS
106に戻って、上記と同様の処理を繰り返す。以上
が、端末102の動作である。
【0098】次に、サーバ101の動作について詳細に
説明する。なお、ここでは説明を簡単にするために、サ
ーバ101は、MPEG1ビデオ(ISO/IEC 1
1172−2)、MPEG2ビデオ(ISO/IEC
13818−2)、あるいはMPEG2−AACオーデ
ィオ(ISO/IEC 13818−7)のような、固
定周期Tfrmでフレームを発生させる符号化圧縮アル
ゴリズムを用いて符号化を行い、かつ、固定周期Tsで
符号化データのパケット化を行うものとする。このパケ
ット化は、フレーム単位で行われるものとする。
【0099】最初、サーバ101が行うストリーム送信
速度制御の概要について、図9〜図11を用いて説明す
る。図9〜図11は、サーバ101が行うストリーム送
信速度制御によって、端末102のバッファに蓄積され
ているデータ量(バッファ占有量)がどのように遷移す
るかを示す図である。サーバ101は、送信先の端末1
02において、バッファ占有量が図9〜図11に示され
ているごとく遷移するように、ストリームの送信速度を
制御する。
【0100】図9には、バッファ占有量がS_targ
etに近づいていく様子が示されている。図10には、
バッファ占有量がS_targetの近傍で遷移してい
る状態で、S_targetの値がより大きな値(S_
target2)に変更された場合に、バッファ占有量
がS_target2に近づいていく様子が示されてい
る。図11には、バッファ占有量がS_targetの
近傍で遷移している状態で、S_targetの値がよ
り小さな値(S_target3)に変更された場合
に、バッファ占有量がS_target3に近づいてい
く様子が示されている。
【0101】図9〜図11に共通して、”S_max”
は、端末102のバッファの総容量であり、”Sum”
が、バッファ占有量である。”delta(0,1,
2,…)”は、サーバ101が単位時間Tsあたりに送
信するデータの量(すなわち、1つのパケットに詰め込
まれているデータの量)を示す。ここで、単位時間Ts
は、サーバ101がパケットを送信する周期であり、固
定値である。”L(0,1,2,…)”は、1つのフレ
ームあたりのデータ量である。
【0102】サーバ101は、端末102からT_de
layの値の通知を受けると、その値に基づいてストリ
ームの送信速度を制御する。この速度制御は、1つのパ
ケットに詰め込むデータの量を変化させることにより行
われる。
【0103】図9において、サーバ101が最初に送信
したパケット(i=0)には、量delta0のデータ
が詰め込まれており、時刻t=0では、バッファ占有量
Sumは、delta0となる。単位時間Tsが経過す
ると、次のパケット(i=1)が送られてくるが、そこ
には、量delta1のデータが詰め込まれている。従
って、時刻t=Tsでは、Sumは、{delta0+
delta1}となる。以降、単位時間Tsが経過する
毎に、次々とパケット(i=2,3,…)が送られてき
て、Sumにdelta2,delta3,…が加算さ
れていく。
【0104】一方、3つ目のパケット(i=2)が送ら
れてくる以前である時刻t=T_delayに、バッフ
ァからデータを読み出してデコードする処理が開始され
る。デコードはフレーム単位で行われるので、t=T_
delay以降、固定周期Tfrm毎に、SumからL
0,L1,L2…が減算されていく。
【0105】すなわち、バッファ占有量Sumは、時刻
t=0以降、周期Ts毎に、delta0,delta
1,…が加算されて、だんだん増加していく。その一方
で、時刻t=T_delay以降、周期Tfrm毎にL
0,L1,L2…が減算されていく。従って、Sumが
目標値S_targetに達する直前までの期間は、1
つのパケットに詰め込むデータ量を標準よりも多くして
(より一般的には送信速度を速くして)、バッファへの
書き込み速度がバッファからの読み出し速度を上回るよ
うにし、それ以降は、1つのパケットに詰め込むデータ
量を標準に戻して、書き込み速度と読み出し速度とを均
衡させれば、Sumを目標値S_targetの近傍で
遷移させることが可能となる。
【0106】このような送信速度制御を行えば、図1
0,図11のように、目標値S_targetが途中で
新たな目標値(S_target2,3)に変更された
場合にも、Sumを新たな目標値(S_target
2,3)の近傍で遷移させることが可能となる。
【0107】すなわち、図10において、Sumが目標
値S_targetの近傍で遷移している状態で、S_
targetがより大きな値(S_target2)に
変更されると、サーバ101は、以降のパケット(i=
3,4)に詰めるデータの量を増やすことによって、バ
ッファへの書き込み速度がバッファからの読み出し速度
を上回るようにする。Sumが新たな目標値S_tar
get2に達して以降は、1つのパケットに詰め込むデ
ータ量を標準に戻して、書き込み速度と読み出し速度と
を均衡させればよい。
【0108】また、図11において、Sumが目標値S
_targetの近傍で遷移している状態で、S_ta
rgetがより小さな値(S_target3)に変更
されると、サーバ101は、以降のパケット(i=3,
4)に詰めるデータの量を減らすことによって、バッフ
ァへの書き込み速度がバッファからの読み出し速度を下
回るようにする。Sumが新たな目標値S_targe
t3に達して以降は、1つのパケットに詰め込むデータ
量を標準に戻して、書き込み速度と読み出し速度とを均
衡させればよい。
【0109】次に、上で説明したようなサーバ101に
よる送信速度制御について詳細に説明する。図12は、
サーバ101が行う送信速度制御アルゴリズムの一例を
示すフローチャートである。図12において、最初、端
末102が自身のバッファ占有量(Sum)を検出し、
サーバ101は、端末102からバッファ占有量Sum
の通知を受ける(ステップS301)。次に、サーバ1
01は、ステップS301で通知されたバッファ占有量
Sumが、端末102から指定された目標値S_tar
getの近傍で遷移しているか否かを判定する(ステッ
プS302)。その判定結果が肯定であれば、現在の送
信速度が維持される。
【0110】ステップS302の判定結果が否定の場
合、サーバ101は、ステップS301で通知されたバ
ッファ占有量Sumが目標値S_targetよりも大
きいか否かを判定する(ステップS303)。そして、
判定結果が否定であれば、送信速度を現在よりも速い速
度に変更し(ステップS304)、その後、ステップS
306に進む。一方、ステップS303の判定結果が肯
定であれば、送信速度を現在よりも遅い速度に変更し
(ステップS305)、その後、ステップS306に進
む。
【0111】ステップS306では、速度制御動作を継
続するか否かが判断され、判断結果が肯定の場合、ステ
ップS301に戻って、上記と同様の動作が繰り返され
る。一方、判断結果が否定の場合、動作が終了される。
以上が、サーバ101が行う送信速度制御の一例であ
る。
【0112】ところで、図12の例では、端末102が
自身のバッファ占有量を検出して、サーバ101に通知
している。しかしその場合、端末102が検出するの
は、現在時刻におけるバッファ占有量である。その上、
端末102からサーバ101への情報伝達に時間がかか
るので、サーバ101は、伝達遅延時間の分だけ過去の
バッファ占有量に基づいて送信速度制御を行うことにな
り、バッファ占有量をS_targetの近傍で遷移さ
せるのは、現実には困難である。
【0113】これに対して、以下に説明する別の例(図
13,14参照)では、未来のある時点でのバッファ占
有量に基づいて送信速度制御を行うことによって、バッ
ファ占有量をS_targetの近傍で遷移させること
が可能となる。この場合、サーバ101は、端末102
からSumの通知を受けるのでなく、未来のある時刻に
おける端末102側のバッファ占有量Sumを予測算出
する。この予測算出は、次のようにして行われる。
【0114】すなわち、図2において、ROM413に
は、パケット送信周期Ts(固定値)と、デコード周期
Tfrm(固定値)とが予め記憶されている。CPU4
12は、パケットが生成される際、そのパケットに詰め
込まれたデータの量(delta0,delta1,d
elta2,…)をRAM404に記憶させておく。さ
らに、ストリームが送信される際、各フレームのデータ
量(L0,L1,L2,…)をRAM404に記憶させ
ておく。
【0115】RAM404にはまた、先に端末102か
ら通知されたT_delayが記憶されており、CPU
412は、ROM413内のTsおよびTfrmと、R
AM404内のdelta(0,1,2,…)、L
(0,1,2,…)およびT_delayとを参照して
所定の演算を行うことにより、未来のある時刻における
バッファ占有量Sumを算出することができる。このよ
うな算出処理を行うことによって、サーバ101は、端
末102側においてバッファ占有量Sumがどのように
遷移してくか(図9〜図11参照)を予測することがで
きる。
【0116】以下、サーバ101が端末102のバッフ
ァ占有量Sumを予測算出して送信速度制御を行う具体
的な動作例について、図9のバッファ遷移図、図13お
よび図14のフローチャート、図15のパケット構成図
を用いて説明する。
【0117】図9において、S_maxは、端末102
内バッファの有効蓄積量の最大値(これを簡単に「バッ
ファの総容量」と呼んでいる)であり、S_targe
tは、今回のストリーミングにおいて端末102内バッ
ファに蓄積しようとする目標量であり、T_delay
は、頭出し遅延時間の設定値である。これら各パラメー
タの意味については、既に説明したとおりである。以下
では、端末102よりS_targetとT_dela
yが通知されたものとして説明を行う。
【0118】本実施の形態では、理解を簡単にするため
に、固定時間周期Ts毎にパケットの生成・配信を行う
例(i=nに相当する時刻でパケット配信:nは整数)
を示している。また、i=nに相当する時刻(t=i*
Ts)でパケットの配信がなされた際に、端末102の
受信バッファ505およびデコーダバッファ508内の
蓄積量Sumは、数フレームに相当するデータ量が瞬時
に増加しているが、これは、図15(A)に示されてい
るように、1パケットに複数フレームを挿入するパター
ンでパケットを生成して端末102に配信しているため
である。実際には、パケット配信には転送時間がかか
り、図のように瞬時にバッファ占有量が増加する訳では
ない(傾き=networkRateの斜線になる)
が、あくまでモデルとして単純化して取り扱うものとす
る。また、時刻t=T_delay以降、階段状にバッ
ファ占有量が減じられていくのは、その時刻に端末10
2でストリーム再生が始まったことを示している。すな
わち、フレームの再生周期Tfrm毎に、各々のフレー
ム長L=L[k](kは整数)ずつデコーダ509でデ
ータが処理される。
【0119】図13および図14は、図9のバッファ遷
移を実現するためにサーバ101によって行われる送信
制御アルゴリズムの別の例を示したフローチャートであ
る。図13がアルゴリズムの全体像であり、図14は、
図13のステップS404中の関数mkPacketの
一例を示すフローチャートである。このようなアルゴリ
ズムを記述したプログラムがROM413(図2参照)
に格納されており、CPU412は、このプログラムに
従って各種の演算や制御を行い、その結果、図9のバッ
ファ遷移が実現される。なお、説明を簡単にするため
に、ストリーム途中での配信停止などは、今回考えない
ものとする。以下、各ステップについて順次説明を行
う。
【0120】図9において、サーバ101は、端末10
2から送られてきたS_targetおよびT_del
ayを受信して記憶する(ステップS401)。具体的
には、図2において、端末102からネットワーク10
3経由で送られてきたS_targetおよびT_de
layの値が、ネットワークコントローラ410を通じ
てRAM404に書き込まれる。
【0121】なお、ここでは、端末102がパラメータ
S_targetおよびT_delayの値を決定し
て、結果をサーバ101に通知しているが、代わりに、
サーバ101がそれらの値を予め記憶しておいてもよ
く、あるいは、端末102の機種情報(バッファの総容
量等)を記憶しておいて、この機種情報をもとにサーバ
101がパラメータの値を計算してもよい。
【0122】次に、各変数の初期化が行われる(ステッ
プS402,S403)。各変数の意味は、図14の説
明にて後述する。初期化が完了すると、ステップS40
4以降の処理、すなわち関数mkPacketにてパケ
ットを生成してネットワーク103中に送出する処理が
開始される。生成されたパケットは、この例では固定周
期Tsで端末102に配信されるので、サーバ101
は、ステップS405にてタイミング調整を行ったの
ち、ステップS406にて送出を行う。この一連の処理
が完了すると、CPU412は、関数mkPacket
の実行カウンタiを更新し、ステップS404に戻って
ループする。ストリームデータの読み出しおよびパケッ
ト化が全て完了すると、CPU412は、関数mkPa
cketを抜けて、ステップS404に判定結果FAL
SEでreturnする。CPU412は、このとき配
信が完了したと見なし、アルゴリズムを完了する。以上
が、本送信制御アルゴリズムの概要である。
【0123】次に、ステップS404に示された関数m
kPacketの詳細なアルゴリズムであるが、まず各
変数について説明を行う。Sumは、端末102内の受
信バッファ505およびデコーダバッファ508に蓄積
されているデータ量の総和であり、Lは、フレームのデ
ータ量であり、deltaは、関数mkPacketが
今回呼ばれてからパケット化したデータ量の総和(すな
わち1つのパケットに詰め込んだデータの量)であり、
inは、蓄積デバイス411から読み出したストリーム
ソースのフレーム数を示すカウンタであり、outは、
端末102内のデコーダ509でデコードされたフレー
ム数を示すカウンタであり、dtsは、デコーダ509
にてフレームがデコードされる時刻であり、grid
は、前回の関数mkPacketの1ループを処理する
際に進んだdtsの上限値である。
【0124】図14において、関数mkPacket
は、大きくパケット生成アルゴリズムA1と、デコード
量算出アルゴリズムA2との2つのアルゴリズムに分け
られる。前者において、最初のステップ(S501)で
は、CPU412は、deltaをクリアする。続くス
テップS502では、CPU412は、L=L[in]
のフレーム(既に読み出し済み)を今回のパケット生成
に用いて良いかどうかの判定を行う。判定の基準は、
(a)SumにLを加えてもS_targetを越えな
いこと、および(b)今回の関数呼び出しでパケット化
したデータの量(今回1つのパケットに詰め込んだデー
タの量)deltaにLを加えても、1つのパケットに
詰め込み可能なデータ量の上限値deltaMaxを超
えないこと、の2つであるである。
【0125】ここでdeltaMaxは、図15(A)
に示される不等式 (deltaMax+hdr)/Ts<Network
Rate を満たす値であって、周期Ts以内に端末に配信可能な
データ量の最大値であり、ネットワーク103の実効転
送レート(伝送能力)から算出が可能である。ステップ
S502にて真と判定されると、CPU412は、ステ
ップS503に進み、L=L[in]のフレームをパケ
ット化する。続くステップS504では、CPU412
は、パケット化の実行に伴い、Sumおよびdelta
を更新する。続くステップS505では、CPU412
は、次のフレームのデータを読み出しバッファ407か
ら、フレーム長LをRAM404から、それぞれ読み出
す。そして、Lが0よりも大きいか否かを判定する。
【0126】ステップS505の判定結果が否定、すな
わちL=0であれば、CPU412は、全データの読み
出しが完了した(End of File検出)とみな
し、関数を抜ける。そして、メインフロー(図13)の
ステップS404に判定結果FALSEでRETURN
する。一方、判定結果が肯定、すなわちL>0であれ
ば、CPU412は、次のステップ(S506)に進
み、L[in]を配列leng内に加える(RAM40
4に記憶させる)。これは後ほど説明するが、デコード
量算出アルゴリズムA2で用いるためである。次に、C
PU412は、ステップS507に進み、読み出したフ
レーム数カウンタinを更新して、ステップS502に
ループする。
【0127】上記のループによるパケット生成を繰り返
すうち、Sumおよびdeltaの値がだんだん大きく
なっていく。そして、ステップS502にてSumまた
はdeltaが十分大きくなったと判定されると、CP
U412は、このループを抜けて、デコード量算出アル
ゴリズムA2に入る。
【0128】デコード量算出アルゴリズムA2におい
て、最初のステップ(S508)では、i*Tsがgr
id以上であるか否かが判定される。このステップS5
08は、端末102においてデコードが開始される時刻
になったかどうかを判定することが目的である。具体的
には、gridが最初T_delayに設定されている
ため、関数呼び出しカウンタ数iが小さくてt=i*T
sがgrid未満の間は、端末102でのデコードがま
だ始まっていないものと判定される。図9では、i=0
およびi=1と対応する時刻がこれに相当する。
【0129】ステップS508の判定結果が否定の場
合、CPU412は、デコードによるフレームデータの
減算を行わずに関数を抜ける。一方、iが十分大きくな
ってパケット生成時刻t=i*Tsがgrid以上にな
ると、CPU412は、端末102でのデコードが既に
始まっているとみなし、フレームデータの減算処理を行
う。図9では、iが2以上の時刻がこれに相当する。続
くステップS509からステップS512までのループ
において、現在のgrid時刻から次のgrid時刻
(=grid+Ts)に挟まれた時間内にデコード処理
されるフレームデータの量leng[out]をSum
から減算し、かつデコードしたフレーム数outをカウ
ントアップする。
【0130】上記ループ内のステップS511におい
て、dtsには、フレームを1つデコードするたびにT
frmずつ加算されるが、これは、本実施形態が固定時
間間隔Tfrmのフレーム発生を行う符号化方式を用い
ていることに由来する。ステップS512では、CPU
412は、今回の時間間隔Tsでデコードされるべきフ
レームの有無を判定している。ステップS512の判定
結果が否定、すなわち、もはや今回の時間間隔Tsでデ
コードされるフレームは無いと判定されると、CPU4
12は、上記のループ(ステップS509〜S512)
から抜け、ステップS513に進む。ステップS513
では、CPU412は、変数gridを次のgrid時
刻に更新する。そして、関数を抜け、メインフロー(図
13)のステップS404に判定結果TRUEでRET
URNする。
【0131】以上のアルゴリズムにより、図9で示した
ように、端末102内において、バッファ占有量Sum
を常にS_targetの近傍でかつS_target
を超えないように遷移させることが可能となる。従っ
て、複数機種の端末102があって、バッファの総容量
Smaxが機種によって異なっていても、それぞれの端
末102のSmaxに応じてS_targetを適切な
値に設定すれば、バッファのオーバーフローもアンダー
フローも生じないようにすることができる。
【0132】なお、今回の例では、図15(A)のよう
に1パケットに複数フレームを挿入するパターンでパケ
ットを生成したが、代わりに、図15(B)のように、
1パケットに1フレームのフレームを挿入するパターン
でパケットを生成することも可能である。この場合は、
図14のステップS502において、後半の不等式を delta+(L+hdr) <= deltaMax とし、ステップS504の後半の等式を delta += (L+hdr) とするだけでよい。
【0133】また、本実施形態では、説明を簡単にする
ために、固定時間間隔Tfrmでフレーム発生を行う符
号化方式を用いたが、使用する符号化方式―たとえばM
PEG4ビデオ(ISO/IEC 14496−2)―
に合わせてデコード量算出アルゴリズムA2を設計すれ
ば、必ずしも固定時間間隔のフレーム発生を行わなくて
も構わないことはいうまでもない。また、必ずしもフレ
ーム単位でデータを扱うアルゴリズムでなくてもよく、
例えばスライス単位、あるいはMPEG1やMPEG2
システムストリームのパック単位でデータを扱うアルゴ
リズムであってもよい。
【0134】一方、図14のステップS502におい
て、S_targetの値が途中で変更されると、本ア
ルゴリズムは瞬時に、変更された新しいS_targe
tをターゲットとしてパケットの生成を行うようにな
る。S_targetの値が途中で変更された場合のバ
ッファ遷移の様子が、図10および図11に示されてい
る。図10において、i=3の時刻にS_target
がS_target2に変更(S_target<S_
target2≦S_max)されると、変更後しばら
くは多量のフレームデータがパケット化され(図中、d
elta3やdelta4)、その結果、Sumが新し
い目標値S_target2の近傍に到達するようにな
る。
【0135】また、図11のように、i=2の時刻にS
_targetがS_target3に変更(S_ta
rget3<S_target)されると、少量(de
lta4)または0(delta3)のフレームデータ
がパケット化される。その一方、デコードによりSum
が消費されるので、やはりSumが新しい目標値S_t
arget3の近傍に到達するようになる。このような
仕組みを利用すると、ネットワーク103の伝送能力
(あるいは端末102の電波受信状態)に応じて、動的
に端末102内のバッファ占有量Sumを増減させるこ
とが可能となり、以下に説明するような応用が可能とな
る。
【0136】図7(A)において、携帯電話701(図
1の端末102と対応)を持ったユーザが、図中の矢印
702ように、中継局B1の圏内から中継局B2の圏内
へと移動する場合を考える。移動に伴い、携帯電話70
1からの呼を受け付ける業務が、中継局B1から中継局
B2へと引き渡される。このとき、携帯電話701の受
信電波強度は、おおむね図7(B)に示したグラフのよ
うに変化する。本モデルでは、説明を簡単にするため
に、電波強度が強から中(または中から強)に変わると
ころをネットワーク103の伝送能力に関する閾値A、
中から弱(または弱から中)に変わるところを閾値B、
弱から圏外(または圏外から弱)に変わるところを閾値
Cとした。
【0137】図7(B)において、今、携帯電話701
を持ったユーザが距離d1だけ移動し、伝送能力が閾値
Aを下回ったとする。このとき携帯電話701は、図1
1に示されるように、S_delayをより大きい値
(S_target2)に変更して、その値をサーバ1
01に通知する。これは、その後も進むと予想される伝
送能力低下に備えて、サーバ101による新たなパケッ
ト生成および送出を促進させ、それにより、できるだけ
長時間(これをΔtとする)ぶんのデータを携帯電話7
01内のバッファに蓄積しておくためである。伝送能力
が閾値Aを下回っても、閾値B以上である間は、まだパ
ケットの転送ロスが発生することがないので、このよう
な伝送速度の高速化が可能である。
【0138】ユーザが移動して距離d2に達すると、伝
送能力が閾値Bを下回って、パケットの転送ロスが発生
し始める。このとき、携帯電話701は、図11に示さ
れるように、S_targetを小さい値(S_tar
get3)に変更して、その値をサーバ101に通知す
る。これは、その後もさらに進むと予想される伝送能力
低下に備えて、できるだけサーバ101による新たなパ
ケット生成および送出を抑制させるためである。パケッ
ト生成および送出を抑制するのは、次の理由による。
【0139】たとえば、携帯電話701が通信方式とし
てPHSのPIAFS方式を採用している場合、パケッ
トの伝送ロスが発生すると、リンクレイヤであるPIA
FS層のプロトコルに基づくデータ再送処理が行われ
る。再送処理中に、新たなパケット生成および送出が行
われると、それが再送処理の邪魔をする結果となり、か
えって好ましくないからである。
【0140】ユーザが移動して距離d3に達すると、伝
送能力が閾値Cを下回って、一瞬、パケット転送が困難
となる。しかし、ユーザがさらに移動して距離d4に達
すると、伝送能力が閾値Bを上回り、かつ呼を受け付け
る業務の引き渡し(ハンドオーバー)も完了しているの
で、携帯電話701は、今度はS_target3を元
の値S_targetに戻して、その値をサーバ101
に通知し、それによって、データの蓄積量(すなわちバ
ッファ占有量Sum)を増加させる。なお、PHS等の
ハンドオーバー時間は、普通に人が歩く速さでもおおよ
そ2〜3秒程度で完了するため、上記のΔtをおおよそ
3〜4秒程度確保しておけば、ハンドオーバーが起こっ
ても携帯電話701でのストリーミング再生を滞りなく
継続することができる。
【0141】ところで、図11のように、ストリーム配
信の途中でS_targetの設定値がより小さな値に
変更されると、図14のアルゴリズムにおいてステップ
S502の判定文がなかなか真にならず、次のフレーム
のデータを送出できないケースが起こりうる。このよう
なケースがたびたび発生すると、折角パケットを端末1
02に届けても、もはやそのパケット内のフレームデー
タを再生するべき時刻(Presentation T
ime)を経過してしまっており、データが無駄になっ
てしまうことがある。このような場合は、再生時刻が経
過してしまったフレームデータをスキップした方が、無
駄なデータをネットワーク103に流さないで済む分だ
け効率的である。
【0142】図16は、図13のステップS404中の
関数mkPacketの別の例を示すフローチャートで
ある。図16の関数mkPacketには、サーバ10
1が送信速度を遅くする際に、再生時刻を過ぎたデータ
の送出をスキップするためのステップ(S601および
S602)が含まれている。すなわち、図16のアルゴ
リズムは、図14と比較して、ステップS601および
ステップS602が追加されただけである。他のステッ
プは、図14と全く同じであり、同一の参照番号が付さ
れている。ステップS601では、CPU412は、今
から送出しようとしているin番目のフレームデータ
が、0番目のフレームのデータでなく、かつ、端末10
2にて既にデコードされたとみなされるout番目のフ
レームデータより再生時刻が後かどうかを判定してい
る。
【0143】この判定結果が真ならば、CPU412
は、in番目のフレームのデータが端末での再生時刻に
間に合うと見なして、ステップS503にてそのデータ
をパケット化し、端末102に送出する。偽の場合は、
in番目のフレームデータを無かったものとみなし、ス
テップS602にてL=0とする。これにより、ステッ
プS502では必ず真と判定され、かつステップS50
3のパケット化において、不要なフレームデータのコピ
ーを行わずに、送出フレームを次に進めることができ
る。なお、このようなフレームスキップがあった場合
は、デコーダ509での再生が時間Tfrmだけ飛ぶの
で、その旨を端末102に通知する情報が、図15
(A),(B)のパケット中に記述されるものとする。
例えば、ヘッダ内にそのような再生時刻情報を記述する
領域を設ければよい。
【0144】図16に示したアルゴリズムは、MPEG
オーディオのように各フレームどうしの優先順位(重要
度)に差が無い場合には、十分有効な手法である。しか
し、MPEGビデオにおいては、従来例の紹介において
既に説明したように、Iフレームであればそれ単独で意
味のある画像を再構成することができるが、PやBのフ
レームでは、時間的に前後の参照フレームがなければ、
意味のある画像を再構成することができない。この場合
には、図16のアルゴリズムにおいてフレームの間引き
を行う際に、再生時刻に間に合うIフレームを優先的に
送出する一方、PやBのフレームを全てスキップするこ
とで、ネットワーク103の転送速度が遅い状況におい
ても、端末102に対してより高品位の映像を提供する
ことが可能となる。
【0145】図17は、図13のステップS404中の
関数mkPacketの、さらに別の例を示すフローチ
ャートである。図17の関数mkPacketには、サ
ーバ101が送信速度を遅くする際に、優先度の低いデ
ータと、優先度は高いが再生時刻を過ぎたデータとの送
出をスキップするためのステップ(S505’,S60
1,S602,S701およびS702)が含まれてい
る。すなわち、図17のアルゴリズムは、図14と比較
して、ステップS601,S602,S701およびS
702が追加され、かつステップS505がステップS
505’に置き換えられている。ステップS505’
は、ステップS505に対し、関数NexTfrmに優
先順位priの検出機能が加えられたものである。他の
ステップは、図14,図16と全く同じであり、同一の
参照番号が付されている。
【0146】従って、図17のアルゴリズムは、図16
と比較すると、ステップS701,S702が追加さ
れ、かつステップS505がS505’に置き換わって
いる。
【0147】図17のアルゴリズムを実行するには、端
末102が検出した受信状態を示す情報(受信状態情
報)を、端末102からサーバ101に通知する機能が
必要となる。このような機能を持ったサーバ・クライア
ント・システムの構成例を、図18に示す。図18にお
いて、端末102は、受信状態を検出する検出部801
を備えている。端末102とサーバ101との間には、
検出された受信状態情報を端末102からサーバ101
に通知する通知部802が設けられる。サーバ101
は、保持部803を備えており、通知された受信状態情
報を保持する。
【0148】再び図17において、mkPacket関
数が呼び出されると、ステップS501に先立って、ス
テップS701が実行される。ステップS701におい
て、サーバ101(のCPU412)は、保持部803
内の情報(端末102側の受信状態)を参照して、ネッ
トワーク103の伝送能力が閾値Bを下回るか否かを判
定する。この判定の結果、閾値Bを下回っていればsl
owflagを真とし、そうでなければ偽とする。
【0149】ステップS505’では、次のフレームの
優先度が検出され、続くステップS702では、そのフ
レームのデータの優先度が高く、かつslowflag
が真であるか否かが判定される。この判定結果が肯定、
すなわちネットワーク103の転送速度が遅いことを示
すslowflagが真であり、かつ優先度の高いフレ
ームである場合、ステップS601に進んで、再生時刻
が経過してしまったフレームか否かが判定される。一
方、判定結果が否定である場合、ステップS602に進
んで、L=0とされる(つまり、たとえ再生時刻に間に
合うようであっても、そのフレームはスキップされ
る)。後の処理は、図14や図16の処理と全く同様で
ある。
【0150】以上のように、本実施形態によれば、端末
102が、自身のバッファ容量とネットワーク103の
伝送能力とに応じた目標量を決定し、さらに、目標量を
伝送能力で除して得られる値を超えない範囲内で、遅延
時間を決定する。サーバ101は、こうして端末102
が決定した目標量および遅延時間に基づいて送信速度を
制御するので、端末102のバッファ容量が機種によっ
て異なっていても、ネットワーク103の伝送能力が変
動しても、バッファ量および伝送能力に応じた送信速度
制御が行え、その結果、バッファのアンダーフローやオ
ーバーフローによるストリーミング再生の破綻を回避す
ることが可能となる。しかも、目標量とは独立に遅延時
間が決定されるので、ストリーミング再生の破綻回避
と、頭出し時の待ち時間短縮とを互いに両立させること
ができる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るストリーミング方法
を実行するサーバ・クライアント・システムの構成例を
示すブロック図である。
【図2】図1のサーバ101の構成を示すブロック図で
ある。
【図3】図1の端末102の構成を示すブロック図であ
る。
【図4】図1のシステムの全体動作を説明するためのシ
ーケンス図である。
【図5】図1の端末102の動作を示すフローチャート
である。
【図6】図3のROM502の記憶内容を示す図であ
る。
【図7】あるエリアにおける電界強度の分布(A)と、
端末の移動に伴う伝送能力の変化(B)とを示す模式図
である。
【図8】図5のステップS107の詳細を示すフローチ
ャートである。
【図9】図1のサーバ101が行う送信速度制御によっ
て、端末102のバッファ占有量がどのように遷移する
か(S_targetに近づいていく様子)を示す図で
ある。
【図10】バッファ占有量がS_targetの近傍で
遷移している状態で、S_targetの値がより大き
な値(S_target2)に変更された場合に、図1
のサーバ101が行う送信速度制御によって、端末10
2のバッファ占有量がどのように遷移するかを示す図で
ある。
【図11】バッファ占有量がS_targetの近傍で
遷移している状態で、S_targetの値がより小さ
な値(S_target3)に変更された場合に、図1
のサーバ101が行う送信速度制御によって、端末10
2のバッファ占有量がどのように遷移するかを示す図で
ある。
【図12】図1のサーバ101が行う送信速度制御アル
ゴリズムの一例を示すフローチャートである。
【図13】図9〜図11のバッファ遷移を実現するため
にサーバ101によって行われる送信速度制御アルゴリ
ズムの別の例を示したフローチャートである。
【図14】図13のステップS404中の関数mkPa
cketの一例を示すフローチャートである。
【図15】図1のサーバ101が生成するパケットの構
成例(Aは1パケットに複数フレームを挿入する場合、
Bは1パケットに1フレームを挿入する場合)を示す図
である。
【図16】図13のステップS404中の関数mkPa
cketの別の例を示すフローチャートである。
【図17】図13のステップS404中の関数mkPa
cketの、さらに別の例を示すフローチャートであ
る。
【図18】本発明の一実施形態に係るストリーミング方
法を実行するサーバ・クライアント・システムの別の構
成例を示すブロック図である。
【図19】従来のストリーミング方法を説明するための
図である(Aはビデオフレーム、Bはバッファ占有量の
遷移、Cは従来端末の構成例)。
【図20】従来のストリーミング方法を実行するサーバ
・クライアント・システムの構成例を示すブロック図で
ある。
【図21】受信バッファを追加することによってバッフ
ァ占有量の遷移がどのように変化するかを説明するため
の図である(Aが追加前、Bが追加後)。
【符号の説明】
101 サーバ 102 端末 103 ネットワーク 402,507 送受信モジュール 404 RAM 405 生成モジュール 406 パケット生成回路 407 読み出しバッファ 408 パケット生成バッファ 409 送信バッファ 410,506 ネットワークコントローラ 411 蓄積デバイス 412,503 CPU 413,502 ROM 505 受信バッファ 508 デコーダバッファ 509 デコーダ 510 再生モジュール 511 表示デバイス
フロントページの続き (72)発明者 藤田 隆久 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 Fターム(参考) 5C059 KK35 RB02 RB04 RE16 RE20 SS08 SS10 SS20 TA71 TC16 TC38 TD14 UA32 UA39 5K030 HA08 HB02 HB21 JT10 KA01 KA03 KA07 LC01 LE16 LE17 MB15 5K034 AA05 CC02 CC05 DD02 EE10 HH42 MM08

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 サーバが端末へネットワークを通じてス
    トリームデータを送信し、かつ端末が当該ストリームデ
    ータを受信しつつ再生するストリーミング方法であっ
    て、 端末が、自身のバッファ容量とネットワークの伝送能力
    とに関連して、自身のバッファに蓄積すべきストリーム
    データの目標量を決定する目標量決定ステップ、 当該バッファ容量を当該伝送能力で除して得られる値を
    超えない範囲内で任意に、端末が、自身のバッファにス
    トリームの先頭データを書き込んでから当該データを読
    み出して再生開始するまでの遅延時間を決定する遅延時
    間決定ステップ、 決定した目標時間および遅延時間を、端末がサーバに通
    知するステップ、 サーバが端末へネットワークを通じてストリームデータ
    を送信する際に、通知された目標量および遅延時間に基
    づいて送信速度を制御する制御ステップを備える、スト
    リーミング方法。
  2. 【請求項2】 前記制御ステップにおいて、サーバは、 端末のバッファに蓄積されているストリームデータの量
    が、当該目標量の近傍において当該目標量を超えること
    なく遷移するように、当該送信速度を制御することを特
    徴とする、請求項1に記載のストリーミング方法。
  3. 【請求項3】 前記制御ステップにおいて、サーバは、
    当該送信速度と、当該遅延時間と、端末がストリームデ
    ータをデコードする速度とに基づいて、端末のバッファ
    に蓄積されるストリームデータの量を予測算出すること
    を特徴とする、請求項2に記載のストリーミング方法。
  4. 【請求項4】 端末が、ネットワークの伝送能力が所定
    の閾値を跨いで変化したことを検出する検出ステップ、 前記検出ステップでの検出結果に応じて、端末が当該目
    標量を変更する目標量変更ステップ、および変更後の目
    標量を、端末がサーバに通知するステップをさらに備
    え、 前記制御ステップにおいて、サーバは、変更後の目標量
    の通知を受けると、端末のバッファに蓄積されるストリ
    ームデータの量が、当該変更後の目標量の近傍において
    当該変更後の目標量を超えることなく遷移するように、
    当該送信速度を制御することを特徴とする、請求項1に
    記載のストリーミング方法。
  5. 【請求項5】 前記検出ステップでネットワークの伝送
    能力が第1の閾値を跨いで低下したことを検出すると、
    端末は、前記目標量変更ステップにおいて、当該目標量
    を増加させる向きに変更し、 前記制御ステップにおいて、サーバは、当該目標量が増
    加されたのに応じて、当該送信速度を上昇させる向きに
    制御することを特徴とする、請求項4に記載のストリー
    ミング方法。
  6. 【請求項6】 当該第1の閾値は、実現可能な最大の伝
    送能力と、ストリームデータの転送ロスが発生し始める
    ような伝送能力との略中間の値であることを特徴とす
    る、請求項5に記載のストリーミング方法。
  7. 【請求項7】 前記検出ステップでネットワークの伝送
    能力が当該第1の閾値より小さい第2の閾値を跨いで低
    下したことを検出すると、端末は、前記目標量変更ステ
    ップにおいて、当該目標量を減少させる向きに変更し、 前記制御ステップにおいて、サーバは、当該目標量が減
    少方向に変更されたのに応じて、当該送信速度を低下さ
    せる向きに制御することを特徴とする、請求項4に記載
    のストリーミング方法。
  8. 【請求項8】 当該第2の閾値は、ストリームデータの
    転送ロスが発生し始めるような伝送能力と対応する値で
    あることを特徴とする、請求項7に記載のストリーミン
    グ方法。
  9. 【請求項9】 前記目標量変更ステップにおいて、端末
    が当該目標量を減少させる向きに変更すると、前記制御
    ステップにおいて、サーバは、送信しようとするストリ
    ームを構成する各フレームの再生時刻を現在時刻と逐次
    比較して、再生時刻が現在時刻よりも古いフレームの送
    信をスキップし、それよって当該送信速度を低下方向に
    制御することを特徴とする、請求項8に記載のストリー
    ミング方法。
  10. 【請求項10】 前記目標量変更ステップにおいて、端
    末が当該目標量を減少させる向きに変更すると、前記制
    御ステップにおいて、サーバは、送信しようとするスト
    リームを構成する各フレームの重要度を基準値と逐次比
    較して、 重要度が基準値未満であるフレームについては、全て送
    信をスキップし、 重要度が基準値以上であるフレームについては、それぞ
    れの再生時刻を現在時刻と逐次比較して、再生時刻が現
    在時刻よりも古いものだけ送信をスキップし、それによ
    って当該送信速度を低下方向に制御することを特徴とす
    る、請求項8に記載のストリーミング方法。
  11. 【請求項11】 ネットワークを通じてストリームデー
    タを送信するサーバと、当該ストリームデータを受信し
    つつ再生する端末とからなるシステムであって、 端末は、 自身のバッファ容量とネットワークの伝送能力とに関連
    して、自身のバッファに蓄積すべきストリームデータの
    目標量を決定する目標量決定手段、 当該バッファ容量を当該伝送能力で除して得られる値を
    超えない範囲内で任意に、自身のバッファにストリーム
    の先頭データを書き込んでから当該データを読み出して
    再生開始するまでの遅延時間を決定する遅延時間決定手
    段、および決定した目標時間および遅延時間をサーバに
    通知する手段を備え、 サーバは、端末へネットワークを通じてストリームデー
    タを送信する際に、通知された目標量および遅延時間に
    基づいて送信速度を制御する制御手段を備える、システ
    ム。
  12. 【請求項12】 ネットワークを通じてストリームデー
    タを送信するサーバと共に用いられ、当該ストリームデ
    ータを受信しつつ再生する端末であって、 サーバには、端末へネットワークを通じてストリームデ
    ータを送信する際に、通知された目標量および遅延時間
    に基づいて送信速度を制御する制御手段が備わり、 自身のバッファ容量とネットワークの伝送能力とに関連
    して、自身のバッファに蓄積すべきストリームデータの
    目標量を決定する目標量決定手段、 当該バッファ容量を当該伝送能力で除して得られる値を
    超えない範囲内で任意に、自身のバッファにストリーム
    の先頭データを書き込んでから当該データを読み出して
    再生開始するまでの遅延時間を決定する遅延時間決定手
    段、および決定した目標時間および遅延時間をサーバに
    通知する手段を備える、端末。
  13. 【請求項13】 ストリームデータを受信しつつ再生す
    る端末と共に用いられ、ネットワークを通じて当該スト
    リームデータを送信するサーバであって、 端末には、 自身のバッファ容量とネットワークの伝送能力とに関連
    して、自身のバッファに蓄積すべきストリームデータの
    目標量を決定する目標量決定手段、 当該バッファ容量を当該伝送能力で除して得られる値を
    超えない範囲内で任意に、自身のバッファにストリーム
    の先頭データを書き込んでから当該データを読み出して
    再生開始するまでの遅延時間を決定する遅延時間決定手
    段、および決定した目標時間および遅延時間をサーバに
    通知する手段が備わり、 端末へネットワークを通じてストリームデータを送信す
    る際に、通知された目標量および遅延時間に基づいて送
    信速度を制御する制御手段を備え、 前記制御手段は、端末のバッファに蓄積されているスト
    リームデータの量が、当該目標量の近傍において当該目
    標量を超えることなく遷移するように、当該送信速度を
    制御することを特徴とする、サーバ。
  14. 【請求項14】 サーバが端末へネットワークを通じて
    ストリームデータを送信し、かつ端末が当該ストリーム
    データを受信しつつ再生するストリーミング方法を記述
    したプログラムであって、 端末が、自身のバッファ容量とネットワークの伝送能力
    とに関連して、自身のバッファに蓄積すべきストリーム
    データの目標量を決定する目標量決定ステップ、 当該バッファ容量を当該伝送能力で除して得られる値を
    超えない範囲内で任意に、端末が、自身のバッファにス
    トリームの先頭データを書き込んでから当該データを読
    み出して再生開始するまでの遅延時間を決定する遅延時
    間決定ステップ、 決定した目標時間および遅延時間を、端末がサーバに通
    知するステップ、 サーバが端末へネットワークを通じてストリームデータ
    を送信する際に、通知された目標量および遅延時間に基
    づいて送信速度を制御する制御ステップを備えるストリ
    ーミング方法を記述した、プログラム。
  15. 【請求項15】 サーバが端末へネットワークを通じて
    ストリームデータを送信し、かつ端末が当該ストリーム
    データを受信しつつ再生するストリーミング方法が記述
    されたプログラムを記録した記録媒体であって、 端末が、自身のバッファ容量とネットワークの伝送能力
    とに関連して、自身のバッファに蓄積すべきストリーム
    データの目標量を決定する目標量決定ステップ、 当該バッファ容量を当該伝送能力で除して得られる値を
    超えない範囲内で任意に、端末が、自身のバッファにス
    トリームの先頭データを書き込んでから当該データを読
    み出して再生開始するまでの遅延時間を決定する遅延時
    間決定ステップ、 決定した目標時間および遅延時間を、端末がサーバに通
    知するステップ、 サーバが端末へネットワークを通じてストリームデータ
    を送信する際に、通知された目標量および遅延時間に基
    づいて送信速度を制御する制御ステップを備えるストリ
    ーミング方法が記述されたプログラムを記録した、記録
    媒体。
JP2001202147A 2000-07-06 2001-07-03 ストリーミング方法およびそれを実行するシステム Expired - Lifetime JP4596693B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001202147A JP4596693B2 (ja) 2000-07-06 2001-07-03 ストリーミング方法およびそれを実行するシステム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-204632 2000-07-06
JP2000204632 2000-07-06
JP2001202147A JP4596693B2 (ja) 2000-07-06 2001-07-03 ストリーミング方法およびそれを実行するシステム

Publications (3)

Publication Number Publication Date
JP2002084339A true JP2002084339A (ja) 2002-03-22
JP2002084339A5 JP2002084339A5 (ja) 2008-03-21
JP4596693B2 JP4596693B2 (ja) 2010-12-08

Family

ID=26595476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001202147A Expired - Lifetime JP4596693B2 (ja) 2000-07-06 2001-07-03 ストリーミング方法およびそれを実行するシステム

Country Status (1)

Country Link
JP (1) JP4596693B2 (ja)

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004102968A1 (ja) * 2003-05-13 2004-11-25 Fujitsu Limited バッファ量推測装置、配信品質監視装置、配信品質管理装置、バッファ量推測方法、配信品質監視方法、配信品質管理方法、バッファ量推測プログラム、及び配信品質監視プログラム
WO2004112420A1 (ja) * 2003-06-11 2004-12-23 Nec Corporation メディア信号の受信装置、送信装置及び送受信システム
WO2005039180A1 (ja) * 2003-10-16 2005-04-28 Nec Corporation メディア信号の送信方法と受信方法ならびに送受信方法及び装置
JP2005531220A (ja) * 2002-06-21 2005-10-13 トムソン ライセンシング 移動無線相互接続環境における記憶されたビデオストリーミングのための減少するネットワークqos要件
JP2006174419A (ja) * 2004-12-10 2006-06-29 Microsoft Corp ストリーミングメディアデータの符号化ビットレートを制御するシステム
JP2006523979A (ja) * 2003-04-17 2006-10-19 トムソン ライセンシング データ要求送信装置及びプロセス並びに対応するプロダクツ
JP2006303749A (ja) * 2005-04-19 2006-11-02 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
JP2006345582A (ja) * 2001-02-08 2006-12-21 Nokia Corp メディアデータをストリーミングする方法、システム及びクライアント装置
JP2007013675A (ja) * 2005-06-30 2007-01-18 Sanyo Electric Co Ltd ストリーミング配信システム及びサーバ
US7299292B2 (en) 2002-03-29 2007-11-20 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream to a virtual smart card client system
JP2008533808A (ja) * 2005-03-07 2008-08-21 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチメディアチャネルの切り替え
JP2009510855A (ja) * 2005-11-07 2009-03-12 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動通信ネットワークにおける方法および装置
JP2009278197A (ja) * 2008-05-12 2009-11-26 Fujitsu Ltd フレーム送信装置、フレーム送信方法およびフレーム送信プログラム
JP2010034899A (ja) * 2008-07-29 2010-02-12 Canon Inc ストリームデータ処理装置、ストリームデータ処理方法、及びストリームデータ処理プログラム
US7664126B2 (en) 2002-07-31 2010-02-16 Sharp Kabushiki Kaisha Data communication apparatus, intermittent communication method therefor, program describing the method and recording medium for recording the program
JP2010088137A (ja) * 2010-01-18 2010-04-15 Brother Ind Ltd 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム
JP2011501478A (ja) * 2007-06-18 2011-01-06 セルロン カンパニー リミテッド Iptv放送サービスのトラフィック制御方法
US7987284B2 (en) 2005-03-28 2011-07-26 Sony Corporation Communication processing apparatus, data communication system, and communication processing method
US8055894B2 (en) 1999-11-09 2011-11-08 Google Inc. Process and streaming server for encrypting a data stream with bandwidth based variation
US8175599B2 (en) 2004-07-12 2012-05-08 Samsung Electronics Co., Ltd. Method, medium, and apparatus controlling handover between different networks
JP2012514917A (ja) * 2009-01-13 2012-06-28 聯發科技股▲ふん▼有限公司 ワイヤレス通信システム中の無線リソースの有効利用方法
US8214552B2 (en) 2007-01-11 2012-07-03 Sony Corporation Transmission apparatus, transmission method, communication apparatus, and program
US8243924B2 (en) 2007-06-29 2012-08-14 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
JP2012520010A (ja) * 2009-03-06 2012-08-30 アスペラ,インク. I/o駆動の速度適応のための方法およびシステム<関連出願>本出願は、2009年3月6日に出願された仮出願シリアル番号61/158,000に対する優先権を主張し、かつこの出願を参照によって組み込む。この出願はまた、以下の出願の明細書の全体に関連し、かつこれらを参照によって組み込む。以下の出願とは、すなわち、2005年12月23日に出願され“bulkdatatransfer”とタイトルされた米国特許出願11/317,663、および、2007年9月4日に出願され“methodandsystemforaggregatebandwidthcontrol”とタイトルされた米国特許出願11/849,782である。
JP2013535892A (ja) * 2010-07-23 2013-09-12 アルカテル−ルーセント ビデオチャンクを伝送するための方法、そのような方法を実現するサーバエンティティ、クライアントエンティティ、および中間ネットワークエンティティ
JP5307545B2 (ja) * 2006-09-11 2013-10-02 パナソニック株式会社 画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi
US8689016B2 (en) 2005-12-02 2014-04-01 Google Inc. Tamper prevention and detection for video provided over a network to a client
WO2015011841A1 (ja) 2013-07-26 2015-01-29 富士通株式会社 符号化装置、符号化方法、および符号化プログラム
JP2016529776A (ja) * 2013-07-08 2016-09-23 華為技術有限公司Huawei Technologies Co.,Ltd. ビデオ再生を制御する方法、デバイス及びシステム
JP2016225954A (ja) * 2015-06-03 2016-12-28 富士通株式会社 中継方法、中継プログラム及び中継装置
US10623464B2 (en) 2014-11-19 2020-04-14 Nec Corporation Data transmission device and data transmission method
JP2021513440A (ja) * 2018-06-15 2021-05-27 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド 仮想シーンのシーン画像を送信するための方法及び装置、コンピュータデバイス並びにコンピュータ読み取り可能記憶媒体

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015022345A (ja) 2013-07-16 2015-02-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ転送が停止しまうことがないように、キャッシュされているデータの転送レートを適合させる方法、システム、および、プログラム

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0575666A (ja) * 1991-09-17 1993-03-26 Toshiba Corp 伝送フロー制御方式
JPH07170290A (ja) * 1993-12-15 1995-07-04 Sony Corp 通信システム
JPH08237650A (ja) * 1994-10-21 1996-09-13 At & T Corp データバッファの同期システム
JPH09298734A (ja) * 1996-04-30 1997-11-18 Matsushita Electric Ind Co Ltd ビデオオンデマンドシステム
JPH1041953A (ja) * 1996-07-23 1998-02-13 Hitachi Ltd 輻輳制御システム
JPH10336626A (ja) * 1997-05-30 1998-12-18 Nec Software Ltd 映像データの転送方法および転送装置
JPH1168880A (ja) * 1997-08-22 1999-03-09 Canon Inc データ通信装置及び方法及びシステム及び記憶媒体
JPH11187367A (ja) * 1997-12-19 1999-07-09 Nec Corp 映像送信装置,映像受信装置及びこれらを用いた映像伝送システム
JPH11205390A (ja) * 1998-01-14 1999-07-30 Toshiba Corp 伝送システム、端末装置、サーバ装置及び記録媒体
JP2000183873A (ja) * 1998-12-11 2000-06-30 Fujitsu Ltd データ転送方法
JP2001257715A (ja) * 2000-03-09 2001-09-21 Nippon Hoso Kyokai <Nhk> 蓄積送信端末

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0575666A (ja) * 1991-09-17 1993-03-26 Toshiba Corp 伝送フロー制御方式
JPH07170290A (ja) * 1993-12-15 1995-07-04 Sony Corp 通信システム
JPH08237650A (ja) * 1994-10-21 1996-09-13 At & T Corp データバッファの同期システム
JPH09298734A (ja) * 1996-04-30 1997-11-18 Matsushita Electric Ind Co Ltd ビデオオンデマンドシステム
JPH1041953A (ja) * 1996-07-23 1998-02-13 Hitachi Ltd 輻輳制御システム
JPH10336626A (ja) * 1997-05-30 1998-12-18 Nec Software Ltd 映像データの転送方法および転送装置
JPH1168880A (ja) * 1997-08-22 1999-03-09 Canon Inc データ通信装置及び方法及びシステム及び記憶媒体
JPH11187367A (ja) * 1997-12-19 1999-07-09 Nec Corp 映像送信装置,映像受信装置及びこれらを用いた映像伝送システム
JPH11205390A (ja) * 1998-01-14 1999-07-30 Toshiba Corp 伝送システム、端末装置、サーバ装置及び記録媒体
JP2000183873A (ja) * 1998-12-11 2000-06-30 Fujitsu Ltd データ転送方法
JP2001257715A (ja) * 2000-03-09 2001-09-21 Nippon Hoso Kyokai <Nhk> 蓄積送信端末

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055894B2 (en) 1999-11-09 2011-11-08 Google Inc. Process and streaming server for encrypting a data stream with bandwidth based variation
US8386771B2 (en) 1999-11-09 2013-02-26 Google Inc. Process and streaming server for encrypting a data stream with bandwidth based variation
JP2006345582A (ja) * 2001-02-08 2006-12-21 Nokia Corp メディアデータをストリーミングする方法、システム及びクライアント装置
JP4690280B2 (ja) * 2001-02-08 2011-06-01 ノキア コーポレイション メディアデータをストリーミングする方法、システム及びクライアント装置
US7299292B2 (en) 2002-03-29 2007-11-20 Widevine Technologies, Inc. Process and streaming server for encrypting a data stream to a virtual smart card client system
US7640565B2 (en) 2002-06-21 2009-12-29 Thomson Licensing Ever-decreasing network QOS requirements for stored video streaming in a mobile wireless interworking environment
KR100978172B1 (ko) * 2002-06-21 2010-08-25 톰슨 라이센싱 이동 무선 상호연동 환경에서의 저장된 비디오 스트리밍을위한 지속 감소 네트워크 qos 요구 조건
JP2005531220A (ja) * 2002-06-21 2005-10-13 トムソン ライセンシング 移動無線相互接続環境における記憶されたビデオストリーミングのための減少するネットワークqos要件
US7664126B2 (en) 2002-07-31 2010-02-16 Sharp Kabushiki Kaisha Data communication apparatus, intermittent communication method therefor, program describing the method and recording medium for recording the program
JP2006523979A (ja) * 2003-04-17 2006-10-19 トムソン ライセンシング データ要求送信装置及びプロセス並びに対応するプロダクツ
WO2004102968A1 (ja) * 2003-05-13 2004-11-25 Fujitsu Limited バッファ量推測装置、配信品質監視装置、配信品質管理装置、バッファ量推測方法、配信品質監視方法、配信品質管理方法、バッファ量推測プログラム、及び配信品質監視プログラム
JP4909590B2 (ja) * 2003-06-11 2012-04-04 日本電気株式会社 メディア信号の受信装置、送信装置及び送受信システム
JPWO2004112420A1 (ja) * 2003-06-11 2006-07-20 日本電気株式会社 メディア信号の受信装置、送信装置及び送受信システム
WO2004112420A1 (ja) * 2003-06-11 2004-12-23 Nec Corporation メディア信号の受信装置、送信装置及び送受信システム
WO2005039180A1 (ja) * 2003-10-16 2005-04-28 Nec Corporation メディア信号の送信方法と受信方法ならびに送受信方法及び装置
JP4903435B2 (ja) * 2003-10-16 2012-03-28 日本電気株式会社 メディア信号の送信方法と受信方法ならびに送受信方法及び装置
JPWO2005039180A1 (ja) * 2003-10-16 2007-11-22 日本電気株式会社 メディア信号の送信方法と受信方法ならびに送受信方法及び装置
US8175599B2 (en) 2004-07-12 2012-05-08 Samsung Electronics Co., Ltd. Method, medium, and apparatus controlling handover between different networks
US8526956B2 (en) 2004-07-12 2013-09-03 Samsung Electronics Co., Ltd. Method, medium, and apparatus controlling handover between different networks
JP2006174419A (ja) * 2004-12-10 2006-06-29 Microsoft Corp ストリーミングメディアデータの符号化ビットレートを制御するシステム
JP2008533808A (ja) * 2005-03-07 2008-08-21 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチメディアチャネルの切り替え
JP4773505B2 (ja) * 2005-03-07 2011-09-14 テレフオンアクチーボラゲット エル エム エリクソン(パブル) マルチメディアチャネルの切り替え
US7987284B2 (en) 2005-03-28 2011-07-26 Sony Corporation Communication processing apparatus, data communication system, and communication processing method
JP2006303749A (ja) * 2005-04-19 2006-11-02 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
JP2007013675A (ja) * 2005-06-30 2007-01-18 Sanyo Electric Co Ltd ストリーミング配信システム及びサーバ
JP2009510855A (ja) * 2005-11-07 2009-03-12 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動通信ネットワークにおける方法および装置
US8689016B2 (en) 2005-12-02 2014-04-01 Google Inc. Tamper prevention and detection for video provided over a network to a client
JP5307545B2 (ja) * 2006-09-11 2013-10-02 パナソニック株式会社 画像復号化装置、画像復号化方法、画像復号化システム、及びシステムlsi
US8214552B2 (en) 2007-01-11 2012-07-03 Sony Corporation Transmission apparatus, transmission method, communication apparatus, and program
JP2011501478A (ja) * 2007-06-18 2011-01-06 セルロン カンパニー リミテッド Iptv放送サービスのトラフィック制御方法
US9038147B2 (en) 2007-06-29 2015-05-19 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
US8752194B2 (en) 2007-06-29 2014-06-10 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
US8243924B2 (en) 2007-06-29 2012-08-14 Google Inc. Progressive download or streaming of digital media securely through a localized container and communication protocol proxy
JP2009278197A (ja) * 2008-05-12 2009-11-26 Fujitsu Ltd フレーム送信装置、フレーム送信方法およびフレーム送信プログラム
JP2010034899A (ja) * 2008-07-29 2010-02-12 Canon Inc ストリームデータ処理装置、ストリームデータ処理方法、及びストリームデータ処理プログラム
JP2012514917A (ja) * 2009-01-13 2012-06-28 聯發科技股▲ふん▼有限公司 ワイヤレス通信システム中の無線リソースの有効利用方法
US9419907B2 (en) 2009-03-06 2016-08-16 International Business Machines Corporation I/O driven rate adaptation
JP2012520010A (ja) * 2009-03-06 2012-08-30 アスペラ,インク. I/o駆動の速度適応のための方法およびシステム<関連出願>本出願は、2009年3月6日に出願された仮出願シリアル番号61/158,000に対する優先権を主張し、かつこの出願を参照によって組み込む。この出願はまた、以下の出願の明細書の全体に関連し、かつこれらを参照によって組み込む。以下の出願とは、すなわち、2005年12月23日に出願され“bulkdatatransfer”とタイトルされた米国特許出願11/317,663、および、2007年9月4日に出願され“methodandsystemforaggregatebandwidthcontrol”とタイトルされた米国特許出願11/849,782である。
US9276865B2 (en) 2009-03-06 2016-03-01 International Business Machines Corporation Method and system for I/O driven rate adaptation
JP2010088137A (ja) * 2010-01-18 2010-04-15 Brother Ind Ltd 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム
JP2013535892A (ja) * 2010-07-23 2013-09-12 アルカテル−ルーセント ビデオチャンクを伝送するための方法、そのような方法を実現するサーバエンティティ、クライアントエンティティ、および中間ネットワークエンティティ
JP2016529776A (ja) * 2013-07-08 2016-09-23 華為技術有限公司Huawei Technologies Co.,Ltd. ビデオ再生を制御する方法、デバイス及びシステム
WO2015011841A1 (ja) 2013-07-26 2015-01-29 富士通株式会社 符号化装置、符号化方法、および符号化プログラム
US10284865B2 (en) 2013-07-26 2019-05-07 Fujitsu Limited Encoding device, encoding method, and recording medium
US10623464B2 (en) 2014-11-19 2020-04-14 Nec Corporation Data transmission device and data transmission method
JP2016225954A (ja) * 2015-06-03 2016-12-28 富士通株式会社 中継方法、中継プログラム及び中継装置
JP2021513440A (ja) * 2018-06-15 2021-05-27 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド 仮想シーンのシーン画像を送信するための方法及び装置、コンピュータデバイス並びにコンピュータ読み取り可能記憶媒体
JP7072677B2 (ja) 2018-06-15 2022-05-20 テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド 仮想シーンのシーン画像を送信するための方法及び装置、コンピュータデバイス並びにコンピュータ読み取り可能記憶媒体
US11831566B2 (en) 2018-06-15 2023-11-28 Tencent Technology (Shenzhen) Company Limited Method and apparatus for transmitting scene image of virtual scene, computer device, and computer-readable storage medium

Also Published As

Publication number Publication date
JP4596693B2 (ja) 2010-12-08

Similar Documents

Publication Publication Date Title
JP2002084339A (ja) ストリーミング方法およびそれを実行するシステム
US7016970B2 (en) System for transmitting stream data from server to client based on buffer and transmission capacities and delay time of the client
JP5215604B2 (ja) クライアント装置、通信システム及びデータ処理方法
US9148696B2 (en) Data transmission system, receiving apparatus, and receiving method as well as sending apparatus and sending method
JP4087852B2 (ja) ビデオの伝送方法
KR101510822B1 (ko) 적응적 트릭 플레이 스트리밍
EP1675399A2 (en) Fast channel switching for digital TV
JP4952581B2 (ja) 多地点会議システム、多地点会議方法及びプログラム
CN117581552A (zh) 在传输预创作视频帧和合成视频帧之间切换
JP3609488B2 (ja) 情報処理システム
TW201026064A (en) Method for audio and video control response and bandwidth adaptation based on network streaming application and server using the same
EP1552644A1 (en) Streaming media
JP2003244695A (ja) 映像情報伝送方式、それに用いられる装置およびプログラム
JP2009524328A (ja) ビデオストリーム信号におけるフレームデータの置換
WO2008108379A1 (ja) メディア配信システム、配信サーバ装置及びそれらに用いるメディア配信方法並びにそのプログラム
JP6463041B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP2008029006A (ja) クライアント装置、通信システム及びデータ処理方法
JP2010245822A (ja) 動画像符号化装置および動画像符号化方法
JP4108640B2 (ja) 映像伝送システム
JP6089846B2 (ja) 映像配信システム及びデコーダ並びに映像配信方法
WO2004045216A1 (en) Video streaming device and method of control for switchable video streams
JP4261250B2 (ja) 画像データ伝送装置及び方法、画像データ再生装置及び方法
EP3661216A1 (en) A method and apparatus for loop-playing video content
JP2011061362A (ja) 符号化装置、符号化方法、および符号化プログラム
CN117121463A (zh) 在可定制内容和预创作媒体内容的递送之间切换

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080131

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100618

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100831

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: 20100921

R150 Certificate of patent or registration of utility model

Ref document number: 4596693

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: 20131001

Year of fee payment: 3

SZ02 Written request for trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z02

S131 Request for trust registration of transfer of right

Free format text: JAPANESE INTERMEDIATE CODE: R313133

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

EXPY Cancellation because of completion of term