(57)【要約】【目的】再生遅延時間が少なく、かつ、アンダーフローやオーバーフローが多発しない映像ストリーミングを実現することを目的とする。 【構成】パケット受信部１０１にはＩＰネットワークを経由して配信された映像データが入力される。この符号化パケットデータには、送信側で時刻情報が挿入するため、受信器内のシステムクロック１１１および挿入された時刻情報を連続して対比させることによって、伝送路におけるジッタの様子を知ることが可能となる。最大遅延ジッタと、平均遅延ジッタの差の時間に受信するデータ量を最適な読み出し蓄積量とし、受信開始後、その量が受信バッファに蓄積された後に、復号再生を開始する。 【選択図】図１
2007104569.tif 000002
【特許請求の範囲】
【請求項１】
所定パケット間隔でストリームの再生時間情報が挿入された符号化ストリームを受信し、符号化ストリームを受信バッファに出力するパケット受信部と、
符号化ストリームを蓄積するためのメモリを備えた受信バッファと、
受信バッファに蓄えるパケットデータの量を算出する読み出し蓄積量算出部と、
パケット受信部が受信バッファに出力したパケットデータ量を常時監視し、装置が動作を開始してから受信バッファに蓄えられたパケットデータ総量が最初に読み出し蓄積量に達した時に読み出し要求信号を出力する蓄積量監視部と、
蓄積量監視部から読み出し要求信号をあった時に、受信バッファから、受信符号化ストリームに付加された再生時間情報のタイミングでパケットデータを読み出しデコードし再生を開始するデコード再生部と、
を有するデータ受信装置。
【請求項２】
前記読み出し蓄積量算出部は、パケット受信部で受信した符号化ストリームに挿入された再生時間情報と、符号化ストリームを受信した時の受信装置内のシステムクロックから、時間幅Ｔにおける平均遅延ジッタ量を算出し、最大遅延ジッタ量と該平均遅延ジッタ量の差分を読み出し蓄積量とし、該読み出し蓄積量を蓄積量監視部に通知する処理を行う事を特徴とする、請求項１に記載のデータ受信装置。
【請求項３】
前記読み出し蓄積量算出部は、パケット受信部で受信した符号化ストリームに挿入された再生時間情報と、符号化ストリームを受信した時の受信装置内のシステムクロックから、時間幅Ｔにおける平均遅延ジッタ量を算出し、最大遅延ジッタ量と該平均遅延ジッタ量の差分を読み出し蓄積量とし、該読み出し蓄積量を蓄積量監視部に通知する処理を行い、該蓄積量算出部は、装置が動作を開始してから最初に読み出し蓄積量に達した時に加え、受信バッファにおいて符号化ストリームが空になった場合（アンダーフロー）や、受信バッファにおいて符号化ストリームが溢れた場合（オーバーフロー）などの状態が発生するなど、受信バッファが破綻した後にも、読み出し蓄積量を算出することを特徴とする、請求項１に記載のデータ受信装置。
【請求項４】
前記読み出し蓄積量算出部は、装置の処理開始時においては、読み出し蓄積量の初期値として、０では無く受信バッファサイズよりも小さな正数値Ｎを設定することを特徴とする、請求項１に記載のデータ受信装置。
【請求項５】
前記読み出し蓄積量算出部は、決定した読み出し蓄積量がＭを超えた時に、該読み出し蓄積量をＭとすることを特徴とする、請求項１に記載のデータ受信装置。
【請求項６】
前記読み出し蓄積量算出部は、常に平均遅延ジッタを計算し、アンダーフローやオーバーフローが発生し次第、読み出し蓄積量の再計算を行うことを特徴とする、請求項１に記載のデータ受信装置。
【請求項７】
前記読み出し蓄積量算出部は、常に最大遅延ジッタおよび平均遅延ジッタを計算し、最大遅延ジッタと平均遅延ジッタの差Ａが、装置の処理開始時に設定した読み出し蓄積量Ｂを下回った場合に、読み出し蓄積量をＡとすることを特徴とする、請求項１に記載のデータ受信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本装置は、例えばＩＰネットワーク等を経由して、リアルタイムに映像の受信および再生を行う際に好適な、データ受信装置に関する。
【背景技術】
【０００２】
デジタルデータ化された映像データをＩＰネットワークを経由してＰＣ等クライアントで閲覧する方法として、映像データをクライアントが一括ダウンロードし、全てのダウンロードが終了してからファイルを開いて再生する方法と、連続的に送信される映像データをクライアントが受信しながら、それを順次再生していく方法がある。しかし、前者は、高度な圧縮技術を使ったとしても巨大な映像データを全てダウンロードするのに膨大な時間を必要とし、現在のＩＰネットワークの転送速度を持ってしては、リアルタイム性にあまりにもかけ離れたものとなってしまう。そこで、後者のような、ダウンロード完了を待たずして映像の再生ができる手法（映像ストリーミング）が注目されている。
【０００３】
映像ストリーミングにおいては、ＩＰネットワークを経由して連続的に受信した映像データパケットは、伝送に関わる伝送遅延ジッタを考慮して、クライアントが持つメモリ等のバッファに蓄えられていき、ある一定量の蓄積の後に、その映像データを読み出して復号化を行い、再生データとしてクライアントのディスプレイ等に表示する。
【０００４】
下記標準技術集において、インターネットプロトコル電話における伝送遅延ジッタに対処するために、バッファを使用する技術的な例が記載されている。
【非特許文献１】標準技術集「インターネットプロトコル電話（ＩＰ電話）技術」１−１−３（特許庁総務部技術調査課技術動向班）
【０００５】
また、下記特許文献１では、ストリーミングにおいて、バッファの破綻があった場合に、アンダーフローならば、最初に読み出すまでの蓄積量を増加させ、オーバーフローならば、最初に読み出すまでの蓄積量を減少させる技術が述べられている。
【特許文献１】特開２００２−３３０１３６公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
クライアントへのパケットデータの伝送遅延ジッタの変動には、ＩＰネットワークのトラフィック輻輳に伴う変動やエラー訂正に起因するパケット再送など、短期的なものであるためジッタ量の平均値が変わらない変動と、ＩＰネットワークにおけるノードの増減や伝送経路の変化など、長期的なものであるためジッタ量の平均値が変わる変動がある。
【０００７】
クライアントの受信バッファにデータをある一定量蓄積してから復号化し再生する方式は、伝送遅延ジッタの吸収に有効であるが、正確なジッタ量は予測不可能であるため、バッファ内の蓄積データが空になり再生が途切れるアンダーフロー状態を避けるために、経験的な量を元に蓄積量を大きめに設定しなければならないため、再生遅延が大きくなるという問題がある。しかしアンダーフローは正確なジッタ量の予測不可能性により、これまで根絶することは出来なかった。
【０００８】
また、経験的な量として蓄積量を手動で設定したり、前記特許文献１のようにバッファの破綻があって初めて蓄積量を調整していく手法では、上記のような長期的伝送遅延ジッタの変動が多発するような場合には、連続して起こるバッファの破綻による品質の劣化は改善されないという問題があった。またこれら従来の手法では、アンダーフローの頻度を少なくすることを主眼とするために、読み出し蓄積量をできうる限り小さくするということ、つまり、再生にあたっての時間的ディレイを小さくするという概念が薄いため、例えば、伝送遅延ジッタが長時間にわたって一定値であるならば読み出し蓄積量は０でも良い、ということが反映されない。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明では以下のような手段をとる。
【００１０】
（１）所定パケット間隔でストリームの再生時間情報が挿入された符号化ストリームを受信し、符号化ストリームを受信バッファに出力するパケット受信部と、
符号化ストリームを蓄積するためのメモリを備えた受信バッファと、受信バッファに蓄えるパケットデータの量を算出する読み出し蓄積量算出部と、パケット受信部が受信バッファに出力したパケットデータ量を常時監視し、装置が動作を開始してから受信バッファに蓄えられたパケットデータ総量が最初に読み出し蓄積量に達した時に読み出し要求信号を出力する蓄積量監視部と、蓄積量監視部から読み出し要求信号があった時に、受信バッファから、受信符号化ストリームに付加された再生時間情報のタイミングでパケットデータを読み出しデコードし再生を開始するデコード再生部と、を有するデータ受信装置である。
【００１１】
（２）前記読み出し蓄積量算出部は、パケット受信部で受信した符号化ストリームに挿入された再生時間情報と、符号化ストリームを受信した時の受信装置内のシステムクロックから、時間幅Ｔにおける平均遅延ジッタ量を算出し、最大遅延ジッタ量と該平均遅延ジッタ量の差分を読み出し蓄積量とし、該読み出し蓄積量を蓄積量監視部に通知する処理を行う蓄積量算出部を有することを特徴とするデータ受信装置である。
【００１２】
（３）前記読み出し蓄積量算出部は、パケット受信部で受信した符号化ストリームに挿入された再生時間情報と、符号化ストリームを受信した時の受信装置内のシステムクロックから、時間幅Ｔにおける平均遅延ジッタ量を算出し、最大遅延ジッタ量と該平均遅延ジッタ量の差分を読み出し蓄積量とし、該読み出し蓄積量を蓄積量監視部に通知する処理を行う蓄積量算出部を有し、該蓄積量算出部は、装置が動作を開始してから最初に読み出し蓄積量に達した時に加え、受信バッファにおいて符号化ストリームが空になった場合（アンダーフロー）や、受信バッファにおいて符号化ストリームが溢れた場合（オーバーフロー）などの状態が発生し、受信バッファが破綻した後にも、読み出し蓄積量を算出することを特徴とするデータ受信装置である。
【００１３】
（４）前記読み出し蓄積量算出部は、処理開始時において、読み出し蓄積量の初期値として、０では無く受信バッファのサイズよりも小さな正数値Ｎを設定することを特徴とするデータ受信装置である。
【００１４】
（５）前記読み出し蓄積量算出部は、決定した読み出し蓄積量が、異常に大きな値Ｍを超えた時に、該読み出し蓄積量をＭとすることを特徴とするデータ受信装置である。
【００１５】
（６）前記読み出し蓄積量算出部は、常に平均遅延ジッタを計算し、アンダーフローやオーバーフローが発生し次第、読み出し蓄積量の再計算を行うことを特徴とするデータ受信装置である。
【００１６】
（７）前記読み出し蓄積量算出部は、常に最大遅延ジッタおよび平均遅延ジッタを計算し、最大遅延ジッタと平均遅延ジッタの差Ａが、装置の処理開始時に設定した読み出し蓄積量Ｂを下回った場合に、読み出し蓄積量をＡとすることを特徴とするデータ受信装置である。
【発明の効果】
【００１７】
本発明の請求項１によれば、ＩＰネットワークから受信したパケットデータのバッファへの蓄積量を自動的に設定でき、しかも再生遅延を小さくすることが可能となる。また、バッファが破綻するまで蓄積量を調整できないといった、従来の手法とは違うため、ＩＰネットワークの状況が変わるなどして短期的遅延ジッタや長期的遅延ジッタが多発するような場合でも、アンダーフローの多発を未然に防ぐ事が可能となる。
【００１８】
また、請求項２によれば、バッファからのパケットデータの読み出しを開始するための読み出し許可信号を、デコード再生部に通知するタイミングを定量化することが可能となり、装置の自動化が実現できる。
【００１９】
また、請求項３によれば、読み出し蓄積量未満の蓄積量であっても、バッファの破綻があれば迅速に対応することが可能となる。
【００２０】
また、請求項４によれば、０では無い値Ｎを初期値とすることによって、装置の稼働直後のバッファ破綻を未然に防ぐことが可能となる。
【００２１】
また、請求項５によれば、伝送遅延ジッタがバッファのサイズを超えるような大きなものになった場合に、ある一定時間バッファ破綻が続いてしまうことを未然に防ぐことが可能となる。
【００２２】
また、請求項６によれば、平均遅延ジッタを算出するために必要な、ある一定時間を待たずして、バッファ破綻後、即、平均遅延ジッタと最大遅延ジッタを算出することができるため、バッファ破綻による画像再生の停止などの悪影響を短縮化することが可能となる。
【００２３】
また、請求項７によれば、大きな最大遅延ジッタが発生した時など、読み出し蓄積量が大きな値になった後、時間が経過し回線が安定した時に、読み出し蓄積量を再び小さな値に戻すことができ、復号・再生部における画像再生の遅延時間を初期設定値程度の小さな値に戻すことが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明の実施の形態について詳しく説明する。図１は本発明の一実施の形態に係るデータ受信装置を示すブロック図である。また、図２は本発明の一実施の形態に係るデータ受信装置における処理フローチャートである。
【００２５】
本実施の形態は、再生時間情報を挿入した符号化ストリームを受信装置で受信し、平均遅延ジッタと最高遅延ジッタのそれぞれの値から最適なパケットの蓄積量を算出し、アンダーフローの頻度を下げるようにしたものである。
【００２６】
図１において、パケット受信部１０１にはＩＰネットワークを経由して配信された、映像データの符号化パケットデータが入力される。この符号化パケットデータには、送信側で時刻情報が挿入されているため、受信器内のシステムクロック１１１と受信データに挿入された時刻情報を連続して対比させることによって、伝送路におけるジッタの様子を知ることが可能となる。
【００２７】
｛挿入された時刻情報：システムクロック｝とした場合、例えば、三つのパケットを受信し、それぞれ｛１：２｝、｛２：３｝、｛３：４｝であるならば、伝送遅延ジッタは常に１であることがわかるし、｛１：３｝、｛２：４｝、｛３：５｝であれば、伝送ジッタは常に２である。この場合は後述するように、平均遅延ジッタおよび最大遅延ジッタはそれぞれ１である。
【００２８】
｛１：２｝、｛２：３｝、｛３：５｝、｛４：６｝であれば、伝送遅延ジッタは１であることが多いが、２も存在するということがわかる。この場合は後述するように、平均遅延ジッタは（１＋１＋２＋１）／４＝１．２５であり、最大遅延ジッタは２である。
【００２９】
入力された符号化パケットデータは、受信バッファ１０３に蓄積される。読み出し蓄積量が１０３に蓄積され、蓄積量監視部１０９から読み出し要求信号がデコード再生部１０５に到来すると、１０３から１０５へ符号化パケットデータが伝送され、１０５において復号化し、クライアントのモニターなどで再生される。
【００３０】
１０３にどれだけの符号化パケットデータを蓄積するかを算出するのが読み出し蓄積量算出部１０７である。符号化パケットデータには送信側で時刻情報を挿入するため、データ受信装置においては、その時刻情報とデータ受信装置内のシステムクロックとの連続性を調べることにより、伝送路において発生した遅延ジッタを（１）式のように知ることができる。
2007104569.tif 000003
ここで、ENCt(i)はパケットＩの時刻情報を受信側システムクロックに変換した値であり、DECt(i)はパケットＩを受信した時の受信側のシステムクロックである。
【００３１】
次に、伝送遅延ジッタを元に、平均遅延ジッタＪａを（２）式のように求める。
2007104569.tif 000004
さらに、時間幅Ｔの間の伝送遅延ジッタの中で最大のジッタ量を、最大遅延ジッタＪｍと定義する。
【００３２】
ここで、バッファへの蓄積量が好適で無い場合に起こりうる事象を説明する。受信器に符号化ストリームが入力され、受信バッファに蓄積されていき、ある量（Ａ：読み出し蓄積量）の蓄積が済んだ後に、受信バッファからのパケット読み出しが開始されるわけである。伝送路には、ＩＰネットワークのトラフィック輻輳に伴う変動やエラー訂正に起因するパケット再送など、短期的なものであるためジッタ量の平均値が変わらない変動と、ＩＰネットワークにおけるノードの増減や伝送経路の変化など、長期的なものであるためジッタ量の平均値が変わる変動がある。
【００３３】
これら伝送遅延ジッタよりもＡが小さかった場合、大きなジッタが発生すると受信バッファ内の符号化ストリームパケットが無くなってしまい（アンダーフロー）、再生部において復号再生が不可能となる。また、Ａが受信バッファのサイズよりも大きくなると、当然のことながら符号化ストリームパケットは受信バッファから溢れてしまい（オーバーフロー）、パケットの欠落が発生し、これも再生部において復号再生が不可能となる。このことから、Ａの好適な量は、伝送遅延ジッタよりも大きく、かつ、受信バッファよりも小さな値であることが望まれる。
【００３４】
また、この条件を満たしていても、安全面をあまりに重視するあまり、読み出し蓄積量を大きめにとってしまうと、再生遅延が大きくなるためにリアルタイム性が損なわれてしまう。このように、理想的な読み出し蓄積量とは、伝送遅延ジッタよりも大きく、かつ、受信バッファよりも小さく、かつ、できるだけ小さな値であることが望ましい。
【００３５】
そこで、本発明では、最大遅延ジッタと、式（２）に示す平均遅延ジッタの差の時間に受信するデータ量Ｂを最適な読み出し蓄積量とし、受信開始後、受信バッファにＢのパケットが蓄積された後に、復号再生を開始することとする。１０７において式（３）を計算する。
2007104569.tif 000005
式（３）によれば、もし伝送路における遅延ジッタが長時間にわたり完全に安定で一定値を取り続けていれば、Ｂを０とし、復号再生できることになる。
【００３６】
１０７の計算結果は１０９に伝えられ、１０９において１０３の蓄積量を監視し、１０７の計算結果に相当する量の蓄積が為されたら、１０５に読み出し要求信号を送信し、１０５は読み出しを開始する。
【００３７】
読み出し蓄積量を計算し、その結果をデコード再生部に反映させるタイミングは、装置が動作を開始してから、読み出し蓄積量の初期設定値に、読み出し蓄積量が到達した場合、及び、アンダーフローやオーバーフロー発生時など、受信バッファが破綻した場合である。
【００３８】
しかし、この場合は、より大きなアンダーフローが発生した場合にデコード再生部に反映させることになるため、処理を続けていくと読み出し蓄積量は増える一方となる。そのため、回線が安定した時など、読み出し蓄積量が小さくて済む場合には必要以上に再生遅延が大きくなっているという欠点があるため、本発明では、さらに、読み出し蓄積量が初期設定値を下回る場合にもデコード再生部に反映させることとし、再生遅延の肥大化を防止する。
【００３９】
動作開始時から、読み出し蓄積量を決定する処理ステップをまとめたのが図２である。時間Ｔの間遅延ジッタを計算し、Ｔが経過したら、その遅延ジッタ値列をもとに、最大遅延ジッタと平均遅延ジッタを計算し、式（３）の読み出し蓄積量を計算する。
【００４０】
本発明では、遅延ジッタの計算を、バッファ破綻時からの時間Ｔの間に行うとする場合のみならず、前記のように、常に平均遅延ジッタを計算することによって、バッファ破綻後すぐに読み出し蓄積量を計算するという手法も提案している。
【００４１】
図３は、平均遅延ジッタ３０１と、最大遅延ジッタ３０３を説明する図である。読み出し蓄積量は、３０３と３０１の差に相当するパケットデータ量である。３０３が大きな値になった場合、読み出し蓄積量を大きくしないとアンダーフローがおこる。また、３０３が３０１と一致する場合には、読み出し蓄積量は０となり、１０１で受信した符号化パケットデータは、リアルタイムで１０５において再生されることになる。
【図面の簡単な説明】
【００４２】
【図１】…データ受信器の処理ブロック図
【図２】…読み出し蓄積量の計算の処理ステップ
【図３】…伝送遅延ジッタのグラフ
【符号の説明】
【００４３】
１０１…パケット受信部
１０３…受信バッファ
１０５…デコード再生部
１０７…読み出し蓄積量算出部
１０９…蓄積量監視部
１１１…システムクロック
３０１…平均遅延ジッタ
３０３…最大遅延ジッタ
【図１】
2007104569.tif 000006
【図２】
2007104569.tif 000007
【図３】
2007104569.tif 000008