JP2005033556A - データ送信装置、データ送信方法、データ受信装置、データ受信方法 - Google Patents
データ送信装置、データ送信方法、データ受信装置、データ受信方法 Download PDFInfo
- Publication number
- JP2005033556A JP2005033556A JP2003196725A JP2003196725A JP2005033556A JP 2005033556 A JP2005033556 A JP 2005033556A JP 2003196725 A JP2003196725 A JP 2003196725A JP 2003196725 A JP2003196725 A JP 2003196725A JP 2005033556 A JP2005033556 A JP 2005033556A
- Authority
- JP
- Japan
- Prior art keywords
- data
- packet
- parameter
- encoded
- stream
- 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.)
- Pending
Links
Images
Landscapes
- Television Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】送信側装置および受信側装置の双方の処理負荷を高めることなく、受信側装置が置かれている多様な伝送環境に対して適応的なデータ伝送を実現することのできる装置、および方法を提供することを目的とする。
【解決手段】同一のデータ信号を異なる符号化パラメータを用いて符号化し、第1、第2の符号化データストリームを生成する。第1の符号化データストリームはパケット化されて第1のマルチキャストアドレスに送信される。第2の符号化データストリームは第2のマルチキャストアドレスに送信される。第1、第2の符号化データストリームの生成に用いられたそれぞれの符号化パラメータを第1、第2のマルチキャストアドレスに対応付けて表すパラメータデータが要求に応じてデータ受信装置に送信される。データ受信装置はパラメータデータに基づいてマルチキャストアドレスを切り替えて符号化データストリームを選択的に受信する。
【選択図】 図1
【解決手段】同一のデータ信号を異なる符号化パラメータを用いて符号化し、第1、第2の符号化データストリームを生成する。第1の符号化データストリームはパケット化されて第1のマルチキャストアドレスに送信される。第2の符号化データストリームは第2のマルチキャストアドレスに送信される。第1、第2の符号化データストリームの生成に用いられたそれぞれの符号化パラメータを第1、第2のマルチキャストアドレスに対応付けて表すパラメータデータが要求に応じてデータ受信装置に送信される。データ受信装置はパラメータデータに基づいてマルチキャストアドレスを切り替えて符号化データストリームを選択的に受信する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、通信ネットワーク、特にマルチキャストネットワークを介して画像や音声などのデータを送受信し、再生する方法及び装置に関する。
【0002】
【従来の技術】
近年、画像をはじめとする各種情報のディジタル符号化技術及び広帯域ネットワーク技術の進展により、これらの技術を利用して圧縮符号化した画像データをネットワークを通じて伝送するシステムが開発されている。データ伝送の際に、多数のユーザが効率よく伝送路を利用する手法として、データをパケット化して送受信する方法が有効である。データをパケット化して伝送するプロトコルとしては、TCP/IP(Transmission Control Protocol/Internet Protocol)やUDP/IP(User Datagram Protocol/Internet Protocol)などが存在する。TCP/IPは再送などの枠組みが組み込まれていることから誤り耐性が高く、多少時間がかかっても正しくデータを受信したいダウンロード型のアプリケーションに有効である。またTCP/IPは、ウインドウサイズと呼ばれるパケットのサイズをネットワークからの応答により動的に変更することで輻輳制御を行うことが可能であるものの、リアルタイム性を求められるアプリケーションには非力である。これに対し、UDP/IPは再送の枠組みを備えていないことから、再送などにかかる遅延がなく、リアルタイム性を求められるアプリケーションに極めて有効である。
【0003】
さらに近年では、UDPをベースにして、オーディオ・データやビデオ・データをリアルタイム伝送するためのRTP(Real−time Transport Protocol)を利用するアプリケーションが増えてきている。RTPについてはRFC1889に規定されており、リアルタイム会話形式でデータを授受するビデオ会議のようなマルチメディア・システムに適用されることが想定されている。なお、RTPはRTPヘッダー中にパケットの順序番号や時間情報(タイム・スタンプ)を記述可能なパケットフォーマットを有しており、これらの情報に基づくリアルタイム動作をサポートしている。例えば、受信側では、パケットに記述された正しい時間情報に従って音声や画像のコンテンツデータを構築して適切に表示再生することができる。また、ネットワーク伝送過程で順番が入れ替わったパケットを判定したり、伝送中にどのパケットが損失したかなどをパケット番号に基づいて検知することができる。RTPには音質や画質の品質保証機能は設けられていないが、パケット送信受の補足情報として、ジッタ(遅延情報)やパケット損失率などを相互間で通知する仕組み(RTCP)を備える。
【0004】
リアルタイム性を求められるアプリケーションの代表例として動画像の伝送が挙げられるが、ごく普通の動画像であっても、そのままのデータ形式では画像データ量はきわめて膨大でありネットワーク帯域を圧迫するから、画像データを符号化し、データ量をあらかじめ圧縮してから伝送するという手法が採られる。
【0005】
動画像信号の圧縮符号化技術としては動き補償、離散コサイン変換(DCT)、サブバンド符号化、ピラミッド符号化、可変長符号化等の技術やこれらを組み合わせた方式が開発されている。動画像符号化の国際標準方式としてはISO MPEG−1、MPEG−2、ITU−T H.261、H.262、H.263が存在し、また動画像、音声・オーディオ信号を圧縮した符号列や他のデータを多重化する国際標準方式としてはISO MPEGシステム、ITU−T H.221、H.223が存在する。これらの符号化方式によるデータ量の圧縮効果は極めて高いが、不安定な伝送路上でデータを伝送することによるパケット損失や誤りの混入に対して脆弱である。これは、動画像符号化方式では前フレームとの差分フレームのみを送信していることに起因しており、データの一部が欠落することが、圧縮効果が高いが故に重大な問題になり得るからである。UDPやRTPがデータ伝送に利用される場合、これらは基本的にデータの再送を行わないことから、この問題への対策が必要であるとされている。
【0006】
画像符号化の中には、通常2つのモードが存在する。前述した前のフレームとの差分を送るフレーム間符号化モード(P Picture)と、1枚のフレームの中で閉じた符号化を行うフレーム内符号化モード(I Picture)である。通常のデータ伝送シーケンスでは、適当な時間間隔でフレーム内符号化モードとし、それらの間はフレーム間符号化モードとする。このフレーム内符号化モードでフレームを符号化する間隔をGOP(Group of Pictures)間隔と呼ぶ。データの欠落が発生しある復号画像が壊れてしまった場合、それ以降、フレーム間符号化モードで符号化を行っていると、壊れた画像をもとに復号を行うため、以降の復号画像全てが影響を被り、正しく復号できないことになる。そこで、フレーム内符号化モードで符号化されたフレームを途中に挿入することで、誤りの影響の伝播をそこで断ち切るようにしている。ただし、フレーム内符号化モードは、フレーム間符号化モードに比べて符号量を必要とするため、同じビットレートでGOP間隔を短くすると画質が低下するため、誤りの発生率に応じて適切なGOP間隔になるように制御を行う必要がある。
【0007】
また、UDPはTCPのような輻輳制御機能を備えていないことから、UDPを用いた画像伝送アプリケーションでは常にネットワークの帯域を越えないような伝送レートでデータを送受信する必要がある。例えば、リアルタイム性が求められるデータを通信路の帯域を越える高い送信レートで送信すると、ネットワーク上のルータなどのバッファに送信したデータが蓄積され(輻輳)、これにより伝送遅延が大きくなる。さらに、バッファの許容量を超えるデータが送信されると、輻輳が限界を超えてバッファが溢れてしまい、パケットロスが生じるなどの障害が発生する。
【0008】
これらの誤りや輻輳への対策を講じた従来技術として、RTCPを利用し受信側からのパケットロス率やジッタなどの情報をRTCPレポートから得て、これに基づき伝送レートや誤り耐性のパラメータを送信側で制御するものがある(例えば、下記特許文献1を参照。)。
【0009】
また、伝送路使用帯域の節約のためには、マルチキャストと呼ばれるパケット送信技術が有効であるとされている。インターネットでのパケット送信方法には、ユニキャスト、マルチキャスト、ブロードキャストがある。ユニキャストでは、送信元から、データを要求した各クライアントにそのコピーがそれぞれ送信される。ブロードキャストでは、ネットワーク上のすべてのクライアントに1つのデータのコピーが送信される。これに対しマルチキャストでは、データを要求したクライアント群に、データのコピーが1つのみ送信される。近年、伝送路の広帯域化が進んでいるものの、多数のクライアントに向けて同一のコンテンツを伝送する場合、伝送路を効率的に使用することが必要であり、このためにマルチキャストが有効である。
【0010】
しかし、受信側から得られるパケットロス率やジッタの情報に基づき、送信側で送信レートおよびGOP間隔の制御を行うことを考えた場合、RTCPレポートは各受信側から個別に送信されることから、すべてのRTCPレポートに対して処理を行うとすると、送信側に極めて高い処理負担がかかってしまう。また、クライアントが多くなるほどRTCPレポートの送信数も増えることから、帯域が浪費されることも問題である。
【0011】
これらの問題を解決するために、各クライアントからのRTCPレポートを集約し、送信レートおよびGOP間隔の制御を、最も通信環境の悪いクライアントからのRTCPレポートを基準にして行うことが考えられる。しかし、マルチキャストにおいては送信側から送信されるストリームは一つであるから、良好な通信環境に居るクライアントが存在するにもかかわらず、伝送するデータの品質を下げることになり、好ましくない。反対に、最も通信環境の良好なクライアントからのRTCPレポートを基準にする場合、悪い通信環境に居るクライアントは正常にデータを受信することができなくなる。
【0012】
このようなクライアント側の通信環境の多様性を考慮したデータ伝送を可能にする従来技術の一つに階層化マルチキャストがある(例えば、下記特許文献2を参照。)。この階層化マルチキャストでは、1つのストリームのデータを分割して階層に振り分けるとともに、階層に応じて異なるマルチキャストグループに分割されたストリームデータを配信する。それぞれ通信環境が異なる各クライアントは、ネットワークの状態に応じて各々がデータを受信する階層を制御する。これにより、受信レートの分散的な制御が実現される。階層化マルチキャストにおいて、サーバは例えば1つのストリームデータをフレーム内符号化されたフレームのみを含む階層と、フレーム間符号化されたフレームのみを含む階層の2つの階層に分割する。この分割された階層をさらにフレームの低周波成分のみを含む階層と、フレームの高周波成分のみを含む階層とに分割する場合もある。
【0013】
【特許文献1】
特開2002―204278公報
【0014】
【特許文献2】
特開2000−78573公報
【0015】
【発明が解決しようとする課題】
上記のような階層化マルチキャスト方式では、有線ネットワークにおける伝送帯域を有効に利用するとともに多様なクライアントに対する品質管理を行うことができる。しかしながら、サーバ側における階層符号化の処理負荷およびクライアント側における復号化の処理負荷の双方が、階層化を行わない場合に比べて極めて高いという問題点がある。また、誤り耐性に対するパラメータの制御が行えないことや、帯域に余裕がないクライアントでは1本のストリームの分割された階層の一部のみを受信することになり、フレームレートが落ちて見難い画像を受信することになる可能性、高周波成分を含む階層を受信できずに復号化の際にミスマッチが生じ、正しく復号が行えずに画質が低下する可能性、などが問題点として挙げられる。
【0016】
本発明は、送信側装置および受信側装置の双方の処理負荷を高めることなく、受信側装置が置かれている多様な伝送環境に対して適応的なデータ伝送を実現することのできる装置、および方法を提供することを目的とする。
【0017】
【課題を解決するための手段】
本発明の一観点に係わるデータ送信装置は、データ信号を入力する入力手段と、前記データ信号を第1、第2の符号化パラメータを用いて符号化して第1、第2の符号化データストリームを生成する符号化手段と、前記第1の符号化データストリームをパケット化して第1のマルチキャストアドレスに送信するとともに、前記第2の符号化データストリームをパケット化して第2のマルチキャストアドレスに送信するパケットデータ送信手段と、前記第1、第2の符号化パラメータを前記第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータをデータ受信装置からの要求に応じて送信するパラメータ送信手段と、を具備する。
【0018】
また本発明の他の観点に係るデータ受信装置は、同一のデータ信号を第1、第2の符号化パラメータを用いて符号化して生成された第1、第2の符号化データストリームのそれぞれの符号化パラメータを第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータを受信するパラメータ受信手段と、前記パラメータデータに基づいて前記第1、第2のマルチキャストアドレスのいずれか一方を選択するアドレス選択手段と、前記アドレス選択手段により選択されたマルチキャストアドレスに対応する前記第1、第2の符号化データストリームのいずれか一方のパケットデータを受信するパケットデータ受信手段と、前記パケットデータ受信手段により受信されたパケットデータを復号して前記データ信号を再生するデータ再生手段と、を具備する。
【0019】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【0020】
(第1の実施形態)
本発明の実施形態は、動画像データの伝送をマルチキャストで行うデータ伝送システムに関する。本システムにおいて、動画像データを送信するデータ送信装置を「サーバ」又は「送信側」と呼ぶ。この装置は、ある動画像の画像信号を異なる符号化パラメータで符号化して構築された複数のストリームを、異なるマルチキャストアドレスに、例えばRTPなどのプロトコルを用いて配信する。また、動画像データを要求し、データ送信装置から受信するデータ受信装置を「クライアント」又は「受信側」と呼ぶ。この装置は、パケットの遅延や損失などの情報から通信路の状態を判定し、送信側から送信される複数のストリームの中から通信路の状態に適切な符号化パラメータのストリームを1つ選択し、マルチキャストアドレスから受信する。
【0021】
図1は、本発明の第1の実施形態に係るデータ伝送システムの全体構成を示すブロック図である。このデータ伝送システムは、データの配信装置である少なくとも1つのサーバ2000と、サーバ2000から転送されるコンテンツデータ(ここでは動画像)を受信して再生する少なくとも1つ以上のクライアント1000a〜1000dから構成されている。サーバ2000とクライアント1000a〜1000dはネットワーク3000を介して接続されている。サーバ2000は、1つ以上のデータストリームS1〜S3をそれぞれ異なるマルチキャストアドレスグループにネットワーク3000を介してマルチキャストで送信する。クライアント1000a〜1000dはデータストリームS1〜S3の中から、それぞれの通信路の状態に応じたデータストリームを選択して受信する。また、クライアント1000a〜1000dは、それぞれの通信路の状態変化に応じて、動的に受信するデータストリームを変更する。
【0022】
図2は、サーバの内部構成を示すブロック図である。サーバ2000は、図2に示すように、例えばビデオカメラで撮影された映像(動画像)の画像信号を入力する画像入力部2100と、画像入力部2100から得られる画像信号2006を異なるパラメータで符号化する画像符号化部2400a〜2400cと、画像符号化部2400a〜2400cが出力する符号化データ2005a〜2005cをパケット化し、パケット化された符号化データ2004a〜2004cのそれぞれを異なるマルチキャストアドレスに送信するパケットデータ送信部2200と、少なくとも1つの画像符号化部2400a〜2400cから得られるそれぞれ異なる符号化パラメータ2001と、パケットデータ送信部2200がそれぞれの符号化データをパケット化して送信する際の例えば送信先マルチキャストアドレスなどを含む送信パラメータ2002との対応が記述されたパラメータデータ2003を送信するパラメータ送信部2300からなる。
【0023】
本実施形態ではパケットの送信に用いるプロトコルとしてUDP/IPおよびRTPを用いることとするが、これらに限るものではない。この図2に示すサーバは、例えばライブ放送システムに好適である。
【0024】
このように構成されたサーバ2000では、まず画像入力部2100から画像信号2006が入力される。この入力された画像信号2006は、画像符号化部2400a〜2400cでそれぞれ符号化される。この符号化の際、画像符号化部2400a〜2400cは、それぞれ別の符号化パラメータを用いて符号化を行う。例えば、2400aは、GOP間隔2s、ビットレート128kbpsで符号化し、2400bはGOP間隔0.5s、ビットレート128kbpsで符号化し、2400cはGOP間隔2s、ビットレート64kbpsで符号化する。ここで、画像符号化部は図2の場合3つであるが、1つ以上であればいくつでもかまわない。画像符号化部の数に応じて、出力される符号化データの数も変化する。
【0025】
パケットデータ送信部2200では、画像符号化部2400a〜2400cの各々が出力した符号化データ2005a〜2005cを、それぞれパケット化して伝送する。このときの伝送先のアドレスは、それぞれの符号化データに対し、異なるマルチキャストアドレスとする。すなわち、例えば符号化データ2005aはパケット化された後、マルチキャストアドレス「224.1.1.1」に送信され、符号化データ2005bはパケット化された後マルチキャストアドレス「224.1.1.2」に送信され、符号化データ2005cはパケット化された後マルチキャストアドレス「224.1.1.3」に送信される。またこれらのパケットデータには、例えば伝送プロトコルとしてRTPを用いる場合、異なるペイロード番号を付与して送信することも可能である。例えば、パケットデータ2004aにはペイロード番号96を付与して送信し、パケットデータ2004bにはペイロード番号97を付与して送信し、パケットデータ2004cにはペイロード番号98を付与して送信する。
【0026】
パラメータ送信部2300では、前述のパケットデータ送信部2200で送信されるパケットデータ2004a〜2004cのそれぞれの符号化パラメータと、送信時のマルチキャストアドレスやペイロード番号などの対応が記述されたパラメータデータ2003を送信する。パラメータ送信部2300では、画像符号化部2400a〜2400cが符号化を行う際のGOP間隔やビットレートなどの符号化パラメータ2001と、パケットデータ送信部2200が各符号化データ2005a〜2005cをパケット化し、送信する際の送信先マルチキャストアドレスやペイロード番号などの送信パラメータ2002を対応づけたパラメータデータ2003を送信する。このデータ2003は、あらかじめ作成されたものを用意しておき、画像符号化部2400およびパケット送信部2200がこのデータを参照して符号化パラメータの設定およびパケットの送信パラメータの設定を行うことも可能である。
【0027】
ここで、パラメータ送信部2300が送信するパラメータデータの例を図3に示す。パラメータデータは例えば、少なくとも1つの符号化データの1つを識別するためのStreamNoと、該符号化データをパケット化し送信する際の送信先IP Addressと、該符号化データのGOP間隔と、該符号化データの送信レートと、例えばRTPを用いて伝送する場合のペイロード番号などを対応づけるデータである。図3の例では、StreamNoが1の符号化データは、GOP間隔2秒、符号化レート128kbpsで符号化されたデータであり、ペイロード番号96番を用いてマルチキャストアドレス「224.1.1.1」に送信されることがわかる。図3では、StreamNo1,2,3が例えばパケットデータ2004a、2004b、2004cに対応するパラメータとなっている。図3は符号化パラメータと送信パラメータの対応を示す一例であるが、このような対応を記述可能な規格として例えばSDP(Session Description Protocol)などがあり、SDPで記述されたデータを用い、符号化パラメータと送信パラメータの対応が記述されたデータを送信することも可能である。
【0028】
図4は、サーバの他の構成例を示すブロック図である。このサーバ2000は、図4に示すように、同一の画像信号をあらかじめ異なるパラメータで符号化した少なくとも1つの符号化データ2610a〜2610cを格納する符号化データ格納部2600と、少なくとも1つの符号化データ2610a〜2610cの符号化パラメータを格納する符号化情報格納部2500と、符号化データ格納部2600から、符号化データ2610a〜2610cのうち、符号化情報格納部2500より得られる符号化パラメータ2001に対応する符号化データを読み出す少なくとも1つの符号化データ読み出し部2700a〜2700cと、符号化データ読み出し部2700a〜2700cが出力する符号化データ2005a〜2005cをパケット化するとともにそのパケット化された符号化データ2004a〜2004cを異なるマルチキャストアドレスに送信するパケットデータ送信部2200と、符号化情報格納部2500から得られる符号化パラメータ2001と、パケットデータ送信部2200がそれぞれの符号化データをパケット化して送信する際の例えば送信先マルチキャストアドレスなどを含む送信パラメータ2002との対応を記述したパラメータデータ2003を送信するパラメータ送信部2300とにより構成される。
【0029】
ここで、符号化データ2610a〜2610cは、同一の画像信号を異なる条件で符号化したものである。例えば2610aは、GOP間隔2s、ビットレート128kbpsで符号化され、2610bはGOP間隔0.5s、ビットレート128kbpsで符号化され、2610cはGOP間隔2s、ビットレート64kbpsで符号化されたものである。図4では、あらかじめ異なる符号化パラメータで符号化したデータは3つであるが、1つ以上ならいくつあってもかまわない。これらの符号化データ2610に対応する例えばGOP間隔やビットレートなどの符号化パラメータと、その格納場所を記述したデータを符号化情報格納部2500は保持する。
【0030】
このような構成のサーバ2000では、符号化データ読み出し部2700a〜2700cが符号化データ格納部2600に格納されている符号化データを読み込む。この際、符号化データ読み出し部2700は、符号化データ格納部2600より、符号化情報格納部2600に格納されている符号化データ2610a〜2610cの符号化パラメータおよびその格納場所が記述されたデータ2001から格納場所を参照し、読み出しを行う。ここで、符号化データ読み出し部2700は、図4の場合3つであるが、1つ以上であればいくつあってもかまわない。
【0031】
符号化データ読み出し部2700a〜2700cで読み出された符号化データ2005a〜2005cがパケット送信部2200によってパケット化され送信される方法については、図2に示したサーバと同様である。
【0032】
パラメータ送信部2300では、前述のパケットデータ送信部2200で送信されるパケットデータ2004a〜2004cのそれぞれの符号化された際の符号化パラメータと送信される際の例えばマルチキャストアドレスやペイロード番号などの対応を記述したパラメータデータ2003を送信する。パラメータ送信部2300では、符号化データ2610a〜2610cが符号化された際のGOP間隔やビットレートなどの符号化パラメータ2001と、パケットデータ送信部2200が各符号化データ2005a〜2005cをパケット化し、送信する際の送信先マルチキャストアドレスやペイロード番号を対応づけたデータを送信する。パラメータデータ2003は、例えば図3で示すようなデータである。
【0033】
この図4のサーバは、例えば撮影済みの放送番組などの視聴コンテンツをあらかじめ符号化して蓄積しておき、クライアントから要求されたコンテンツのデータを配信するコンテンツ配信システムに好適である。
【0034】
なお、図4の構成において、前述の符号化データ格納部2600及び符号化情報格納部2500はコンピュータの主記憶に存在してもよいし、フラッシュメモリやハードディスクなどの記憶媒体に存在してもよいし、また他のサーバ上にに存在してもよい。
【0035】
また、図4に示された構成要素のうち、符号化情報格納部2500、符号化データ格納部2600、および符号化データ読み出し部2700を、図2の構成に追加してもよい。この場合、(1)ビデオカメラ等からの入力を符号化して配信する、(2)あらかじめ符号化されたデータを配信する、(3)あるいは双方を同時に行う、といったデータ配信形態をユーザが必要に応じて選択可能にする機能を実現できる。
【0036】
次に、クライアント1000の構成について説明する。図5はクライアント1000の基本的な構成を示すブロック図である。クライアント1000は、図1に示したサーバ2000が送信するパラメータデータ1601を受信するパラメータデータ受信部1100と、サーバ2000が送信するパケット化された符号化データ1602を受信するパケットデータ受信部1300と、パケットデータ受信部1300が解析したパケット情報1604からネットワークの状態を判定し、パラメータデータ受信部1100が受信したパラメータデータ1601から得られる受信の選択肢となるパラメータの候補データ1603より現在のネットワークの状態に適切な符号化データのパラメータ1605を選択し、パケットデータ受信部1300に通知するネットワーク状態判定部1200と、パケットデータ受信部1300から得られる符号化データ1606を復号する画像復号部1400と、復号された画像信号1607を出力する画像出力部1500から構成される。
【0037】
このような構成のクライアント1000では、あらかじめ、パラメータデータ受信部1100において、サーバ2000が送信する少なくとも2つ以上のデータストリームのGOP間隔やビットレートなどの符号化パラメータと、送信先マルチキャストアドレスやペイロード番号などの送信パラメータとを対応づけたパラメータデータ1601を受信しておき、ネットワーク状態判定部1200に渡す。
【0038】
ネットワーク状態判定部1200では、該パラメータデータよりサーバから配信される少なくとも2つ以上のデータストリームのパラメータデータより1つのデータストリームのパラメータデータを選択し、パケットデータ受信部1300に通知する。ここで、ネットワーク状態判定部1200において、最初に受信するデータストリームのパラメータを選択する方法は、例えば一番GOP間隔が長い、あるいは短いストリームを選択したり、一番ビットレートの高い、あるいは低いストリームを選択したり、あらかじめ通信路の帯域がわかっている場合には、その帯域以下で一番高いビットレートの高いストリームを選択したり、あるいはパラメータデータにデフォルトのストリームのパラメータを記述しておいて、それに該当するストリームを選択するなど、さまざまな方法が考えられるが、ここに挙げたものに限るものではなく、どれか1つのストリームを選択する方法であれば何でもよい。
【0039】
パケットデータ受信部1300は、ネットワーク状態判定部1200において選択されたパラメータに記述されたマルチキャストアドレスから選択されたストリームデータパケットの受信を開始する。ストリームデータパケットの受信を行う方法としては、該データストリームが配信されているマルチキャストグループのマルチキャストアドレス宛てに受信宣言(JOIN)を行う(例えば、IGMP(Internet Group Management Protocol)に従う)ことが一般的である。
【0040】
パケットデータ受信部1300により受信されたパケットデータ1602に含まれる符号化データ1606(符号化データおよびタイムスタンプなどの時刻情報)は、画像復号部1400に渡され、画像信号1607に復号されたのち、表示装置などの画像出力部1500に出力される。
【0041】
また、パケットデータ1602に含まれるシーケンス番号や到着時刻より導かれる遅延情報(ジッタ)などを含むパケット情報1604は、ネットワーク状態判定部1200に渡される。ネットワーク状態判定部1200は、このパケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択し、パケットデータ受信部1300に切り替えを行うよう切り替え情報1605を通知する。
【0042】
図6は、ネットワーク状態判定部1200において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。通信路の状態は、例えばRTPを用いて通信を行っている場合には、パケットの損失はパケット受信部1300より得られるパケット情報1604に含まれるシーケンス番号の不連続性から導かれる。また、遅延については、パケット情報1604に含まれる送信時刻と、パケットの到着時刻から導かれる。
【0043】
この例では、まずS9001において、パケット情報から通信路が輻輳しているかどうかを判断する。一般に、通信路が輻輳している場合は遅延が生じるため、例えば、ある時点で到着したパケットの遅延dおよび遅延の閾値dthを用いて、
d >dth (1)
を満たすならば、通信路は輻輳していると判断して、処理S9002に進む。
【0044】
また、輻輳を判断する方法として、パケットの遅延の値は急激に変動する場合もあるため、その値を吸収する目的でジッタを用いる方法も考えられる。例えば、ある時点で到着したパケットのジッタjおよびジッタの閾値jthを用いて、
j>jth (2)
を満たすならば、通信路は輻輳していると判断し、処理S9002に進む。ジッタの求め方については、例えばRFC1889を参考にすることができる。
【0045】
また、ジッタjの値も急激に変動する場合には、さらにこの値にローパスフィルタを適用した平均ジッタJ= kj + (1 − k)Jprev (kは0<k<1の実数値、Jprevは前回に計算された平均ジッタ)と、平均ジッタの閾値Jthを用いて、
J>Jth (2’)
を満たすならば、通信路は輻輳していると判断し、処理S9002に進む。
【0046】
また、輻輳が進むと、ネットワーク上のルータなどのバッファに送信したデータが蓄積されて伝送遅延が大きくなり、さらにその後バッファの許容量を超えるデータが送信されるとバッファが溢れパケット損失が生じることが考えられるため、ある一定区間のパケット損失率を輻輳の判定に用いる方法も考えられる。例えば、ある一定区間のパケット損失率Lおよび、パケット損失率の閾値Lthを用いて、
L>Lth(3)
を満たすならば、通信路は輻輳していると判断し、処理S9002に進む。パケット損失率の求め方については、例えばRFC1889を参考にすることができる。
【0047】
なお、ここで挙げた輻輳判定方法については一例であり、例えば、式(1)や式(2)(2’)の閾値を定数ではなく、受信しているストリームのビットレートに応じて変化する値を用いたり、例えば、式(1)と式(2)あるいは(2’)と式(3)を同時に満たす場合に輻輳と判定したり、また他の式を用いるなど、さまざまな判定方式をネットワークにあわせて設定することが可能である。
【0048】
また、この輻輳判定の処理S9001においては、ネットワーク状態判定部1200を図7のように発展させて、ネットワークの情報格納部1220を設け、過去のパケット情報1604をネットワーク情報格納部1220に蓄積しておき、ネットワーク情報判定部1210は過去のパケット情報1211と現在のパケット情報1604から、通信路状態の時間的な推移を判断することも可能である。例えば、過去に起こったパケット損失情報を格納しておき、例えば連続して式(3)を満たした回数Lcountと閾値Lcount_thを用いて輻輳を判断する方法も考えられる。この場合は、例えば、
Lcount>Lcount_th(4)
を満たすならば、通信路は輻輳していると判断し、処理S9002に進む。
【0049】
この方法は、特に無線などでデータ伝送を行う場合は、パケット損失は輻輳が原因で起こる場合のみならず、回線上にノイズのようなものが発生し、データを破壊した結果、その誤りがパケット損失としてあらわれる可能性がある場合に、ある一定区間のパケット損失率のみでは、誤りによるパケット損失を輻輳と判断してしまうのを防ぐことが可能である。
【0050】
逆に、例えば少し輻輳しているような状況において、(3)式におけるLthを超えない少量のパケット損失がある場合、(3)式や(4)式のみでは輻輳と判断しない可能性もある。このような場合には、ネットワーク上の中継装置のバッファにおいて、ランダムにパケットが廃棄されていると考えられるため、その廃棄によりジッタの値にある程度の変動が生じる。これを用いて、例えば過去の平均ジッタをネットワーク情報格納部1220に蓄積しておき、前回の平均ジッタJprevと、今回の平均ジッタJnowの変動値Jdelta=Jprev−Jnowが、ジッタの変動値の閾値Jdelta_thを超えた場合、すなわち
Jdelta>Jdelta_th(5)
を満たすならば輻輳であると判断し、処理S9002に進む。
【0051】
また、伝送路において発生する誤りに対し、ネットワーク層での再送が行われている場合には、クライアントでは大幅な遅延として観測され、結果的にジッタの変動となり、再送を輻輳と誤って判断してしまう。従ってこのような場合はジッタではなく、例えば、パケットの遅延dとパケットの到着間隔iの積ri = d×iの移動平均RI= k・ri + (1 − k)riprev (kは0<k<1の実数値、riprevは前回に計算されたriの移動平均)を用いて再送による遅延の変動をパケット到着間隔によって吸収した値を指標として用いてもよい。ただし、この指標によって輻輳を判断する場合の閾値をあらかじめ取得する必要があり、この取得方法の一例を以下に述べる。まず、受信開始時にネットワーク状態判定部1200において始めに受信するストリームを選択する際、輻輳する可能性のきわめて低い、一番レートの低いストリームのパラメータを選択しパケットデータ受信部1300に通知する。次にパケットデータ受信部1300は、ネットワーク状態判定部1200において選択されたパラメータに記述されたマルチキャストアドレスから選択されたストリームデータパケットの受信を開始し、開始後N個のパケットのriの平均値ri_thを計算し、ネットワーク状態判定部1200に通知し、この値を輻輳判定の閾値として使用する。RIがri_thのγ倍以上であった場合、すなわち
RI > ri_th×γ(γ>1の実数)(6)
を満たすような場合に輻輳であると判断し、処理S9002に進む。閾値を取得した後は帯域を有効に利用するため、現在選択しているレートより一段高いレートのストリームのパラメータに切り替えるための切り替え情報1605をパケット受信部1300に通知し、後述の切り替え処理によって、レートを回復させる処理を(6)式によって輻輳と判断されるまで、あるいは選択できるパラメータのうち一番高いレートになるまで繰り返し行ってもよい。
【0052】
このように、図7の構成を用いることにより、より正確に輻輳を判定することができる。
【0053】
次に処理S9002において、現在選択しているデータストリームのビットレート未満で最大のビットレートの受信パラメータを選択する。ここで、この条件を満たすパラメータデータが複数であった場合には、どれか一つを選択するが、その選択方法は、例えばGOP間隔が一番短いものを選択するといった方法が考えられるがこれに限るものではない。ただし、後述の切り替え処理を考慮すると、GOP間隔の短いものの方が望ましい。その理由については後述する。
【0054】
図3の例を用いて説明する。現在StreamNo.3のストリーム(64kbps)を受信している場合には、64kbps未満で最大のビットレートを持つストリームはStreamNo.5および6であるが、このうち、GOP間隔の一番短いものとして、StreamNo.6が選択される。
【0055】
次に処理S9003において、選択されたストリームの受信パラメータを切り替え情報1605として、パケット受信部1300に通知する。
【0056】
一方、処理S9002において、輻輳でないと判断された場合には、ストリームの変更は行わず、終了する。
【0057】
パケット受信部1300では、切り替え情報1605を渡されると、切り替えの処理を行うが、この処理の一例を示したものが図8である。図8の処理S10001において、まず、受信を行っているデータストリームのパケットの受信を終了する。データストリームのパケットの受信を終了する方法としては、該データストリームが配信されているマルチキャストグループのマルチキャストアドレス宛てに受信終了宣言(LEAVE)を行う(例えば、IGMP(Internet Group Management Protocol)に従う)ことが一般的である。次に処理S10002に進み、前述の選択されたデータストリームのパケットの受信を開始する。この方法は、例えば該データストリームのパケットが送信されているマルチキャストアドレスにJOINを送信する方法がある。前述の例を用いてこの切り替え処理を説明すると、StreamNo.3のデータストリームのパケットが送信されているマルチキャストアドレス「224.1.1.3」に対し、LEAVEを送信した後、StreamNo.6のデータストリームのパケットが送信されているマルチキャストアドレス「224.1.1.6」に対しJOINを送信することで切り替えを行うことができる。ここで、JOINを送信した後に初めて到着するStreamNo.6パケットデータは、フレーム内符号化モード(I picture)のデータを含むパケットであるとは限らないため、切り替えを行ってから初めてフレーム内符号化モードのパケットを受信するまでは正常に復号できない。なぜなら、フレーム間符号化(P picture)では、前の画像との差分を符号化しているため、切り替える前のストリームの最後のフレームを用いて復号しようと試みるからである。この正常に復号できない時間を短くするためには、受信を開始したストリームが、GOP間隔の短いデータストリームであることが効果的であり、これが、前述の選択を行う際にGOP間隔の短いものの方が望ましい理由である。しかし、ここで挙げた切り替えの方法は一例であり、先にJOINを行ったのちにLEAVEを行うということも考えられ、ネットワークに適した方法を設定することが可能である。この切り替え方法の他の例については、後述する。
【0058】
なお、この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われる。
【0059】
以上説明した第1の実施形態によれば、通信路の状態から動的に受信するマルチキャストアドレスを切り替えることにより、符号化パラメータの異なるストリームを受信することで、各受信者がそれぞれの環境に応じたストリームを効率よく受信することができる。
【0060】
また、通信路の帯域が不明の場合や、途中で変化した場合でも、受信側でパケット情報などから通信路の状態を判断し、何らかの原因で通信路上で輻輳が起こった場合にビットレートを落としたストリームに切り替えることによって、輻輳によるパケット損失を抑制し、パケット損失による画像データの破壊を防止して通信を行うことができる。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができる。
【0061】
また、あるクライアントの通信路上のみで輻輳が起こっているような場合でも、そのクライアントのみがビットレートの低いストリームに切り替えることが可能となるので、各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能になる。
【0062】
(第2の実施形態)
第2の実施形態は、第1の実施形態の図1,図2,図4,図5,および図7に示したものと共通の構成を有する。ただし、図5のネットワーク判定部1200におけるネットワークの状態判定とストリームパラメータの選択の処理において、通信路上の輻輳のみならず、ノイズなどが原因で発生するデータ誤りも考慮する点で第1の実施形態と異なる。
【0063】
図9は、ネットワーク状態判定部1200において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。このフローチャートにおいて、まず処理S9001における輻輳の判定では、第1の実施形態と同様の方法を用いる。また、処理S9001において輻輳していると判断された場合の処理S9002も第1の実施形態と同様である。
【0064】
処理S9001において、輻輳と判断されなかった場合、本実施形態では、処理S9004において、パケット損失があるかどうかを判断する。パケット損失があるかどうかの判断は、例えばパケット受信部1300から得られるパケット情報1604に含まれるパケットのシーケンス番号が連続していない場合に損失ありと判断できる。輻輳と判断されなかったにもかかわらず、パケット損失がある場合には、何らかの原因により通信路上で誤りが発生したと判断し、処理S9005において、パラメータデータ1601より例えば現在受信中のパラメータと同じビットレートのストリームのうち、一番GOP間隔の短いパラメータを持つデータストリームを選択する。図3のパラメータデータ例を用いて例を説明すると、現在StreamNo.3のストリームを受信している場合には、同じビットレート(64kbps)でもっともGOP間隔の短いStreamNo.4のストリームが選択される。
【0065】
ここで、処理S9004では、パケット損失があるかどうかの判断をシーケンス番号を用いて行ったが、少量のパケット損失がそれほど画像の再生に影響を与えないような場合には、パケット損失率Lを用いてもよい。この場合は、例えばパケット損失率の閾値Lerror_th(<Lthを用いて、例えば、
Lerror > Lerror_th(7)
を満たす場合に損失ありと判断することも考えられる。
【0066】
ストリームの変更を行う場合に、それをパケット受信部1300に通知する処理S9003およびパケット受信部1300における切り替え処理については、第1の実施形態と同様である。
【0067】
最後に、処理S9004において、パケット損失が発生しなかった場合には、通信路の状態は良好と判断し、その後の処理は何も行わない。
【0068】
また、この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われることも、第1の実施形態と同様である。
【0069】
なお、本実施形態では、図9における処理S9001においてまず輻輳かどうかを判定しているが、帯域に変動がない場合や、帯域に十分な余裕があることを前提とし、同一のビットレートでGOP間隔のみが異なるの1つ以上のストリームを配信するような場合には、S9001およびS9002の処理を省き、処理S9004のパケット損失判定のみを行うことで処理の軽減を行うことも可能である。
【0070】
このような本発明の第2の実施形態によれば、輻輳のみならずノイズなどによるデータ誤りが原因で発生するパケット損失についてもその発生有無を判断することができ、誤りに対しては、GOP間隔の短いストリームに切り替えることにより、ビットレートを下げることなくパケット損失による誤りの伝播を抑制することができるようになる。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができる。また、あるクライアントの通信路上のみで誤りが起こっているような場合でも、そのクライアントのみGOP間隔の短いストリームに切り替えることが可能なので、各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能である。
【0071】
第1の実施形態や第2の実施形態では、通信路に輻輳や誤りが発生すると、ビットレートの低いストリームや、GOP間隔の短いストリームに変更していたが、逆にビットレートの高いストリームやGOP間隔の長いストリームに変更することも可能である。そのような例を第3の実施形態および第4の実施形態に示す。
【0072】
(第3の実施形態)
第3の実施形態は、第2の実施形態と同様に、第1の実施形態の図1,図2,図4,図5,および図7に示したものと共通の構成を有する。ただし、第3の実施形態では、図5のネットワーク判定部1200におけるネットワークの状態判定において、誤りの発生が局所的であるような場合に、誤りが一定期間起こらない場合にはGOP間隔を長く回復させることができるよう構成される点で第2の実施形態と異なる。
【0073】
図10は、ネットワーク状態判定部1200において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。このフローチャートにおいて、まず処理S9001において輻輳を判定する方法は、第1の実施形態と同様の方法を用いる。また、処理S9001において輻輳していると判断された場合の処理S9002も第1、第2の実施形態と同様である。
【0074】
処理S9001において、輻輳と判断されなかった場合、本実施形態では、処理S9004において、パケット損失があるかどうかを判断する。ここでのパケット損失の判定および、パケット損失があると判定された場合のGOP間隔を短くするストリーム選択処理S9005は、第2の実施形態と同様である。
【0075】
処理S9004において、パケット損失が発生しなかった場合には、通信状態が良好であると判断し、処理S9006〜S9007において、GOP間隔を回復しようと試みる。図10の処理の例では、処理S9003において、前回損失が検知された時刻と現時刻の差を損失が起きなかった時間Tとして計算し、この時間Tを用いて適切なGOP間隔TGOPを計算する。これは例えば、次に示すような式(7)で計算することが可能である。
【0076】
TGOP=T×α (8)
ここで、αは感度係数であり、GOP間隔の回復の感度を示す値である。αが小さければ、回復の感度は鈍くなり、αが大きければ回復の感度は鋭くなる。例えば、パケット損失が起こらなかった時間が4sであった場合に感度係数αの値が0.5であったとすると、TGOP=4×0.5=2sと計算される。
【0077】
次に、S9007において、現在受信中のストリームと同じビットレートで、かつS9006で計算された適切なGOP間隔を超えない、もっとも近いGOP間隔のストリームを選択する。図3のパラメータデータ例および前述のTGOP=2sを用いて例を説明すると、現在StreamNo.4のストリームを受信している場合には、同じビットレート(64kbps)で2sを超えない最も近いGOP間隔が2sであるStreamNo.3のストリームが選択される。もしも、TGOP=1sである場合には、引き続きStreamNo.4のストリームが選択されることになる。
【0078】
ストリームの変更を行う場合に、それをパケット受信部1300に通知する処理S9003およびパケット受信部1300における切り替え処理については、第1、第2の実施形態と同様である。
【0079】
この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われることも、第1、第2の実施形態と同様である。
【0080】
なお、本実施形態では、図10における処理S9001においてまず輻輳かどうかを判定しているが、帯域に変動がなく、同一のビットレートでGOP間隔のみが異なる1つ以上のストリームを配信するような場合には、はじめから処理S9001およびS9002を省き、処理S9004のパケット損失判定のみを行うことで処理負荷を軽減することも可能である。
【0081】
以上説明した本発明の第3の実施形態によれば、通信路上に誤りが発生し、GOP間隔を短くすることでこれに対処した後に、通信路の状態が好転した場合に、GOP間隔を長く回復させることができ、より品質のよいストリームを提供することが可能である。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができる。各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能である点は、第1、第2の実施形態と同様である。
【0082】
(第4の実施形態)
第4の実施形態においても、第2、第3の実施形態と同様に、第1の実施形態において図1,図2,図4,図5,および図7に示したものと共通する構成を有する。第4の実施形態は、図5のネットワーク判定部1200におけるネットワークの状態判定において、通信路の帯域に余裕があるかどうかを判断し、余裕がある場合にはビットレートの高いストリームを選択し、ビットレートを回復させることができる点で第3の実施形態とは異なる。
【0083】
図11は、ネットワーク状態判定部1200において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。このフローチャートにおいて、まず処理S9001において輻輳を判定する方法は、第1〜第3の実施形態と同様の方法を用いる。また、処理S9001において輻輳していると判断された場合の処理S9002も第1〜第3の実施形態と同様である。
【0084】
処理S9001において、輻輳と判断されなかった場合、処理S9004において、パケット損失があるかどうかを判断する。ここでのパケット損失の判定および、パケット損失があると判定された場合のGOP間隔を短くするストリーム選択処理S9005は第3の実施形態と同様である。
【0085】
処理S9004において、パケット損失がないと判断された場合、本実施形態では、処理S9008において、帯域に余裕があるかどうかの判定を行う。この判定については、例えば、その時点での受信パケットの平均ジッタの値Jnowを帯域の余裕度とし、この平均ジッタの値Jnowが、十分小さい値の閾値Jup_thを下回った場合、すなわち、
Jnow<Jup_th(9)
を満たす場合に帯域に余裕があると判断する。ただし、この帯域に余裕があるかどうかの判定方法は、これに限るものではなく、例えば、遅延dが十分小さい値であるかどうかを判定したり、また式(9)においてJup_thを受信しているストリームのビットレートに応じて変化する値を用いたり、受信しているストリームのビットレートbnowの次にビットレートが高いストリームbupとのビットレートの差bdelta=bnow − bupに応じて変化する値を用いるなどの方法が考えられる。
【0086】
また、伝送路において発生する誤りに対し、ネットワーク層での再送が行われている場合には、例えばその時点での受信パケットの遅延とパケットの到着間隔の積の移動平均RIが、(6)式で用いた閾値ri_thのδ倍を下回った場合、すなわち
RI < ri_th×δ(10)
を満たすような場合に帯域に余裕があると判断するなどの方法も考えられる。
【0087】
処理S9008において帯域に余裕があると判断された場合には、処理S9009に進み、現在選択しているデータストリームのビットレートより大きく、最小のビットレートの受信パラメータを選択する。ここで、この条件を満たすパラメータデータが複数であった場合には、どれか一つを選択する。その選択方法は、例えばGOP間隔が一番短いものを選択するといった方法が考えられるがこれに限るものではない。ただし、前述のとおり、切り替え時に発生する正常に復号できない時間を短くするために、GOP間隔の短いものの方が望ましい。図3の例を用いて説明する。現在StreamNo.3のストリーム(64kbps)を受信している場合には、64kbps未満で最大のビットレートを持つストリームはStreamNo.1および2(128kbps)であるが、このうち、GOP間隔の一番短いものとして、StreamNo.2が選択される。
【0088】
処理S9008において、帯域に余裕がないと判断された場合には、GOP間隔を回復しようと試みる処理を行うが、この処理S9006およびS9007は第3の実施形態と同様である。
【0089】
ストリームの変更を行う場合に、それをパケット受信部1300に通知する処理S9003およびパケット受信部1300における切り替え処理については、第1〜第3の実施形態と同様である。
【0090】
この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われることも、第1〜第3の実施形態と同様である。
【0091】
なお、本実施形態では、図11において通信路に誤りが発生しないと仮定し、同一のGOP間隔のみの1つ以上のストリームを配信するような場合には、処理S9004、S9005、および処理S9006、S9007を省き、処理S9001において輻輳していない場合には処理S9008に進めて、輻輳かどうかと帯域に余裕があるかどうかの判定のみを行うことで処理の軽減を行うことも可能である。
【0092】
以上説明した本発明の第4の実施形態によれば、通信路の帯域に余裕があるかどうかを判定し、余裕がある場合には、ビットレートを高く回復させることができるため、帯域を無駄なく使用して品質のよいストリームを提供することが可能である。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができ、各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能であることは、第1〜第3の実施形態と同様である。
【0093】
なお、第4の実施形態では、帯域に余裕があるかどうかの判定は行ったが、どれくらい余裕があるかの判定は行っていないため、ビットレートを回復させた結果、帯域をオーバーし、輻輳を招く可能性がある。さらに、選択処理を繰り返し行うことにより、ビットレートの回復と輻輳を繰り返し、逆に見づらい映像になってしまう可能性がある。このような現象を抑制するために、過去のストリームの切り替えの履歴に基づき、安定してストリームを提供できるようにした例を第5の実施形態で説明する。
【0094】
(第5の実施形態)
第5の実施形態では、図1,図2,図4,および図5に示した構成は第1〜第4の実施形態のものと共通している。図5のネットワーク状態判定部1200の内部に図12のように図7と同様の、パケット受信部1300からのパケット情報1604を蓄積するためのネットワーク情報格納部1220と、過去に選択したストリームのパラメータ1605を蓄積するための受信パラメータ情報格納部1230を設けたこと、および、ネットワーク状態判定部1200における状態判定の処理において、その過去に選択したストリームの履歴1212を用いた判定を行う点が第4の実施形態とは異なる。
【0095】
図13は、本実施形態のネットワーク状態判定部1210(図12)において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。このフローチャートにおいて、まず処理S9001において輻輳を判定する方法は、第1〜第4の実施形態と同様の方法を用いる。また、処理S9001において輻輳していると判断された場合の処理S9002も第1〜第4の実施形態と同様である。
【0096】
次に処理S9010に進むが、ここでは、前回の切り替えがビットレートの回復を行ったものであったかどうかを判定する。この判定には、図12における受信パラメータ情報格納部1230から切り替え情報の履歴1212を得ることで判断する。前回の切り替えがビットレートの回復であり、その切り替えの後に輻輳した場合には、その回復が適切でなかったと判断される。そのため、処理S9011に進み、輻輳していなかった場合の帯域に余裕があるかどうかの判定を行う処理S9008において、余裕があると判断する式(8)Jnow<Jup_thの閾値Jup_thをさらに小さくするために、例えば、
として閾値Jup_thの修正を行う。これにより、次回の帯域に余裕があるかどうかの判定では、帯域に余裕があると判断される確率が低くなる。また、ネットワーク層での再送により遅延に変動がある場合にRIを指標として用いている場合にも同様に、式(10)で用いている閾値ri_thをさらに小さくするために、例えば、
としてもよい。
【0097】
処理S9001において、輻輳と判断されなかった場合は、処理S9004においてパケット損失があるかどうかを判断する。ここでのパケット損失の判定および、パケット損失があると判定された場合のGOP間隔を短くするストリーム選択処理S9005は第4の実施形態と同様である。また、S9004でパケット損失が発生しなかった場合には、帯域に余裕があるかどうかの判定を行う処理S9008を行うが、この処理は第4の実施形態と同様である。
【0098】
さらに、処理S9008において帯域に余裕があると判断された場合の、ビットレートを回復するようなストリームを選択する処理S9009は、第4の実施形態と同様である。また、処理9008において、帯域に余裕がないと判断された場合にGOP間隔を回復しようと試みる処理S9006およびS9007も第4の実施形態と同様である。
【0099】
ストリームの変更を行う場合に、それをパケット受信部1300に通知する処理S9003およびパケット受信部1300における切り替え処理についても、第1〜第4の実施形態と同様である。
【0100】
この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われることも、第1〜第4の実施形態と同様である。
【0101】
なお、本実施形態では、図11において通信路に誤りが発生しないと仮定し、同一のGOP間隔のみの1つ以上のストリームを配信するような場合には、処理S9004、S9005、および処理S9006、S9007を省き、処理S9001において輻輳していない場合には処理S9008に進めて、輻輳かどうかと帯域に余裕があるかどうかの判定のみを行うことで処理の軽減を行うことも可能である。
【0102】
また、この実施形態を変形し、過去の切り替えの履歴1212において、一定期間同じビットレートを受信している場合には、処理S9008における判定の平均ジッタの閾値を、例えば、
などと大きくなるように変更し、ビットレートの回復を行いやすくするようにすることで、通信路の帯域が回復した場合に早く状況に追従できるようにすることも可能である。また、ネットワーク層での再送により遅延に変動がある場合にRIを指標として用いている場合にも同様に、式(10)で用いている閾値ri_thを大きくするために、例えば、
としてもよい。
【0103】
以上説明した本発明の第5の実施形態によれば、ビットレートを回復させた結果、帯域をオーバーして輻輳を招いた場合でも、過去のストリームの切り替えの履歴を用いて閾値に修正を行うことができ、これによりビットレートの回復と輻輳の繰り返しを適切に抑制できることから、安定したストリーム提供を実現できる。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができる。各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能であることは、第1〜第4の実施形態と同様である。
【0104】
以上に述べた第1〜第5の実施形態では、パケット受信部1300におけるストリームの受信切り替え処理において、切り替えを行ってから初めてフレーム内符号化モードのパケットを受信するまでは正常に復号がおこなえない。このような現象の抑制方法について以下に説明する。
【0105】
これは、図5に示すクライアントの構成のうち、パケット受信部1300を発展させたものであり、これまでに述べた第1〜第5の実施形態の一部を発展させた例として適用可能である。図14に示すように、内部にフレーム内符号化判定部1321、切り替え制御部1322およびパケットデータ受信部1323を設けている。この構成によれば、パケットデータ受信部1323により受信されたパケットのシーケンス番号やタイムスタンプなどのヘッダ情報およびパケットの到着時間などのパケット情報1604はネットワーク状態判定部1200に渡され、第1〜第5の実施形態で述べたストリームを選択する処理が行われる。ここで、ストリームの変更があった場合には変更後のストリームの受信パラメータを含む切り替え情報1605が、ネットワーク状態判定部1200より切り替え制御部1322に渡される。また、パケットデータ受信部1323により受信されたパケット1602は、フレーム内符号化判定部1321に渡される。フレーム内符号化判定部1321は、パケットに含まれる符号化データがフレーム内符号化のデータかフレーム間符号化のデータかを判定し、その結果がパケット1602に付加されたデータ1324を切り替え制御部1322に渡す。
【0106】
切り替え制御部1322では、切り替え情報1605を受け取ると、例えば図15に示すような切り替えの処理を行う。まず、処理S11001において、受信帯域に余裕があるかどうかを判定する。この判定は、フレーム内符号化判定部1321から渡されるデータ1324に含まれるパケットのシーケンス番号やタイムスタンプなどのヘッダ情報およびパケットの到着時間などからパケットの平均ジッタなどを計算し、例えば第4の実施形態で示した(9)式などを用いて行う。
【0107】
帯域に余裕があると判定された場合には、処理S11002に進み、切り替え情報1605に含まれる変更後の受信パラメータのマルチキャストアドレスよりストリームの受信を開始(JOIN)する。
【0108】
次に処理11003に進み、変更後のストリームの受信パケットがフレーム内符号化かどうかを判断する。これは、フレーム内符号化判定部1321から渡されるデータ1324に含まれる判定結果を用い、変更後のストリームであるかどうかの判断は、パケットヘッダに含まれる送信先マルチキャストアドレスや、ペイロード番号などを用いて行う。ここで、変更後のストリームでフレーム内符号化された符号化データを含むパケットを受信するまでは、画像復号部1400に対して変更前のストリームを含むパケットに含まれる符号化データ1606を出力し、変更後のストリームを含むパケットは破棄する。変更後のストリームの受信パケットがフレーム内符号化された符号化データを含むパケットであった場合には、処理S11004に進み、画像復号部1400に対して変更前のストリームのパケットに含まれる符号化データの出力を停止するとともに以降のパケットは破棄し、変更後のストリームのパケットに含まれる符号化データ1606を出力する。
【0109】
最後に、処理S11005にて、変更前のストリームのマルチキャストアドレスからのストリームの受信を停止(LEAVE)する。
【0110】
この一連の処理(S11002〜S11005)では、帯域に余裕があることを利用して、変更前のストリームと変更後のストリームを一時同時に受信し、変更後のストリームのフレーム内符号化されたデータの到着を待ってから画像復号部1400に対して出力するストリームを切り替えることで、途切れのないスムーズな切り替えを行うことが可能である。
【0111】
具体的な例を用いて説明する。図16において、切り替えが発生した際には変更前のストリーム(224.1.1.1のストリーム)を受信している。この時点でまず変更先のストリーム(224.1.1.2のストリーム)の受信を開始(JOIN)する。次に変更後のストリームの受信を開始してから最初のフレーム内符号化されたパケット16001を受信した時点で出力するストリームを切り替え、変更前のストリームの受信を停止(LEAVEする)。こうすることで、出力されるストリームはフレーム内符号化されたフレームが到着するまでは変更前のストリームが出力され、ちょうどフレーム内符号化されたフレームが到着した時点で変更先のストリームに切り替わることから、乱れのない映像を提供可能である。ただし、切り替えの間は2本のストリームを同時に受信することになるため、S11001において帯域に十分な余裕があるか判定する必要がある。
【0112】
一方、処理S11001において、帯域に余裕がないと判断された場合には、処理S11006に進み、変更前のストリームのマルチキャストアドレスからのストリームの受信を停止(LEAVE)する。次に、処理S11007に進み、切り替え情報1605に含まれる変更後の受信パラメータのマルチキャストアドレスよりストリームの受信を開始(JOIN)する。次に処理11008に進み、処理11003と同様の方法で変更後のストリームの受信パケットがフレーム内符号化かどうかを判断する。ここで、変更後のストリームでフレーム内符号化された符号化データを含むパケットを受信するまでは、画像復号部1400に対して変更前のストリームを含むパケットに含まれる符号化データ1606を出力し、変更後のストリームを含むパケットは破棄する。変更後のストリームの受信パケットがフレーム内符号化された符号化データを含むパケットであった場合には、処理S11009に進み、画像復号部1400に対して変更前のストリームのパケットに含まれる符号化データの出力を停止するとともに以降のパケットは破棄し、変更後のストリームのパケットに含まれる符号化データ1606を出力する。
【0113】
この一連の処理(S11006〜S11007)では、変更前のストリームの受信を停止した後に変更後のストリームの受信を開始し、変更後のストリームのフレーム内符号化されたデータの到着を待ってから画像復号部1400に対して出力するストリームを切り替えることで、使用帯域を抑制するとともに、変更後のストリームのフレーム内符号化されたデータを受信するまで変更前のストリームの最後のフレームで一端画像が停止するものの、切り替えによる画像の乱れが起きないスムーズな切り替えを行うことが可能である。
【0114】
具体的な例を用いて説明する。図17において、切り替えが発生した際には変更前のストリーム(224.1.1.1のストリーム)を受信しているが、まず変更前のストリーム(224.1.1.1のストリーム)の受信を停止(LEAVE)した後に変更後のストリーム(224.1.1.2のストリーム)の受信を開始(JOIN)する。これにより図16の例のように2本のストリームを同時に受信する必要がなくなり、帯域を節約することが可能である。次に変更後のストリームの受信を開始してから最初のフレーム内符号化されたパケット17001を受信した時点で出力するストリームを切り替える。この間、出力されるストリームは変更前のストリームの最後に受信したフレームで停止しているが、出力されるストリームはちょうどフレーム内符号化されたフレームから切り替わり、乱れのない映像を提供することができる。
【0115】
また、処理S11006〜S11007においては、変更後のストリームのフレーム内符号化されたデータを受信するまで変更前のストリームの最後のフレームで一端画像が停止するが、この区間を短く抑える方法を提供する。一定間隔でフレーム内符号化されたフレームが入ることがわかっている場合に、次のフレーム内符号化されたフレームが送信される時刻を予測して切り替えるタイミングを制御することも考えられる。例えば、サーバ2000から送信されるRTCPなどから取得することが可能なストリームの先頭パケットを送信した時刻Tfirst_sendと現在時刻tおよびパラメータデータから取得可能なGOP間隔Igopから、次のフレーム内符号化されたデータを含むパケットがサーバ側で送信される時刻Tnext_ivop_sendを以下のように推定する。
【0116】
この時刻に間に合うように、例えば、この時刻よりパケットの遅延dと、パケットの遅延のばらつきd’の和だけ早い時刻Tchange、すなわち
に処理11006〜処理11007を実行すれば、次のフレーム内符号化されたデータを含むパケットの到着にあわせて切り替えることができ、切り替え時に映像が停止する時間を短く抑えることが可能である。
【0117】
また、切り替えによる画像の停止を短く抑える別の方法を提供する。この方法は前記方法とは異なり、一定間隔でフレーム内符号化されたフレームが入っていなくても使用可能である。すなわち、サーバ2000に対し、例えばRTSPのGET_PARAMETERなどの上位プロトコルのコマンドを利用し、変更後のストリームの次のフレーム内符号化されたフレームを含むパケットが送信される時刻Tnext_ivop_sendを取得する。後は前記の方法と同様に例えば(16)式で計算される時刻Tchangeに処理11006〜処理11007を実行すれば、次のフレーム内符号化されたデータを含むパケットの到着にあわせて切り替えることができ、切り替え時に映像が停止する時間を短く抑えることが可能である。この処理11006〜処理11007を行う時刻の制御については、以上に述べた方法は一例であり、サーバ2000が変更後のストリームの次のフレーム内符号化されたデータを含むパケットを送信する時刻Tnext_ivop_sendを取得あるいは推定する方法であれば(16)式を用いて切り替え時刻を制御することが可能である。
【0118】
以上のような切り替え方法を第1〜第5の実施形態に適用することで、通信路の状態に追従した適したストリームに切り替える際に、帯域の余裕に応じた切り替え方式を切り替えることで、スムーズな切り替えを行うことが可能になる。
【0119】
なお、以上に示した実施形態では、図1で示すようなサーバ2000から各クライアント1000にいたるまでネットワーク3000上をマルチキャストを介してデータ伝送を行ったが、例えばクライアント1000a〜1000bとして携帯端末を想定する場合は、図18のように、ネットワーク3000からクライアント1000a〜1000bへの末端ノードを基地局4000とし、サーバ2000から基地局4000までをマルチキャストで伝送し、基地局4000からクライアント1000a〜1000b間はユニキャストを用いて伝送してもよい。また、ネットワーク3000から例えばクライアント1000c〜1000dへの末端ノードを、マルチキャストグループへの参加/不参加を監視し下流のノードへ転送するストリームを制御する機能を持つスイッチ5000とすることで、スイッチ5000とクライアント1000cおよびクライアント1000d間において、クライアント1000cおよび1000dがそれぞれ受信しているストリームのみを伝送することが可能となる。このように、本発明では、サーバからクライアントにいたるまでの通信経路の一部に、ユニキャストを用いたり、マルチキャストのトラフィックを制御するようなスイッチを含んでいてもよい。特に、図18の例のように誤りや帯域変動が生じやすいネットワークの末端ノード(基地局やスイッチ)からクライアントまでをユニキャストで伝送したり、末端ノードをマルチキャストトラフィック制御機能を持つスイッチとするなどして、伝送されるストリームを制御することにより本発明はより効果を発揮する。
【0120】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0121】
【発明の効果】
以上説明したように、本発明によれば、送信側装置および受信側装置の双方の処理負荷を高めることなく、受信側装置が置かれている多様な伝送環境に対して適応的なデータ伝送を実現することのできる装置、および方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るデータ伝送システムの全体構成を示すブロック図
【図2】サーバの内部構成を示すブロック図
【図3】パラメータ送信部が送信するパラメータデータの一例を示す図
【図4】サーバの他の構成例を示すブロック図
【図5】クライアントの基本的な構成を示すブロック図
【図6】通信路の状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャート
【図7】ネットワーク状態判定部における輻輳判定に係る他の構成例を示すブロック図
【図8】パケット受信部における切り替え処理の一例を示すフローチャート
【図9】本発明の第2実施形態に係わり、ネットワーク状態判定部において、通信路の状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャート
【図10】本発明の第3実施形態に係わり、ネットワーク状態判定部において、通信路の状態に適したパラメータをもつデータストリームを選択する処理の他の例を示すフローチャート
【図11】本発明の第4実施形態に係わり、ネットワーク状態判定部において、通信路の状態に適したパラメータをもつデータストリームを選択する処理のさらに別の例を示すフローチャート
【図12】本発明の第5実施形態に係るネットワーク状態判定部の構成を示すブロック図
【図13】本発明の第5実施形態に係り、ネットワーク状態判定部において、通信路の状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャート
【図14】実施形態の変形例に係わるパケットデータ受信部の構成例を示すブロック図
【図15】上記変形例に係わり、切り替え制御部による切り替え情報に基づく切り替えの処理を示すフローチャート
【図16】上記変形例に係わり、ストリームの切り替えを説明するための概念図
【図17】上記変形例に係わり、ストリームの切り替えを説明するための概念図
【図18】実施形態の変形例に係わるシステム構成図
【符号の説明】
1000a〜d…クライアント(データ受信装置)、2000…サーバ(データ送信装置)、3000…ネットワーク
【発明の属する技術分野】
本発明は、通信ネットワーク、特にマルチキャストネットワークを介して画像や音声などのデータを送受信し、再生する方法及び装置に関する。
【0002】
【従来の技術】
近年、画像をはじめとする各種情報のディジタル符号化技術及び広帯域ネットワーク技術の進展により、これらの技術を利用して圧縮符号化した画像データをネットワークを通じて伝送するシステムが開発されている。データ伝送の際に、多数のユーザが効率よく伝送路を利用する手法として、データをパケット化して送受信する方法が有効である。データをパケット化して伝送するプロトコルとしては、TCP/IP(Transmission Control Protocol/Internet Protocol)やUDP/IP(User Datagram Protocol/Internet Protocol)などが存在する。TCP/IPは再送などの枠組みが組み込まれていることから誤り耐性が高く、多少時間がかかっても正しくデータを受信したいダウンロード型のアプリケーションに有効である。またTCP/IPは、ウインドウサイズと呼ばれるパケットのサイズをネットワークからの応答により動的に変更することで輻輳制御を行うことが可能であるものの、リアルタイム性を求められるアプリケーションには非力である。これに対し、UDP/IPは再送の枠組みを備えていないことから、再送などにかかる遅延がなく、リアルタイム性を求められるアプリケーションに極めて有効である。
【0003】
さらに近年では、UDPをベースにして、オーディオ・データやビデオ・データをリアルタイム伝送するためのRTP(Real−time Transport Protocol)を利用するアプリケーションが増えてきている。RTPについてはRFC1889に規定されており、リアルタイム会話形式でデータを授受するビデオ会議のようなマルチメディア・システムに適用されることが想定されている。なお、RTPはRTPヘッダー中にパケットの順序番号や時間情報(タイム・スタンプ)を記述可能なパケットフォーマットを有しており、これらの情報に基づくリアルタイム動作をサポートしている。例えば、受信側では、パケットに記述された正しい時間情報に従って音声や画像のコンテンツデータを構築して適切に表示再生することができる。また、ネットワーク伝送過程で順番が入れ替わったパケットを判定したり、伝送中にどのパケットが損失したかなどをパケット番号に基づいて検知することができる。RTPには音質や画質の品質保証機能は設けられていないが、パケット送信受の補足情報として、ジッタ(遅延情報)やパケット損失率などを相互間で通知する仕組み(RTCP)を備える。
【0004】
リアルタイム性を求められるアプリケーションの代表例として動画像の伝送が挙げられるが、ごく普通の動画像であっても、そのままのデータ形式では画像データ量はきわめて膨大でありネットワーク帯域を圧迫するから、画像データを符号化し、データ量をあらかじめ圧縮してから伝送するという手法が採られる。
【0005】
動画像信号の圧縮符号化技術としては動き補償、離散コサイン変換(DCT)、サブバンド符号化、ピラミッド符号化、可変長符号化等の技術やこれらを組み合わせた方式が開発されている。動画像符号化の国際標準方式としてはISO MPEG−1、MPEG−2、ITU−T H.261、H.262、H.263が存在し、また動画像、音声・オーディオ信号を圧縮した符号列や他のデータを多重化する国際標準方式としてはISO MPEGシステム、ITU−T H.221、H.223が存在する。これらの符号化方式によるデータ量の圧縮効果は極めて高いが、不安定な伝送路上でデータを伝送することによるパケット損失や誤りの混入に対して脆弱である。これは、動画像符号化方式では前フレームとの差分フレームのみを送信していることに起因しており、データの一部が欠落することが、圧縮効果が高いが故に重大な問題になり得るからである。UDPやRTPがデータ伝送に利用される場合、これらは基本的にデータの再送を行わないことから、この問題への対策が必要であるとされている。
【0006】
画像符号化の中には、通常2つのモードが存在する。前述した前のフレームとの差分を送るフレーム間符号化モード(P Picture)と、1枚のフレームの中で閉じた符号化を行うフレーム内符号化モード(I Picture)である。通常のデータ伝送シーケンスでは、適当な時間間隔でフレーム内符号化モードとし、それらの間はフレーム間符号化モードとする。このフレーム内符号化モードでフレームを符号化する間隔をGOP(Group of Pictures)間隔と呼ぶ。データの欠落が発生しある復号画像が壊れてしまった場合、それ以降、フレーム間符号化モードで符号化を行っていると、壊れた画像をもとに復号を行うため、以降の復号画像全てが影響を被り、正しく復号できないことになる。そこで、フレーム内符号化モードで符号化されたフレームを途中に挿入することで、誤りの影響の伝播をそこで断ち切るようにしている。ただし、フレーム内符号化モードは、フレーム間符号化モードに比べて符号量を必要とするため、同じビットレートでGOP間隔を短くすると画質が低下するため、誤りの発生率に応じて適切なGOP間隔になるように制御を行う必要がある。
【0007】
また、UDPはTCPのような輻輳制御機能を備えていないことから、UDPを用いた画像伝送アプリケーションでは常にネットワークの帯域を越えないような伝送レートでデータを送受信する必要がある。例えば、リアルタイム性が求められるデータを通信路の帯域を越える高い送信レートで送信すると、ネットワーク上のルータなどのバッファに送信したデータが蓄積され(輻輳)、これにより伝送遅延が大きくなる。さらに、バッファの許容量を超えるデータが送信されると、輻輳が限界を超えてバッファが溢れてしまい、パケットロスが生じるなどの障害が発生する。
【0008】
これらの誤りや輻輳への対策を講じた従来技術として、RTCPを利用し受信側からのパケットロス率やジッタなどの情報をRTCPレポートから得て、これに基づき伝送レートや誤り耐性のパラメータを送信側で制御するものがある(例えば、下記特許文献1を参照。)。
【0009】
また、伝送路使用帯域の節約のためには、マルチキャストと呼ばれるパケット送信技術が有効であるとされている。インターネットでのパケット送信方法には、ユニキャスト、マルチキャスト、ブロードキャストがある。ユニキャストでは、送信元から、データを要求した各クライアントにそのコピーがそれぞれ送信される。ブロードキャストでは、ネットワーク上のすべてのクライアントに1つのデータのコピーが送信される。これに対しマルチキャストでは、データを要求したクライアント群に、データのコピーが1つのみ送信される。近年、伝送路の広帯域化が進んでいるものの、多数のクライアントに向けて同一のコンテンツを伝送する場合、伝送路を効率的に使用することが必要であり、このためにマルチキャストが有効である。
【0010】
しかし、受信側から得られるパケットロス率やジッタの情報に基づき、送信側で送信レートおよびGOP間隔の制御を行うことを考えた場合、RTCPレポートは各受信側から個別に送信されることから、すべてのRTCPレポートに対して処理を行うとすると、送信側に極めて高い処理負担がかかってしまう。また、クライアントが多くなるほどRTCPレポートの送信数も増えることから、帯域が浪費されることも問題である。
【0011】
これらの問題を解決するために、各クライアントからのRTCPレポートを集約し、送信レートおよびGOP間隔の制御を、最も通信環境の悪いクライアントからのRTCPレポートを基準にして行うことが考えられる。しかし、マルチキャストにおいては送信側から送信されるストリームは一つであるから、良好な通信環境に居るクライアントが存在するにもかかわらず、伝送するデータの品質を下げることになり、好ましくない。反対に、最も通信環境の良好なクライアントからのRTCPレポートを基準にする場合、悪い通信環境に居るクライアントは正常にデータを受信することができなくなる。
【0012】
このようなクライアント側の通信環境の多様性を考慮したデータ伝送を可能にする従来技術の一つに階層化マルチキャストがある(例えば、下記特許文献2を参照。)。この階層化マルチキャストでは、1つのストリームのデータを分割して階層に振り分けるとともに、階層に応じて異なるマルチキャストグループに分割されたストリームデータを配信する。それぞれ通信環境が異なる各クライアントは、ネットワークの状態に応じて各々がデータを受信する階層を制御する。これにより、受信レートの分散的な制御が実現される。階層化マルチキャストにおいて、サーバは例えば1つのストリームデータをフレーム内符号化されたフレームのみを含む階層と、フレーム間符号化されたフレームのみを含む階層の2つの階層に分割する。この分割された階層をさらにフレームの低周波成分のみを含む階層と、フレームの高周波成分のみを含む階層とに分割する場合もある。
【0013】
【特許文献1】
特開2002―204278公報
【0014】
【特許文献2】
特開2000−78573公報
【0015】
【発明が解決しようとする課題】
上記のような階層化マルチキャスト方式では、有線ネットワークにおける伝送帯域を有効に利用するとともに多様なクライアントに対する品質管理を行うことができる。しかしながら、サーバ側における階層符号化の処理負荷およびクライアント側における復号化の処理負荷の双方が、階層化を行わない場合に比べて極めて高いという問題点がある。また、誤り耐性に対するパラメータの制御が行えないことや、帯域に余裕がないクライアントでは1本のストリームの分割された階層の一部のみを受信することになり、フレームレートが落ちて見難い画像を受信することになる可能性、高周波成分を含む階層を受信できずに復号化の際にミスマッチが生じ、正しく復号が行えずに画質が低下する可能性、などが問題点として挙げられる。
【0016】
本発明は、送信側装置および受信側装置の双方の処理負荷を高めることなく、受信側装置が置かれている多様な伝送環境に対して適応的なデータ伝送を実現することのできる装置、および方法を提供することを目的とする。
【0017】
【課題を解決するための手段】
本発明の一観点に係わるデータ送信装置は、データ信号を入力する入力手段と、前記データ信号を第1、第2の符号化パラメータを用いて符号化して第1、第2の符号化データストリームを生成する符号化手段と、前記第1の符号化データストリームをパケット化して第1のマルチキャストアドレスに送信するとともに、前記第2の符号化データストリームをパケット化して第2のマルチキャストアドレスに送信するパケットデータ送信手段と、前記第1、第2の符号化パラメータを前記第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータをデータ受信装置からの要求に応じて送信するパラメータ送信手段と、を具備する。
【0018】
また本発明の他の観点に係るデータ受信装置は、同一のデータ信号を第1、第2の符号化パラメータを用いて符号化して生成された第1、第2の符号化データストリームのそれぞれの符号化パラメータを第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータを受信するパラメータ受信手段と、前記パラメータデータに基づいて前記第1、第2のマルチキャストアドレスのいずれか一方を選択するアドレス選択手段と、前記アドレス選択手段により選択されたマルチキャストアドレスに対応する前記第1、第2の符号化データストリームのいずれか一方のパケットデータを受信するパケットデータ受信手段と、前記パケットデータ受信手段により受信されたパケットデータを復号して前記データ信号を再生するデータ再生手段と、を具備する。
【0019】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【0020】
(第1の実施形態)
本発明の実施形態は、動画像データの伝送をマルチキャストで行うデータ伝送システムに関する。本システムにおいて、動画像データを送信するデータ送信装置を「サーバ」又は「送信側」と呼ぶ。この装置は、ある動画像の画像信号を異なる符号化パラメータで符号化して構築された複数のストリームを、異なるマルチキャストアドレスに、例えばRTPなどのプロトコルを用いて配信する。また、動画像データを要求し、データ送信装置から受信するデータ受信装置を「クライアント」又は「受信側」と呼ぶ。この装置は、パケットの遅延や損失などの情報から通信路の状態を判定し、送信側から送信される複数のストリームの中から通信路の状態に適切な符号化パラメータのストリームを1つ選択し、マルチキャストアドレスから受信する。
【0021】
図1は、本発明の第1の実施形態に係るデータ伝送システムの全体構成を示すブロック図である。このデータ伝送システムは、データの配信装置である少なくとも1つのサーバ2000と、サーバ2000から転送されるコンテンツデータ(ここでは動画像)を受信して再生する少なくとも1つ以上のクライアント1000a〜1000dから構成されている。サーバ2000とクライアント1000a〜1000dはネットワーク3000を介して接続されている。サーバ2000は、1つ以上のデータストリームS1〜S3をそれぞれ異なるマルチキャストアドレスグループにネットワーク3000を介してマルチキャストで送信する。クライアント1000a〜1000dはデータストリームS1〜S3の中から、それぞれの通信路の状態に応じたデータストリームを選択して受信する。また、クライアント1000a〜1000dは、それぞれの通信路の状態変化に応じて、動的に受信するデータストリームを変更する。
【0022】
図2は、サーバの内部構成を示すブロック図である。サーバ2000は、図2に示すように、例えばビデオカメラで撮影された映像(動画像)の画像信号を入力する画像入力部2100と、画像入力部2100から得られる画像信号2006を異なるパラメータで符号化する画像符号化部2400a〜2400cと、画像符号化部2400a〜2400cが出力する符号化データ2005a〜2005cをパケット化し、パケット化された符号化データ2004a〜2004cのそれぞれを異なるマルチキャストアドレスに送信するパケットデータ送信部2200と、少なくとも1つの画像符号化部2400a〜2400cから得られるそれぞれ異なる符号化パラメータ2001と、パケットデータ送信部2200がそれぞれの符号化データをパケット化して送信する際の例えば送信先マルチキャストアドレスなどを含む送信パラメータ2002との対応が記述されたパラメータデータ2003を送信するパラメータ送信部2300からなる。
【0023】
本実施形態ではパケットの送信に用いるプロトコルとしてUDP/IPおよびRTPを用いることとするが、これらに限るものではない。この図2に示すサーバは、例えばライブ放送システムに好適である。
【0024】
このように構成されたサーバ2000では、まず画像入力部2100から画像信号2006が入力される。この入力された画像信号2006は、画像符号化部2400a〜2400cでそれぞれ符号化される。この符号化の際、画像符号化部2400a〜2400cは、それぞれ別の符号化パラメータを用いて符号化を行う。例えば、2400aは、GOP間隔2s、ビットレート128kbpsで符号化し、2400bはGOP間隔0.5s、ビットレート128kbpsで符号化し、2400cはGOP間隔2s、ビットレート64kbpsで符号化する。ここで、画像符号化部は図2の場合3つであるが、1つ以上であればいくつでもかまわない。画像符号化部の数に応じて、出力される符号化データの数も変化する。
【0025】
パケットデータ送信部2200では、画像符号化部2400a〜2400cの各々が出力した符号化データ2005a〜2005cを、それぞれパケット化して伝送する。このときの伝送先のアドレスは、それぞれの符号化データに対し、異なるマルチキャストアドレスとする。すなわち、例えば符号化データ2005aはパケット化された後、マルチキャストアドレス「224.1.1.1」に送信され、符号化データ2005bはパケット化された後マルチキャストアドレス「224.1.1.2」に送信され、符号化データ2005cはパケット化された後マルチキャストアドレス「224.1.1.3」に送信される。またこれらのパケットデータには、例えば伝送プロトコルとしてRTPを用いる場合、異なるペイロード番号を付与して送信することも可能である。例えば、パケットデータ2004aにはペイロード番号96を付与して送信し、パケットデータ2004bにはペイロード番号97を付与して送信し、パケットデータ2004cにはペイロード番号98を付与して送信する。
【0026】
パラメータ送信部2300では、前述のパケットデータ送信部2200で送信されるパケットデータ2004a〜2004cのそれぞれの符号化パラメータと、送信時のマルチキャストアドレスやペイロード番号などの対応が記述されたパラメータデータ2003を送信する。パラメータ送信部2300では、画像符号化部2400a〜2400cが符号化を行う際のGOP間隔やビットレートなどの符号化パラメータ2001と、パケットデータ送信部2200が各符号化データ2005a〜2005cをパケット化し、送信する際の送信先マルチキャストアドレスやペイロード番号などの送信パラメータ2002を対応づけたパラメータデータ2003を送信する。このデータ2003は、あらかじめ作成されたものを用意しておき、画像符号化部2400およびパケット送信部2200がこのデータを参照して符号化パラメータの設定およびパケットの送信パラメータの設定を行うことも可能である。
【0027】
ここで、パラメータ送信部2300が送信するパラメータデータの例を図3に示す。パラメータデータは例えば、少なくとも1つの符号化データの1つを識別するためのStreamNoと、該符号化データをパケット化し送信する際の送信先IP Addressと、該符号化データのGOP間隔と、該符号化データの送信レートと、例えばRTPを用いて伝送する場合のペイロード番号などを対応づけるデータである。図3の例では、StreamNoが1の符号化データは、GOP間隔2秒、符号化レート128kbpsで符号化されたデータであり、ペイロード番号96番を用いてマルチキャストアドレス「224.1.1.1」に送信されることがわかる。図3では、StreamNo1,2,3が例えばパケットデータ2004a、2004b、2004cに対応するパラメータとなっている。図3は符号化パラメータと送信パラメータの対応を示す一例であるが、このような対応を記述可能な規格として例えばSDP(Session Description Protocol)などがあり、SDPで記述されたデータを用い、符号化パラメータと送信パラメータの対応が記述されたデータを送信することも可能である。
【0028】
図4は、サーバの他の構成例を示すブロック図である。このサーバ2000は、図4に示すように、同一の画像信号をあらかじめ異なるパラメータで符号化した少なくとも1つの符号化データ2610a〜2610cを格納する符号化データ格納部2600と、少なくとも1つの符号化データ2610a〜2610cの符号化パラメータを格納する符号化情報格納部2500と、符号化データ格納部2600から、符号化データ2610a〜2610cのうち、符号化情報格納部2500より得られる符号化パラメータ2001に対応する符号化データを読み出す少なくとも1つの符号化データ読み出し部2700a〜2700cと、符号化データ読み出し部2700a〜2700cが出力する符号化データ2005a〜2005cをパケット化するとともにそのパケット化された符号化データ2004a〜2004cを異なるマルチキャストアドレスに送信するパケットデータ送信部2200と、符号化情報格納部2500から得られる符号化パラメータ2001と、パケットデータ送信部2200がそれぞれの符号化データをパケット化して送信する際の例えば送信先マルチキャストアドレスなどを含む送信パラメータ2002との対応を記述したパラメータデータ2003を送信するパラメータ送信部2300とにより構成される。
【0029】
ここで、符号化データ2610a〜2610cは、同一の画像信号を異なる条件で符号化したものである。例えば2610aは、GOP間隔2s、ビットレート128kbpsで符号化され、2610bはGOP間隔0.5s、ビットレート128kbpsで符号化され、2610cはGOP間隔2s、ビットレート64kbpsで符号化されたものである。図4では、あらかじめ異なる符号化パラメータで符号化したデータは3つであるが、1つ以上ならいくつあってもかまわない。これらの符号化データ2610に対応する例えばGOP間隔やビットレートなどの符号化パラメータと、その格納場所を記述したデータを符号化情報格納部2500は保持する。
【0030】
このような構成のサーバ2000では、符号化データ読み出し部2700a〜2700cが符号化データ格納部2600に格納されている符号化データを読み込む。この際、符号化データ読み出し部2700は、符号化データ格納部2600より、符号化情報格納部2600に格納されている符号化データ2610a〜2610cの符号化パラメータおよびその格納場所が記述されたデータ2001から格納場所を参照し、読み出しを行う。ここで、符号化データ読み出し部2700は、図4の場合3つであるが、1つ以上であればいくつあってもかまわない。
【0031】
符号化データ読み出し部2700a〜2700cで読み出された符号化データ2005a〜2005cがパケット送信部2200によってパケット化され送信される方法については、図2に示したサーバと同様である。
【0032】
パラメータ送信部2300では、前述のパケットデータ送信部2200で送信されるパケットデータ2004a〜2004cのそれぞれの符号化された際の符号化パラメータと送信される際の例えばマルチキャストアドレスやペイロード番号などの対応を記述したパラメータデータ2003を送信する。パラメータ送信部2300では、符号化データ2610a〜2610cが符号化された際のGOP間隔やビットレートなどの符号化パラメータ2001と、パケットデータ送信部2200が各符号化データ2005a〜2005cをパケット化し、送信する際の送信先マルチキャストアドレスやペイロード番号を対応づけたデータを送信する。パラメータデータ2003は、例えば図3で示すようなデータである。
【0033】
この図4のサーバは、例えば撮影済みの放送番組などの視聴コンテンツをあらかじめ符号化して蓄積しておき、クライアントから要求されたコンテンツのデータを配信するコンテンツ配信システムに好適である。
【0034】
なお、図4の構成において、前述の符号化データ格納部2600及び符号化情報格納部2500はコンピュータの主記憶に存在してもよいし、フラッシュメモリやハードディスクなどの記憶媒体に存在してもよいし、また他のサーバ上にに存在してもよい。
【0035】
また、図4に示された構成要素のうち、符号化情報格納部2500、符号化データ格納部2600、および符号化データ読み出し部2700を、図2の構成に追加してもよい。この場合、(1)ビデオカメラ等からの入力を符号化して配信する、(2)あらかじめ符号化されたデータを配信する、(3)あるいは双方を同時に行う、といったデータ配信形態をユーザが必要に応じて選択可能にする機能を実現できる。
【0036】
次に、クライアント1000の構成について説明する。図5はクライアント1000の基本的な構成を示すブロック図である。クライアント1000は、図1に示したサーバ2000が送信するパラメータデータ1601を受信するパラメータデータ受信部1100と、サーバ2000が送信するパケット化された符号化データ1602を受信するパケットデータ受信部1300と、パケットデータ受信部1300が解析したパケット情報1604からネットワークの状態を判定し、パラメータデータ受信部1100が受信したパラメータデータ1601から得られる受信の選択肢となるパラメータの候補データ1603より現在のネットワークの状態に適切な符号化データのパラメータ1605を選択し、パケットデータ受信部1300に通知するネットワーク状態判定部1200と、パケットデータ受信部1300から得られる符号化データ1606を復号する画像復号部1400と、復号された画像信号1607を出力する画像出力部1500から構成される。
【0037】
このような構成のクライアント1000では、あらかじめ、パラメータデータ受信部1100において、サーバ2000が送信する少なくとも2つ以上のデータストリームのGOP間隔やビットレートなどの符号化パラメータと、送信先マルチキャストアドレスやペイロード番号などの送信パラメータとを対応づけたパラメータデータ1601を受信しておき、ネットワーク状態判定部1200に渡す。
【0038】
ネットワーク状態判定部1200では、該パラメータデータよりサーバから配信される少なくとも2つ以上のデータストリームのパラメータデータより1つのデータストリームのパラメータデータを選択し、パケットデータ受信部1300に通知する。ここで、ネットワーク状態判定部1200において、最初に受信するデータストリームのパラメータを選択する方法は、例えば一番GOP間隔が長い、あるいは短いストリームを選択したり、一番ビットレートの高い、あるいは低いストリームを選択したり、あらかじめ通信路の帯域がわかっている場合には、その帯域以下で一番高いビットレートの高いストリームを選択したり、あるいはパラメータデータにデフォルトのストリームのパラメータを記述しておいて、それに該当するストリームを選択するなど、さまざまな方法が考えられるが、ここに挙げたものに限るものではなく、どれか1つのストリームを選択する方法であれば何でもよい。
【0039】
パケットデータ受信部1300は、ネットワーク状態判定部1200において選択されたパラメータに記述されたマルチキャストアドレスから選択されたストリームデータパケットの受信を開始する。ストリームデータパケットの受信を行う方法としては、該データストリームが配信されているマルチキャストグループのマルチキャストアドレス宛てに受信宣言(JOIN)を行う(例えば、IGMP(Internet Group Management Protocol)に従う)ことが一般的である。
【0040】
パケットデータ受信部1300により受信されたパケットデータ1602に含まれる符号化データ1606(符号化データおよびタイムスタンプなどの時刻情報)は、画像復号部1400に渡され、画像信号1607に復号されたのち、表示装置などの画像出力部1500に出力される。
【0041】
また、パケットデータ1602に含まれるシーケンス番号や到着時刻より導かれる遅延情報(ジッタ)などを含むパケット情報1604は、ネットワーク状態判定部1200に渡される。ネットワーク状態判定部1200は、このパケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択し、パケットデータ受信部1300に切り替えを行うよう切り替え情報1605を通知する。
【0042】
図6は、ネットワーク状態判定部1200において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。通信路の状態は、例えばRTPを用いて通信を行っている場合には、パケットの損失はパケット受信部1300より得られるパケット情報1604に含まれるシーケンス番号の不連続性から導かれる。また、遅延については、パケット情報1604に含まれる送信時刻と、パケットの到着時刻から導かれる。
【0043】
この例では、まずS9001において、パケット情報から通信路が輻輳しているかどうかを判断する。一般に、通信路が輻輳している場合は遅延が生じるため、例えば、ある時点で到着したパケットの遅延dおよび遅延の閾値dthを用いて、
d >dth (1)
を満たすならば、通信路は輻輳していると判断して、処理S9002に進む。
【0044】
また、輻輳を判断する方法として、パケットの遅延の値は急激に変動する場合もあるため、その値を吸収する目的でジッタを用いる方法も考えられる。例えば、ある時点で到着したパケットのジッタjおよびジッタの閾値jthを用いて、
j>jth (2)
を満たすならば、通信路は輻輳していると判断し、処理S9002に進む。ジッタの求め方については、例えばRFC1889を参考にすることができる。
【0045】
また、ジッタjの値も急激に変動する場合には、さらにこの値にローパスフィルタを適用した平均ジッタJ= kj + (1 − k)Jprev (kは0<k<1の実数値、Jprevは前回に計算された平均ジッタ)と、平均ジッタの閾値Jthを用いて、
J>Jth (2’)
を満たすならば、通信路は輻輳していると判断し、処理S9002に進む。
【0046】
また、輻輳が進むと、ネットワーク上のルータなどのバッファに送信したデータが蓄積されて伝送遅延が大きくなり、さらにその後バッファの許容量を超えるデータが送信されるとバッファが溢れパケット損失が生じることが考えられるため、ある一定区間のパケット損失率を輻輳の判定に用いる方法も考えられる。例えば、ある一定区間のパケット損失率Lおよび、パケット損失率の閾値Lthを用いて、
L>Lth(3)
を満たすならば、通信路は輻輳していると判断し、処理S9002に進む。パケット損失率の求め方については、例えばRFC1889を参考にすることができる。
【0047】
なお、ここで挙げた輻輳判定方法については一例であり、例えば、式(1)や式(2)(2’)の閾値を定数ではなく、受信しているストリームのビットレートに応じて変化する値を用いたり、例えば、式(1)と式(2)あるいは(2’)と式(3)を同時に満たす場合に輻輳と判定したり、また他の式を用いるなど、さまざまな判定方式をネットワークにあわせて設定することが可能である。
【0048】
また、この輻輳判定の処理S9001においては、ネットワーク状態判定部1200を図7のように発展させて、ネットワークの情報格納部1220を設け、過去のパケット情報1604をネットワーク情報格納部1220に蓄積しておき、ネットワーク情報判定部1210は過去のパケット情報1211と現在のパケット情報1604から、通信路状態の時間的な推移を判断することも可能である。例えば、過去に起こったパケット損失情報を格納しておき、例えば連続して式(3)を満たした回数Lcountと閾値Lcount_thを用いて輻輳を判断する方法も考えられる。この場合は、例えば、
Lcount>Lcount_th(4)
を満たすならば、通信路は輻輳していると判断し、処理S9002に進む。
【0049】
この方法は、特に無線などでデータ伝送を行う場合は、パケット損失は輻輳が原因で起こる場合のみならず、回線上にノイズのようなものが発生し、データを破壊した結果、その誤りがパケット損失としてあらわれる可能性がある場合に、ある一定区間のパケット損失率のみでは、誤りによるパケット損失を輻輳と判断してしまうのを防ぐことが可能である。
【0050】
逆に、例えば少し輻輳しているような状況において、(3)式におけるLthを超えない少量のパケット損失がある場合、(3)式や(4)式のみでは輻輳と判断しない可能性もある。このような場合には、ネットワーク上の中継装置のバッファにおいて、ランダムにパケットが廃棄されていると考えられるため、その廃棄によりジッタの値にある程度の変動が生じる。これを用いて、例えば過去の平均ジッタをネットワーク情報格納部1220に蓄積しておき、前回の平均ジッタJprevと、今回の平均ジッタJnowの変動値Jdelta=Jprev−Jnowが、ジッタの変動値の閾値Jdelta_thを超えた場合、すなわち
Jdelta>Jdelta_th(5)
を満たすならば輻輳であると判断し、処理S9002に進む。
【0051】
また、伝送路において発生する誤りに対し、ネットワーク層での再送が行われている場合には、クライアントでは大幅な遅延として観測され、結果的にジッタの変動となり、再送を輻輳と誤って判断してしまう。従ってこのような場合はジッタではなく、例えば、パケットの遅延dとパケットの到着間隔iの積ri = d×iの移動平均RI= k・ri + (1 − k)riprev (kは0<k<1の実数値、riprevは前回に計算されたriの移動平均)を用いて再送による遅延の変動をパケット到着間隔によって吸収した値を指標として用いてもよい。ただし、この指標によって輻輳を判断する場合の閾値をあらかじめ取得する必要があり、この取得方法の一例を以下に述べる。まず、受信開始時にネットワーク状態判定部1200において始めに受信するストリームを選択する際、輻輳する可能性のきわめて低い、一番レートの低いストリームのパラメータを選択しパケットデータ受信部1300に通知する。次にパケットデータ受信部1300は、ネットワーク状態判定部1200において選択されたパラメータに記述されたマルチキャストアドレスから選択されたストリームデータパケットの受信を開始し、開始後N個のパケットのriの平均値ri_thを計算し、ネットワーク状態判定部1200に通知し、この値を輻輳判定の閾値として使用する。RIがri_thのγ倍以上であった場合、すなわち
RI > ri_th×γ(γ>1の実数)(6)
を満たすような場合に輻輳であると判断し、処理S9002に進む。閾値を取得した後は帯域を有効に利用するため、現在選択しているレートより一段高いレートのストリームのパラメータに切り替えるための切り替え情報1605をパケット受信部1300に通知し、後述の切り替え処理によって、レートを回復させる処理を(6)式によって輻輳と判断されるまで、あるいは選択できるパラメータのうち一番高いレートになるまで繰り返し行ってもよい。
【0052】
このように、図7の構成を用いることにより、より正確に輻輳を判定することができる。
【0053】
次に処理S9002において、現在選択しているデータストリームのビットレート未満で最大のビットレートの受信パラメータを選択する。ここで、この条件を満たすパラメータデータが複数であった場合には、どれか一つを選択するが、その選択方法は、例えばGOP間隔が一番短いものを選択するといった方法が考えられるがこれに限るものではない。ただし、後述の切り替え処理を考慮すると、GOP間隔の短いものの方が望ましい。その理由については後述する。
【0054】
図3の例を用いて説明する。現在StreamNo.3のストリーム(64kbps)を受信している場合には、64kbps未満で最大のビットレートを持つストリームはStreamNo.5および6であるが、このうち、GOP間隔の一番短いものとして、StreamNo.6が選択される。
【0055】
次に処理S9003において、選択されたストリームの受信パラメータを切り替え情報1605として、パケット受信部1300に通知する。
【0056】
一方、処理S9002において、輻輳でないと判断された場合には、ストリームの変更は行わず、終了する。
【0057】
パケット受信部1300では、切り替え情報1605を渡されると、切り替えの処理を行うが、この処理の一例を示したものが図8である。図8の処理S10001において、まず、受信を行っているデータストリームのパケットの受信を終了する。データストリームのパケットの受信を終了する方法としては、該データストリームが配信されているマルチキャストグループのマルチキャストアドレス宛てに受信終了宣言(LEAVE)を行う(例えば、IGMP(Internet Group Management Protocol)に従う)ことが一般的である。次に処理S10002に進み、前述の選択されたデータストリームのパケットの受信を開始する。この方法は、例えば該データストリームのパケットが送信されているマルチキャストアドレスにJOINを送信する方法がある。前述の例を用いてこの切り替え処理を説明すると、StreamNo.3のデータストリームのパケットが送信されているマルチキャストアドレス「224.1.1.3」に対し、LEAVEを送信した後、StreamNo.6のデータストリームのパケットが送信されているマルチキャストアドレス「224.1.1.6」に対しJOINを送信することで切り替えを行うことができる。ここで、JOINを送信した後に初めて到着するStreamNo.6パケットデータは、フレーム内符号化モード(I picture)のデータを含むパケットであるとは限らないため、切り替えを行ってから初めてフレーム内符号化モードのパケットを受信するまでは正常に復号できない。なぜなら、フレーム間符号化(P picture)では、前の画像との差分を符号化しているため、切り替える前のストリームの最後のフレームを用いて復号しようと試みるからである。この正常に復号できない時間を短くするためには、受信を開始したストリームが、GOP間隔の短いデータストリームであることが効果的であり、これが、前述の選択を行う際にGOP間隔の短いものの方が望ましい理由である。しかし、ここで挙げた切り替えの方法は一例であり、先にJOINを行ったのちにLEAVEを行うということも考えられ、ネットワークに適した方法を設定することが可能である。この切り替え方法の他の例については、後述する。
【0058】
なお、この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われる。
【0059】
以上説明した第1の実施形態によれば、通信路の状態から動的に受信するマルチキャストアドレスを切り替えることにより、符号化パラメータの異なるストリームを受信することで、各受信者がそれぞれの環境に応じたストリームを効率よく受信することができる。
【0060】
また、通信路の帯域が不明の場合や、途中で変化した場合でも、受信側でパケット情報などから通信路の状態を判断し、何らかの原因で通信路上で輻輳が起こった場合にビットレートを落としたストリームに切り替えることによって、輻輳によるパケット損失を抑制し、パケット損失による画像データの破壊を防止して通信を行うことができる。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができる。
【0061】
また、あるクライアントの通信路上のみで輻輳が起こっているような場合でも、そのクライアントのみがビットレートの低いストリームに切り替えることが可能となるので、各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能になる。
【0062】
(第2の実施形態)
第2の実施形態は、第1の実施形態の図1,図2,図4,図5,および図7に示したものと共通の構成を有する。ただし、図5のネットワーク判定部1200におけるネットワークの状態判定とストリームパラメータの選択の処理において、通信路上の輻輳のみならず、ノイズなどが原因で発生するデータ誤りも考慮する点で第1の実施形態と異なる。
【0063】
図9は、ネットワーク状態判定部1200において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。このフローチャートにおいて、まず処理S9001における輻輳の判定では、第1の実施形態と同様の方法を用いる。また、処理S9001において輻輳していると判断された場合の処理S9002も第1の実施形態と同様である。
【0064】
処理S9001において、輻輳と判断されなかった場合、本実施形態では、処理S9004において、パケット損失があるかどうかを判断する。パケット損失があるかどうかの判断は、例えばパケット受信部1300から得られるパケット情報1604に含まれるパケットのシーケンス番号が連続していない場合に損失ありと判断できる。輻輳と判断されなかったにもかかわらず、パケット損失がある場合には、何らかの原因により通信路上で誤りが発生したと判断し、処理S9005において、パラメータデータ1601より例えば現在受信中のパラメータと同じビットレートのストリームのうち、一番GOP間隔の短いパラメータを持つデータストリームを選択する。図3のパラメータデータ例を用いて例を説明すると、現在StreamNo.3のストリームを受信している場合には、同じビットレート(64kbps)でもっともGOP間隔の短いStreamNo.4のストリームが選択される。
【0065】
ここで、処理S9004では、パケット損失があるかどうかの判断をシーケンス番号を用いて行ったが、少量のパケット損失がそれほど画像の再生に影響を与えないような場合には、パケット損失率Lを用いてもよい。この場合は、例えばパケット損失率の閾値Lerror_th(<Lthを用いて、例えば、
Lerror > Lerror_th(7)
を満たす場合に損失ありと判断することも考えられる。
【0066】
ストリームの変更を行う場合に、それをパケット受信部1300に通知する処理S9003およびパケット受信部1300における切り替え処理については、第1の実施形態と同様である。
【0067】
最後に、処理S9004において、パケット損失が発生しなかった場合には、通信路の状態は良好と判断し、その後の処理は何も行わない。
【0068】
また、この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われることも、第1の実施形態と同様である。
【0069】
なお、本実施形態では、図9における処理S9001においてまず輻輳かどうかを判定しているが、帯域に変動がない場合や、帯域に十分な余裕があることを前提とし、同一のビットレートでGOP間隔のみが異なるの1つ以上のストリームを配信するような場合には、S9001およびS9002の処理を省き、処理S9004のパケット損失判定のみを行うことで処理の軽減を行うことも可能である。
【0070】
このような本発明の第2の実施形態によれば、輻輳のみならずノイズなどによるデータ誤りが原因で発生するパケット損失についてもその発生有無を判断することができ、誤りに対しては、GOP間隔の短いストリームに切り替えることにより、ビットレートを下げることなくパケット損失による誤りの伝播を抑制することができるようになる。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができる。また、あるクライアントの通信路上のみで誤りが起こっているような場合でも、そのクライアントのみGOP間隔の短いストリームに切り替えることが可能なので、各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能である。
【0071】
第1の実施形態や第2の実施形態では、通信路に輻輳や誤りが発生すると、ビットレートの低いストリームや、GOP間隔の短いストリームに変更していたが、逆にビットレートの高いストリームやGOP間隔の長いストリームに変更することも可能である。そのような例を第3の実施形態および第4の実施形態に示す。
【0072】
(第3の実施形態)
第3の実施形態は、第2の実施形態と同様に、第1の実施形態の図1,図2,図4,図5,および図7に示したものと共通の構成を有する。ただし、第3の実施形態では、図5のネットワーク判定部1200におけるネットワークの状態判定において、誤りの発生が局所的であるような場合に、誤りが一定期間起こらない場合にはGOP間隔を長く回復させることができるよう構成される点で第2の実施形態と異なる。
【0073】
図10は、ネットワーク状態判定部1200において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。このフローチャートにおいて、まず処理S9001において輻輳を判定する方法は、第1の実施形態と同様の方法を用いる。また、処理S9001において輻輳していると判断された場合の処理S9002も第1、第2の実施形態と同様である。
【0074】
処理S9001において、輻輳と判断されなかった場合、本実施形態では、処理S9004において、パケット損失があるかどうかを判断する。ここでのパケット損失の判定および、パケット損失があると判定された場合のGOP間隔を短くするストリーム選択処理S9005は、第2の実施形態と同様である。
【0075】
処理S9004において、パケット損失が発生しなかった場合には、通信状態が良好であると判断し、処理S9006〜S9007において、GOP間隔を回復しようと試みる。図10の処理の例では、処理S9003において、前回損失が検知された時刻と現時刻の差を損失が起きなかった時間Tとして計算し、この時間Tを用いて適切なGOP間隔TGOPを計算する。これは例えば、次に示すような式(7)で計算することが可能である。
【0076】
TGOP=T×α (8)
ここで、αは感度係数であり、GOP間隔の回復の感度を示す値である。αが小さければ、回復の感度は鈍くなり、αが大きければ回復の感度は鋭くなる。例えば、パケット損失が起こらなかった時間が4sであった場合に感度係数αの値が0.5であったとすると、TGOP=4×0.5=2sと計算される。
【0077】
次に、S9007において、現在受信中のストリームと同じビットレートで、かつS9006で計算された適切なGOP間隔を超えない、もっとも近いGOP間隔のストリームを選択する。図3のパラメータデータ例および前述のTGOP=2sを用いて例を説明すると、現在StreamNo.4のストリームを受信している場合には、同じビットレート(64kbps)で2sを超えない最も近いGOP間隔が2sであるStreamNo.3のストリームが選択される。もしも、TGOP=1sである場合には、引き続きStreamNo.4のストリームが選択されることになる。
【0078】
ストリームの変更を行う場合に、それをパケット受信部1300に通知する処理S9003およびパケット受信部1300における切り替え処理については、第1、第2の実施形態と同様である。
【0079】
この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われることも、第1、第2の実施形態と同様である。
【0080】
なお、本実施形態では、図10における処理S9001においてまず輻輳かどうかを判定しているが、帯域に変動がなく、同一のビットレートでGOP間隔のみが異なる1つ以上のストリームを配信するような場合には、はじめから処理S9001およびS9002を省き、処理S9004のパケット損失判定のみを行うことで処理負荷を軽減することも可能である。
【0081】
以上説明した本発明の第3の実施形態によれば、通信路上に誤りが発生し、GOP間隔を短くすることでこれに対処した後に、通信路の状態が好転した場合に、GOP間隔を長く回復させることができ、より品質のよいストリームを提供することが可能である。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができる。各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能である点は、第1、第2の実施形態と同様である。
【0082】
(第4の実施形態)
第4の実施形態においても、第2、第3の実施形態と同様に、第1の実施形態において図1,図2,図4,図5,および図7に示したものと共通する構成を有する。第4の実施形態は、図5のネットワーク判定部1200におけるネットワークの状態判定において、通信路の帯域に余裕があるかどうかを判断し、余裕がある場合にはビットレートの高いストリームを選択し、ビットレートを回復させることができる点で第3の実施形態とは異なる。
【0083】
図11は、ネットワーク状態判定部1200において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。このフローチャートにおいて、まず処理S9001において輻輳を判定する方法は、第1〜第3の実施形態と同様の方法を用いる。また、処理S9001において輻輳していると判断された場合の処理S9002も第1〜第3の実施形態と同様である。
【0084】
処理S9001において、輻輳と判断されなかった場合、処理S9004において、パケット損失があるかどうかを判断する。ここでのパケット損失の判定および、パケット損失があると判定された場合のGOP間隔を短くするストリーム選択処理S9005は第3の実施形態と同様である。
【0085】
処理S9004において、パケット損失がないと判断された場合、本実施形態では、処理S9008において、帯域に余裕があるかどうかの判定を行う。この判定については、例えば、その時点での受信パケットの平均ジッタの値Jnowを帯域の余裕度とし、この平均ジッタの値Jnowが、十分小さい値の閾値Jup_thを下回った場合、すなわち、
Jnow<Jup_th(9)
を満たす場合に帯域に余裕があると判断する。ただし、この帯域に余裕があるかどうかの判定方法は、これに限るものではなく、例えば、遅延dが十分小さい値であるかどうかを判定したり、また式(9)においてJup_thを受信しているストリームのビットレートに応じて変化する値を用いたり、受信しているストリームのビットレートbnowの次にビットレートが高いストリームbupとのビットレートの差bdelta=bnow − bupに応じて変化する値を用いるなどの方法が考えられる。
【0086】
また、伝送路において発生する誤りに対し、ネットワーク層での再送が行われている場合には、例えばその時点での受信パケットの遅延とパケットの到着間隔の積の移動平均RIが、(6)式で用いた閾値ri_thのδ倍を下回った場合、すなわち
RI < ri_th×δ(10)
を満たすような場合に帯域に余裕があると判断するなどの方法も考えられる。
【0087】
処理S9008において帯域に余裕があると判断された場合には、処理S9009に進み、現在選択しているデータストリームのビットレートより大きく、最小のビットレートの受信パラメータを選択する。ここで、この条件を満たすパラメータデータが複数であった場合には、どれか一つを選択する。その選択方法は、例えばGOP間隔が一番短いものを選択するといった方法が考えられるがこれに限るものではない。ただし、前述のとおり、切り替え時に発生する正常に復号できない時間を短くするために、GOP間隔の短いものの方が望ましい。図3の例を用いて説明する。現在StreamNo.3のストリーム(64kbps)を受信している場合には、64kbps未満で最大のビットレートを持つストリームはStreamNo.1および2(128kbps)であるが、このうち、GOP間隔の一番短いものとして、StreamNo.2が選択される。
【0088】
処理S9008において、帯域に余裕がないと判断された場合には、GOP間隔を回復しようと試みる処理を行うが、この処理S9006およびS9007は第3の実施形態と同様である。
【0089】
ストリームの変更を行う場合に、それをパケット受信部1300に通知する処理S9003およびパケット受信部1300における切り替え処理については、第1〜第3の実施形態と同様である。
【0090】
この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われることも、第1〜第3の実施形態と同様である。
【0091】
なお、本実施形態では、図11において通信路に誤りが発生しないと仮定し、同一のGOP間隔のみの1つ以上のストリームを配信するような場合には、処理S9004、S9005、および処理S9006、S9007を省き、処理S9001において輻輳していない場合には処理S9008に進めて、輻輳かどうかと帯域に余裕があるかどうかの判定のみを行うことで処理の軽減を行うことも可能である。
【0092】
以上説明した本発明の第4の実施形態によれば、通信路の帯域に余裕があるかどうかを判定し、余裕がある場合には、ビットレートを高く回復させることができるため、帯域を無駄なく使用して品質のよいストリームを提供することが可能である。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができ、各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能であることは、第1〜第3の実施形態と同様である。
【0093】
なお、第4の実施形態では、帯域に余裕があるかどうかの判定は行ったが、どれくらい余裕があるかの判定は行っていないため、ビットレートを回復させた結果、帯域をオーバーし、輻輳を招く可能性がある。さらに、選択処理を繰り返し行うことにより、ビットレートの回復と輻輳を繰り返し、逆に見づらい映像になってしまう可能性がある。このような現象を抑制するために、過去のストリームの切り替えの履歴に基づき、安定してストリームを提供できるようにした例を第5の実施形態で説明する。
【0094】
(第5の実施形態)
第5の実施形態では、図1,図2,図4,および図5に示した構成は第1〜第4の実施形態のものと共通している。図5のネットワーク状態判定部1200の内部に図12のように図7と同様の、パケット受信部1300からのパケット情報1604を蓄積するためのネットワーク情報格納部1220と、過去に選択したストリームのパラメータ1605を蓄積するための受信パラメータ情報格納部1230を設けたこと、および、ネットワーク状態判定部1200における状態判定の処理において、その過去に選択したストリームの履歴1212を用いた判定を行う点が第4の実施形態とは異なる。
【0095】
図13は、本実施形態のネットワーク状態判定部1210(図12)において、パケット情報を用いて通信路の状態を判断し、その状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャートである。このフローチャートにおいて、まず処理S9001において輻輳を判定する方法は、第1〜第4の実施形態と同様の方法を用いる。また、処理S9001において輻輳していると判断された場合の処理S9002も第1〜第4の実施形態と同様である。
【0096】
次に処理S9010に進むが、ここでは、前回の切り替えがビットレートの回復を行ったものであったかどうかを判定する。この判定には、図12における受信パラメータ情報格納部1230から切り替え情報の履歴1212を得ることで判断する。前回の切り替えがビットレートの回復であり、その切り替えの後に輻輳した場合には、その回復が適切でなかったと判断される。そのため、処理S9011に進み、輻輳していなかった場合の帯域に余裕があるかどうかの判定を行う処理S9008において、余裕があると判断する式(8)Jnow<Jup_thの閾値Jup_thをさらに小さくするために、例えば、
として閾値Jup_thの修正を行う。これにより、次回の帯域に余裕があるかどうかの判定では、帯域に余裕があると判断される確率が低くなる。また、ネットワーク層での再送により遅延に変動がある場合にRIを指標として用いている場合にも同様に、式(10)で用いている閾値ri_thをさらに小さくするために、例えば、
としてもよい。
【0097】
処理S9001において、輻輳と判断されなかった場合は、処理S9004においてパケット損失があるかどうかを判断する。ここでのパケット損失の判定および、パケット損失があると判定された場合のGOP間隔を短くするストリーム選択処理S9005は第4の実施形態と同様である。また、S9004でパケット損失が発生しなかった場合には、帯域に余裕があるかどうかの判定を行う処理S9008を行うが、この処理は第4の実施形態と同様である。
【0098】
さらに、処理S9008において帯域に余裕があると判断された場合の、ビットレートを回復するようなストリームを選択する処理S9009は、第4の実施形態と同様である。また、処理9008において、帯域に余裕がないと判断された場合にGOP間隔を回復しようと試みる処理S9006およびS9007も第4の実施形態と同様である。
【0099】
ストリームの変更を行う場合に、それをパケット受信部1300に通知する処理S9003およびパケット受信部1300における切り替え処理についても、第1〜第4の実施形態と同様である。
【0100】
この選択の処理は、通信路の状態の変化に追随するため、例えばある一定の時間ごとに行うなど、繰り返し行われることも、第1〜第4の実施形態と同様である。
【0101】
なお、本実施形態では、図11において通信路に誤りが発生しないと仮定し、同一のGOP間隔のみの1つ以上のストリームを配信するような場合には、処理S9004、S9005、および処理S9006、S9007を省き、処理S9001において輻輳していない場合には処理S9008に進めて、輻輳かどうかと帯域に余裕があるかどうかの判定のみを行うことで処理の軽減を行うことも可能である。
【0102】
また、この実施形態を変形し、過去の切り替えの履歴1212において、一定期間同じビットレートを受信している場合には、処理S9008における判定の平均ジッタの閾値を、例えば、
などと大きくなるように変更し、ビットレートの回復を行いやすくするようにすることで、通信路の帯域が回復した場合に早く状況に追従できるようにすることも可能である。また、ネットワーク層での再送により遅延に変動がある場合にRIを指標として用いている場合にも同様に、式(10)で用いている閾値ri_thを大きくするために、例えば、
としてもよい。
【0103】
以上説明した本発明の第5の実施形態によれば、ビットレートを回復させた結果、帯域をオーバーして輻輳を招いた場合でも、過去のストリームの切り替えの履歴を用いて閾値に修正を行うことができ、これによりビットレートの回復と輻輳の繰り返しを適切に抑制できることから、安定したストリーム提供を実現できる。また、これらの処理は各クライアントごとに行われるため、サーバ側の制御負荷を軽減することができる。各クライアントごとに、それぞれの通信路の状態に適したストリームを提供することが可能であることは、第1〜第4の実施形態と同様である。
【0104】
以上に述べた第1〜第5の実施形態では、パケット受信部1300におけるストリームの受信切り替え処理において、切り替えを行ってから初めてフレーム内符号化モードのパケットを受信するまでは正常に復号がおこなえない。このような現象の抑制方法について以下に説明する。
【0105】
これは、図5に示すクライアントの構成のうち、パケット受信部1300を発展させたものであり、これまでに述べた第1〜第5の実施形態の一部を発展させた例として適用可能である。図14に示すように、内部にフレーム内符号化判定部1321、切り替え制御部1322およびパケットデータ受信部1323を設けている。この構成によれば、パケットデータ受信部1323により受信されたパケットのシーケンス番号やタイムスタンプなどのヘッダ情報およびパケットの到着時間などのパケット情報1604はネットワーク状態判定部1200に渡され、第1〜第5の実施形態で述べたストリームを選択する処理が行われる。ここで、ストリームの変更があった場合には変更後のストリームの受信パラメータを含む切り替え情報1605が、ネットワーク状態判定部1200より切り替え制御部1322に渡される。また、パケットデータ受信部1323により受信されたパケット1602は、フレーム内符号化判定部1321に渡される。フレーム内符号化判定部1321は、パケットに含まれる符号化データがフレーム内符号化のデータかフレーム間符号化のデータかを判定し、その結果がパケット1602に付加されたデータ1324を切り替え制御部1322に渡す。
【0106】
切り替え制御部1322では、切り替え情報1605を受け取ると、例えば図15に示すような切り替えの処理を行う。まず、処理S11001において、受信帯域に余裕があるかどうかを判定する。この判定は、フレーム内符号化判定部1321から渡されるデータ1324に含まれるパケットのシーケンス番号やタイムスタンプなどのヘッダ情報およびパケットの到着時間などからパケットの平均ジッタなどを計算し、例えば第4の実施形態で示した(9)式などを用いて行う。
【0107】
帯域に余裕があると判定された場合には、処理S11002に進み、切り替え情報1605に含まれる変更後の受信パラメータのマルチキャストアドレスよりストリームの受信を開始(JOIN)する。
【0108】
次に処理11003に進み、変更後のストリームの受信パケットがフレーム内符号化かどうかを判断する。これは、フレーム内符号化判定部1321から渡されるデータ1324に含まれる判定結果を用い、変更後のストリームであるかどうかの判断は、パケットヘッダに含まれる送信先マルチキャストアドレスや、ペイロード番号などを用いて行う。ここで、変更後のストリームでフレーム内符号化された符号化データを含むパケットを受信するまでは、画像復号部1400に対して変更前のストリームを含むパケットに含まれる符号化データ1606を出力し、変更後のストリームを含むパケットは破棄する。変更後のストリームの受信パケットがフレーム内符号化された符号化データを含むパケットであった場合には、処理S11004に進み、画像復号部1400に対して変更前のストリームのパケットに含まれる符号化データの出力を停止するとともに以降のパケットは破棄し、変更後のストリームのパケットに含まれる符号化データ1606を出力する。
【0109】
最後に、処理S11005にて、変更前のストリームのマルチキャストアドレスからのストリームの受信を停止(LEAVE)する。
【0110】
この一連の処理(S11002〜S11005)では、帯域に余裕があることを利用して、変更前のストリームと変更後のストリームを一時同時に受信し、変更後のストリームのフレーム内符号化されたデータの到着を待ってから画像復号部1400に対して出力するストリームを切り替えることで、途切れのないスムーズな切り替えを行うことが可能である。
【0111】
具体的な例を用いて説明する。図16において、切り替えが発生した際には変更前のストリーム(224.1.1.1のストリーム)を受信している。この時点でまず変更先のストリーム(224.1.1.2のストリーム)の受信を開始(JOIN)する。次に変更後のストリームの受信を開始してから最初のフレーム内符号化されたパケット16001を受信した時点で出力するストリームを切り替え、変更前のストリームの受信を停止(LEAVEする)。こうすることで、出力されるストリームはフレーム内符号化されたフレームが到着するまでは変更前のストリームが出力され、ちょうどフレーム内符号化されたフレームが到着した時点で変更先のストリームに切り替わることから、乱れのない映像を提供可能である。ただし、切り替えの間は2本のストリームを同時に受信することになるため、S11001において帯域に十分な余裕があるか判定する必要がある。
【0112】
一方、処理S11001において、帯域に余裕がないと判断された場合には、処理S11006に進み、変更前のストリームのマルチキャストアドレスからのストリームの受信を停止(LEAVE)する。次に、処理S11007に進み、切り替え情報1605に含まれる変更後の受信パラメータのマルチキャストアドレスよりストリームの受信を開始(JOIN)する。次に処理11008に進み、処理11003と同様の方法で変更後のストリームの受信パケットがフレーム内符号化かどうかを判断する。ここで、変更後のストリームでフレーム内符号化された符号化データを含むパケットを受信するまでは、画像復号部1400に対して変更前のストリームを含むパケットに含まれる符号化データ1606を出力し、変更後のストリームを含むパケットは破棄する。変更後のストリームの受信パケットがフレーム内符号化された符号化データを含むパケットであった場合には、処理S11009に進み、画像復号部1400に対して変更前のストリームのパケットに含まれる符号化データの出力を停止するとともに以降のパケットは破棄し、変更後のストリームのパケットに含まれる符号化データ1606を出力する。
【0113】
この一連の処理(S11006〜S11007)では、変更前のストリームの受信を停止した後に変更後のストリームの受信を開始し、変更後のストリームのフレーム内符号化されたデータの到着を待ってから画像復号部1400に対して出力するストリームを切り替えることで、使用帯域を抑制するとともに、変更後のストリームのフレーム内符号化されたデータを受信するまで変更前のストリームの最後のフレームで一端画像が停止するものの、切り替えによる画像の乱れが起きないスムーズな切り替えを行うことが可能である。
【0114】
具体的な例を用いて説明する。図17において、切り替えが発生した際には変更前のストリーム(224.1.1.1のストリーム)を受信しているが、まず変更前のストリーム(224.1.1.1のストリーム)の受信を停止(LEAVE)した後に変更後のストリーム(224.1.1.2のストリーム)の受信を開始(JOIN)する。これにより図16の例のように2本のストリームを同時に受信する必要がなくなり、帯域を節約することが可能である。次に変更後のストリームの受信を開始してから最初のフレーム内符号化されたパケット17001を受信した時点で出力するストリームを切り替える。この間、出力されるストリームは変更前のストリームの最後に受信したフレームで停止しているが、出力されるストリームはちょうどフレーム内符号化されたフレームから切り替わり、乱れのない映像を提供することができる。
【0115】
また、処理S11006〜S11007においては、変更後のストリームのフレーム内符号化されたデータを受信するまで変更前のストリームの最後のフレームで一端画像が停止するが、この区間を短く抑える方法を提供する。一定間隔でフレーム内符号化されたフレームが入ることがわかっている場合に、次のフレーム内符号化されたフレームが送信される時刻を予測して切り替えるタイミングを制御することも考えられる。例えば、サーバ2000から送信されるRTCPなどから取得することが可能なストリームの先頭パケットを送信した時刻Tfirst_sendと現在時刻tおよびパラメータデータから取得可能なGOP間隔Igopから、次のフレーム内符号化されたデータを含むパケットがサーバ側で送信される時刻Tnext_ivop_sendを以下のように推定する。
【0116】
この時刻に間に合うように、例えば、この時刻よりパケットの遅延dと、パケットの遅延のばらつきd’の和だけ早い時刻Tchange、すなわち
に処理11006〜処理11007を実行すれば、次のフレーム内符号化されたデータを含むパケットの到着にあわせて切り替えることができ、切り替え時に映像が停止する時間を短く抑えることが可能である。
【0117】
また、切り替えによる画像の停止を短く抑える別の方法を提供する。この方法は前記方法とは異なり、一定間隔でフレーム内符号化されたフレームが入っていなくても使用可能である。すなわち、サーバ2000に対し、例えばRTSPのGET_PARAMETERなどの上位プロトコルのコマンドを利用し、変更後のストリームの次のフレーム内符号化されたフレームを含むパケットが送信される時刻Tnext_ivop_sendを取得する。後は前記の方法と同様に例えば(16)式で計算される時刻Tchangeに処理11006〜処理11007を実行すれば、次のフレーム内符号化されたデータを含むパケットの到着にあわせて切り替えることができ、切り替え時に映像が停止する時間を短く抑えることが可能である。この処理11006〜処理11007を行う時刻の制御については、以上に述べた方法は一例であり、サーバ2000が変更後のストリームの次のフレーム内符号化されたデータを含むパケットを送信する時刻Tnext_ivop_sendを取得あるいは推定する方法であれば(16)式を用いて切り替え時刻を制御することが可能である。
【0118】
以上のような切り替え方法を第1〜第5の実施形態に適用することで、通信路の状態に追従した適したストリームに切り替える際に、帯域の余裕に応じた切り替え方式を切り替えることで、スムーズな切り替えを行うことが可能になる。
【0119】
なお、以上に示した実施形態では、図1で示すようなサーバ2000から各クライアント1000にいたるまでネットワーク3000上をマルチキャストを介してデータ伝送を行ったが、例えばクライアント1000a〜1000bとして携帯端末を想定する場合は、図18のように、ネットワーク3000からクライアント1000a〜1000bへの末端ノードを基地局4000とし、サーバ2000から基地局4000までをマルチキャストで伝送し、基地局4000からクライアント1000a〜1000b間はユニキャストを用いて伝送してもよい。また、ネットワーク3000から例えばクライアント1000c〜1000dへの末端ノードを、マルチキャストグループへの参加/不参加を監視し下流のノードへ転送するストリームを制御する機能を持つスイッチ5000とすることで、スイッチ5000とクライアント1000cおよびクライアント1000d間において、クライアント1000cおよび1000dがそれぞれ受信しているストリームのみを伝送することが可能となる。このように、本発明では、サーバからクライアントにいたるまでの通信経路の一部に、ユニキャストを用いたり、マルチキャストのトラフィックを制御するようなスイッチを含んでいてもよい。特に、図18の例のように誤りや帯域変動が生じやすいネットワークの末端ノード(基地局やスイッチ)からクライアントまでをユニキャストで伝送したり、末端ノードをマルチキャストトラフィック制御機能を持つスイッチとするなどして、伝送されるストリームを制御することにより本発明はより効果を発揮する。
【0120】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【0121】
【発明の効果】
以上説明したように、本発明によれば、送信側装置および受信側装置の双方の処理負荷を高めることなく、受信側装置が置かれている多様な伝送環境に対して適応的なデータ伝送を実現することのできる装置、および方法を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係るデータ伝送システムの全体構成を示すブロック図
【図2】サーバの内部構成を示すブロック図
【図3】パラメータ送信部が送信するパラメータデータの一例を示す図
【図4】サーバの他の構成例を示すブロック図
【図5】クライアントの基本的な構成を示すブロック図
【図6】通信路の状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャート
【図7】ネットワーク状態判定部における輻輳判定に係る他の構成例を示すブロック図
【図8】パケット受信部における切り替え処理の一例を示すフローチャート
【図9】本発明の第2実施形態に係わり、ネットワーク状態判定部において、通信路の状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャート
【図10】本発明の第3実施形態に係わり、ネットワーク状態判定部において、通信路の状態に適したパラメータをもつデータストリームを選択する処理の他の例を示すフローチャート
【図11】本発明の第4実施形態に係わり、ネットワーク状態判定部において、通信路の状態に適したパラメータをもつデータストリームを選択する処理のさらに別の例を示すフローチャート
【図12】本発明の第5実施形態に係るネットワーク状態判定部の構成を示すブロック図
【図13】本発明の第5実施形態に係り、ネットワーク状態判定部において、通信路の状態に適したパラメータをもつデータストリームを選択する処理の一例を示すフローチャート
【図14】実施形態の変形例に係わるパケットデータ受信部の構成例を示すブロック図
【図15】上記変形例に係わり、切り替え制御部による切り替え情報に基づく切り替えの処理を示すフローチャート
【図16】上記変形例に係わり、ストリームの切り替えを説明するための概念図
【図17】上記変形例に係わり、ストリームの切り替えを説明するための概念図
【図18】実施形態の変形例に係わるシステム構成図
【符号の説明】
1000a〜d…クライアント(データ受信装置)、2000…サーバ(データ送信装置)、3000…ネットワーク
Claims (20)
- データ信号を入力する入力手段と、
前記データ信号を第1、第2の符号化パラメータを用いて符号化して第1、第2の符号化データストリームを生成する符号化手段と、
前記第1の符号化データストリームをパケット化して第1のマルチキャストアドレスに送信するとともに、前記第2の符号化データストリームをパケット化して第2のマルチキャストアドレスに送信するパケットデータ送信手段と、
前記第1、第2の符号化パラメータを前記第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータをデータ受信装置からの要求に応じて送信するパラメータ送信手段と、
を具備するデータ送信装置。 - 同一のデータ信号を第1、第2の符号化パラメータを用いて符号化して生成される第1、第2の符号化データストリームを格納する格納手段と、
データ受信装置からの要求に応じて前記格納手段から前記第1、第2の符号化データストリームを読み出す読み出し手段と、
前記読み出し手段により読み出された第1の符号化データストリームをパケット化して第1のマルチキャストアドレスに送信するとともに、前記読み出し手段により読み出された第2の符号化データストリームをパケット化して第2のマルチキャストアドレスに送信するパケットデータ送信手段と、
前記第1、第2の符号化データストリームのそれぞれの符号化パラメータを前記第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータを、データ受信装置からの要求に応じて送信するパラメータ送信手段と、
を具備するデータ送信装置。 - 同一のデータ信号を第1、第2の符号化パラメータを用いて符号化して生成された第1、第2の符号化データストリームのそれぞれの符号化パラメータを第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータを受信するパラメータ受信手段と、
前記パラメータデータに基づいて前記第1、第2のマルチキャストアドレスのいずれか一方を選択するアドレス選択手段と、
前記アドレス選択手段により選択されたマルチキャストアドレスに対応する前記第1、第2の符号化データストリームのいずれか一方のパケットデータを受信するパケットデータ受信手段と、
前記パケットデータ受信手段により受信されたパケットデータを復号して前記データ信号を再生するデータ再生手段と、
を具備するデータ受信装置。 - 伝送路の通信状態を前記パケットデータ受信手段により受信されたパケットデータに基づいて判定するネットワーク状態判定手段と、
前記ネットワーク状態判定手段により判定された通信状態に基づいて、前記伝送路に現在、輻輳が生じているか否かを判定する輻輳判定手段と、
前記輻輳判定手段により輻輳が生じていると判定された場合に、前記伝送路の占有帯域幅を削減可能な前記第1、第2の符号化データストリームのいずれか一方のパケットデータを受信するように前記第1、第2のマルチキャストアドレスをいずれか一方からいずれか他方に切り替えるアドレス切り替え手段と、
をさらに具備する請求項3に記載のデータ受信装置。 - 前記通信状態の判定に用いられるパケットデータは、パケットの遅延時間、パケットの損失、あるいはパケットの到着間隔の少なくともいずれかの情報を含む請求項4に記載のデータ受信装置。
- 前記ネットワーク状態判定手段により判定された前記通信状態を表すネットワーク情報を格納するネットワーク情報格納手段をさらに具備し、
前記輻輳判定手段は、前記ネットワーク情報格納手段に格納された過去のネットワーク情報と、前記ネットワーク状態判定手段により判定された現在の通信状態とに基づいて、前記伝送路に現在、輻輳が生じているか否かを判定する請求項4又は5に記載のデータ受信装置。 - 前記パラメータ受信手段により受信されたパラメータデータを格納するパラメータ格納手段をさらに具備し、
前記輻輳判定手段は、前記パラメータ格納手段に格納された過去のパラメータデータと、前記ネットワーク状態判定手段により判定された現在の通信状態とに基づいて、前記伝送路に現在、輻輳が生じているか否かを判定する請求項4又は5に記載のデータ受信装置。 - 前記パケットデータ受信手段により受信されたパケットデータにパケット損失が生じたか否かを検出する検出手段と、
前記検出手段により検出されたパケット損失の時間間隔を計測する計測手段と、
前記時間間隔の長短に応じて前記アドレス選択手段によるマルチキャストアドレスの選択を制御する手段をさらに具備する請求項4乃至7のいずれかに記載のデータ受信装置。 - 前記伝送路の帯域の余裕度を計算する計算手段と、
前記計算手段により計算された余裕度を閾値と比較し、その比較結果に従って前記アドレス選択手段によるマルチキャストアドレスの選択を制御する手段をさらに具備する請求項4乃至7のいずれかに記載のデータ受信装置。 - フレーム内符号化された符号化ストリームの推定送信時刻を計算する計算手段と、
前記データ再生手段によるデータ信号の再生が前記フレーム内符号化された符号化ストリームの不達に起因して停止しないように、前記アドレス選択手段によるマルチキャストアドレスの選択を前記推定送信時刻に基づいて制御する手段をさらに具備する請求項8又は9に記載のデータ受信装置。 - データ信号を入力する入力ステップと、
前記データ信号を第1、第2の符号化パラメータを用いて符号化し、第1、第2の符号化データストリームを生成する符号化ステップと、
前記第1の符号化データストリームをパケット化して第1のマルチキャストアドレスに送信するとともに、前記第2の符号化データストリームをパケット化して第2のマルチキャストアドレスに送信するパケットデータ送信ステップと、
前記第1、第2の符号化データストリームの生成に用いられたそれぞれの符号化パラメータを前記第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータを、データ受信装置からの要求に応じて送信するパラメータ送信ステップと、
を具備するデータ送信方法。 - 同一のデータ信号を第1、第2の符号化パラメータを用いて符号化して生成された第1、第2の符号化データストリームを格納する格納ステップと、
データ受信装置からの要求に応じて前記格納ステップにおいて格納された前記第1、第2の符号化データストリームを読み出す読み出しステップと、
前記読み出しステップにおいて読み出された第1の符号化データストリームをパケット化して第1のマルチキャストアドレスに送信するとともに、前記読み出しステップにおいて読み出された第2の符号化データストリームをパケット化して第2のマルチキャストアドレスに送信するパケットデータ送信ステップと、
前記第1、第2の符号化データストリームのそれぞれの符号化パラメータを前記第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータを、データ受信装置からの要求に応じて送信するパラメータ送信ステップと、
を具備するデータ送信方法。 - 同一のデータ信号を第1、第2の符号化パラメータを用いて符号化して生成された第1、第2の符号化データストリームのそれぞれの符号化パラメータを第1、第2のマルチキャストアドレスを含む送信パラメータに対応付けて表すパラメータデータを受信するパラメータ受信ステップと、
前記パラメータデータに基づいて前記第1、第2のマルチキャストアドレスのいずれか一方を選択するアドレス選択ステップと、
前記アドレス選択ステップにおいて選択されたマルチキャストアドレスに対応する前記第1、第2の符号化データストリームのいずれか一方のパケットデータを受信するパケットデータ受信ステップと、
前記パケットデータ受信ステップにおいて受信されたパケットデータを復号して前記データ信号を再生するデータ再生ステップと、
を具備するデータ受信方法。 - 伝送路の通信状態を前記パケットデータ受信ステップにおいて受信されたパケットデータに基づいて判定するネットワーク状態判定ステップと、
前記ネットワーク状態判定ステップにおいて判定された通信状態に基づいて、前記伝送路に現在、輻輳が生じているか否かを判定する輻輳判定ステップと、
前記輻輳判定ステップにおいて輻輳が生じていると判定された場合に、前記伝送路の占有帯域幅を削減可能な前記第1、第2の符号化データストリームのいずれか一方のパケットデータを受信するように前記第1、第2のマルチキャストアドレスをいずれか一方からいずれか他方に切り替えるアドレス切り替えステップと、
をさらに具備する請求項13に記載のデータ受信方法。 - 前記通信状態の判定に用いられるパケットデータは、パケットの遅延時間、パケットの損失、あるいはパケットの到着間隔の少なくともいずれかの情報を含む請求項14に記載のデータ受信方法。
- 前記ネットワーク状態判定ステップにおいて判定された前記通信状態を表すネットワーク情報を格納するネットワーク情報格納ステップをさらに具備し、
前記輻輳判定ステップは、前記ネットワーク情報格納手段に格納された過去のネットワーク情報と、前記ネットワーク状態判定ステップにおいて判定された現在の通信状態とに基づいて、前記伝送路に現在、輻輳が生じているか否かを判定する請求項14又は15に記載のデータ受信方法。 - 前記パラメータ受信ステップにおいて受信されたパラメータデータを格納するパラメータ格納ステップをさらに具備し、
前記輻輳判定ステップは、前記パラメータ格納ステップにおいて格納された過去のパラメータデータと、前記ネットワーク状態判定ステップにおいて判定された現在の通信状態とに基づいて、前記伝送路に現在、輻輳が生じているか否かを判定する請求項14又は15に記載のデータ受信方法。 - 前記パケットデータ受信ステップにおいて受信されたパケットデータにパケット損失が生じたか否かを検出する検出ステップと、
前記検出ステップにおいて検出されたパケット損失の時間間隔を計測する計測ステップと、
前記時間間隔の長短に応じて前記アドレス選択ステップにおけるマルチキャストアドレスの選択を制御するステップをさらに具備する請求項14乃至17のいずれかに記載のデータ受信方法。 - 前記伝送路の帯域の余裕度を計算する計算ステップと、
前記計算ステップにおいて計算された余裕度を閾値と比較し、その比較結果に従って前記アドレス選択ステップにおけるマルチキャストアドレスの選択を制御するステップをさらに具備する請求項14乃至17のいずれかに記載のデータ受信方法。 - フレーム内符号化された符号化ストリームの推定送信時刻を計算する計算ステップと、
前記データ再生ステップにおけるデータ信号の再生が前記フレーム内符号化された符号化ストリームの不達に起因して停止しないように、前記アドレス選択ステップにおけるマルチキャストアドレスの選択を前記推定送信時刻に基づいて制御するステップをさらに具備する請求項18又は19に記載のデータ受信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003196725A JP2005033556A (ja) | 2003-07-14 | 2003-07-14 | データ送信装置、データ送信方法、データ受信装置、データ受信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003196725A JP2005033556A (ja) | 2003-07-14 | 2003-07-14 | データ送信装置、データ送信方法、データ受信装置、データ受信方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005033556A true JP2005033556A (ja) | 2005-02-03 |
Family
ID=34207118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003196725A Pending JP2005033556A (ja) | 2003-07-14 | 2003-07-14 | データ送信装置、データ送信方法、データ受信装置、データ受信方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005033556A (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007243260A (ja) * | 2006-03-06 | 2007-09-20 | Nippon Telegr & Teleph Corp <Ntt> | 画像通信システム,画像配信システム,サーバ装置,画像通信方法,画像配信システム制御プログラムおよびそのプログラム記録媒体 |
JP2007251737A (ja) * | 2006-03-17 | 2007-09-27 | Fujitsu Ltd | データ転送方法及び,これを適用する通信システム及びプログラム |
JP2008172685A (ja) * | 2007-01-15 | 2008-07-24 | Nagoya Institute Of Technology | ファイルサーバを利用した高品質ビデオ転送装置 |
JP2009017345A (ja) * | 2007-07-06 | 2009-01-22 | Nec Access Technica Ltd | マルチキャスト配信システム、ホームゲートウェイおよびホームゲートウェイによるマルチキャスト管理方法 |
JP2009088926A (ja) * | 2007-09-28 | 2009-04-23 | Nec Corp | 動画像受信装置、動画像受信方法、及びプログラム |
JP2009212821A (ja) * | 2008-03-04 | 2009-09-17 | Toshiba Corp | コンテンツ配信装置、受信装置、コンテンツ配信方法及び受信方法 |
JP2009232300A (ja) * | 2008-03-25 | 2009-10-08 | Fujitsu Ltd | 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム |
JP2009284283A (ja) * | 2008-05-23 | 2009-12-03 | Sony Corp | コンテンツサーバ、情報処理装置、ネットワーク機器、コンテンツ配信方法、情報処理方法およびコンテンツ配信システム |
JP2010514346A (ja) * | 2006-12-20 | 2010-04-30 | トムソン リサーチ ファンディング コーポレイション | Iptvの低ビットレートのストリームを使用したビデオデータ損失回復システム |
WO2012049833A1 (ja) * | 2010-10-14 | 2012-04-19 | 株式会社ソニー・コンピュータエンタテインメント | 動画再生装置、情報処理装置および動画再生方法 |
JP2015513811A (ja) * | 2012-01-27 | 2015-05-14 | インテル コーポレイション | 改善されたマルチキャスト・コンテンツ配信のための技術 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11164270A (ja) * | 1997-11-25 | 1999-06-18 | Kdd | マルチチャンネルを用いるビデオデータ伝送方法及びその装置 |
JPH11313301A (ja) * | 1998-02-27 | 1999-11-09 | Hitachi Ltd | 番組配信システム、番組配信装置、番組品質変換装置、及び番組受信装置 |
JP2000078573A (ja) * | 1998-09-03 | 2000-03-14 | Hitachi Ltd | 階層符号化データ配信装置 |
JP2001092752A (ja) * | 1999-09-24 | 2001-04-06 | Hitachi Information Systems Ltd | 画像データ配信システムおよびそれに用いる記録媒体 |
JP2001333394A (ja) * | 2000-05-19 | 2001-11-30 | Hitachi Ltd | 番組配信装置、複製転送装置及び番組データの複製転送方法 |
JP2002199372A (ja) * | 2000-12-25 | 2002-07-12 | Hamamatsu Photonics Kk | リアルタイム映像送受信方法、リアルタイム映像送受信システム及び仲介装置 |
JP2002204278A (ja) * | 2000-10-31 | 2002-07-19 | Toshiba Corp | データ伝送装置およびデータ伝送方法 |
JP2002314972A (ja) * | 2001-04-09 | 2002-10-25 | Nec Corp | 配信システムとその配信方法、及び配信プログラム |
JP2003169091A (ja) * | 2001-12-03 | 2003-06-13 | Nippon Telegr & Teleph Corp <Ntt> | ストリーミング配信制御方法及び配信サーバ並びにクライアント端末 |
-
2003
- 2003-07-14 JP JP2003196725A patent/JP2005033556A/ja active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11164270A (ja) * | 1997-11-25 | 1999-06-18 | Kdd | マルチチャンネルを用いるビデオデータ伝送方法及びその装置 |
JPH11313301A (ja) * | 1998-02-27 | 1999-11-09 | Hitachi Ltd | 番組配信システム、番組配信装置、番組品質変換装置、及び番組受信装置 |
JP2000078573A (ja) * | 1998-09-03 | 2000-03-14 | Hitachi Ltd | 階層符号化データ配信装置 |
JP2001092752A (ja) * | 1999-09-24 | 2001-04-06 | Hitachi Information Systems Ltd | 画像データ配信システムおよびそれに用いる記録媒体 |
JP2001333394A (ja) * | 2000-05-19 | 2001-11-30 | Hitachi Ltd | 番組配信装置、複製転送装置及び番組データの複製転送方法 |
JP2002204278A (ja) * | 2000-10-31 | 2002-07-19 | Toshiba Corp | データ伝送装置およびデータ伝送方法 |
JP2002199372A (ja) * | 2000-12-25 | 2002-07-12 | Hamamatsu Photonics Kk | リアルタイム映像送受信方法、リアルタイム映像送受信システム及び仲介装置 |
JP2002314972A (ja) * | 2001-04-09 | 2002-10-25 | Nec Corp | 配信システムとその配信方法、及び配信プログラム |
JP2003169091A (ja) * | 2001-12-03 | 2003-06-13 | Nippon Telegr & Teleph Corp <Ntt> | ストリーミング配信制御方法及び配信サーバ並びにクライアント端末 |
Non-Patent Citations (2)
Title |
---|
SHUN YAN CHEUNG, MOSTAFA H. AMMAR, XUE LI: "On the Use of Destination Set Grouping to Improve Fairness in Multicast Video Distribution", INFOCOM'96, vol. 2, JPN4006008938, March 1996 (1996-03-01), US, pages 553 - 559, ISSN: 0000742773 * |
SHUN YAN CHEUNG, MOSTAFA H. AMMAR, XUE LI: "On the Use of Destination Set Grouping to Improve Fairness in Multicast Video Distribution", INFOCOM'96, vol. 2, JPNX006058598, March 1996 (1996-03-01), US, pages 553 - 559, ISSN: 0000796024 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007243260A (ja) * | 2006-03-06 | 2007-09-20 | Nippon Telegr & Teleph Corp <Ntt> | 画像通信システム,画像配信システム,サーバ装置,画像通信方法,画像配信システム制御プログラムおよびそのプログラム記録媒体 |
JP2007251737A (ja) * | 2006-03-17 | 2007-09-27 | Fujitsu Ltd | データ転送方法及び,これを適用する通信システム及びプログラム |
JP2010514346A (ja) * | 2006-12-20 | 2010-04-30 | トムソン リサーチ ファンディング コーポレイション | Iptvの低ビットレートのストリームを使用したビデオデータ損失回復システム |
US8750385B2 (en) | 2006-12-20 | 2014-06-10 | Thomson Research Funding | Video data loss recovery using low bit rate stream in an IPTV system |
JP2008172685A (ja) * | 2007-01-15 | 2008-07-24 | Nagoya Institute Of Technology | ファイルサーバを利用した高品質ビデオ転送装置 |
JP2009017345A (ja) * | 2007-07-06 | 2009-01-22 | Nec Access Technica Ltd | マルチキャスト配信システム、ホームゲートウェイおよびホームゲートウェイによるマルチキャスト管理方法 |
JP4609802B2 (ja) * | 2007-07-06 | 2011-01-12 | Necアクセステクニカ株式会社 | ホームゲートウェイ |
JP2009088926A (ja) * | 2007-09-28 | 2009-04-23 | Nec Corp | 動画像受信装置、動画像受信方法、及びプログラム |
JP2009212821A (ja) * | 2008-03-04 | 2009-09-17 | Toshiba Corp | コンテンツ配信装置、受信装置、コンテンツ配信方法及び受信方法 |
JP2009232300A (ja) * | 2008-03-25 | 2009-10-08 | Fujitsu Ltd | 輻輳検出方法、輻輳検出装置及び輻輳検出プログラム |
JP2009284283A (ja) * | 2008-05-23 | 2009-12-03 | Sony Corp | コンテンツサーバ、情報処理装置、ネットワーク機器、コンテンツ配信方法、情報処理方法およびコンテンツ配信システム |
JP4735666B2 (ja) * | 2008-05-23 | 2011-07-27 | ソニー株式会社 | コンテンツサーバ、情報処理装置、ネットワーク機器、コンテンツ配信方法、情報処理方法およびコンテンツ配信システム |
WO2012049833A1 (ja) * | 2010-10-14 | 2012-04-19 | 株式会社ソニー・コンピュータエンタテインメント | 動画再生装置、情報処理装置および動画再生方法 |
JP2012085216A (ja) * | 2010-10-14 | 2012-04-26 | Sony Computer Entertainment Inc | 動画再生装置、情報処理装置および動画再生方法 |
US9055272B2 (en) | 2010-10-14 | 2015-06-09 | Sony Corporation | Moving image reproduction apparatus, information processing apparatus, and moving image reproduction method |
JP2015513811A (ja) * | 2012-01-27 | 2015-05-14 | インテル コーポレイション | 改善されたマルチキャスト・コンテンツ配信のための技術 |
JP2017022769A (ja) * | 2012-01-27 | 2017-01-26 | インテル コーポレイション | 改善されたマルチキャスト・コンテンツ配信のための技術 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7116714B2 (en) | Video coding | |
KR100966447B1 (ko) | 데이터 스트리밍 시스템 및 방법 | |
KR100537499B1 (ko) | 전송제어 파라미터 생성방법 및 프레임 특성에 따른선택적 자동 재전송 방법 | |
US7539187B2 (en) | System and method for low-latency content-sensitive forward error correction | |
RU2385541C2 (ru) | Изменение размера буфера в кодере и декодере | |
US8320364B2 (en) | Control of bit-rate and packet duplication in a real-time media stream | |
US20070206673A1 (en) | Systems and methods for error resilience and random access in video communication systems | |
US20040218669A1 (en) | Picture coding method | |
JP2006518127A (ja) | ピクチャ復号化方法 | |
US9525874B2 (en) | Transmitting apparatus and transmission method | |
JP2005522115A (ja) | データストリーミングシステムのためのデータ構造 | |
Wenger et al. | Using RFC2429 and H. 263+ at low to medium bit-rates for low-latency applications | |
EP2404451A1 (en) | Processing of multimedia data | |
JP2005033556A (ja) | データ送信装置、データ送信方法、データ受信装置、データ受信方法 | |
Wang et al. | Error resilient video coding using flexible reference frames | |
Porter et al. | HYBRID TCP/UDP video transport for H. 264/AVC content delivery in burst loss networks | |
JP5031230B2 (ja) | データ送信装置及び方法 | |
JP2004120148A (ja) | マルチメディアコンテンツ送信装置およびマルチメディアコンテンツ受信装置 | |
Xu et al. | Delay-aware loss-concealment strategies for real-time video conferencing | |
Lecuire et al. | Enhancing quality of mpeg video through partially reliable transport service in interactive application | |
Pyun | Adaptive video redundancy coding for scene and channel adaptation over error-prone network | |
Wang et al. | An analytic comparison of RPS video repair | |
THANH | Packet prioritizing and delivering for multimedia streaming | |
Daka | Mixed streaming of video over wireless networks | |
Wu et al. | Real-time Video over the Internet: A Big Picture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060530 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060731 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20061212 |