米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> キヤノン株式会社

発明の名称 ネットワーク装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−6201(P2007−6201A)
公開日 平成19年1月11日(2007.1.11)
出願番号 特願2005−184793(P2005−184793)
出願日 平成17年6月24日(2005.6.24)
代理人 【識別番号】100090538
【弁理士】
【氏名又は名称】西山 恵三
発明者 松本 真一
要約 課題
ネットワークに接続されたカメラ装置から、1つの映像ストリームを異なるパケットサイズで複数の受信端末にデータ送信するような映像配信処理において、処理遅延が少なく、メモリ使用効率の良いパケット生成処理を行うこと。

解決手段
メモリ上に映像ストリームデータを展開する手段及び送信対象となる端末に応じたパケットヘッダの生成を行う手段及び展開した映像ストリームデータのうち、送信対象となる端末用の送信パケット位置の開始アドレスの前にヘッダを上書きする手段、及び、上書きしたヘッダとパケットサイズ分の映像ストリームデータ(ペイロード)をパケットデータとして通信部に転送する手段を備え、上書きしたヘッダが、それ以降に生成するパケットのペイロードデータ部を壊さないような順序で行うような制御を行う。
特許請求の範囲
【請求項1】
同一のストリームデータを、異なるパケットサイズで複数の送信先に同時送信可能なネットワーク装置において、
メモリ上に送信対象となるデータを展開する手段、送信パケットに対するヘッダを生成する手段、該メモリ上に展開された送信データに該ヘッダを上書きすることにより送信パケットを生成する手段、生成した送信パケットをネットワークに送信する手段を備えることを特徴とするネットワーク装置。
【請求項2】
送信パケットは、メモリ上に展開されたデータをパケットサイズに分割し、分割境界のアドレスの前の位置にヘッダを上書きすることにより生成することを特徴とする請求項1記載のネットワーク装置。
【請求項3】
異なるパケットサイズで分割することにより、パケットサイズが異なる複数の送信パケットを同時に生成することを特徴とする請求項2記載のネットワーク装置。
【請求項4】
パケット生成は、上書きしたヘッダが、それ以降に送信するパケットのデータ領域を壊さないような順序となるような制御を行うことを特徴とする請求項3記載のネットワーク装置。
【請求項5】
撮像された映像を、ネットワークに接続されている端末に配信する機能を備えているネットワークカメラを含むことを特徴とする請求項1記載のネットワーク装置。

