ネットワークデコーダ装置
【課題】ネットワークデコーダからのカメラ制御の操作性を改善する。
【解決手段】デコーダ16は、画像送信装置1a等から受信した各画像データを、復号化してビデオモニタ9に出力すると共に、デコーダ16に配信要求をしたクライアントに対して再配信を行う。クライアントがデコーダ16にカメラ制御要求をすると、デコーダ16はそれを画像送信装置1a等に転送する。従って、デコーダ16は、従来の画像受信装置6からはあたかも画像送信装置1等のように認識される。実行伝送速度の異なる複数のクライアントへ再配信を行なうため、受信した画像データを少なくともIピクチャ周期分格納する共通バッファを備え、各クライアントに対しては、順次読み出しを原則とし、受信した最新Iピクチャより古い符号化映像データをスキップする様態で再配信を行なう。
【解決手段】デコーダ16は、画像送信装置1a等から受信した各画像データを、復号化してビデオモニタ9に出力すると共に、デコーダ16に配信要求をしたクライアントに対して再配信を行う。クライアントがデコーダ16にカメラ制御要求をすると、デコーダ16はそれを画像送信装置1a等に転送する。従って、デコーダ16は、従来の画像受信装置6からはあたかも画像送信装置1等のように認識される。実行伝送速度の異なる複数のクライアントへ再配信を行なうため、受信した画像データを少なくともIピクチャ周期分格納する共通バッファを備え、各クライアントに対しては、順次読み出しを原則とし、受信した最新Iピクチャより古い符号化映像データをスキップする様態で再配信を行なう。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークデコーダ装置に関し、特にネットワークを介して受信した符号化映像データを復号するとともに他の機器に再配信するネットワークデコーダ装置に関する。
【背景技術】
【0002】
従来、監視カメラで撮影した映像を符号化し、IPネットワークを介して伝送するCCTV(Closed Circuit TeleVsion)システムが知られる。
【0003】
図11は、従来のCCTVシステムの模式図である。WEBサーバ機能を有する画像送信装置(画像伝送装置)1a、1b、IP力メラ2、或いは画像サーバ装置3(以後、画像送信装置1等と呼ぶ)は、符号化(圧縮)画像デジタルデータ(以後、画像データと呼ぶ)を各種通信プ口トコルを用いてネットワーク4を経由で送信する。パーソナルコンピュータ(PC)5や画像受信装置6(これらをクライアントと総称する)は、自身宛の画像データを受信して復号化し、映像の表示或いはビデオモニタ8への映像信号の出力を行う。
【0004】
画像受信装置6は、シリアル信号を、画像送信装置1a、1bやIP力メラ2との間でネットワーク4を介して双方向通信する機能を有し、カメラ制御用のシリアル信号を、RS-485やRS-232Cケーブルで接続された専用操作器9から或いはネットワークで接続されたPC7から入力されると、それをIP力メラ2等に中継する。PC5も、同等の機能をソフトウェアにより実現する。
【0005】
上述の他、映像データの中継(転送)機能を有する映像再生装置等が知られる(例えば、特許文献1及び2参照。)。また、映像データを中継或いは送信する際に、フレームの間引き(コマ落し)を行うストリームデータ配信システム等が知られる(例えば、特許文献3及び4、非特許文献1及び2参照。)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開第05/050931号パンフレット
【特許文献2】特開2007−201995号公報
【特許文献3】特開2007−193690号公報
【特許文献4】特許第4255685号公報
【非特許文献】
【0007】
【非特許文献1】福永茂,外3名,"LANにおける分散マルチポイント画像伝送方式の検討",1993年画像符号化シンポジウム(PCSJ93)第8回シンポジウム資料,社団法人 電子情報通信学会,1993年10月,p.83-84
【非特許文献2】笠井裕之、富永英義,"マルチプルトランスコーダ・ストリームスイッチングに基づくスケーラブルゲートウェイ方式",電子情報通信学会論文誌. B,平成15年10月1日,J86-B,No.10,p.2229-2244
【非特許文献3】John Beatty,外12名, “Web Services DynamicDiscovery (WS-Discovery)”,[online],2005年4月,インターネット<URL:http://specs.xmlsoap.org/ws/2005/04/discovery/ws-discovery.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0008】
図11において、画像受信装置6は新たに増設されたものとし、PC5で表示している映像と同じ映像を表示させる場合を考える。このとき、画像送信装置1a等は、PC5と画像受信装置6のそれぞれに宛てて画像データを個別に送信するので、ネットワーク4で伝送される映像データが2倍に膨れ上がってPC5または画像受信装置6が利用できる帯域幅が圧迫され、映像受信に支障をきたす場合がある。これは画像送信装置1が最大配信の能力に対しベストエフォートにて処理を行っているからであり、各クライアントに同じ条件の各画像データを配信できなくなる。
或いは、画像送信装置1a等の配信能力の不足によりフルフレームの映像を送ることができない場合がある。画像送信装置1a等において、接続クライアント数に応じて配信のための処理能力(処理時間、バッファメモリ)が分配されるが、接続数が多くなると1クライアント当たりの処理能力が十分でなくなるためである。
【0009】
また、画像受信装置6にネットワーク4経由でアクセスしているPC7は、専ら制御のためのものであり、画像送信装置1等からの映像を確認することはできない。そのため、PC7から力メラ制御する際には、ビデオモニタ8の表示映像を確認しながらPC7から力メラ制御を行うこととなり、操作性が悪いという問題があった。
【課題を解決するための手段】
【0010】
本発明のネットワークデコーダ装置(画像受信装置)は、ネットワークを利用した画像送信装置もしくはIP力メラ、画像サーバ装置などからネットワークを経由して各画像データ(符号化画像デジタルデータ)を受信し、受信した画像データに復号化画像処理を行いNTSC信号もしくはデジタル映像信号に変換出力する。それと共に、当該ネットワークデコーダ装置に対して画像要求をした他のクラアイアントへ、画像送信装置等から受信した画像データを再配信する。これにより、画像送信装置等とネットワークデコーダ装置間の伝送路に必要とされるビットレートを抑える事ができる。
また、WEBサーバ機能を有する雲台付力メラ画像送信装置もしくはIP力メラ、画像サーバ装置への力メラ制御要求を、画像受信装置に直接接続された専用操作器のみならずネットワーク経由でアクセスしている各クライアントから行なえるよう、ネットワークデコーダ装置は制御要求を中継する。これにより、力メラ制御要求の宛先を映像要求のそれと同じにでき、制御を簡略化する事ができる。
また、画像送信装置からの実効受信レートと、各クライアントへの実効送信レートとは必ずしも一致しないため、受信した符号化映像データを少なくともIピクチャ周期分格納するバッファと、符号化映像データの再配信要求を受信したときに、前記バッファから符号化映像データを順次読み出して、該再配信要求の要求元へ送信する再配信手段と、を備えて、該再送信手段が、バッファに格納された最新Iピクチャより古いデータを符号化映像データの送信をスキップする。
【発明の効果】
【0011】
本発明によれば、ネットワークデコーダが受信した映像データを再配信するようにしたので、カメラ制御を行うクライアントPCの画面に映像を表示させ、力メラ制御の操作性を向上させることができる。また、その再配信機能により、ネットワークの負荷を過剰に増加させることなく映像を表示可能なクライアントPCの数を多くすることができ、システムの構築が容易になる。
【図面の簡単な説明】
【0012】
【図1】デコーダ16−1へのピクチャデータの流れ示す模式図(実施例1)
【図2】ネットワーク映像配信システムの配信動作を説明する図(実施例1)
【図3】デコーダ30のブロック図(実施例5)
【図4】ストリームバッファへの書き込み処理のフローチャート(実施例1)
【図5】ストリームバッファからの読出し処理のフローチャート(実施例1)
【図6】ストリームバッファからの読出し処理のフローチャート(実施例2)
【図7】ネットワーク映像配信システムの配信動作を説明する図(実施例2)
【図8】I−VOP周期バッファ133の構成図(実施例3)
【図9】Pピクチャのスキップを説明する図(実施例2乃至6)
【図10】ネットワーク映像配信システムの模式図(実施例1)
【図11】従来のCCTVシステムの模式図
【図12】ネットワーク映像配信システムの模式図(本発明)
【図13】デコーダ18のブロック図(実施例3)
【発明を実施するための形態】
【0013】
以下、本発明のネットワークデコーダ装置の一例を用いたネットワーク映像配信システムについて、図面を参照して説明する。
なお、本システムは、ネットワークデコーダ装置(画像受信装置)において、符号化映像データを受信して復号しNTSC信号もしくはデジタル映像信号出力によりモニター画面に映像表示させる通常の機能に加え、力メラ制御を行うPCの画面上にも同じ映像を表示させ、該映像を確認しながら力メラ制御を行えるようにすることを意図し、下記の性能を満足することを目標にしている。
(1) 画像送信装置に対する配信負荷を増加させないこと。
(2) 画像送信装置と画像受信装置、クライアントPC間のネットワーク伝送路の負荷の増加を最小限にすること。
(3) 画像送信装置と力メラ制御用の通信を行うときは、画像受信装置を経由させる事で制御の複雑さを緩和させる。
【0014】
図12は、ネットワーク映像配信システムの模式図である。図11に示した従来の構成と同一の箇所には、同一の符号を付してある。
ネットワークデコーダ装置16(以後、デコーダと呼ぶ)は、予め設定された通信プ口トコルを用いて、画像送信装置1等から目的の各画像データをネットワーク4を経由して受信する。その際、画像送信装置1等から送信されネットワーク4を伝送する画像データは、1クライアント分のトラフイック量であり、設計上の品質で支障なく伝送できる。ネットワーク4は、遠地に設置される画像送信装置等を多数接続するものであるため、SONET(Synchronous Optical NETwork)のような高速なものから、56Kbpsのモデム回線まで、各種の物理層が使用されうる。
【0015】
デコーダ16は、受信した各画像データを復号化し、NTSC信号もしくはHDMI等のデジタル映像信号に変換してビデオモニタ8aに送信すると共に、受信した各画像データのストリームをバッファに一時蓄積し、デコーダ16に対して映像要求をしたPC5や画像受信装置6へ再送信(再配信)する。デコーダ16とPC5等とは、ネットワーク上で近距離(例えばLAN内)であるか、十分な帯域の伝送路で接続されていることを想定しており、図12では、便宜的にネットワーク4を介せずに途中から分岐するように図示してある。
【0016】
この再送信の通信プロコトルは、画像送信装置1等がPC5に送信するときに利用可能なものと同じであり、HTTP、RTP、マルチキャスト(RTP)等から選択することができる。つまり、デコーダ16は、従来の画像受信装置6からはあたかも画像送信装置1等のように認識される。
またトランスポート層以上の上位層において、例えば、バッファとして最新の完全な1GOP(Group of Picture)分のデータの保存に必要な容量を備え、フレーム間引きにより適応的な送信レート制御を行うようにする。最新のGOPの先頭を受信すると、継続中の直前のGOPの再送信は、直ちに或いはフレームかスライスの境界で中止され、該最新のGOPの再送信を開始する。これにより、モデム等を使用した低品質の回線を用いた場合でも、最低限の復号可能な(フレーム内符号化された)1ピクチャ分の映像データを再配信することができる。
【0017】
ところで、デコーダ16の再送信機能を使用することにより、再送信するクライアント数、通信プ口トコル、画像送信装置の符号化ビットレート量によっては、本来の復号化処理がリアルタイムに行えずこま落ちすることが懸念される。そのため、各クライアントからの要求による再送信のプライオリティを、復号化処理のプライオリティより相対的に下げるなどし、復号化処理に支障が発生しない様にする。または、画像受信装置と各クライアントが同じブロードキャストドメイン内にあるか、再送信を行う経路上のルータやL3スイッチ等がマルチキャストに対応している場合は、プ口トコルとしてマルチキャストを選択することもできる。
【0018】
更には、デコーダ16のクライアント機能(画像を要求し受信する機能)を複数同時接続可能にすることで、同時に複数のサーバ機能(要求に応じ画像を送信する機能)を有する画像送信装置1等から符号化画像圧縮データを受信し、各符号化画像圧縮データの復号化およびリサイズにより4画面合成したNTSC信号もしくはデジタル映像信号を出力すると共に、クライアントから再配信要求によりクライアントPC画面上でもその4画面合成映像を表示できるようにしてもよい。
【実施例1】
【0019】
図10は、実施例1に係るネットワーク映像配信システムの模式図である。本実施例1は、ネットワークデコーダ装置が再送信する際のレート制御として、特許文献4に記載の方法を用いたものである。図10のシステムは、一つの画像送信装置1aからの映像データをネットワークデコーダ装置(デコーダ)16−1が中継することで、他の離れた場所のビデオモニタ8bおよび8cにおいても映像の閲覧を可能にしたものである。
【0020】
アナログカメラ12は、所定のフレームレート(例えば30fps)で撮影した監視映像の信号(NTSC信号)を、画像送信装置1aへ出力する。
画像送信装置1aは、入力された映像信号を目標ビットレートになるように圧縮符号化し、符号化映像データ(ストリームデータ)を所定のプロトコルに従ってネットワークインタフェースから送信する。
デコーダ16−1は、画像送信装置1aから対応するプロトコルで受信した符号化映像データを復号化しアナログ映像信号として出力する(図示せず)とともに、受信した符号化映像データをバッファに格納し、所定のプロトコルに従ってネットワークインタフェースから送信する。
デコーダ16−2、113−3は、デコーダ16−1から対応するプロトコルで受信した符号化映像データを復号化しアナログ映像信号として出力する。
【0021】
ネットワーク4−1は、画像送信装置1aとデコーダ16−1とを接続する任意の伝送路であり、本例では最大で384kbpsの通信速度を有する第3世代携帯電話網(パケット通信網)を想定する。
ネットワーク4−2は、デコーダ16−1とデコーダ16−2とを接続する任意の伝送路であり、512kbps程度の実効通信速度を有するADSL回線を想定する。
ネットワーク4−3は、デコーダ16−2とデコーダ16−3とを接続する任意の伝送路であり、2Mbps程度の実効通信速度を有するLAN(Local Area Network) を想定する。
ネットワーク4−1〜3はいずれもIPパケットを伝送することができる。なお、図10ではデコーダ16−1等が2つのネットワークに直接接続するかのように図示してあるが、ルータ機能の内蔵を意図したものではなく、デコーダ16等は、物理インタフェースとして、Ethernet(商標)等のポートを1個備える。
【0022】
ここで、MPEG方式の画像圧縮技術における基本的な事項を説明する。MPEG-2 Video(ISO/IEC 13818-2)やMPEG-4 Part2 Visual(ISO/IEC 14496-2)のエレメンタリーストリームにおける符号化画像本体は、大よそ、Intra Picture(以下、Iピクチャと称する)、Predictive
Picture(以下、Pピクチャと称する)およびBiderectionally Predictive
Picture(以下、Bピクチャと称する)の3種類に分類でき、ピクチャ種類毎に異なる符号化モードで圧縮されている。
Iピクチャとは、アナログ映像の1フレーム分全ての画像データをそのフレーム内で符号化変換されたデータである(簡単のため、インタレース走査は考えない)。従って、デコーダ16−2等では、このIピクチャを受信した場合、他のピクチャを参照することなくこのIピクチャだけで1フレーム分の画像を再生することができる。
Pピクチャとは、符号化済みの(時間的に前の)IピクチャまたはPピクチャ(以下I/Pピクチャと呼ぶ)から一方向のフレーム間予測を行い、予測差分のデータのみ符号化したものである。従って、デコーダ16−2等では、受信したPピクチャだけでは画像を再生することができず、予測時に参照したI/Pピクチャがなければ画像を再生できない(図9参照)。更に、途中のPピクチャがなければ、誤った画像、例えば、プロック歪等が発生した画像となる。
Bピクチャとは、2つの符号化済みI/Pピクチャ(通常は、時間的に前のピクチャと、後のピクチャ)から2方向のフレーム間予測を行い予測差分データのみ符号化したものである。このBピクチャは、Pピクチャと同様にBピクチャだけでは元の画像を再生できない。PピクチャおよびBピクチャは、前後のピクチャとの時間軸方向の冗長度を削減しているため、圧縮後の符号量を少なくできるが、それだけでは元の画像を再生できない。
【0023】
一般的なMPEG−2の各ピクチャの組合せの一例を、表示時刻順に示すと以下のようになる。
(I)(B)(B)(P)(B)(B)(P)(B)(B)(P)(B)(B)(P)(B)(B)(I)(B)(B)(P)・・・・・このようにIピクチャは、15ピクチャに1回存在し、これが繰り返される構成が一般的である。なお、ストリーム中でのデータ順はこれとは異なり、Bピクチャの符復号に必要なPピクチャが、それらBピクチャより前に符号化されトリーム中に配置される。
この1個のIピクチャを含む複数ピクチャからなる時間的周期構造は、ビデオエレメンタリーストリームの基本単位であり、GOP(Group of Picture)と呼ばれる。GOPには、そのGOPの外のピクチャの参照が不要なクローズドGOPと、参照を行うオープンGOPがある。クローズドGOPは、ストリーム中ではIピクチャで始まり、次のIピクチャの直前のPピクチャで終わる。表示時刻順でこのPピクチャと次のIピクチャの間にあったBピクチャは、次のIピクチャのみ参照するように符号化されて、ストリーム中で次のGOPのIピクチャに続けて配置される。GOPの先頭には通常、GOPヘッダが設けられるが、必須ではない。GOPヘッダには、GOP内の先頭ピクチャのタイムコードや、GOPがクローズドかオープンのどちらかを示すフラグ等が記述される。
実際には、ストリーム中にはGOPのほか、映像の途中から復号を始められるようにするためのシーケンスヘッダが、GOP境界等に任意の間隔で挿入されており、シーケンスヘッダには、ピクチャの縦と横のサイズ、クロマフォーマット、ピクチャレート、プロファイル、レベル、ビットレート等の各種パラメータが含まれている。
【0024】
次に、本実施例のデコーダ16−1の再送信動作の概要を、図1、図4、図5を用いて説明する。なお、先の説明では、MPEG方式のストリームデータは、Iピクチャ、PピクチャBピクチャで構成されると説明したが、ここでは、説明の便宜上、IピクチャおよびPピクチャのみで構成されるGOPで説明する。本例のデコーダ16−1は、GOP単位でストリーム管理をし、レート制御を行うことで、デコーダ16−2、113−3側で復号可能なクローズドGOPを送信するようにしたものである。
【0025】
図1は、デコーダ16−1へのピクチャデータの流れ示す模式図である。図1において、最上段に図示されたアナログ映像11−1、11−2、…、11−nは、映像源(アナログカメラ12)が所定のフレームレートで生成するアナログ映像の各フレームのイメージである。その下には、上のフレームに対応して画像送信装置1aが作成し配信する符号化映像データを図示しており、I/Pピクチャ13−1、13−2、・・・、13−n(I/Pピクチャ13と総称する)である。画像送信装置1aは、アナログ映像信号11−1、11−16から、Iピクチャ13−1、13−16をそれぞれ作成し、他のアナログ映像信号からは対応するPピクチャをそれぞれ作成し、それがデコーダ16−1に受信される。本例では、I/Pピクチャ13が損失無く(一定レートで)デコーダ16−1で受信され、デコーダ16−1内部に設けられるストリームバッファ14に格納されることを想定する。なお、本例の動作は、エレメンタリーストリームを伝送する際の下位レイヤ(プロコトル)には依存しないので、エレメンタリーストリームそのものが伝送されると考えても差し支えない。
【0026】
ストリームバッファは、予め所定のメモリ領域を確保された要素1と要素2とからなる2面構成とし、要素選択と、要素内の格納位置選択を与えることで所望のデータの読み書きができる。一般に、一方の要素を書き込みに占有させ、他方の要素を読み出し専用にする制御方法もあるが、本例では、GOPの先頭を検出するたびに、書き込みを行う要素を交互に入れ替え、読み出しは任意の要素を指定して行えるようにする。書き込みに使用されていない要素には、現在受信中のGOPの直前のGOPが、完全な形で格納されている。なお、GOPサイズ(GOPに含まれる(最大)ピクチャ数)は、符号化側と復号化側の間で事前に決めておく。
【0027】
図4は、ストリームバッファ14への書き込み処理のフローチャートである。図4の処理は、受信プロセス(タスク)の一部であり、書き込みデータ(パケット等)を受け取るたびに或いはフレーム周期以下の所定周期で開始される。受信プロセスは、CPUの時分割共有により他のプロセスとともに実行される。
ステップ401では、受信したストリームデータに、シーケンスヘッダ、GOP、ピクチャ等の各種スタートコードが含まれていないか探索する。
ステップ402では、格納しようとするストリームデータがIピクチャか、Pピクチャかを判定し、Iピクチャの場合(GOP先頭の場合)にはステップ403に進み、Pピクチャの場合にはステップ407に進む。
【0028】
ステップ403では、格納位置情報をIピクチャ位置(要素の先頭)に設定する。
ステップ404では、現在書き込みに使用中のストリームバッファ要素を判定し、現在使用中のストリームバッファ要素が要素1(図1参照)ならばステップ406に進み、要素2ならばステップ405に進む。
【0029】
ステップ405では、格納先となるストリームバッファ要素を現在使用されていない要素1に切り替え、ステップ407に進む。
ステップ406では、格納先となるトリームバッファ要素を現在使用されていない要素2に切り替えステップ407に進む。
【0030】
ステップ407では、ステップ405または406で切替えた現在のストリームバッファ要素、ストリームバッファ格納位置が示すストリームバッファの領域にストリームデータを格納する。
ステップ408では、ストリームバッファ格納位置を更新する。格納位置は指定形式は、要素の先頭(GOP先頭)からのオフセットアドレスとしてもよく、ピクチャカウンタとピクチャ先頭からのオフセットアドレスの組合せでもよい。
【0031】
図5は、ストリームバッファからの読み出し処理のフローチャートである。図4の処理は、中継送信(再配信)プロセスの一部であり、デコーダ16−1がクライアント(デコーダ16−1から配信を受けているデコーダであり、例えばデコーダ16−2)からのストリームデータの送信要求を受信するたびに開始される。なお中継送信プロセスは、クライアント毎に起動され実行されているが、図4の処理は同一クライアントについて2重に開始されないように制御されることを前提とする。
まずステップ501では、画像受信装置113−1から受信した送信要求に含まれるPピクチャ要求数や時刻情報を、所定の変数エリアに保存する。また、ストリームバッファの要素のうち、書込みに使用されている要素を読み出し対象として設定する。
ステップ502では、Pピクチャ要求数を判定し、読み出し対象の要素に格納されたストリームデータが、要求数を満たさない場合には、他方の要素(書込みに使用されていない要素)を読み出し対象として設定する。
【0032】
ステップ503は、前回送信したGOPのタイムコードを所定の変数エリアから読み出すとともに、読み出し対象要素のストリームバッファに格納されているGOPのタイムコードを読み出して比較し、両者が同じでなければ(後者のタイムコードの方が時間的に後のものであれば)、ステップ504へ進む。両者が同じであれば、所定時間後に自身(図4の処理)を起動するタイマーを設定して、処理を一旦終了する。所定時間としては、Pピクチャ周期(約100ms)を用いても良く、読み出し対象要素のPピクチャの(要求数に対する)不足数に応じて設定しても良い。
【0033】
ステップ504では、読み出し対象として選択された要素のストリームバッファから、データを読み出して加工し、該要求Pピクチャ数分のPピクチャを有する1個のGOPを作成する。例えば、読み出し対象要素の先頭(Iピクチャ)に読出し位置(読出しポインタ)を設定し、順次バイトストリームとして読み出す。
ただし、図4の書込み処理の書込み位置が読出し位置に追いついたとき(これは、読み出し対象要素が、当該読み出し処理の開始後に書込み処理によって書込み対象要素に選択された場合に起こりうる)は、その時点でこのステップを終了する。
【0034】
ステップ505では、作成したGOPをデコーダ16−2に送信する。送信の開始時に、GOPのタイムスコードを変数エリアに格納する。なお、ステップ504と505は同時進行させてもよく、或いは、ステップ504で作成したGOPを送信バッファに完全に格納し終えてからステップ505に進んでもよい。
【0035】
図2は、本実施例1のネットワーク映像配信システムの配信動作を説明する図である。図2において、図1と同じものには、同じ符号を付してある。図2の上半分は、図1と同じでありデコーダ16−1で受信されるストリームデータ、下半分は、デコーダ16−2で受信されるストリームデータを、共通の時間軸(横軸)でそれぞれ模式的に示したものである。
デコーダ16−2は、任意のタイミングで送信要求15をデコーダ16−1に送信する。デコーダ16−1は、ネットワーク4−2を介して送信要求15を受信すると、自身はエンコーダではないのでそれを中継送信要求の意味に解釈し、その送信要求が示すPピクチャ要求数(本例では15)のGOP単位ストリームデータ17(以後GOP単位データと呼ぶ)が用意でき次第、デコーダ16−2への中継送信を開始する。
デコーダ16−2は、(送信要求15の応答としての)GOP単位データ103の受信開始を検知すると、その開始時刻を記録すると共に、必要に応じ再生バッファをクリアした後、GOP単位ストリームデータ103の伸張(復号)を直ちに開始して、アナログ映像信号を順次出力する。
【0036】
デコーダ16−2は、Pピクチャ要求数分のGOP単位データ17の受信を終えると、記録した開始時刻と現在時刻との差を算出し、その差が本来の1GOP時間(GOPサイズに対応する)より長ければ次回の要求数を減らし、短ければ要求数を増やす。所定時間(例えば本来の2GOP時間)内に要求数分のGOP単位データ17の受信が終えられなかったときは、タイムアウトするとともに次回の要求数を最小値(例えば0。即ちIピクチャのみ。)にする。その後、適宜、送信要求(図示せず)を送信する。なお、デコーダ16−3においても同様であり、説明を省略する。或いはデコーダ16−2が16−3に再配信するように動作させても良い。
【0037】
以上説明したように、本実施例1のデコーダ16−1は、最新のIピクチャ(例えば13−16)から要求のあった所定のPピクチャの送信ピクチャ数に達するまでストリームデータを蓄積する。蓄積が達成した時点で、Iピクチャとこれに続く所定のピクチャ数のPピクチャをGOP単位に加工して、画像受信装置(デコーダ16−2)に送信することで、ネットワークの伝送速度に合わせたストリームデータ量を任意に指定することができ、画像伝送部と画像受信部のMPEG−4ストリーム遅延時間を最小限にでき、GOP単位でPピクチャの連続性の確保されたストリームデータを中継送信することができる。
【実施例2】
【0038】
本実施例2は、ネットワークデコーダ装置が再送信する際のレート制御として、特許文献4に記載の方法を応用したものであり、送信要求を、ピクチャ毎に行うようにした点で先の実施例1と異なる。
図6は、本例のデコーダ16−1に係るストリームバッファからの読出し処理のフローチャートであり、図5に代わるものである。図6の処理は、図5と同様、デコーダ16−1が画像受信部(例えば、デコーダ16−2、113−3)からのストリームデータの送信要求を受信するたびに開始される。本処理では、前回送信したピクチャが属したGOPのタイムコードを変数エリアに格納して使用するので、再送信プロセスの起動時に、タイムコードを、それが取りうる最古の値などに初期化しておく。
ステップ601では、デコーダ16−2等から受信した送信要求に含まれるPピクチャ要求数や時刻情報を、所定の変数エリアに保存する。
ステップ602では、前回送信したピクチャが属したGOPのタイムコード(前回タイムコード)を所定の変数エリアから読み出して、現在の書込み対象要素のGOPのタイムコード(現在タイムコード)と比較し、前回タイムコードが現在タイムコードより古い場合、読出し対象要素を現在の書込み対象要素と同じに設定し、読出し位置をその要素の先頭に設定(初期化)する。
【0039】
ステップ603では、読み出し対称要素の読出し位置から1ピクチャ分のストリームデータを読み出して送信する。読出し後には、読出し位置は読み出したピクチャの次のピクチャの先頭(もしあれば)を示すことになる。
なお、ステップ602における現在タイムコードとしては、単純に現在の書込み対象要素のGOPのタイムコードを採用するのではなく、現在の書込み対象要素に少なくともIピクチャが格納されている(書込み位置が2番目以降のピクチャを示している)ときにのみ採用し、それ以外のときは他方の要素のGOPのタイムコードを採用するようにしてもよい。
以上説明したように、本実施例2のデコーダ16−1は、最新のIピクチャ13(例えば映像取込5)から要求のあった所定のPピクチャの送信ピクチャ数に達するまでストリームデータを蓄積する。蓄積が達成した時点で、Iピクチャとこれに続く所定のピクチャ数のPピクチャをGOP単位に加工して、画像受信装置に送信することで、回線状況に合わせたストリームデータ量を任意に指定することができ、回線の効率を最大限に使用できるようにしたものである。
【0040】
図7は、本実施例2のネットワーク映像配信システムの配信動作を説明する図である。なお、図2と同じものには、同じ符号が付されている。
デコーダ16−2は、ネットワーク4−2を経由し、デコーダ16−1にストリームデータの送信要求(図示せず)をする。デコーダ16−1は、ストリームデータの要求があったデコーダ16−2に、その時点で最新のIピクチャであるIピクチャ13−1を伝送する。デコーダ16−2は、Iピクチャ13−1を受信したら即座にストリームデータの復号(伸張)を開始する。このIピクチャ13−1の受信に係る期間を、デコーダ16−2の映像伸張1として図示してある。なおピクチャの受信完了から復号完了までの時間はフレーム時間に対して十分短いとみなして、受信期間と復号期間はほぼ同じとして扱う。なお、上述の「即座に復号」とは、受信中のピクチャの2つ前のピクチャを復号することは含まないが、1ピクチャ分のデータの受信完了を待って復号を開始する(つまり、1つ前のピクチャを復号する)ことまでは含む。
【0041】
Iピクチャ13−1全体の受信(或いは復号)が完了すると、デコーダ16−2は、ネットワーク4を経由し、デコーダ16−1に次のストリームデータの送信要求をする。デコーダ16−1は、送信要求があったデコーダ16−2に次のPピクチャ13−2を伝送する。デコーダ16−2は、Pピクチャ13−2を受信しながら即座にストリームデータの復号を開始する。以降、続くPピクチャ13−3、13−4、…を同じ手順で要求し、受信し、復号する。以降、ストリームデータの要求ごとに同じ手順を繰り返す。
【0042】
デコーダ16−3も16−2と同様に送信要求を行いストリームデータを受信するが、狭い伝送帯域幅(該当ピクチャ伝送時の実効的な伝送速度)により受信が遅延するため、入力映像に対する遅延時間が徐々に増大していく。図中でデコーダ16−nと示したものでは、Iピクチャのみがかろうじて送信できている。
本例のデコーダでは、常時少なくとも1GOP分のストリームデータが1GOP時間以上バッファされているため、デコーダ16−3のように少なくとも1GOP時間(最大で2GOP時間)を使ってIピクチャを送信することができる。
【0043】
以上説明したように、本実施例2によれば、送信要求をピクチャ毎に行うようにしたので、GOPの途中で伝送帯域幅が大きく低下した場合でも、次のGOPの(つまり最新の)Iピクチャが送信可能になった以降の送信要求に対して、Pピクチャの送信を打ち切ってその最新Iピクチャを送信することができる。
【実施例3】
【0044】
本実施例3は、ネットワークデコーダ装置が再送信する際のレート制御として、特許文献4に記載の方法を用いたものであり、送信要求を、ピクチャ毎に行うようにした点で先の実施例1と異なる。
図13は、本実施例3のデコーダ18のブロック図である。図13において、画像送信装置1等からIPパケット化された映像データが入力端子130に入力される。なお映像データの符号化方式としてMPEG-4 Part2 Visualを想定する。
【0045】
L2−L3処理部131は、入力端子130からのIPパケットに対し、レイヤ2及びレイヤ3の受信処理をし、レイヤ3のペイロードを出力する。即ち、出力先に対し、Socket APIと同様の機能を提供する。レイヤ3は、UDP(User Datagram
Protocol)もしくはTCP(Transmission Control Protocol)である。
【0046】
RTP処理部134−1は、L2−L3処理部131から受け取ったデータグラムについてRFC3016等に規定されているRTP(Real-time Transport Protocol)処理やRTCP処理をし、RTPパケットのペイロードを連結して得られるMPEG-4 Visualのビットストリームを復号化処理部132及びI−VOP周期バッファ133へ出力する。またRTP処理部134−1は、I−VOP周期バッファ133にペイロードを出力する都度、RTPパケットヘッダの情報(後述)をI−VOP周期バッファ133へ通知する。また、RTPヘッダ中のM(Marker)ビットを検査し、Mビットが1のパケットを検出したときに、該パケット或いはその次のシーケンスナンバーのパケットのペイロード出力時に、タイムコード(後述)をI−VOP周期バッファ133へ通知する。
RFC3016は、MPEG-4 Visualのビットストリーム(符号化データ)をMPEG-2システム等を用いずにネットワーク上で伝送するのに適したRTPペイロードフォーマットを規定している。1ピクチャ(フレーム)を構成するVOP(Video Object Plane)を1乃至複数のRTPパケットで伝送する場合、各RTPパケットのペイロード先頭には常にコンフィグレーション情報、VOPヘッダ、VP(Video packet)ヘッダのどれかを配置し、エラー耐性を高めている。
【0047】
復号化処理部132は、必要最小限の受信バッファを備え、RTP処理部134−1から受け取ったビットストリームを復号化し、外部の映像モニター124に出力する。
【0048】
I−VOP周期バッファ133は、少なくともI−VOP(先に説明したIピクチャに相当する。)から次のI−VOPの直前までの符号化データを蓄積可能な容量を有するバッファである。
【0049】
RTPパケット処理部134−2〜134−4は、RTCPにより取得した受信者側での受信品質に関する情報に基づいて制御される伝送レートで、I−VOP周期バッファ133から読み出したビットストリームをRFC3016等に従いRTPパケット化し、L2−L3処理部135へ出力する。
RTPパケット処理部134−1、134−2〜134−4は通常、プロセッサ(不図示)上で動作するソフトウェアにより実現され、受信ストリーム数及びクライアント数に対応する数だけそれぞれ起動される。I−VOP周期バッファ133も受信ストリーム数だけ起動される。
【0050】
L2−L3処理部135は、L2−L3処理部131と同等の機能を提供するものであり、L2−L3処理部131と一体に構成されても良い。
【0051】
図8は、I−VOP周期バッファ133の構成図である。I−VOP周期バッファ133は、リングバッファ81と、I−VOPタイムコードレジスタ82と、ヘッダポインタテーブル83とから構成される。
リングバッファ81は、RTPパケット処理部134−1からのビットストリームを、書き込みポインタWPの示す位置から順次書き込み、読出しポインタRPの示す位置から順次読み出してRTPパケット処理部134−2等に出力する。
リングバッファ81は、1GOV(Group of VOP)分のビットストリームを保持するのに十分な容量のFIFO型のバッファ(リングバッファ)であり、WPはRPより優先度が高く、RPを追い越すことができる(RPをWPの前に強制移動する)。
【0052】
I−VOPタイムコードレジスタ82は、最新GOVタイムコードと、読出済GOVタイムコードとを記憶する。
最新GOVタイムコードとは、リングバッファ81にIーVOP(図では、Iと表示)を書き込む都度、そのIーVOPの直前にあるGOVヘッダ中のタイムコードが、RTPパケット処理部134−1により書き込まれるものである。
読出済GOVタイムコードとは、リングバッファ81からIーVOPが読み出される都度、最新I−VOPタイムコードがコピーされて書き込まれるものである。
I−VOPの検出は、RTPパケット処理部134−1から通知されるMビットに拠っても、或いはGOVヘッダの先頭にある32bitの”group_vop_start_code”をビットストリーム中からサーチすることに拠っても良い。また、GOVヘッダ中のタイムコードの代わりにRTPパケットヘッダ中のタイムスタンプを用いても良い。
【0053】
ヘッダポインタテーブル83は、RTPパケット処理部134−1がビットストリームをリングバッファ81に書き込む際に、そのビットストリームを運んできたRTPパケットのヘッダ情報(タイムスタンプやMビット)と、ペイロード長と、リングバッファ81上でのそのペイロード(ビットストリーム)の先頭位置を示すポインタとが対応付けられて記録される。WPがRPを追い越しそうになったら、RPを、RPが示しているRTPペイロードの次のペイロードの先頭位置に移動する。
【0054】
次に、図13と図8を参照して本例のデコーダ18の動作を説明する。
各RTPパケット処理部134−2、134−3、134−4は、L2−L3処理部135からの伝送レートに応じたレディー信号(図13では点線で示す信号)により、I−VOP周期バッファ133から符号化データを読み出す。レディー信号とは、例えばRTCPのRR(Receiver Report)である。TCPの場合、クライアント(画像受信装置やデコーダ等)からのACK(受信応答)を利用可能ではあるが、RTCPの併用が望ましい()。例えば、各RTPパケット処理部134−2等は定期的にSRをクライアントに送信し、クライアントから返信されるRRに含まれるパケット破棄率情報や最新SR受信時刻情報などを得る。この定期的な情報から、パケット破棄率がゼロとなるように(目標)送信レートを決定する。
【0055】
具体的には、RTPパケット処理部134−2等は、RTPパケット送信時に、そのパケット長に送信レートを乗じて求まる時間でタイマーを設定する。そしてその時間経過後にタイマーイベント等により、次のステップ301〜304の処理を行なう。
【0056】
まず、ステップ301として、読み出し条件の判断をする。読み出し条件の一例として、
例1:最新GOVタイムコード
<> 読出しGOVタイムコード
例2:d秒 >(最新GOVタイムコード
− 読み出し対象VOPのタイムコード)
例3:d秒 >(最新のI−VOPのタイムスタンプ
− 読み出し対象VOPのタイムスタンプ)
例4:a >(読出しポインタRP
− 書込みポインタWP)
等がある。なお、読み出し対象VOPとは読出しポインタRPが指す位置のVOPのことであり、“<>”は左辺と右辺が等しくないことを意味する。dは、正の値であり、I-VOP周期やネットワーク伝送ジッタ(RTCPのRRから得られる)に応じて適切に設定するものとする。なお、例2における、「読み出し対象VOPのタイムコード」は、VOPヘッダからは直接得られず、読出済GOVタイムコードと、VOPヘッダ内のmodulo_time_baseやvop_time_incrementとから計算する必要がある。その他の値は、ヘッダポインタテーブル83等に格納されているものを用いる。例4はWPがRPに迫ってきていることを意味し、アドレスの差がa未満になると真となる。
【0057】
ステップ302として、上記読み出し条件が真ならば、読み出し対象VOPは古る過ぎると判断して、RPを最新I-VOPに移動してリングバッファ81からビットストリームを読み出し、偽ならば、RPが示す通りに読み出す。読み出す量は、ヘッダポインタテーブル83に格納されているペイロード長に従うが、次のVOPかVP(Video Packet)のスタートコードが検出されるまで読み出しても良い。
【0058】
ステップ303として、読み出したビットストリームをペイロードとするRTPパケットを作成する。その際、RTPパケットヘッダ中のタイムスタンプとしては、ヘッダポインタテーブル83に格納されているタイムスタンプに適当なオフセットを加えたものを用いても良く、上述の読み出し対象VOPのタイムコードと同様の計算により、独自に作り直しても良い。
【0059】
ステップ304として、作成したRTPパケットをL2−L3処理部135に出力すると共に、次のパケット処理のため、出力したパケット長に送信レートを乗じて求まる時間でタイマーを設定する。
【0060】
図8では、書き込みポインタWPでリングバッファ81にP(n+1)を書き込み、読み出しポインタRPでP(3)を読み出し始める状態を示し、I−VOPタイムコードレジスタ82には、I(0)のタイムコードが格納されている。
低レート伝送路に対しては、読み出し速度が書き込み速度より遅くなる場合がある。この場合の読み出し条件判断処理では、I−VOPタイムコードに格納されているI(n)よりも時間の早い(タイムコードの小さい)P(3)を読み出すことになる。従って、その差分がd秒以上となるため、上述の読み出し条件が成立することになり、I(n)に読み出しポインタRPを移動してI(n)を読み出す動作となる。
【0061】
即ち、この動作によりP(3)〜P(n−1)の読み出しがスキップされ、I−VOP周期バッファ133内部でI−VOP直前のデータが破棄されたことになる。このように読み出し速度は、伝送レートに対応したものとなる。これにより伝送レート適応型パケット伝送が可能となる。
【0062】
以上説明したように、本実施例3の各RTPパケット処理部134−2等は、それぞれのクライアント(画像受信装置やデコーダ等)間の伝送路の利用可能帯域(伝送速度)に従ったデータ量をI−VOP周期バッファ133から読み出す。従って、必然的に低レート伝送路に対してはI−VOP周期バッファ133内で画像データが破棄されることになる。このようにして自動的に伝送路の伝送速度にあわせて画像データが伝送される。
本例の伝送レート適応型パケット伝送方式は、ベストエフォートの伝送路(ネットワーク)に対して有効である。つまり、伝送レートの動的な変動に対しても自動的に適応した画像符号化データの伝送が可能となる。
【実施例4】
【0063】
本実施例4は、映像データの符号化方式としてH.264を想定し、RTPペイロードフォーマットとしてRFC3984を用いた点などで先の実施例3と異なる。
H.264のエンコーダは概念的に、スライス単位で符号化データを出力するビデオ符号化レイヤ(VCL)と、そのスライス出力をパケットネットワークでの伝送に適したNALユニットにパケット化するネットワーク抽象化レイヤとから構成される。スライスとは、1ピクチャ(フレーム)を1乃至複数に分割したものであり、1ピクチャ分のデータの集まりはAU(アクセスユニット)と呼ばれる。
【0064】
NALユニットの先頭には、NALユニットタイプオクテット(以後NALヘッダと呼ぶ)が配置され、その直後にNALユニットのペイロードが続く。NALヘッダは、そのNALユニットが壊れていることを示す1ビットの”forbidden_zero_bit”と、そのNALユニットの内容が参照ピクチャの完全性を保つのに必要か否かを示す2ビットの”nal_ref_idc”と、そのNALユニットのタイプを示す5ビットの”nal_unit_types”とからなる。
”nal_unit_types”の値は、NALユニットの内容が、IDRピクチャ(他のピクチャに依存せずに復号可能なピクチャ。前述のIピクチャに相当)のスライスであれば”5”になり、AU delimiter(アクセスユニットの境界を示す)であれば”9”になり、またSVC(Scalable
Video Coding)を用いたときには、それらに対応する値をとる。その他、シーケンスパラメータセット、ピクチャパラメータセット、サブセットシーケンスパラメータセット、End of sequence等のNALについても値が決められている。
H.264は、シンタックスの自由度が高いのが特徴であり、スライス(ピクチャ)の標本化/再生時刻(順序)とは異なるような、符号化順序、伝送時刻順序、復号順序が許容されている。また上述のようなNALユニット化より、従来のエレメンタリーストリーム中で使用されていたスタートコードが不要になっている。
【0065】
本実施例4のデコーダ151の基本構成は、図13に示した実施例3のデコーダ18と同様であり、実施例3との相違点のみ説明する。
本例のRTP処理部44−1(134−1に相当する)は、受信したRTPパケットに対し、RFC3984等に規定されているRTP処理等をして、RTPペイロードを出力する。この規定におけるRTPペイロードフォーマットには、シングルNALユニットパケット、集合パケット、分割パケット等があるが、必ず、ペイロードの先頭はNALヘッダから始まるようになっている。
【0066】
IDR周期バッファ43は、実施例3のI−VOP周期バッファ133に代えて備えられるものであり、受信した最新のIDRピクチャにアクセス可能なように、格納したRTPペイロード(より好ましくはNALユニット)毎にその先頭位置や時刻等を管理している。1枚のIDRピクチャを構成する最初のNALユニットは、AU delimiter NALユニットの後に最初に出現したIDR−NAL(”nal_unit_types”=5のNALユニット)として検出する。なお、AU delimiter NALとIDR−NALの間には、sequence
parameter set、picture parameter、SEI等のNALユニットが配置され、AU delimiter NALの前にはEnd of sequence NALが配置される場合があり、これらを利用して検出しても良い。1IDRピクチャ分のIDR−NALが複数ある場合でも、それらは連続していることが通常である。
【0067】
RTPパケット処理部44−2〜44−4は、実施例3のRTPパケット処理部134−2〜134−4と同様の適応レート制御を行なう。そして、その送信レートでNALユニットを全て送りきれなくなったときに、”nal_ref_idc”が低いものから順次スキップを行なう。”nal_ref_idc”は”0”〜”3”の値を取るので、4段階の制御となる。RFC3984には、”nal_ref_idc”として、非参照ピクチャのNALには”0”を、IDR−NALには”3”をセットすることが定められている。また、符号化側(画像送信装置)で、IDRピクチャのみを参照するスライス、(動きベクトルが大きいとして)Region of Interestフラグを設定したスライス、或いはイントラスライス等のNALに対し、”nal_ref_idc”に”2”を設定し、それ以外の参照ピクチャのNALに”1”を設定するようにしても良い。
或いは、もしSVCを用いていれば、NAL拡張ヘッダも参照して、重要度や他からの依存性の低いNALから送信をスキップする。拡張ヘッダには、空間、CGS、MGS、FGS等のレイヤ構造においてどの階層に属するかを示す情報を含む。拡張ヘッダが無い場合、シンタックスを解釈して判別する。つまりNALペイロードの先頭には通常、スライスヘッダがあるのでそれを参照する。
【0068】
4段の各段階間の遷移条件は、より低レートの段階への遷移としては、実施例3等のスキップ開始条件(例えば、最新のAU delimiter或いはIDR−NALを受信してから所定時間経過したとき)と同じでよい。より高レートの段階への遷移としては、その逆(例えば、読出しポインタRPが書込みポインタWPに追いついたとき)とする。
送信レートが絞られていくと最終的に、VCLクラスのNALとしてはIDR−NALの一部だけを送信するようになる。ただし、AU delimiter NALのような重要なnon−VCLクラスのNALもスキップせず送信する。
本例では、NAL(RTPパケット)のスキップにより、AUの最後のRTPパケットにMビットを適切に設定できない可能性があるが、通常の伝送路上のパケットロス同様、Mビットだけに頼らない実装が一般的となっており、問題ない。
【実施例5】
【0069】
本実施例5のデコーダは、ONVIF(Open Network Video Interface Forum Core Specification Version 1.0
2008年11月)に準拠したネットワーク映像配信システムで使用されることを前提にした点などで先の実施例4と異なる。
ONVIFでは、サービス指向アーキテクチャが採用されており、ネットワーク上にある機器を発見したり、カメラ、画像送信装置(エンコーダ)、画像受信装置(デコーダ)の仕様(プロファイル)情報を交換したり、雲台を制御したりするための各種の通信は全てWSDL(Web Service Description Language)で定義され、それらの機能はWebサービスとして提供される。WSDLはXMLの構文で記述され、SOAP(Simple
Object Access Protocol)のメッセージとして通信される。SOAPのメッセージ(エンベロープ)は、更にHTTPを用いてそのBODY内に格納されて伝送される。
【0070】
遠隔のWebサービスを発見する方法としては、非特許文献3のWS-Discoveryを用いるよう規定されている。WS-Discoveryでは、システムに参加する全機器が共通のマルチキャストアドレスに参加し、そのアドレスを通じてクライアントがサービスのProbeをし、サービス提供元がそれに応答して直接クライアントにProbe matchを返信することを基本としているが、Discovery Proxy(DP)が代わりに応答することもできる。Probeメッセージには、例えばカメラを検索する場合、カメラの設置場所や名前などがLDAP(RFC2251等)の様式で記述される。
【0071】
本例においては、マルチキャストアドレスを使用せずにWS-Discoveryを実現するため、システムの全ての画像送信装置(エンコーダ、IP力メラ等)のURI(IPアドレス)等を収集或いは保持するとともに、ブロードキャストされたSOAPメッセージ、或いはモニター可能なLAN上の全てのSOAPメッセージを受信し、必要に応じてDPとなってWS-Discovery(Remote Discovery)サービスを提供するDPサーバを、クライアントが存在する各LAN(ブロードキャストドメイン)に配置する。
【0072】
図3は、本実施例5のデコーダ30の構成図である。デコーダ30は、実施例4のデコーダ151の構成に加え更に、WSDLの通信を行なうSOAP/HTTP処理部31と、RTSP(Real Time Streaming Protocol)等のセッション管理を行なうセッション管理部32と、主にSOAP/HTTP処理部31を介してWebサービスを提供するWebサービス管理部33と、復号化した映像をサイズ変換等をして再度符号化する符号化処理部35を備えている。
【0073】
まず、本例のSOAP/HTTP処理部31、Webサービス管理部33が行なうRemote DiscoveryサービスおよびMediaサービスを説明する。
本例のSOAP/HTTP処理部31は、マルチキャストアドレスに限らず、ブロードキャストされたSOAPメッセージ、或いはLAN上のモニター可能な全てのSOAPメッセージを受信している。
もしクライアントからの映像要求である”GetStreamUriRequest”を受信すると、Webサービス管理部33は、映像要求の対象(Media profileで特定される)が、現在デコーダ30自身で受信しているものかどうか判断し、受信していなければその映像要求を無視し、受信していればデコーダ30のホスト名を含むURIを含む応答”GetStreamUriResponse”を返す。URIは、ホスト名以降のパス名として、対応するMedia profileを特定可能な文字列等が付加されて、動的に生成されうる。映像要求を無視しても、クライアントは、DPサーバ等からの応答を受け取ってそのURI(IP力メラ等のもの)を知ることができる。一方、有効な(エラーではない)応答を冗長に受け取った場合は、URIをアドレス解決し、そのIPアドレスがクライアントの属するネットワークに近い方(或いはネットマスクが一致する方)を採用すればよい。
”GetStreamUriResponse”を受け取ったクライアントは、当該URI宛にRTSPのDESCRIBEメソッドを送信するが、デコーダ30がそれを受信した場合、映像再配信要求と解釈して、セッションを初期化し、プレゼンテーションを開始する。つまりRTP処理部34−2等(実施例4の44−2等に相当する)を新たに起動し、要求対象に対応するIDR周期バッファからストリームを読み出して、要求元クライアントに配信する。
【0074】
デコーダ30は、自身で受信して復号化する必要がなくなった場合、全クライアントにANNOUNCEメソッドを送信した後(或いは一方的に)、映像再配信を終了することができる。クライアントは再度”GetStreamUriRequest”を行い、デコーダ30はそれに応答しないのでIPカメラ等の真のURIを取得し、セッションを確立することができる。もし、クライアントがデコーダ30のURI宛にSETUPメソッド等を送信しても、デコーダ30は、直前まで接続していたIPカメラ等のURIを含むREDIRECTメソッドを応答するので問題は無い。
【0075】
上記の他、雲台を制御するためのPTZサービス、カメラのフォーカス等を制御するためのImagingサービス、その他のWebサービスがあるが、上記と同様である。即ち、デコーダ151は自身が接続中のエンコーダやIP力メラ等のURI宛のWebサービス要求等を受信した場合、DPとして、或いは完全に要求先URIのIP力メラ等を装って、要求に応答する。応答に必要な情報をキャッシュしていない場合、或いは雲台制御コマンドのように要求に含まれる情報をIP力メラ等に伝える必要がある場合、要求を当初のURI宛に転送して真のIP力メラ等から応答を得て、それを元の要求元に応答する。
もしクライアントが発したWebサービス要求が直接、宛先通りに真のエンコーダ等に届き、応答が両者から帰ってきた場合、クライアントは任意の一方(例えばネットマスクが一致する方)を採用すればよい。
【0076】
次に、本例の符号化処理部35等を利用した再配信を説明する。ONVIFでは、画像送信装置は、QVGAサイズのJPEGを送信できなければならないと定めているが、そのような画像送信装置が送信可能な映像形式等は、Media Profileとして定義される。Media Profileの中には、”Video source
configuration”、”Video encoder
configuration”、”PTZ configuration”などが規定されている。
本例のデコーダ30は、MPEG等の動画の形式で受信中の映像について、JPEGで映像要求を受けたときに、処理負荷に余裕があれば、MEPGを復号して得た映像をJPEGにトランスコードして、要求元に配信(プレゼンテーション)することもできるようにする。具体的な処理の手順は以下のようになる。
【0077】
ステップ401として、デコーダ30は、利用可能なMedia Profileの問い合わせを意味する”
GetProfilesRequest”を受信する。Webサービス管理部33はそれを解釈し、Media Profileが示す映像源(Video source configuration)が、デコーダ30が現在受信中のものと同じか否か判定し、同じでなければ、Media Profileを1つも含まない空の”GetProfilesResponse”を応答する。ステップ401において映像源が、同じであれば、符号化方式やピクチャサイズ等も同じか否かを判定する。
ステップ402として、ステップ401において映像源が同じと判定された場合、処理負荷の余裕度に応じて、1乃至複数のMedia Profileを含む”GetProfilesResponse”を応答する。即ち、余裕度があれば、現在受信中の映像の符号化方式やピクチャサイズ等と同じ”Video encoder
configuration”を規定するMedia Profileの他、符号化処理部35で再符号化可能な他の映像形式を指定するMedia
Profileも含ませる。
ステップ403として、ステップ402の”GetProfilesResponse”を受信したクライアントから”GetStreamUriRequest”等の映像要求を受信した場合、その時点で処理負荷に余裕があれば、デコーダ30のホスト名を含むURIを生成して応答”GetStreamUriResponse”を返すとともに、映像要求が指定するMedia Profileの示す符号化方式やピクチャサイズ等で符号化するよう、符号化処理部35を初期化する。
ステップ404として、ステップ403の”GetStreamUriResponse” を受信したクライアントからRTSPの所定のメソッドを受信した場合、セッションを初期化し、プレゼンテーションを開始する。符号化処理部35は、指定された符号化方式等に従い、必要に応じてフレーム間引き処理、インタレース/プログレッシブ変換処理、リサイズ処理(超解像処理によるサイズの拡大も含む)等を行なう。Media Profileとして複数のVideoSourceを指定することも可能であり、その場合、複数の映像を1画面に合成し(例えば4−up)、1ストリームに符号化して再配信する。
【産業上の利用可能性】
【0078】
本発明は、監視カメラシステム等に好適であるが、ビデオ会議システム、ストリーム配信サービス等で用いられる符復号化装置、セットトップボックス等にも利用できる。
【符号の説明】
【0079】
1a,1b 画像送信装置、 2 IP力メラ、
3 画像サーバ装置、 4 ネットワーク、
5 パーソナルコンピュータ(PC)、6 画像受信装置(従来)、
7 PC(操作専用)、 8,8a ビデオモニタ、
9 専用操作器、
11−1〜11−n アナログ映像、 12 アナログカメラ、
13−1〜13−n I/Pピクチャ、14 ストリームバッファ、
16、18、30 ネットワークデコーダ装置(デコーダ)、
17 GOP単位ストリームデータ、
31 SOAP/HTTP処理部、 32 セッション管理部、
33 Webサービス管理部、 34,44,134 RTP処理部、
35 符号化処理部、 43 IDR周期バッファ、
81 リングバッファ、 82 I−VOPタイムコードレジスタ、
83 ヘッダポインタテーブル、
131,135 L2−L3処理部、 132 復号化処理部、
133 I−VOP周期バッファ、 136 出力端子。
【技術分野】
【0001】
本発明は、ネットワークデコーダ装置に関し、特にネットワークを介して受信した符号化映像データを復号するとともに他の機器に再配信するネットワークデコーダ装置に関する。
【背景技術】
【0002】
従来、監視カメラで撮影した映像を符号化し、IPネットワークを介して伝送するCCTV(Closed Circuit TeleVsion)システムが知られる。
【0003】
図11は、従来のCCTVシステムの模式図である。WEBサーバ機能を有する画像送信装置(画像伝送装置)1a、1b、IP力メラ2、或いは画像サーバ装置3(以後、画像送信装置1等と呼ぶ)は、符号化(圧縮)画像デジタルデータ(以後、画像データと呼ぶ)を各種通信プ口トコルを用いてネットワーク4を経由で送信する。パーソナルコンピュータ(PC)5や画像受信装置6(これらをクライアントと総称する)は、自身宛の画像データを受信して復号化し、映像の表示或いはビデオモニタ8への映像信号の出力を行う。
【0004】
画像受信装置6は、シリアル信号を、画像送信装置1a、1bやIP力メラ2との間でネットワーク4を介して双方向通信する機能を有し、カメラ制御用のシリアル信号を、RS-485やRS-232Cケーブルで接続された専用操作器9から或いはネットワークで接続されたPC7から入力されると、それをIP力メラ2等に中継する。PC5も、同等の機能をソフトウェアにより実現する。
【0005】
上述の他、映像データの中継(転送)機能を有する映像再生装置等が知られる(例えば、特許文献1及び2参照。)。また、映像データを中継或いは送信する際に、フレームの間引き(コマ落し)を行うストリームデータ配信システム等が知られる(例えば、特許文献3及び4、非特許文献1及び2参照。)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】国際公開第05/050931号パンフレット
【特許文献2】特開2007−201995号公報
【特許文献3】特開2007−193690号公報
【特許文献4】特許第4255685号公報
【非特許文献】
【0007】
【非特許文献1】福永茂,外3名,"LANにおける分散マルチポイント画像伝送方式の検討",1993年画像符号化シンポジウム(PCSJ93)第8回シンポジウム資料,社団法人 電子情報通信学会,1993年10月,p.83-84
【非特許文献2】笠井裕之、富永英義,"マルチプルトランスコーダ・ストリームスイッチングに基づくスケーラブルゲートウェイ方式",電子情報通信学会論文誌. B,平成15年10月1日,J86-B,No.10,p.2229-2244
【非特許文献3】John Beatty,外12名, “Web Services DynamicDiscovery (WS-Discovery)”,[online],2005年4月,インターネット<URL:http://specs.xmlsoap.org/ws/2005/04/discovery/ws-discovery.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0008】
図11において、画像受信装置6は新たに増設されたものとし、PC5で表示している映像と同じ映像を表示させる場合を考える。このとき、画像送信装置1a等は、PC5と画像受信装置6のそれぞれに宛てて画像データを個別に送信するので、ネットワーク4で伝送される映像データが2倍に膨れ上がってPC5または画像受信装置6が利用できる帯域幅が圧迫され、映像受信に支障をきたす場合がある。これは画像送信装置1が最大配信の能力に対しベストエフォートにて処理を行っているからであり、各クライアントに同じ条件の各画像データを配信できなくなる。
或いは、画像送信装置1a等の配信能力の不足によりフルフレームの映像を送ることができない場合がある。画像送信装置1a等において、接続クライアント数に応じて配信のための処理能力(処理時間、バッファメモリ)が分配されるが、接続数が多くなると1クライアント当たりの処理能力が十分でなくなるためである。
【0009】
また、画像受信装置6にネットワーク4経由でアクセスしているPC7は、専ら制御のためのものであり、画像送信装置1等からの映像を確認することはできない。そのため、PC7から力メラ制御する際には、ビデオモニタ8の表示映像を確認しながらPC7から力メラ制御を行うこととなり、操作性が悪いという問題があった。
【課題を解決するための手段】
【0010】
本発明のネットワークデコーダ装置(画像受信装置)は、ネットワークを利用した画像送信装置もしくはIP力メラ、画像サーバ装置などからネットワークを経由して各画像データ(符号化画像デジタルデータ)を受信し、受信した画像データに復号化画像処理を行いNTSC信号もしくはデジタル映像信号に変換出力する。それと共に、当該ネットワークデコーダ装置に対して画像要求をした他のクラアイアントへ、画像送信装置等から受信した画像データを再配信する。これにより、画像送信装置等とネットワークデコーダ装置間の伝送路に必要とされるビットレートを抑える事ができる。
また、WEBサーバ機能を有する雲台付力メラ画像送信装置もしくはIP力メラ、画像サーバ装置への力メラ制御要求を、画像受信装置に直接接続された専用操作器のみならずネットワーク経由でアクセスしている各クライアントから行なえるよう、ネットワークデコーダ装置は制御要求を中継する。これにより、力メラ制御要求の宛先を映像要求のそれと同じにでき、制御を簡略化する事ができる。
また、画像送信装置からの実効受信レートと、各クライアントへの実効送信レートとは必ずしも一致しないため、受信した符号化映像データを少なくともIピクチャ周期分格納するバッファと、符号化映像データの再配信要求を受信したときに、前記バッファから符号化映像データを順次読み出して、該再配信要求の要求元へ送信する再配信手段と、を備えて、該再送信手段が、バッファに格納された最新Iピクチャより古いデータを符号化映像データの送信をスキップする。
【発明の効果】
【0011】
本発明によれば、ネットワークデコーダが受信した映像データを再配信するようにしたので、カメラ制御を行うクライアントPCの画面に映像を表示させ、力メラ制御の操作性を向上させることができる。また、その再配信機能により、ネットワークの負荷を過剰に増加させることなく映像を表示可能なクライアントPCの数を多くすることができ、システムの構築が容易になる。
【図面の簡単な説明】
【0012】
【図1】デコーダ16−1へのピクチャデータの流れ示す模式図(実施例1)
【図2】ネットワーク映像配信システムの配信動作を説明する図(実施例1)
【図3】デコーダ30のブロック図(実施例5)
【図4】ストリームバッファへの書き込み処理のフローチャート(実施例1)
【図5】ストリームバッファからの読出し処理のフローチャート(実施例1)
【図6】ストリームバッファからの読出し処理のフローチャート(実施例2)
【図7】ネットワーク映像配信システムの配信動作を説明する図(実施例2)
【図8】I−VOP周期バッファ133の構成図(実施例3)
【図9】Pピクチャのスキップを説明する図(実施例2乃至6)
【図10】ネットワーク映像配信システムの模式図(実施例1)
【図11】従来のCCTVシステムの模式図
【図12】ネットワーク映像配信システムの模式図(本発明)
【図13】デコーダ18のブロック図(実施例3)
【発明を実施するための形態】
【0013】
以下、本発明のネットワークデコーダ装置の一例を用いたネットワーク映像配信システムについて、図面を参照して説明する。
なお、本システムは、ネットワークデコーダ装置(画像受信装置)において、符号化映像データを受信して復号しNTSC信号もしくはデジタル映像信号出力によりモニター画面に映像表示させる通常の機能に加え、力メラ制御を行うPCの画面上にも同じ映像を表示させ、該映像を確認しながら力メラ制御を行えるようにすることを意図し、下記の性能を満足することを目標にしている。
(1) 画像送信装置に対する配信負荷を増加させないこと。
(2) 画像送信装置と画像受信装置、クライアントPC間のネットワーク伝送路の負荷の増加を最小限にすること。
(3) 画像送信装置と力メラ制御用の通信を行うときは、画像受信装置を経由させる事で制御の複雑さを緩和させる。
【0014】
図12は、ネットワーク映像配信システムの模式図である。図11に示した従来の構成と同一の箇所には、同一の符号を付してある。
ネットワークデコーダ装置16(以後、デコーダと呼ぶ)は、予め設定された通信プ口トコルを用いて、画像送信装置1等から目的の各画像データをネットワーク4を経由して受信する。その際、画像送信装置1等から送信されネットワーク4を伝送する画像データは、1クライアント分のトラフイック量であり、設計上の品質で支障なく伝送できる。ネットワーク4は、遠地に設置される画像送信装置等を多数接続するものであるため、SONET(Synchronous Optical NETwork)のような高速なものから、56Kbpsのモデム回線まで、各種の物理層が使用されうる。
【0015】
デコーダ16は、受信した各画像データを復号化し、NTSC信号もしくはHDMI等のデジタル映像信号に変換してビデオモニタ8aに送信すると共に、受信した各画像データのストリームをバッファに一時蓄積し、デコーダ16に対して映像要求をしたPC5や画像受信装置6へ再送信(再配信)する。デコーダ16とPC5等とは、ネットワーク上で近距離(例えばLAN内)であるか、十分な帯域の伝送路で接続されていることを想定しており、図12では、便宜的にネットワーク4を介せずに途中から分岐するように図示してある。
【0016】
この再送信の通信プロコトルは、画像送信装置1等がPC5に送信するときに利用可能なものと同じであり、HTTP、RTP、マルチキャスト(RTP)等から選択することができる。つまり、デコーダ16は、従来の画像受信装置6からはあたかも画像送信装置1等のように認識される。
またトランスポート層以上の上位層において、例えば、バッファとして最新の完全な1GOP(Group of Picture)分のデータの保存に必要な容量を備え、フレーム間引きにより適応的な送信レート制御を行うようにする。最新のGOPの先頭を受信すると、継続中の直前のGOPの再送信は、直ちに或いはフレームかスライスの境界で中止され、該最新のGOPの再送信を開始する。これにより、モデム等を使用した低品質の回線を用いた場合でも、最低限の復号可能な(フレーム内符号化された)1ピクチャ分の映像データを再配信することができる。
【0017】
ところで、デコーダ16の再送信機能を使用することにより、再送信するクライアント数、通信プ口トコル、画像送信装置の符号化ビットレート量によっては、本来の復号化処理がリアルタイムに行えずこま落ちすることが懸念される。そのため、各クライアントからの要求による再送信のプライオリティを、復号化処理のプライオリティより相対的に下げるなどし、復号化処理に支障が発生しない様にする。または、画像受信装置と各クライアントが同じブロードキャストドメイン内にあるか、再送信を行う経路上のルータやL3スイッチ等がマルチキャストに対応している場合は、プ口トコルとしてマルチキャストを選択することもできる。
【0018】
更には、デコーダ16のクライアント機能(画像を要求し受信する機能)を複数同時接続可能にすることで、同時に複数のサーバ機能(要求に応じ画像を送信する機能)を有する画像送信装置1等から符号化画像圧縮データを受信し、各符号化画像圧縮データの復号化およびリサイズにより4画面合成したNTSC信号もしくはデジタル映像信号を出力すると共に、クライアントから再配信要求によりクライアントPC画面上でもその4画面合成映像を表示できるようにしてもよい。
【実施例1】
【0019】
図10は、実施例1に係るネットワーク映像配信システムの模式図である。本実施例1は、ネットワークデコーダ装置が再送信する際のレート制御として、特許文献4に記載の方法を用いたものである。図10のシステムは、一つの画像送信装置1aからの映像データをネットワークデコーダ装置(デコーダ)16−1が中継することで、他の離れた場所のビデオモニタ8bおよび8cにおいても映像の閲覧を可能にしたものである。
【0020】
アナログカメラ12は、所定のフレームレート(例えば30fps)で撮影した監視映像の信号(NTSC信号)を、画像送信装置1aへ出力する。
画像送信装置1aは、入力された映像信号を目標ビットレートになるように圧縮符号化し、符号化映像データ(ストリームデータ)を所定のプロトコルに従ってネットワークインタフェースから送信する。
デコーダ16−1は、画像送信装置1aから対応するプロトコルで受信した符号化映像データを復号化しアナログ映像信号として出力する(図示せず)とともに、受信した符号化映像データをバッファに格納し、所定のプロトコルに従ってネットワークインタフェースから送信する。
デコーダ16−2、113−3は、デコーダ16−1から対応するプロトコルで受信した符号化映像データを復号化しアナログ映像信号として出力する。
【0021】
ネットワーク4−1は、画像送信装置1aとデコーダ16−1とを接続する任意の伝送路であり、本例では最大で384kbpsの通信速度を有する第3世代携帯電話網(パケット通信網)を想定する。
ネットワーク4−2は、デコーダ16−1とデコーダ16−2とを接続する任意の伝送路であり、512kbps程度の実効通信速度を有するADSL回線を想定する。
ネットワーク4−3は、デコーダ16−2とデコーダ16−3とを接続する任意の伝送路であり、2Mbps程度の実効通信速度を有するLAN(Local Area Network) を想定する。
ネットワーク4−1〜3はいずれもIPパケットを伝送することができる。なお、図10ではデコーダ16−1等が2つのネットワークに直接接続するかのように図示してあるが、ルータ機能の内蔵を意図したものではなく、デコーダ16等は、物理インタフェースとして、Ethernet(商標)等のポートを1個備える。
【0022】
ここで、MPEG方式の画像圧縮技術における基本的な事項を説明する。MPEG-2 Video(ISO/IEC 13818-2)やMPEG-4 Part2 Visual(ISO/IEC 14496-2)のエレメンタリーストリームにおける符号化画像本体は、大よそ、Intra Picture(以下、Iピクチャと称する)、Predictive
Picture(以下、Pピクチャと称する)およびBiderectionally Predictive
Picture(以下、Bピクチャと称する)の3種類に分類でき、ピクチャ種類毎に異なる符号化モードで圧縮されている。
Iピクチャとは、アナログ映像の1フレーム分全ての画像データをそのフレーム内で符号化変換されたデータである(簡単のため、インタレース走査は考えない)。従って、デコーダ16−2等では、このIピクチャを受信した場合、他のピクチャを参照することなくこのIピクチャだけで1フレーム分の画像を再生することができる。
Pピクチャとは、符号化済みの(時間的に前の)IピクチャまたはPピクチャ(以下I/Pピクチャと呼ぶ)から一方向のフレーム間予測を行い、予測差分のデータのみ符号化したものである。従って、デコーダ16−2等では、受信したPピクチャだけでは画像を再生することができず、予測時に参照したI/Pピクチャがなければ画像を再生できない(図9参照)。更に、途中のPピクチャがなければ、誤った画像、例えば、プロック歪等が発生した画像となる。
Bピクチャとは、2つの符号化済みI/Pピクチャ(通常は、時間的に前のピクチャと、後のピクチャ)から2方向のフレーム間予測を行い予測差分データのみ符号化したものである。このBピクチャは、Pピクチャと同様にBピクチャだけでは元の画像を再生できない。PピクチャおよびBピクチャは、前後のピクチャとの時間軸方向の冗長度を削減しているため、圧縮後の符号量を少なくできるが、それだけでは元の画像を再生できない。
【0023】
一般的なMPEG−2の各ピクチャの組合せの一例を、表示時刻順に示すと以下のようになる。
(I)(B)(B)(P)(B)(B)(P)(B)(B)(P)(B)(B)(P)(B)(B)(I)(B)(B)(P)・・・・・このようにIピクチャは、15ピクチャに1回存在し、これが繰り返される構成が一般的である。なお、ストリーム中でのデータ順はこれとは異なり、Bピクチャの符復号に必要なPピクチャが、それらBピクチャより前に符号化されトリーム中に配置される。
この1個のIピクチャを含む複数ピクチャからなる時間的周期構造は、ビデオエレメンタリーストリームの基本単位であり、GOP(Group of Picture)と呼ばれる。GOPには、そのGOPの外のピクチャの参照が不要なクローズドGOPと、参照を行うオープンGOPがある。クローズドGOPは、ストリーム中ではIピクチャで始まり、次のIピクチャの直前のPピクチャで終わる。表示時刻順でこのPピクチャと次のIピクチャの間にあったBピクチャは、次のIピクチャのみ参照するように符号化されて、ストリーム中で次のGOPのIピクチャに続けて配置される。GOPの先頭には通常、GOPヘッダが設けられるが、必須ではない。GOPヘッダには、GOP内の先頭ピクチャのタイムコードや、GOPがクローズドかオープンのどちらかを示すフラグ等が記述される。
実際には、ストリーム中にはGOPのほか、映像の途中から復号を始められるようにするためのシーケンスヘッダが、GOP境界等に任意の間隔で挿入されており、シーケンスヘッダには、ピクチャの縦と横のサイズ、クロマフォーマット、ピクチャレート、プロファイル、レベル、ビットレート等の各種パラメータが含まれている。
【0024】
次に、本実施例のデコーダ16−1の再送信動作の概要を、図1、図4、図5を用いて説明する。なお、先の説明では、MPEG方式のストリームデータは、Iピクチャ、PピクチャBピクチャで構成されると説明したが、ここでは、説明の便宜上、IピクチャおよびPピクチャのみで構成されるGOPで説明する。本例のデコーダ16−1は、GOP単位でストリーム管理をし、レート制御を行うことで、デコーダ16−2、113−3側で復号可能なクローズドGOPを送信するようにしたものである。
【0025】
図1は、デコーダ16−1へのピクチャデータの流れ示す模式図である。図1において、最上段に図示されたアナログ映像11−1、11−2、…、11−nは、映像源(アナログカメラ12)が所定のフレームレートで生成するアナログ映像の各フレームのイメージである。その下には、上のフレームに対応して画像送信装置1aが作成し配信する符号化映像データを図示しており、I/Pピクチャ13−1、13−2、・・・、13−n(I/Pピクチャ13と総称する)である。画像送信装置1aは、アナログ映像信号11−1、11−16から、Iピクチャ13−1、13−16をそれぞれ作成し、他のアナログ映像信号からは対応するPピクチャをそれぞれ作成し、それがデコーダ16−1に受信される。本例では、I/Pピクチャ13が損失無く(一定レートで)デコーダ16−1で受信され、デコーダ16−1内部に設けられるストリームバッファ14に格納されることを想定する。なお、本例の動作は、エレメンタリーストリームを伝送する際の下位レイヤ(プロコトル)には依存しないので、エレメンタリーストリームそのものが伝送されると考えても差し支えない。
【0026】
ストリームバッファは、予め所定のメモリ領域を確保された要素1と要素2とからなる2面構成とし、要素選択と、要素内の格納位置選択を与えることで所望のデータの読み書きができる。一般に、一方の要素を書き込みに占有させ、他方の要素を読み出し専用にする制御方法もあるが、本例では、GOPの先頭を検出するたびに、書き込みを行う要素を交互に入れ替え、読み出しは任意の要素を指定して行えるようにする。書き込みに使用されていない要素には、現在受信中のGOPの直前のGOPが、完全な形で格納されている。なお、GOPサイズ(GOPに含まれる(最大)ピクチャ数)は、符号化側と復号化側の間で事前に決めておく。
【0027】
図4は、ストリームバッファ14への書き込み処理のフローチャートである。図4の処理は、受信プロセス(タスク)の一部であり、書き込みデータ(パケット等)を受け取るたびに或いはフレーム周期以下の所定周期で開始される。受信プロセスは、CPUの時分割共有により他のプロセスとともに実行される。
ステップ401では、受信したストリームデータに、シーケンスヘッダ、GOP、ピクチャ等の各種スタートコードが含まれていないか探索する。
ステップ402では、格納しようとするストリームデータがIピクチャか、Pピクチャかを判定し、Iピクチャの場合(GOP先頭の場合)にはステップ403に進み、Pピクチャの場合にはステップ407に進む。
【0028】
ステップ403では、格納位置情報をIピクチャ位置(要素の先頭)に設定する。
ステップ404では、現在書き込みに使用中のストリームバッファ要素を判定し、現在使用中のストリームバッファ要素が要素1(図1参照)ならばステップ406に進み、要素2ならばステップ405に進む。
【0029】
ステップ405では、格納先となるストリームバッファ要素を現在使用されていない要素1に切り替え、ステップ407に進む。
ステップ406では、格納先となるトリームバッファ要素を現在使用されていない要素2に切り替えステップ407に進む。
【0030】
ステップ407では、ステップ405または406で切替えた現在のストリームバッファ要素、ストリームバッファ格納位置が示すストリームバッファの領域にストリームデータを格納する。
ステップ408では、ストリームバッファ格納位置を更新する。格納位置は指定形式は、要素の先頭(GOP先頭)からのオフセットアドレスとしてもよく、ピクチャカウンタとピクチャ先頭からのオフセットアドレスの組合せでもよい。
【0031】
図5は、ストリームバッファからの読み出し処理のフローチャートである。図4の処理は、中継送信(再配信)プロセスの一部であり、デコーダ16−1がクライアント(デコーダ16−1から配信を受けているデコーダであり、例えばデコーダ16−2)からのストリームデータの送信要求を受信するたびに開始される。なお中継送信プロセスは、クライアント毎に起動され実行されているが、図4の処理は同一クライアントについて2重に開始されないように制御されることを前提とする。
まずステップ501では、画像受信装置113−1から受信した送信要求に含まれるPピクチャ要求数や時刻情報を、所定の変数エリアに保存する。また、ストリームバッファの要素のうち、書込みに使用されている要素を読み出し対象として設定する。
ステップ502では、Pピクチャ要求数を判定し、読み出し対象の要素に格納されたストリームデータが、要求数を満たさない場合には、他方の要素(書込みに使用されていない要素)を読み出し対象として設定する。
【0032】
ステップ503は、前回送信したGOPのタイムコードを所定の変数エリアから読み出すとともに、読み出し対象要素のストリームバッファに格納されているGOPのタイムコードを読み出して比較し、両者が同じでなければ(後者のタイムコードの方が時間的に後のものであれば)、ステップ504へ進む。両者が同じであれば、所定時間後に自身(図4の処理)を起動するタイマーを設定して、処理を一旦終了する。所定時間としては、Pピクチャ周期(約100ms)を用いても良く、読み出し対象要素のPピクチャの(要求数に対する)不足数に応じて設定しても良い。
【0033】
ステップ504では、読み出し対象として選択された要素のストリームバッファから、データを読み出して加工し、該要求Pピクチャ数分のPピクチャを有する1個のGOPを作成する。例えば、読み出し対象要素の先頭(Iピクチャ)に読出し位置(読出しポインタ)を設定し、順次バイトストリームとして読み出す。
ただし、図4の書込み処理の書込み位置が読出し位置に追いついたとき(これは、読み出し対象要素が、当該読み出し処理の開始後に書込み処理によって書込み対象要素に選択された場合に起こりうる)は、その時点でこのステップを終了する。
【0034】
ステップ505では、作成したGOPをデコーダ16−2に送信する。送信の開始時に、GOPのタイムスコードを変数エリアに格納する。なお、ステップ504と505は同時進行させてもよく、或いは、ステップ504で作成したGOPを送信バッファに完全に格納し終えてからステップ505に進んでもよい。
【0035】
図2は、本実施例1のネットワーク映像配信システムの配信動作を説明する図である。図2において、図1と同じものには、同じ符号を付してある。図2の上半分は、図1と同じでありデコーダ16−1で受信されるストリームデータ、下半分は、デコーダ16−2で受信されるストリームデータを、共通の時間軸(横軸)でそれぞれ模式的に示したものである。
デコーダ16−2は、任意のタイミングで送信要求15をデコーダ16−1に送信する。デコーダ16−1は、ネットワーク4−2を介して送信要求15を受信すると、自身はエンコーダではないのでそれを中継送信要求の意味に解釈し、その送信要求が示すPピクチャ要求数(本例では15)のGOP単位ストリームデータ17(以後GOP単位データと呼ぶ)が用意でき次第、デコーダ16−2への中継送信を開始する。
デコーダ16−2は、(送信要求15の応答としての)GOP単位データ103の受信開始を検知すると、その開始時刻を記録すると共に、必要に応じ再生バッファをクリアした後、GOP単位ストリームデータ103の伸張(復号)を直ちに開始して、アナログ映像信号を順次出力する。
【0036】
デコーダ16−2は、Pピクチャ要求数分のGOP単位データ17の受信を終えると、記録した開始時刻と現在時刻との差を算出し、その差が本来の1GOP時間(GOPサイズに対応する)より長ければ次回の要求数を減らし、短ければ要求数を増やす。所定時間(例えば本来の2GOP時間)内に要求数分のGOP単位データ17の受信が終えられなかったときは、タイムアウトするとともに次回の要求数を最小値(例えば0。即ちIピクチャのみ。)にする。その後、適宜、送信要求(図示せず)を送信する。なお、デコーダ16−3においても同様であり、説明を省略する。或いはデコーダ16−2が16−3に再配信するように動作させても良い。
【0037】
以上説明したように、本実施例1のデコーダ16−1は、最新のIピクチャ(例えば13−16)から要求のあった所定のPピクチャの送信ピクチャ数に達するまでストリームデータを蓄積する。蓄積が達成した時点で、Iピクチャとこれに続く所定のピクチャ数のPピクチャをGOP単位に加工して、画像受信装置(デコーダ16−2)に送信することで、ネットワークの伝送速度に合わせたストリームデータ量を任意に指定することができ、画像伝送部と画像受信部のMPEG−4ストリーム遅延時間を最小限にでき、GOP単位でPピクチャの連続性の確保されたストリームデータを中継送信することができる。
【実施例2】
【0038】
本実施例2は、ネットワークデコーダ装置が再送信する際のレート制御として、特許文献4に記載の方法を応用したものであり、送信要求を、ピクチャ毎に行うようにした点で先の実施例1と異なる。
図6は、本例のデコーダ16−1に係るストリームバッファからの読出し処理のフローチャートであり、図5に代わるものである。図6の処理は、図5と同様、デコーダ16−1が画像受信部(例えば、デコーダ16−2、113−3)からのストリームデータの送信要求を受信するたびに開始される。本処理では、前回送信したピクチャが属したGOPのタイムコードを変数エリアに格納して使用するので、再送信プロセスの起動時に、タイムコードを、それが取りうる最古の値などに初期化しておく。
ステップ601では、デコーダ16−2等から受信した送信要求に含まれるPピクチャ要求数や時刻情報を、所定の変数エリアに保存する。
ステップ602では、前回送信したピクチャが属したGOPのタイムコード(前回タイムコード)を所定の変数エリアから読み出して、現在の書込み対象要素のGOPのタイムコード(現在タイムコード)と比較し、前回タイムコードが現在タイムコードより古い場合、読出し対象要素を現在の書込み対象要素と同じに設定し、読出し位置をその要素の先頭に設定(初期化)する。
【0039】
ステップ603では、読み出し対称要素の読出し位置から1ピクチャ分のストリームデータを読み出して送信する。読出し後には、読出し位置は読み出したピクチャの次のピクチャの先頭(もしあれば)を示すことになる。
なお、ステップ602における現在タイムコードとしては、単純に現在の書込み対象要素のGOPのタイムコードを採用するのではなく、現在の書込み対象要素に少なくともIピクチャが格納されている(書込み位置が2番目以降のピクチャを示している)ときにのみ採用し、それ以外のときは他方の要素のGOPのタイムコードを採用するようにしてもよい。
以上説明したように、本実施例2のデコーダ16−1は、最新のIピクチャ13(例えば映像取込5)から要求のあった所定のPピクチャの送信ピクチャ数に達するまでストリームデータを蓄積する。蓄積が達成した時点で、Iピクチャとこれに続く所定のピクチャ数のPピクチャをGOP単位に加工して、画像受信装置に送信することで、回線状況に合わせたストリームデータ量を任意に指定することができ、回線の効率を最大限に使用できるようにしたものである。
【0040】
図7は、本実施例2のネットワーク映像配信システムの配信動作を説明する図である。なお、図2と同じものには、同じ符号が付されている。
デコーダ16−2は、ネットワーク4−2を経由し、デコーダ16−1にストリームデータの送信要求(図示せず)をする。デコーダ16−1は、ストリームデータの要求があったデコーダ16−2に、その時点で最新のIピクチャであるIピクチャ13−1を伝送する。デコーダ16−2は、Iピクチャ13−1を受信したら即座にストリームデータの復号(伸張)を開始する。このIピクチャ13−1の受信に係る期間を、デコーダ16−2の映像伸張1として図示してある。なおピクチャの受信完了から復号完了までの時間はフレーム時間に対して十分短いとみなして、受信期間と復号期間はほぼ同じとして扱う。なお、上述の「即座に復号」とは、受信中のピクチャの2つ前のピクチャを復号することは含まないが、1ピクチャ分のデータの受信完了を待って復号を開始する(つまり、1つ前のピクチャを復号する)ことまでは含む。
【0041】
Iピクチャ13−1全体の受信(或いは復号)が完了すると、デコーダ16−2は、ネットワーク4を経由し、デコーダ16−1に次のストリームデータの送信要求をする。デコーダ16−1は、送信要求があったデコーダ16−2に次のPピクチャ13−2を伝送する。デコーダ16−2は、Pピクチャ13−2を受信しながら即座にストリームデータの復号を開始する。以降、続くPピクチャ13−3、13−4、…を同じ手順で要求し、受信し、復号する。以降、ストリームデータの要求ごとに同じ手順を繰り返す。
【0042】
デコーダ16−3も16−2と同様に送信要求を行いストリームデータを受信するが、狭い伝送帯域幅(該当ピクチャ伝送時の実効的な伝送速度)により受信が遅延するため、入力映像に対する遅延時間が徐々に増大していく。図中でデコーダ16−nと示したものでは、Iピクチャのみがかろうじて送信できている。
本例のデコーダでは、常時少なくとも1GOP分のストリームデータが1GOP時間以上バッファされているため、デコーダ16−3のように少なくとも1GOP時間(最大で2GOP時間)を使ってIピクチャを送信することができる。
【0043】
以上説明したように、本実施例2によれば、送信要求をピクチャ毎に行うようにしたので、GOPの途中で伝送帯域幅が大きく低下した場合でも、次のGOPの(つまり最新の)Iピクチャが送信可能になった以降の送信要求に対して、Pピクチャの送信を打ち切ってその最新Iピクチャを送信することができる。
【実施例3】
【0044】
本実施例3は、ネットワークデコーダ装置が再送信する際のレート制御として、特許文献4に記載の方法を用いたものであり、送信要求を、ピクチャ毎に行うようにした点で先の実施例1と異なる。
図13は、本実施例3のデコーダ18のブロック図である。図13において、画像送信装置1等からIPパケット化された映像データが入力端子130に入力される。なお映像データの符号化方式としてMPEG-4 Part2 Visualを想定する。
【0045】
L2−L3処理部131は、入力端子130からのIPパケットに対し、レイヤ2及びレイヤ3の受信処理をし、レイヤ3のペイロードを出力する。即ち、出力先に対し、Socket APIと同様の機能を提供する。レイヤ3は、UDP(User Datagram
Protocol)もしくはTCP(Transmission Control Protocol)である。
【0046】
RTP処理部134−1は、L2−L3処理部131から受け取ったデータグラムについてRFC3016等に規定されているRTP(Real-time Transport Protocol)処理やRTCP処理をし、RTPパケットのペイロードを連結して得られるMPEG-4 Visualのビットストリームを復号化処理部132及びI−VOP周期バッファ133へ出力する。またRTP処理部134−1は、I−VOP周期バッファ133にペイロードを出力する都度、RTPパケットヘッダの情報(後述)をI−VOP周期バッファ133へ通知する。また、RTPヘッダ中のM(Marker)ビットを検査し、Mビットが1のパケットを検出したときに、該パケット或いはその次のシーケンスナンバーのパケットのペイロード出力時に、タイムコード(後述)をI−VOP周期バッファ133へ通知する。
RFC3016は、MPEG-4 Visualのビットストリーム(符号化データ)をMPEG-2システム等を用いずにネットワーク上で伝送するのに適したRTPペイロードフォーマットを規定している。1ピクチャ(フレーム)を構成するVOP(Video Object Plane)を1乃至複数のRTPパケットで伝送する場合、各RTPパケットのペイロード先頭には常にコンフィグレーション情報、VOPヘッダ、VP(Video packet)ヘッダのどれかを配置し、エラー耐性を高めている。
【0047】
復号化処理部132は、必要最小限の受信バッファを備え、RTP処理部134−1から受け取ったビットストリームを復号化し、外部の映像モニター124に出力する。
【0048】
I−VOP周期バッファ133は、少なくともI−VOP(先に説明したIピクチャに相当する。)から次のI−VOPの直前までの符号化データを蓄積可能な容量を有するバッファである。
【0049】
RTPパケット処理部134−2〜134−4は、RTCPにより取得した受信者側での受信品質に関する情報に基づいて制御される伝送レートで、I−VOP周期バッファ133から読み出したビットストリームをRFC3016等に従いRTPパケット化し、L2−L3処理部135へ出力する。
RTPパケット処理部134−1、134−2〜134−4は通常、プロセッサ(不図示)上で動作するソフトウェアにより実現され、受信ストリーム数及びクライアント数に対応する数だけそれぞれ起動される。I−VOP周期バッファ133も受信ストリーム数だけ起動される。
【0050】
L2−L3処理部135は、L2−L3処理部131と同等の機能を提供するものであり、L2−L3処理部131と一体に構成されても良い。
【0051】
図8は、I−VOP周期バッファ133の構成図である。I−VOP周期バッファ133は、リングバッファ81と、I−VOPタイムコードレジスタ82と、ヘッダポインタテーブル83とから構成される。
リングバッファ81は、RTPパケット処理部134−1からのビットストリームを、書き込みポインタWPの示す位置から順次書き込み、読出しポインタRPの示す位置から順次読み出してRTPパケット処理部134−2等に出力する。
リングバッファ81は、1GOV(Group of VOP)分のビットストリームを保持するのに十分な容量のFIFO型のバッファ(リングバッファ)であり、WPはRPより優先度が高く、RPを追い越すことができる(RPをWPの前に強制移動する)。
【0052】
I−VOPタイムコードレジスタ82は、最新GOVタイムコードと、読出済GOVタイムコードとを記憶する。
最新GOVタイムコードとは、リングバッファ81にIーVOP(図では、Iと表示)を書き込む都度、そのIーVOPの直前にあるGOVヘッダ中のタイムコードが、RTPパケット処理部134−1により書き込まれるものである。
読出済GOVタイムコードとは、リングバッファ81からIーVOPが読み出される都度、最新I−VOPタイムコードがコピーされて書き込まれるものである。
I−VOPの検出は、RTPパケット処理部134−1から通知されるMビットに拠っても、或いはGOVヘッダの先頭にある32bitの”group_vop_start_code”をビットストリーム中からサーチすることに拠っても良い。また、GOVヘッダ中のタイムコードの代わりにRTPパケットヘッダ中のタイムスタンプを用いても良い。
【0053】
ヘッダポインタテーブル83は、RTPパケット処理部134−1がビットストリームをリングバッファ81に書き込む際に、そのビットストリームを運んできたRTPパケットのヘッダ情報(タイムスタンプやMビット)と、ペイロード長と、リングバッファ81上でのそのペイロード(ビットストリーム)の先頭位置を示すポインタとが対応付けられて記録される。WPがRPを追い越しそうになったら、RPを、RPが示しているRTPペイロードの次のペイロードの先頭位置に移動する。
【0054】
次に、図13と図8を参照して本例のデコーダ18の動作を説明する。
各RTPパケット処理部134−2、134−3、134−4は、L2−L3処理部135からの伝送レートに応じたレディー信号(図13では点線で示す信号)により、I−VOP周期バッファ133から符号化データを読み出す。レディー信号とは、例えばRTCPのRR(Receiver Report)である。TCPの場合、クライアント(画像受信装置やデコーダ等)からのACK(受信応答)を利用可能ではあるが、RTCPの併用が望ましい()。例えば、各RTPパケット処理部134−2等は定期的にSRをクライアントに送信し、クライアントから返信されるRRに含まれるパケット破棄率情報や最新SR受信時刻情報などを得る。この定期的な情報から、パケット破棄率がゼロとなるように(目標)送信レートを決定する。
【0055】
具体的には、RTPパケット処理部134−2等は、RTPパケット送信時に、そのパケット長に送信レートを乗じて求まる時間でタイマーを設定する。そしてその時間経過後にタイマーイベント等により、次のステップ301〜304の処理を行なう。
【0056】
まず、ステップ301として、読み出し条件の判断をする。読み出し条件の一例として、
例1:最新GOVタイムコード
<> 読出しGOVタイムコード
例2:d秒 >(最新GOVタイムコード
− 読み出し対象VOPのタイムコード)
例3:d秒 >(最新のI−VOPのタイムスタンプ
− 読み出し対象VOPのタイムスタンプ)
例4:a >(読出しポインタRP
− 書込みポインタWP)
等がある。なお、読み出し対象VOPとは読出しポインタRPが指す位置のVOPのことであり、“<>”は左辺と右辺が等しくないことを意味する。dは、正の値であり、I-VOP周期やネットワーク伝送ジッタ(RTCPのRRから得られる)に応じて適切に設定するものとする。なお、例2における、「読み出し対象VOPのタイムコード」は、VOPヘッダからは直接得られず、読出済GOVタイムコードと、VOPヘッダ内のmodulo_time_baseやvop_time_incrementとから計算する必要がある。その他の値は、ヘッダポインタテーブル83等に格納されているものを用いる。例4はWPがRPに迫ってきていることを意味し、アドレスの差がa未満になると真となる。
【0057】
ステップ302として、上記読み出し条件が真ならば、読み出し対象VOPは古る過ぎると判断して、RPを最新I-VOPに移動してリングバッファ81からビットストリームを読み出し、偽ならば、RPが示す通りに読み出す。読み出す量は、ヘッダポインタテーブル83に格納されているペイロード長に従うが、次のVOPかVP(Video Packet)のスタートコードが検出されるまで読み出しても良い。
【0058】
ステップ303として、読み出したビットストリームをペイロードとするRTPパケットを作成する。その際、RTPパケットヘッダ中のタイムスタンプとしては、ヘッダポインタテーブル83に格納されているタイムスタンプに適当なオフセットを加えたものを用いても良く、上述の読み出し対象VOPのタイムコードと同様の計算により、独自に作り直しても良い。
【0059】
ステップ304として、作成したRTPパケットをL2−L3処理部135に出力すると共に、次のパケット処理のため、出力したパケット長に送信レートを乗じて求まる時間でタイマーを設定する。
【0060】
図8では、書き込みポインタWPでリングバッファ81にP(n+1)を書き込み、読み出しポインタRPでP(3)を読み出し始める状態を示し、I−VOPタイムコードレジスタ82には、I(0)のタイムコードが格納されている。
低レート伝送路に対しては、読み出し速度が書き込み速度より遅くなる場合がある。この場合の読み出し条件判断処理では、I−VOPタイムコードに格納されているI(n)よりも時間の早い(タイムコードの小さい)P(3)を読み出すことになる。従って、その差分がd秒以上となるため、上述の読み出し条件が成立することになり、I(n)に読み出しポインタRPを移動してI(n)を読み出す動作となる。
【0061】
即ち、この動作によりP(3)〜P(n−1)の読み出しがスキップされ、I−VOP周期バッファ133内部でI−VOP直前のデータが破棄されたことになる。このように読み出し速度は、伝送レートに対応したものとなる。これにより伝送レート適応型パケット伝送が可能となる。
【0062】
以上説明したように、本実施例3の各RTPパケット処理部134−2等は、それぞれのクライアント(画像受信装置やデコーダ等)間の伝送路の利用可能帯域(伝送速度)に従ったデータ量をI−VOP周期バッファ133から読み出す。従って、必然的に低レート伝送路に対してはI−VOP周期バッファ133内で画像データが破棄されることになる。このようにして自動的に伝送路の伝送速度にあわせて画像データが伝送される。
本例の伝送レート適応型パケット伝送方式は、ベストエフォートの伝送路(ネットワーク)に対して有効である。つまり、伝送レートの動的な変動に対しても自動的に適応した画像符号化データの伝送が可能となる。
【実施例4】
【0063】
本実施例4は、映像データの符号化方式としてH.264を想定し、RTPペイロードフォーマットとしてRFC3984を用いた点などで先の実施例3と異なる。
H.264のエンコーダは概念的に、スライス単位で符号化データを出力するビデオ符号化レイヤ(VCL)と、そのスライス出力をパケットネットワークでの伝送に適したNALユニットにパケット化するネットワーク抽象化レイヤとから構成される。スライスとは、1ピクチャ(フレーム)を1乃至複数に分割したものであり、1ピクチャ分のデータの集まりはAU(アクセスユニット)と呼ばれる。
【0064】
NALユニットの先頭には、NALユニットタイプオクテット(以後NALヘッダと呼ぶ)が配置され、その直後にNALユニットのペイロードが続く。NALヘッダは、そのNALユニットが壊れていることを示す1ビットの”forbidden_zero_bit”と、そのNALユニットの内容が参照ピクチャの完全性を保つのに必要か否かを示す2ビットの”nal_ref_idc”と、そのNALユニットのタイプを示す5ビットの”nal_unit_types”とからなる。
”nal_unit_types”の値は、NALユニットの内容が、IDRピクチャ(他のピクチャに依存せずに復号可能なピクチャ。前述のIピクチャに相当)のスライスであれば”5”になり、AU delimiter(アクセスユニットの境界を示す)であれば”9”になり、またSVC(Scalable
Video Coding)を用いたときには、それらに対応する値をとる。その他、シーケンスパラメータセット、ピクチャパラメータセット、サブセットシーケンスパラメータセット、End of sequence等のNALについても値が決められている。
H.264は、シンタックスの自由度が高いのが特徴であり、スライス(ピクチャ)の標本化/再生時刻(順序)とは異なるような、符号化順序、伝送時刻順序、復号順序が許容されている。また上述のようなNALユニット化より、従来のエレメンタリーストリーム中で使用されていたスタートコードが不要になっている。
【0065】
本実施例4のデコーダ151の基本構成は、図13に示した実施例3のデコーダ18と同様であり、実施例3との相違点のみ説明する。
本例のRTP処理部44−1(134−1に相当する)は、受信したRTPパケットに対し、RFC3984等に規定されているRTP処理等をして、RTPペイロードを出力する。この規定におけるRTPペイロードフォーマットには、シングルNALユニットパケット、集合パケット、分割パケット等があるが、必ず、ペイロードの先頭はNALヘッダから始まるようになっている。
【0066】
IDR周期バッファ43は、実施例3のI−VOP周期バッファ133に代えて備えられるものであり、受信した最新のIDRピクチャにアクセス可能なように、格納したRTPペイロード(より好ましくはNALユニット)毎にその先頭位置や時刻等を管理している。1枚のIDRピクチャを構成する最初のNALユニットは、AU delimiter NALユニットの後に最初に出現したIDR−NAL(”nal_unit_types”=5のNALユニット)として検出する。なお、AU delimiter NALとIDR−NALの間には、sequence
parameter set、picture parameter、SEI等のNALユニットが配置され、AU delimiter NALの前にはEnd of sequence NALが配置される場合があり、これらを利用して検出しても良い。1IDRピクチャ分のIDR−NALが複数ある場合でも、それらは連続していることが通常である。
【0067】
RTPパケット処理部44−2〜44−4は、実施例3のRTPパケット処理部134−2〜134−4と同様の適応レート制御を行なう。そして、その送信レートでNALユニットを全て送りきれなくなったときに、”nal_ref_idc”が低いものから順次スキップを行なう。”nal_ref_idc”は”0”〜”3”の値を取るので、4段階の制御となる。RFC3984には、”nal_ref_idc”として、非参照ピクチャのNALには”0”を、IDR−NALには”3”をセットすることが定められている。また、符号化側(画像送信装置)で、IDRピクチャのみを参照するスライス、(動きベクトルが大きいとして)Region of Interestフラグを設定したスライス、或いはイントラスライス等のNALに対し、”nal_ref_idc”に”2”を設定し、それ以外の参照ピクチャのNALに”1”を設定するようにしても良い。
或いは、もしSVCを用いていれば、NAL拡張ヘッダも参照して、重要度や他からの依存性の低いNALから送信をスキップする。拡張ヘッダには、空間、CGS、MGS、FGS等のレイヤ構造においてどの階層に属するかを示す情報を含む。拡張ヘッダが無い場合、シンタックスを解釈して判別する。つまりNALペイロードの先頭には通常、スライスヘッダがあるのでそれを参照する。
【0068】
4段の各段階間の遷移条件は、より低レートの段階への遷移としては、実施例3等のスキップ開始条件(例えば、最新のAU delimiter或いはIDR−NALを受信してから所定時間経過したとき)と同じでよい。より高レートの段階への遷移としては、その逆(例えば、読出しポインタRPが書込みポインタWPに追いついたとき)とする。
送信レートが絞られていくと最終的に、VCLクラスのNALとしてはIDR−NALの一部だけを送信するようになる。ただし、AU delimiter NALのような重要なnon−VCLクラスのNALもスキップせず送信する。
本例では、NAL(RTPパケット)のスキップにより、AUの最後のRTPパケットにMビットを適切に設定できない可能性があるが、通常の伝送路上のパケットロス同様、Mビットだけに頼らない実装が一般的となっており、問題ない。
【実施例5】
【0069】
本実施例5のデコーダは、ONVIF(Open Network Video Interface Forum Core Specification Version 1.0
2008年11月)に準拠したネットワーク映像配信システムで使用されることを前提にした点などで先の実施例4と異なる。
ONVIFでは、サービス指向アーキテクチャが採用されており、ネットワーク上にある機器を発見したり、カメラ、画像送信装置(エンコーダ)、画像受信装置(デコーダ)の仕様(プロファイル)情報を交換したり、雲台を制御したりするための各種の通信は全てWSDL(Web Service Description Language)で定義され、それらの機能はWebサービスとして提供される。WSDLはXMLの構文で記述され、SOAP(Simple
Object Access Protocol)のメッセージとして通信される。SOAPのメッセージ(エンベロープ)は、更にHTTPを用いてそのBODY内に格納されて伝送される。
【0070】
遠隔のWebサービスを発見する方法としては、非特許文献3のWS-Discoveryを用いるよう規定されている。WS-Discoveryでは、システムに参加する全機器が共通のマルチキャストアドレスに参加し、そのアドレスを通じてクライアントがサービスのProbeをし、サービス提供元がそれに応答して直接クライアントにProbe matchを返信することを基本としているが、Discovery Proxy(DP)が代わりに応答することもできる。Probeメッセージには、例えばカメラを検索する場合、カメラの設置場所や名前などがLDAP(RFC2251等)の様式で記述される。
【0071】
本例においては、マルチキャストアドレスを使用せずにWS-Discoveryを実現するため、システムの全ての画像送信装置(エンコーダ、IP力メラ等)のURI(IPアドレス)等を収集或いは保持するとともに、ブロードキャストされたSOAPメッセージ、或いはモニター可能なLAN上の全てのSOAPメッセージを受信し、必要に応じてDPとなってWS-Discovery(Remote Discovery)サービスを提供するDPサーバを、クライアントが存在する各LAN(ブロードキャストドメイン)に配置する。
【0072】
図3は、本実施例5のデコーダ30の構成図である。デコーダ30は、実施例4のデコーダ151の構成に加え更に、WSDLの通信を行なうSOAP/HTTP処理部31と、RTSP(Real Time Streaming Protocol)等のセッション管理を行なうセッション管理部32と、主にSOAP/HTTP処理部31を介してWebサービスを提供するWebサービス管理部33と、復号化した映像をサイズ変換等をして再度符号化する符号化処理部35を備えている。
【0073】
まず、本例のSOAP/HTTP処理部31、Webサービス管理部33が行なうRemote DiscoveryサービスおよびMediaサービスを説明する。
本例のSOAP/HTTP処理部31は、マルチキャストアドレスに限らず、ブロードキャストされたSOAPメッセージ、或いはLAN上のモニター可能な全てのSOAPメッセージを受信している。
もしクライアントからの映像要求である”GetStreamUriRequest”を受信すると、Webサービス管理部33は、映像要求の対象(Media profileで特定される)が、現在デコーダ30自身で受信しているものかどうか判断し、受信していなければその映像要求を無視し、受信していればデコーダ30のホスト名を含むURIを含む応答”GetStreamUriResponse”を返す。URIは、ホスト名以降のパス名として、対応するMedia profileを特定可能な文字列等が付加されて、動的に生成されうる。映像要求を無視しても、クライアントは、DPサーバ等からの応答を受け取ってそのURI(IP力メラ等のもの)を知ることができる。一方、有効な(エラーではない)応答を冗長に受け取った場合は、URIをアドレス解決し、そのIPアドレスがクライアントの属するネットワークに近い方(或いはネットマスクが一致する方)を採用すればよい。
”GetStreamUriResponse”を受け取ったクライアントは、当該URI宛にRTSPのDESCRIBEメソッドを送信するが、デコーダ30がそれを受信した場合、映像再配信要求と解釈して、セッションを初期化し、プレゼンテーションを開始する。つまりRTP処理部34−2等(実施例4の44−2等に相当する)を新たに起動し、要求対象に対応するIDR周期バッファからストリームを読み出して、要求元クライアントに配信する。
【0074】
デコーダ30は、自身で受信して復号化する必要がなくなった場合、全クライアントにANNOUNCEメソッドを送信した後(或いは一方的に)、映像再配信を終了することができる。クライアントは再度”GetStreamUriRequest”を行い、デコーダ30はそれに応答しないのでIPカメラ等の真のURIを取得し、セッションを確立することができる。もし、クライアントがデコーダ30のURI宛にSETUPメソッド等を送信しても、デコーダ30は、直前まで接続していたIPカメラ等のURIを含むREDIRECTメソッドを応答するので問題は無い。
【0075】
上記の他、雲台を制御するためのPTZサービス、カメラのフォーカス等を制御するためのImagingサービス、その他のWebサービスがあるが、上記と同様である。即ち、デコーダ151は自身が接続中のエンコーダやIP力メラ等のURI宛のWebサービス要求等を受信した場合、DPとして、或いは完全に要求先URIのIP力メラ等を装って、要求に応答する。応答に必要な情報をキャッシュしていない場合、或いは雲台制御コマンドのように要求に含まれる情報をIP力メラ等に伝える必要がある場合、要求を当初のURI宛に転送して真のIP力メラ等から応答を得て、それを元の要求元に応答する。
もしクライアントが発したWebサービス要求が直接、宛先通りに真のエンコーダ等に届き、応答が両者から帰ってきた場合、クライアントは任意の一方(例えばネットマスクが一致する方)を採用すればよい。
【0076】
次に、本例の符号化処理部35等を利用した再配信を説明する。ONVIFでは、画像送信装置は、QVGAサイズのJPEGを送信できなければならないと定めているが、そのような画像送信装置が送信可能な映像形式等は、Media Profileとして定義される。Media Profileの中には、”Video source
configuration”、”Video encoder
configuration”、”PTZ configuration”などが規定されている。
本例のデコーダ30は、MPEG等の動画の形式で受信中の映像について、JPEGで映像要求を受けたときに、処理負荷に余裕があれば、MEPGを復号して得た映像をJPEGにトランスコードして、要求元に配信(プレゼンテーション)することもできるようにする。具体的な処理の手順は以下のようになる。
【0077】
ステップ401として、デコーダ30は、利用可能なMedia Profileの問い合わせを意味する”
GetProfilesRequest”を受信する。Webサービス管理部33はそれを解釈し、Media Profileが示す映像源(Video source configuration)が、デコーダ30が現在受信中のものと同じか否か判定し、同じでなければ、Media Profileを1つも含まない空の”GetProfilesResponse”を応答する。ステップ401において映像源が、同じであれば、符号化方式やピクチャサイズ等も同じか否かを判定する。
ステップ402として、ステップ401において映像源が同じと判定された場合、処理負荷の余裕度に応じて、1乃至複数のMedia Profileを含む”GetProfilesResponse”を応答する。即ち、余裕度があれば、現在受信中の映像の符号化方式やピクチャサイズ等と同じ”Video encoder
configuration”を規定するMedia Profileの他、符号化処理部35で再符号化可能な他の映像形式を指定するMedia
Profileも含ませる。
ステップ403として、ステップ402の”GetProfilesResponse”を受信したクライアントから”GetStreamUriRequest”等の映像要求を受信した場合、その時点で処理負荷に余裕があれば、デコーダ30のホスト名を含むURIを生成して応答”GetStreamUriResponse”を返すとともに、映像要求が指定するMedia Profileの示す符号化方式やピクチャサイズ等で符号化するよう、符号化処理部35を初期化する。
ステップ404として、ステップ403の”GetStreamUriResponse” を受信したクライアントからRTSPの所定のメソッドを受信した場合、セッションを初期化し、プレゼンテーションを開始する。符号化処理部35は、指定された符号化方式等に従い、必要に応じてフレーム間引き処理、インタレース/プログレッシブ変換処理、リサイズ処理(超解像処理によるサイズの拡大も含む)等を行なう。Media Profileとして複数のVideoSourceを指定することも可能であり、その場合、複数の映像を1画面に合成し(例えば4−up)、1ストリームに符号化して再配信する。
【産業上の利用可能性】
【0078】
本発明は、監視カメラシステム等に好適であるが、ビデオ会議システム、ストリーム配信サービス等で用いられる符復号化装置、セットトップボックス等にも利用できる。
【符号の説明】
【0079】
1a,1b 画像送信装置、 2 IP力メラ、
3 画像サーバ装置、 4 ネットワーク、
5 パーソナルコンピュータ(PC)、6 画像受信装置(従来)、
7 PC(操作専用)、 8,8a ビデオモニタ、
9 専用操作器、
11−1〜11−n アナログ映像、 12 アナログカメラ、
13−1〜13−n I/Pピクチャ、14 ストリームバッファ、
16、18、30 ネットワークデコーダ装置(デコーダ)、
17 GOP単位ストリームデータ、
31 SOAP/HTTP処理部、 32 セッション管理部、
33 Webサービス管理部、 34,44,134 RTP処理部、
35 符号化処理部、 43 IDR周期バッファ、
81 リングバッファ、 82 I−VOPタイムコードレジスタ、
83 ヘッダポインタテーブル、
131,135 L2−L3処理部、 132 復号化処理部、
133 I−VOP周期バッファ、 136 出力端子。
【特許請求の範囲】
【請求項1】
映像送信装置からIPネットワークを介して符号化映像データを受信し、復号して出力するネットワークデコーダ装置において、
受信した符号化映像データを、少なくともIピクチャ周期分格納するバッファと、
符号化映像データの再配信要求を受信したときに、前記バッファから符号化映像データを順次読み出して、該再配信要求の要求元クライアントへ送信する再配信手段と、を備え、
該再送信手段は、バッファに格納された最新Iピクチャより古いデータを符号化映像データの送信をスキップすることを特徴とするネットワークデコーダ装置。
【請求項2】
請求項1記載のネットワークデコーダ装置において、
該受信した符号化映像データの送信元の映像送信装置が有するサーバ機能と互換の機能を有し、前記再配信要求を受け付るサーバ手段を更に備え、
前記再配信要求は、前記映像送信装置が符号化映像データの送信に使用可能な複数のプロトコルのうちの任意の1つを指定して再配信を要求するものであり、サーバ手段は、該指定されたプロトコルを使用して再配信をするように前記再配信手段を制御することを特徴とするネットワークデコーダ装置。
【請求項3】
請求項2記載のネットワークデコーダ装置において、
サーバ手段は、前記再配信の送信先から、前記映像送信装置が送信する符号化映像データの情報源である力メラに関する制御要求を受信したとき、該制御要求を該映像送信装置に宛てて転送することを特徴とするネットワークデコーダ装置。
【請求項4】
請求項3記載のネットワークデコーダ装置において、
入力された複数の映像データを、該複数の映像が1画面内に並んで表示されるように1の映像データに合成し、該合成された1の映像データを符号化する符号化処理手段を更に備え、
映像源の異なる映像送信装置から複数の符号化映像データを受信して前記符号化処理手段に入力し、該合成された1の映像データを、クライアントからの要求に応じて再配信することを特徴とするネットワークデコーダ装置。
【請求項5】
前記ネットワークデコーダ装置は、
クライアントからサービスの探索を受信したときには、前記受信した符号化映像データの送信元の映像送信装置の代わりに該探索に応答して、該ネットワークデコーダ装置のURIを該クライアントに通知し、
該クライアントから該URIにメディアプロファイルの問い合わせを受けたときには、前記受信した符号化映像データと同じ映像形式を規定するメディアプロファイルを含む1乃至複数のメディアプロファイルを該クライアントに通知し、
該クライアントから該メディアプロファイルに基づく映像要求を受信したときに、前記再配信を行なうことを特徴とする請求項3記載のネットワークデコーダ装置。
【請求項1】
映像送信装置からIPネットワークを介して符号化映像データを受信し、復号して出力するネットワークデコーダ装置において、
受信した符号化映像データを、少なくともIピクチャ周期分格納するバッファと、
符号化映像データの再配信要求を受信したときに、前記バッファから符号化映像データを順次読み出して、該再配信要求の要求元クライアントへ送信する再配信手段と、を備え、
該再送信手段は、バッファに格納された最新Iピクチャより古いデータを符号化映像データの送信をスキップすることを特徴とするネットワークデコーダ装置。
【請求項2】
請求項1記載のネットワークデコーダ装置において、
該受信した符号化映像データの送信元の映像送信装置が有するサーバ機能と互換の機能を有し、前記再配信要求を受け付るサーバ手段を更に備え、
前記再配信要求は、前記映像送信装置が符号化映像データの送信に使用可能な複数のプロトコルのうちの任意の1つを指定して再配信を要求するものであり、サーバ手段は、該指定されたプロトコルを使用して再配信をするように前記再配信手段を制御することを特徴とするネットワークデコーダ装置。
【請求項3】
請求項2記載のネットワークデコーダ装置において、
サーバ手段は、前記再配信の送信先から、前記映像送信装置が送信する符号化映像データの情報源である力メラに関する制御要求を受信したとき、該制御要求を該映像送信装置に宛てて転送することを特徴とするネットワークデコーダ装置。
【請求項4】
請求項3記載のネットワークデコーダ装置において、
入力された複数の映像データを、該複数の映像が1画面内に並んで表示されるように1の映像データに合成し、該合成された1の映像データを符号化する符号化処理手段を更に備え、
映像源の異なる映像送信装置から複数の符号化映像データを受信して前記符号化処理手段に入力し、該合成された1の映像データを、クライアントからの要求に応じて再配信することを特徴とするネットワークデコーダ装置。
【請求項5】
前記ネットワークデコーダ装置は、
クライアントからサービスの探索を受信したときには、前記受信した符号化映像データの送信元の映像送信装置の代わりに該探索に応答して、該ネットワークデコーダ装置のURIを該クライアントに通知し、
該クライアントから該URIにメディアプロファイルの問い合わせを受けたときには、前記受信した符号化映像データと同じ映像形式を規定するメディアプロファイルを含む1乃至複数のメディアプロファイルを該クライアントに通知し、
該クライアントから該メディアプロファイルに基づく映像要求を受信したときに、前記再配信を行なうことを特徴とする請求項3記載のネットワークデコーダ装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図13】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図13】
【図11】
【図12】
【公開番号】特開2010−272943(P2010−272943A)
【公開日】平成22年12月2日(2010.12.2)
【国際特許分類】
【出願番号】特願2009−120883(P2009−120883)
【出願日】平成21年5月19日(2009.5.19)
【出願人】(000001122)株式会社日立国際電気 (5,007)
【Fターム(参考)】
【公開日】平成22年12月2日(2010.12.2)
【国際特許分類】
【出願日】平成21年5月19日(2009.5.19)
【出願人】(000001122)株式会社日立国際電気 (5,007)
【Fターム(参考)】
[ Back to top ]