発明の詳細な説明
【技術分野】
【0001】
本発明は、ネットワークを利用し大容量のデータを配信する場合の伝送方法であり、特にネットワークに接続されたカメラの映像を端末からの要求に応じて配信することが可能なネットワークカメラを始めとするネットワーク装置に関するものである。
【背景技術】
【0002】
近年、インターネットを始めとするネットワークの普及が進みその伝送帯域も拡大してきている。これに伴い、大容量の映像データをネットワークを利用して伝送するような装置やアプリケーションも増えつつある。
【0003】
例えば、ネットワークに接続されたカメラ装置で動画映像を遠隔地から監視したり撮影するようなネットワークカメラ装置においては、ネットワークカメラは撮影映像を圧縮符号化処理により符号化ビットストリーム形式の映像ストリームデータへ変換し、IP/UDP/RTPパケットとしてネットワーク上へ送信していた。これらの映像ストリームデータのネットワーク送信処理においては、OSI参照モデル或はTCP/IPで規定される4層モデルに代表されるように、複数のレイヤに分割されたパケット処理を行い、それぞれのレイヤ間でデータの受け渡しを行うのが一般的である。例えば、動画映像のストリーム配信の場合には、TCP/IPの4層モデルにおいて、インターネット層でIPパケット、トランスポート層でUDPパケット、アプリケーション層でRTPパケットを生成し、多重化パケットとしてネットワークに送信される。
【0004】
一方、ネットワークカメラから配信される撮影映像の高画質化、高機能化の要求は年々高くなってきており、映像ストリームデータのビットレート増大に伴うデータ量の増加、或は複数端末からの同時要求に答えるため複数ストリームの同時配信の数も増えてきている。このような状況においてはデータ送信におけるパケット処理を高速に行わなければならず、パケット処理の高速化の方法として、例えば特許文献1,2等に提案がなされている。
【特許文献1】特開平11−110315号公報
【特許文献2】特開2000−115234号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ネットワークカメラが送信する映像データを受け取る端末としては、PC、TV、携帯情報端末等の様々な装置が考えられ、それぞれの端末ごとに処理に適したパケットサイズが異なる場合がある。例えば、デジタルTVの場合はデジタル放送の受信のための機構が備わっているため、TS(トランスポートストリーム)パケットである188バイトの固定長サイズのパケット処理に適している。或はPCのようにフレキシブルなパケット処理が可能な端末の場合は、細かい断片化によるオーバーヘッドを少なくするためにネットワークの伝送路の最大許容量に合わせたパケットサイズで処理することができる。
【0006】
又、携帯情報端末等は、利用できるメモリ量等のリソースに制限があるためにパケットサイズも制限されるケースがある。特に、送信側のネットワークカメラと受信端末の間でサーバやルーター等を経由しないようなローカルなネットワーク上での利用においては、これらの端末の要求を満たすために、送信側であるネットワークカメラがそれぞれの端末の要求に合わせたパケットサイズで映像ストリームを送信する必要がある。
【0007】
このように、複数端末からの送信要求がそれぞれの端末ごとに異なるパケットサイズで断片化したパケット構成のストリームデータである場合には、従来のプロトコルの階層モデルにおいては、各階層のプロトコル処理が要求されたパケットサイズごとに確保されたメモリ上にパケットデータを展開し、更に各階層間のデータの受け渡しにおいてもメモリコピーが発生することになる。従って、ビットレートの高い映像データの場合においては、単位時間に処理するデータ量が増加するため処理の遅延が起きてしまう。更には要求に応えるだけのスループットが得られない場合も考えられる。
【0008】
特許文献2では、プロトコル処理を高速に行うために各階層間でアクセス可能な共有メモリを利用した提案がなされているが、この場合もパケットサイズが異なる複数の端末に同時にストリーム送信するためには、パケットサイズごとに独立したメモリを利用する必要性はある。
【0009】
本発明は上記事情に鑑みてなされたもで、その目的とする処は、処理遅延が少なく、メモリ使用効率の良いパケット生成処理を行うことができるネットワーク装置を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明は、符号化された映像ストリームデータからサイズの異なる複数のパケット生成を行う場合において、メモリ上に映像ストリームデータを展開する手段及び送信対象となる端末に応じたパケットヘッダの生成を行う手段及び展開した映像ストリームデータのうち、送信対象となる端末用の送信パケット位置の開始アドレスの前にヘッダを上書きする手段及び上書きしたヘッダとパケットサイズ分の映像ストリームデータ(ペイロード)をパケットデータとして通信部に転送する手段を備え、上書きしたヘッダが、それ以降に生成するパケットのペイロードデータ部を壊さないような順序で行うような制御を行う構成とした。
【発明の効果】
【0011】
本発明によれば、送信端末に対応したパケットサイズごとに独立したメモリを確保する必要がなくなるのでメモリ使用量の削減が行え、更に、パケット生成処理のために映像ストリームデータをパケット単位でメモリコピーを行う必要がなくなるために処理遅延を減少させることが可能となる。又、パケットヘッダをメモリ上の映像ストリームデータに直接上書きするため、パケットヘッダを記憶するためのメモリを必要とせずメモリ使用量の削減も可能となる。
【発明を実施するための最良の形態】
【0012】
以下に本発明におけるネットワークカメラによる映像データの伝送処理の実施形態を添付図面に基づいて説明する。
【0013】
<実施の形態1>
図2は本発明の実施の形態1に係るネットワークカメラの概略構成を示すブロック図である。
【0014】
図2において、映像を撮影するためのカメラユニットとして、レンズ群(201)、CCD(202)、CCDコントロール部(203)、画像処理部(204)が含まれている。レンズ群201は被写体像を光学的にCCD202へ投影するために複数枚のレンズで構成されている。CCD(光電変換素子)202は、レンズ群201によって投影された撮影画像をアナログ電気信号に変換するための素子であり、VGAサイズ(640×480ドット)の画素数を持っており、30フレーム/秒の速度でデータを読み出すことができる。
【0015】
CCDコントロール部203は、CCD202に転送クロック信号やシャッター信号を供給するためのタイミングジェネレータ、CCD出力信号のノイズ除去、ゲイン処理を行うための回路、更に、アナログ信号を10ビットデジタル信号に変換するためのA/D変換回路等を含んでいる。
【0016】
又、画像処理部204は、CCDコントロール部203より出力された10ビットデジタル信号をガンマ変換、色空間変換、又、ホワイトバランス、AE、フラッシュ補正等の画像処理を行い、YUV(4:2:2)フォーマットの8ビットデジタル信号出力を行うものである。画像処理部204は、バス210に接続されており、このバス210を経由してそれぞれのカメラで撮影された画像データが伝送され、他の処理ブロックに受け渡される。このカメラユニットで撮像される映像は、VGAサイズ(640×480ドット)の画素数で、30フレーム/秒の周期で出力している。
【0017】
バス210には、CPU(中央演算処理装置)205、動画符号化部206、通信部207、ROM(リードオンリーメモリ)208、RAM(ランダムアクセスメモリ)209がそれぞれ接続されている。
【0018】
動画符号化部210は、MPEG4符号化を行うための処理ブロックであり、画像処理部204からバス210を経由して受け渡されたVGAサイズのYUVフォーマットデータを、30フレーム/秒のフレームレートでMPEG4フォーマットに圧縮符号化を行う。これらの符号化データは、フレームごとにRAM209中の符号化用フレームメモリ209cに一時的に蓄積される。
【0019】
通信部207は、ネットワークを通したデータの送受信を行うための処理ブロックで、有線LANにおけるネットワーク層、データリンク層、物理層の処理を主に司る。カメラユニットで撮影され符号化された映像データは、この通信部114を通じて遠隔地の端末に対して送信される。
【0020】
CPU205は、ROM208内の制御プログラムに基づいて各種制御を行う。これらの制御の中には、後述する、符号化された映像データの通信パケットへの分割やRTP/UDP/IP等のプロトコル処理、端末との情報交換のためのプロトコル処理やコマンド処理、ユーザーの操作に基づくアプリケーションの実行、撮影動作における各ブロックのタイミング制御やデータ受け渡し制御などの全体的なシーケンス制御処理等が含まれる。
【0021】
ROM208には、制御プログラムメモリ208aを備えており、前述したようなCPU205での処理を行うための制御プログラムが格納されている。
【0022】
RAM209は、映像ストリームバッファ209a、ヘッダ生成ワークエリア209b、符号化用フレームメモリ209c、ワークエリア209d、一時退避エリア209eを備えている。映像ストリームバッファ209aは、MPEG4ビットストリームデータに符号化された映像データをパケット生成のために一時的に格納するためのバッファメモリである。このメモリは1フレーム分のストリームデータが記憶できる領域を2画面分持っている。
【0023】
ヘッダ生成ワークエリア209bは、パケットヘッダを作成する場合に必要なワークメモリであり、例えば通信相手のIPアドレスや通信ポート番号等を一時的に保存したり、チェックサム計算のためのワークとして使用する。又、符号化用フレームメモリ209cは、画像処理部204から出力されるYUV画像データを格納するためのフレームメモリ及び動画符号化部206でのMPEG4圧縮符号化処理におけるフレーム間予測のための前後の参照フレームデータを一時的に保存するためのフレームメモリとして使用される。ワークエリア209dは、各種プログラムのためのワークエリア、一時退避エリア209eは各種データを一時退避させるためのエリアである。
【0024】
次に、図2において、映像ストリームバッファ209aにおけるデータの構成とバケット分割を表わす図、図3に送信パケットの構成を表わす図を示す。
【0025】
図2において、101は映像ストリームバッファ全体を表わす。本実施の形態では、同時に3つの端末に送信する場合の実施形態を説明するもので、それぞれ異なるサイズのパケットを生成して送信するものである。それぞれのパケットは図2中にストリームA(102)、ストリームB(103)、ストリームC(104)として表わされている。
【0026】
ストリームAにはパケット111、パケット112、パケット113が含まれ、ストリームBにはパケット114、パケット115、又、ストリームCにはパケット116、パケット117が含まれている。パケット中に記述されている番号は、後述の制御フローで説明する手順で送信される場合のパケット送信順序を表わしている。
【0027】
又、105〜109はそれぞれのパケット111〜117に対するヘッダのメモリ上の位置を表わしていて、105はパケット111,114,116に対するヘッダ、106はパケット112に対するヘッダ、107はパケット115に対するヘッダ、108はパケット117に対するヘッダ、109はパケット113に対するヘッダである。101はヘッダ書き込みポインタであり、ヘッダが書き込まれる対象となるパケットの先頭アドレスを指している。
【0028】
図3に示すパケットは、映像データをネットワークに配信する場合に一般的に使われているIP/UDP/RTPを利用したストリーミング配信パケットフォーマットである。
【0029】
図3において、301はIPヘッダを表わしている。IPヘッダ301にはパケット配送やルーティングに必要な情報として、パケットの属性情報、プロトコル番号、ヘッダチェックサム値、送信元/送信先IPアドレス等の値が格納されている。302はUDPヘッダを表わしており、送信元/送信先のポート番号やパケットチェックサム値等が格納されている。又、303はRTPヘッダを表わしており、同期ソース番号、タイムスタンプ、シーケンス番号が格納されている。この階層化されたIPヘッダ301、UDPヘッダ302、RTPヘッダ303を合わせてヘッダと呼んでいる。
【0030】
又、304はペイロード部であり、符号化された映像データをパケットサイズで断片化したデータが格納されている。
【0031】
以下、本実施の形態に係るネットワークカメラにおいて、CPU205が行う制御処理手順を図4に示すフローチャートに基づいて説明する。
【0032】
図4において、ステップS401では、撮像処理の開始を指示する処理を実行する。CPU205がCCDコントロール部203、画像処理部204の動作を開始させると、画像処理部204からはVGAサイズのYUV(4:2:2)フォーマットの画像データが30fpsのフレームレートで出力され、出力された画像データは符号化用フレームメモリ209cに書き込まれる。
【0033】
次に、ステップS402において、書き込まれた画像データを1フレーム分読み出し、動画符号化部206へ転送する。次に、ステップS403において、転送された1フレーム分のYUV画像データをMPEG4フォーマットへ圧縮符号化するために、動画符号化部206の動作の開始を指示する。符号化された画像データは、ステップS403において、1フレーム分の映像ビットストリームデータとして映像ストリームバッファ209aに格納される。それからステップS405において、パケット生成の開始位置を指示するために、ヘッダ書き込みポインタ110をバッファの先頭位置にセットする処理を行う。
【0034】
ステップS406では、対象となる送信パケットに対するヘッダの生成処理を行う。このヘッダとは図3で示したような構造を持つIP/UDP/RTPの階層化されたヘッダである。又、対象となる送信パケットは、未送信パケットの中で一番アドレスの小さい位置から始まるパケットとするものであるが、一番最初については、全てのパケットの開始位置がバッファの先頭アドレスであるため、一番小さなパケットサイズであるストリームA(102)が対象となる。生成されたヘッダは、映像ストリームバッファ209a中に書き込まれ、その位置はヘッダ書き込みポインタ110の前の位置となる。
【0035】
次に、ステップS407において、対象となるパケットデータを通信部207に送信する処理を実行する。パケットデータとは、映像ストリームバッファ209cにおいてヘッダ書き込みポインタから始まる1パケット分のサイズのストリームデータであるペイロード部及びS406において書き込まれたヘッダ部を合わせたデータである。
【0036】
次に、ステップS408において、1フレーム分のデータの送信処理が全て終了したかどうかをチェックし、終了した場合にはステップS409において、撮影終了かどうかのチェックを行う。撮影終了はオペレータによるアプリケーションからの指示や異常検出による自動停止等により作用されるものである。ここで、撮影終了の場合は処理を終了する。
【0037】
撮影終了ではない場合は再びS402の1フレーム分の画像データの読み出し処理へ戻る。又、S408において1フレーム分のデータの送信がまだ終了していない場合には、ステップS410において、未送信のパケットのうち一番小さいアドレスから始まるパケットが送信対象となるため、その位置にヘッダ書き込みポインタ110をセットする処理を実行する。それからS406のヘッダの生成及び書き込み処理へ戻る。
【0038】
S402〜S410までの一連のパケット送信処理を30分の1秒の時間内に実行することにより、画像処理部204から順次出力される画像データの複数端末への送信処理を実現することができる。
【0039】
本実施の形態では、撮影映像を複数の端末に配信することができるネットワークカメラにおける実施形態について説明したが、本発明はネットワークカメラからの動画像データの配信に限定されるものではなく、例えばサーバ等のストレージ装置からリクエストに応じて格納されているデータを複数の端末に配信するような形態も考えられる。
【0040】
又、本実施の形態においては、1フレーム分の映像ストリームバッファを用いてパケットデータを構成するような実施形態であったが、必ずしも1フレーム分のバッファを備える必要はない。
【0041】
そこで、実施の形態2では、ネットワークに接続されたストレージ装置に蓄積された静止画データを複数の異なるパケットサイズでネットワーク上の端末に配信するようにしている。
【0042】
<実施の形態2>
図5は本発明の実施の形態2に係るネットワークストレージ装置の概略構成を示すブロック図である。
【0043】
図5において、バス506には、CPU(中央演算処理装置)501、通信部502、ROM(リードオンリーメモリ)503、RAM(ランダムアクセスメモリ)504、ストレージ505がそれぞれ接続されている。
【0044】
CPU501は、ROM503内の制御プログラムに基づいて各種制御を行う。これらの制御の中には、実施の形態1と同様に、符号化された映像データの通信パケットへの分割やRTP/UDP/IP等のプロトコル処理、端末との情報交換のためのプロトコル処理やコマンド処理、ユーザーの操作に基づくアプリケーションの実行、撮影動作における各ブロックのタイミング制御やデータ受け渡し制御等の全体的なシーケンス制御処理等が含まれる。
【0045】
通信部502は、ネットワークを通したデータの送受信を行うための処理ブロックで、有線LANにおけるネットワーク層、データリンク層、物理層の処理を主に司る。ストレージ505から読み出された画像データは、この通信部502を通じて遠隔地の端末に対して送信される。
【0046】
ROM503には、制御プログラムメモリ503aを備えており、前述したようなCPU501での処理を行うための制御プログラムが格納されている。
【0047】
RAM504は、静止画用リングバッファ504a、ヘッダ生成ワークエリア504b、ワークエリア504c、一時退避エリア504dを備えている。静止画用リングバッファ504aは、ストレージ505から読み出された画像データを格納するためのバッファであり、複数の送信パケットの中で最大パケットサイズの2倍の容量を持っている。ヘッダ生成ワークエリア504bは、パケットヘッダを作成する場合に必要なワークメモリであり、例えば通信相手のIPアドレスや通信ポート番号等を一時的に保存したり、チェックサム計算のためのワークとして使用する。ワークエリア504cは、各種プログラムのためのワークエリア、一時退避エリア504dは各種データを一時退避させるためのエリアである。
【0048】
ストレージ505はハードディスクである。このハードディスク上にはファイルシステム505aが構築されており、画像データファイルを始めとして、OSが利用する管理用ファイル、アプリケーションが利用するデータファイル等の様々なファイルが格納されている。505bは静止画像ファイル群が格納されている領域を表わしている。
【0049】
次に、本実施の形態に係るネットワークストレージ装置において、CPU501が行う制御処理手順を図6に示すフローチャートに基づいて説明する。
【0050】
図6において、ステップS601において、データ送信対象となる端末が要求しているパケットサイズのうち最大サイズを取得する処理を実行する。それぞれの端末が要求するパケットサイズは、データ送信に先立ってストレージ装置と端末間でネゴシエーションを行うことにより取得でき、その中での最大サイズ(nバイト)が得られる。
【0051】
次に、ステップS602において、静止画用リングバッファ504aの領域に、(n×2バイト)分の静止画用リングバッファを確保する処理を行う。それからステップS603において、ストレージ505に格納されている静止画像ファイル群のうち送信対象となる静止画像ファイルにアクセスし、先頭より(n×2バイト)分の静止画データを読み出す処理を行う。それから、ステップS604において、図4のS405と同様にパケット生成の開始位置を指示するために、ヘッダ書き込みポインタ110をバッファの先頭位置にセットする処理を行う。
【0052】
ステップS605では、対象となる送信パケットに対するIP/UDP/RTP階層化ヘッダの生成処理を行う。ヘッダ生成の手順は図4のS406で説明した手順と同様である。生成されたヘッダは、S602において確保した静止画用リングバッファ中に書き込まれ、その位置はヘッダ書き込みポインタ110の前の位置となる。
【0053】
次に、ステップS606において、対象となるパケットデータを通信部502に送信する処理を実行する。パケットデータとは、図4で説明したのと同様に、1パケット分のサイズのストリームデータであるペイロード部と書き込まれたヘッダ部を合わせたデータである。
【0054】
次に、ステップS607において、静止画像ファイル中のすべてのデータの送信処理が終了したかどうかをチェックし、終了した場合には処理を終了する。終了ではない場合は、ステップS608において、未送信のパケットのうち一番小さいアドレスから始まるパケットが送信対象となるため、その位置にヘッダ書き込みポインタ110をセットする処理を実行する。
【0055】
次に、ステップS609において、S608の処理で、送信対象となるストリームのうち最大パケットサイズで構成されるストリームデータに対して、ヘッダ書き込みポインタの更新があったかどうかをチェックし、更新された場合はステップS610において、静止画像ファイルの次のnバイト分の静止画データを読み出す処理を行う。それからS605のヘッダの生成及び書き込み処理へ戻る。S609で更新がなかった場合はそのままS605へ戻る。
【0056】
尚、本実施の形態では、ネットワークカメラ装置、ネットワークストレージ装置への応用として説明したが、本発明はこれらの装置に限定するものではなく、ネットワークを使用して複数端末にデータを配信する機能を備えた装置全てに応用可能であることは言うまでもない。又、送信プロトコルとして、IP/UDPの上位層としてRTPに限定されるものではなくデータグラム型の通信方法による他のプロトコルへの応用も可能である。
【図面の簡単な説明】
【0057】
【図1】本発明の実施の形態1に係る映像ストリームバッファのデータの構成とバケット分割を示す図である。
【図2】本発明の実施の形態1に係るネットワークカメラの概略構成を示すブロック図である。
【図3】本発明の実施の形態1に係るストリーミング配信パケットフォーマットを示す図である。
【図4】本発明の実施の形態1においてCPUが行う制御処理手順を示すフローチャートである。
【図5】本発明の実施の形態1に係るネットワークストレージ装置の概略構成を示すブロック図である。
【図6】本発明の実施の形態1においてCPUが行う制御処理手順を示すフローチャートである。
【符号の説明】
【0058】
201 レンズ群
202 CCD
203 CCDコントロール部
204 画像処理部
205 CPU
206 動画符号化部
207 通信部
208 ROM
209 RAM
210 バス




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013