JP2007281973A - 映像データ送信装置、映像データ送信方法及びプログラム - Google Patents

映像データ送信装置、映像データ送信方法及びプログラム Download PDF

Info

Publication number
JP2007281973A
JP2007281973A JP2006106948A JP2006106948A JP2007281973A JP 2007281973 A JP2007281973 A JP 2007281973A JP 2006106948 A JP2006106948 A JP 2006106948A JP 2006106948 A JP2006106948 A JP 2006106948A JP 2007281973 A JP2007281973 A JP 2007281973A
Authority
JP
Japan
Prior art keywords
data
transmission
protocol processing
cpu
network protocol
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
Application number
JP2006106948A
Other languages
English (en)
Inventor
Shinichi Matsumoto
真一 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006106948A priority Critical patent/JP2007281973A/ja
Publication of JP2007281973A publication Critical patent/JP2007281973A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】複数の映像ストリームデータを異なる受信端末に送信するような映像配信処理において、通信プロトコル処理の処理遅延が少なく、高スループットを実現するとともに、アプリケーションが要求する様々なネットワークプロトコルへ柔軟に対応する。
【解決手段】複数映像ストリームの同時生成を行うマルチストリームエンコーダと、ストリーム形式や送信形式にそれぞれ対応した複数のネットワークプロトコル処理ブロックで構成されたシステムであり、ネットワークプロトコル処理ブロックのうちひとつはCPUで実行されるソフトウェアによってプロトコル処理されるものであり、ひとつはエンコーダから出力されたストリームデータを送信パケットに分割し、あらかじめ設定されているストリーミングプロトコルのパケットヘッダを自動的に付加して送信パケットをリアルタイムに生成して送信する専用ブロックから構成されるものである。
【選択図】図1

Description

本発明は、ネットワークに接続された複数の端末からの要求に応じて大容量の映像データを配信するシステムにおいて、特にネットワークに接続されたカメラの映像を複数の形式のデータで同時に配信することが可能なネットワークカメラをはじめとする、映像データ送信装置、映像データ送信方法及びプログラムに関するものである。
近年、インターネットをはじめとするネットワークの普及が進みその伝送帯域も拡大してきている。これにともない、大容量の映像データをネットワークを利用して伝送するような装置やアプリケーションも増えつつある。
例えば、ネットワークに接続されたカメラ装置で動画映像を遠隔地から監視したり撮影するようなネットワークカメラ装置においては、ネットワークカメラは撮影映像を圧縮符号化処理により符号化ビットストリーム形式の映像ストリームデータへ変換し、IP/UDP/RTPパケットとしてネットワーク上へ送信していた。これらの映像ストリームデータのネットワーク送信処理においては、OSI参照モデルあるいはTCP/IPで規定される4層モデルに代表されるように、複数のレイヤに分割されたパケット処理を行い、それぞれのレイヤ間でデータの受け渡しを行うのが一般的である。例えば動画映像のストリーム配信の場合には、TCP/IPの4層モデルにおいて、インターネット層でIPパケット、トランスポート層でUDPパケット、アプリケーション層でRTPパケットを生成し、多重化パケットとしてネットワークに送信される。
一方、ネットワークカメラから配信される撮影映像の高画質化、高機能化の要求は年々高くなってきており、映像ストリームデータのビットレート増大にともなうデータ量の増加、あるいは複数端末からの同時要求に答えるため複数ストリームの同時配信の数も増えてきている。このような状況においてはデータ送信におけるネットワークプロトコル処理を高速に行わなければならず、これらの要求を解決するものとして、例えば特許文献1、特許文献2に開示されているように、複数の形式の映像ストリームを同時に生成するために複数のエンコーダを並列に備えることによりエンコード処理性能を向上させたり、あるいは送信ストリームに対するパケットヘッダ自動付加や、複数のプロトコル処理モジュールを同時並行して実行することでストリーム送信スループットを向上させるような手法がとられている。
特開2000−59463号公報(第1頁、第2図) 特開2001−45025号公報(第1頁、第1図)
しかしながら、複数の端末から様々な形式の映像ビットストリームの配信要求が行われるネットワークカメラにおいては、特許文献2に開示されているように、エンコーダを複数備える構成とした場合は装置の回路規模が大きくなってしまうという欠点がある。また、エンコーダから出力された映像ストリームデータに対して、パケットヘッダを自動付加して送信するような構成とした場合は、例えばUDP/RTPのようにあらかじめ決まったプロトコルへの対応は可能であるが、アプリケーションによる上位のプロトコルへの対応などの拡張性は実現することが困難である。
また、特許文献1に開示されているように、CPUで実行されるアプリケーションが生成したデータに対して、パケットヘッダを自動的に付加するようなプロトコル専用処理手段を設けた構成においては、プロトコル処理については高速に実行できるものの、ペイロードデータがCPUシステムバスを通じてシステムメモリ上のバッファを経由することになるため、高速のメモリや広帯域のシステムバス性能が要求され、安価なシステム構成においては、データ送信のスループットが低下してしまうこととなる。
本発明は、上記の問題点を解決するためになされたもので、複数の映像ストリームデータを異なる受信端末に送信するような映像配信処理において、処理遅延が少なく、高スループットの送信を実現するとともに、アプリケーションが要求する様々なネットワークプロトコルへ柔軟に対応を可能とすることを目的としている。
本発明の映像データ送信装置は、複数の形式に圧縮符号化された映像ストリームデータをネットワークに接続された複数の端末に同時に送信するような映像データ送信装置において、非圧縮映像データに対して複数の形式の圧縮符号化データを生成することが可能なエンコーダと、プロセッサによるソフトウェアで実行される第1のネットワークプロトコル処理手段と、画像データのリアルタイム送信処理を実行する第2のネットワークプロトコル処理手段と、該エンコーダで生成された複数の圧縮符号化データのうち第1のネットワークプロトコル処理手段によって処理を行うデータと第2のネットワークプロトコル処理手段によって処理を行うデータを選択的に振り分ける手段とを備えることを特徴とする。
本発明の映像データ送信方法は、複数の形式に圧縮符号化された映像ストリームデータをネットワークに接続された複数の端末に同時に送信するような映像データ送信方法において、非圧縮映像データに対して複数の形式の圧縮符号化データを生成するステップと、プロセッサによるソフトウェアで実行されるステップと、画像データのリアルタイム送信処理を実行するステップと、該エンコーダで生成された複数の圧縮符号化データのうち第1のネットワークプロトコル処理ステップによって処理を行うデータと第2のネットワークプロトコル処理ステップによって処理を行うデータを選択的に振り分けるステップとを備えることを特徴とする。
本発明のプログラムは、前記映像データ送信方法をコンピュータに実行させることを特徴とする。
本発明によれば、処理遅延が少なく、高スループットの送信を実現するとともに、アプリケーションが要求する様々なネットワークプロトコルへ柔軟に対応可能な映像配信処理が行える。
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態の全体構成の一例を示す図である。本実施形態では、汎用的な通信を行うプロトコル処理部と、リアルタイムストリーミング送信が可能なプロトコル処理部を、別形態として構成する。
図1においては、前者の汎用プロトコル処理部は、101のCPUで実行するソフトウェアの通信プロトコルスタックであり、後者のリアルタイムストリーミングプロトコル処理部は、画像データのリアルタイム送信を専用の目的とする102のプロトコル処理部として示している。以下、図1を参照しながら、本発明の実施形態について全体構成を説明する。
103は、撮像部を表す。撮像部103は、レンズ、CCD(光電変換素子)、CCD制御部などを含む。撮像部103では、レンズを通して投影される撮像を、CCDによってアナログ電気信号に変換する。また、アナログ電気信号に変換された撮像画像から、ノイズ除去等の処理を施し、デジタルデータに変換するA/D変換を行う画像処理部を備えている。
104はエンコーダであり、非圧縮デジタル画像データのエンコード(圧縮符号化)を実行する。撮像部103が一定の周期で非圧縮デジタル画像データを出力し、エンコーダ104がその画像データをエンコードすることにより、動画データストリームを生成する。
本実施形態におけるエンコーダ104は、画像データの高速なエンコード処理を実現するハードウェア装置であり、複数のエンコード形式に対応する。エンコード形式にはJPEGやMPEG4を含むものとする。また、撮像部103からの出力周期内で、エンコード形式や圧縮効率が異なる複数のエンコード条件の設定とエンコードを実行し、複数の動画ストリームを生成することが可能である。
エンコーダ104の設定や制御は、105の入力切替制御部が行う。実施形態として、例えば、局所メモリ装置を備えたマイクロプロセッサで実現される。入力切替制御部105は、撮像部103が出力する画像フレームデータ毎に、エンコーダ104に対して、エンコード形式や圧縮効率などのパラメータの設定を行う。また、エンコードの開始タイミングを指示し、エンコード完了を通知する割り込み信号を受け取るなどの、エンコーダ制御を行う。
エンコーダ104からの画像データは、106の画像バッファ1、107の画像バッファ2のダブルバッファ構成のいずれかに出力される。画像バッファ1、画像バッファ2は、DRAMのような同一のメモリ装置上に配置してもよいし、別々の専用メモリ装置による実施構成としてもよい。
前記入力切替制御部105は、エンコーダ104が出力する画像データのデータパスのセレクタ108を制御し、どちらの画像バッファに出力するかを決定する。本構成では、出力画像バッファを決定するセレクタ108を設けているが、例えば画像バッファがDRAM上にあり、エンコーダ104に画像バッファのアドレスを設定することで、画像データ毎に出力先を変更できるような場合には、入力切替制御部105がエンコーダ104に対して出力先を設定する方法で実現してもよい。
次に、109のデータ転送切替部は、106と107のいずれかの画像バッファからプロトコル処理部102にデータを転送する機能を有する。この機能はDMA装置をデータ転送切替部109の内部に具備して利用する。また、CPU101が、画像バッファに対してメモリアドレスで読み出し可能となるようなデータアクセス機能を有する。この機能は、データ転送切替部109の内部にアドレスデコーダ機能を有し、CPU101から画像バッファへのデータアクセスが、106と107のどちらの画像バッファであっても、同一のメモリアドレスでアクセス可能となるようにしている。
そして、データ転送切替部109は、画像データをリアルタイムにネットワークへ送出する場合には、プロトコル処理部102に、いずれかの画像バッファから画像データを転送し、CPU101の汎用通信プロトコルによって画像データをネットワークに送信する場合には、CPU102から画像バッファのデータ読み出せるように制御される。
このデータ転送切替部109の制御は、前記入力切替制御部105によってなされる。すなわち、入力切替制御部105は、画像バッファ1(106)もしくは画像バッファ2(107)に出力された画像データが、CPU101によって送信するデータであるか、プロトコル処理部102で送信するデータであるかによって、データ転送切替部109を制御する。CPU101によって送信するデータである場合は、CPU101に対して画像データの準備完了を割り込み通知する。また、プロトコル処理部102で送信するデータである場合は、プロトコル処理部102に対して画像データの準備完了を割り込み通知し、プロトコル処理部102がデータ転送を受け付ける状態になるのをチェックした後に、データ転送切替部109に対して画像データの転送開始させる。
CPU101は、画像データの送受信を行うアプリケーションソフトウェアを実行する。例えば、本発明の適用形態に監視カメラが考えられるが、本実施形態では、CPU101において撮影映像配信サーバプログラムを動作させることが考えられる。また、CPU101では、汎用なTCP/IP通信を可能とするプロトコル処理ソフトウェアを有し、TCP/IPパケットの送受信を行う。
プロトコル処理部102は、本実施形態においては、画像データを送信にかかるプロトコル処理時間を極小化する送信専用のハードウェア回路装置である。ただし、画像データをリアルタイムに送信処理するための専用プログラムを実行するプロセッサによる構成、あるいはプロセッサとハードウエアアクセラレート回路による構成で実現してもよい。撮像部103、エンコーダ104によって作成される画像データを、パケット化してリアルタイムにネットワーク上へ送信することを可能とする。プロトコル処理部102は、データリンク層、IP、UDP、TCPのプロトコル、また、CPU101で実行するアプリケーションが使用する動画ストリーミングプロトコルにおけるパケット作成処理を行う。動画ストリーミングのプロトコルには、例えばRTPやHTTPが挙げられる。
エンコーダ104からの画像データをリアルタイムに送信する場合、画像データは、106と107のどちらかの画像バッファに出力されると、直ちにデータ転送切替部109によってプロトコル処理部102に転送される。プロトコル処理部102は順次、転送される画像データをパケット化する。
110の通信管理データは、CPU101とプロトコル処理部102間において、TCP/IPや動画ストリーミングにおけるプロトコル制御情報、またプロトコル処理部102が送出するパケットの統計情報などを保持する。本実施形態では、通信管理データ110は共有メモリで実現されている。TCP/IPの制御情報は、TCP/IPのセッション状態、送受信パケットのシーケンス番号やフローコントロールなどが含まれる。また、上位のストリーミングプロトコルにおけるストリーミング制御情報も含まれる。
CPU101とプロトコル処理部102からの送信パケットは、最終的に115のMACによって伝送制御され、ネットワークへ送出される。本発明では、双方から出力されるパケットの送信にかかる115のMACの制御を行うために、111の送信タイミング制御部を有する。
送信タイミング制御部111は、CPU101のTCP/IPプロトコル処理と、プロトコル処理部102によって作成されるパケットの送信を調整する。この送信タイミング制御部111は、プロトコル処理部102が作成するストリーミングパケットを優先して送信させる特徴を備えており、CPU101からのパケットは、プロトコル処理部102からの送信パケットがない間に送信するように、双方からのパケットの送信を制御する。
CPU101のTCP/IPプロトコル処理は、送信パケットを一旦112の送信バッファでキューイングする。CPU101は、送信パケットを送信バッファ112にキューイングした後、送信タイミング制御部111に対して送信要求を発行する。同様に、プロトコル処理部102は、送信パケットを出力する際に、送信タイミング制御部111に送信要求を発行する。送信タイミング制御部111は、双方からの送信パケットの送信順を決定し、MAC115が送信データを読み出すデータ転送パスを決定するためのセレクタ114を制御し、MAC115に対して送信指示を行う。
MAC115は、CPU101のTCP/IPプロトコル処理で作成したパケットを送信する場合は、送信バッファ112からパケットを読み出す。一方、プロトコル処理部102で作成したパケットを送信する場合は、MAC115はプロトコル処理部102から直接パケットを転送する。
MAC115からのパケット送信完了の通知は、送信タイミング制御部111が受け取る。送信完了通知を受信後、CPU101かプロトコル処理部102のどちらか送信を完了したパケットを作成したブロックに対して、送信完了を通知する。
113は、受信パケットが書き込まれるメモリである受信バッファである。本実施形態において、MAC115で受信したパケットは、受信バッファ113に書き込まれる。そしてMAC115からCPU101に対して受信割り込みが通知される。受信パケットは、全てCPU101のTCP/IPプロトコル処理によって解釈されることになる。
CPU101が、プロトコル処理部102のストリーミング通信における、例えばRTCPパケットのようなストリーミング制御パケットや、ACKパケットおよびTCPの通信セッションの制御情報を受信した場合には、通信管理データ110を更新する。
以上が本実施形態の全体的な実施構成である。
次に入力切替制御部105における制御方法の実施形態を、図2、図3および図4を参照しながら示す。
図2は、入力切替制御部105が有する、エンコーダ102、セレクタ108、およびデータ転送切替部109を制御するため必要な動画ストリーム毎の属性情報の一例を示している。それぞれのストリームの属性情報は、CPU101によって与えられる。図2には、ストリームの識別子として、No(201)がa〜dまで、4ストリームが示されている。各ストリームの属性には、画像(動画)フォーマット(202)、フレーム角(203)、フレームレート(204)があり、また、エンコーダ104から出力される画像データを、CPU101とプロトコル処理部102のどちらへ渡すべきかの値(205)がある。これらのストリームの属性情報は、CPU101が設定する。
入力切替制御部105は、各ストリームの属性情報に基づき、エンコーダ104、セレクタ108、データ転送切替部109に対して一連の動作シーケンスを制御する。入力切替制御部105がマイクロプロセッサで実現する場合において、各ストリームの画像フレームデータにおける上記制御プログラムのフローチャートを図3に示す。
入力切替制御部105のある画像フレームにおける処理フローは、301から開始し、はじめに302において、エンコーダ104から出力先となる画像バッファを、画像バッファ1(106)と画像バッファ2(107)のいずれか、前回のエンコードの出力先と異なる方になるように、セレクタ108を切替える。次に303において、エンコーダ104に対し、画像データのエンコードのフォーマットなどの設定を行う。続いて、S304でエンコーダ104にエンコード開始を指示する。そして画像データのエンコードが終了するのを待ち、S305において、エンコーダからエンコード完了の割り込み通知を受ける。
次にS306に進み、画像バッファ1(106)または画像バッファ2(107)に出力された画像データが、プロトコル処理部102で送信処理するデータであるかを判別し、プロトコル処理部102で送信する場合には、S307に進み、そうでないならば、CPU101で処理されるデータであるので、以降の処理はS312からとなる。
S307では、プロトコル処理部102に対して、画像データの転送に先立ち、画像データの準備完了を割り込み通知する。次にS308において、プロトコル処理部102が画像データ転送を受け付けられる状態になるまで画像データ転送を待機する。そしてS309で、画像データが書き込まれた画像バッファがいずれかにより、画像バッファ1(106)の場合はS310でデータ転送切替部109にプロトコル処理部102への画像データを転送開始する指示を出す。画像バッファ2(107)の場合も同様である。次にS311において画像データの転送を開始させる。そして、S316へ進み、この画像データについての一連の処理フローが終了する。
S306において、画像データがCPU101で送信される場合は、S312へと進む。S312で画像データがどちらの画像バッファに書き込まれたかにより、画像バッファ1(106)の場合は、S313においてCPUから画像バッファ1をアクセス可能となるようにデータ転送切替部109を設定する。画像バッファ2(107)に書き込まれた場合には、S314においてCPUから画像バッファ2をアクセス可能となるようにデータ転送切替部109を設定する。S313とS314から次にS315へ進み、CPU101に対して画像データの準備完了を割り込み通知を行い、S316に進み、この画像データについての一連の処理フローが終了する。
入力切替制御部105は、以上の処理フローを各ストリームについて繰り返し実行し、エンコーダ104からCPU101あるいはプロトコル処理部102への画像データ入力を制御することになる。図4に、図2が示す4本のストリーム(a〜d)例について、入力切替制御部105が実行する画像データ入力の制御例を模式的なタイムチャートで表したものである。
図4は、縦軸401と402の間が100msの時間幅を表し、入力切替制御部105が繰り返す制御内容を時間幅内で表している。
横軸403には、撮像部103から非圧縮画像データ出力のタイミングを409〜410で表す。横軸404上には、エンコードに要する時間を412〜419で表す。412〜419のそれぞれの時間内には、入力切替制御部105がエンコーダ104へのエンコード設定と、エンコーダ104の動作時間を含む。412〜419それぞれに記したa〜dは、図2で示したストリームのNoであり、対象とするストリームを示している。例えば409のタイミングで出力される非圧縮画像データは、412〜414で3度エンコードされ、それぞれb、c、aのストリームがエンコード対象であることを示す。同様に410で出力される非圧縮画像データは415〜417でb、d、aのストリーム用にエンコードし、411についても、418〜419でb、aのストリーム用にエンコードすることを示している。
横軸405は、エンコーダ104からの出力先の画像バッファの選択時間を示す。それぞれの選択時間に記された"1"または"2"は、それぞれ画像バッファ1(106)と画像バッファ2(107)を示す。前述のように、入力切替制御部105は、セレクタ108を制御して、エンコード毎に画像バッファ1と2のダブルバッファをそれぞれ切替える。
横軸406と407は、入力切替制御部105の制御によるデータ転送切替部109の動作を示し、406は画像バッファ1(106)、407は画像バッファ2(107)に対応した動作を示す。それぞれの横軸上に記された、428〜430、432〜436の三角の記号△あるいは▽は、データ転送切替部109の動作切替えのタイミングを示す。△Pは画像バッファからプロトコル処理部102へのデータ転送開始を表し、△Cは、CPU101に画像バッファのデータにアクセス可能とするタイミングを表している。また431の斜線範囲は、CPU101が画像バッファにアクセス可能な期間を示している。
すなわち、入力切替制御部105は、画像バッファ1(106)からプロトコル処理部102へのデータ転送は、428、429、432の時点で実行し、画像バッファ2(107)からは、433〜436のそれぞれの時点で実行するように、データ転送切替部109を制御する。
横軸408には、入力切替制御部105から、CPU101あるいはプロトコル処理部102への入力画像データの準備完了の割り込み通知をするタイミングを437〜444で表している。437〜440と442〜444の三角の記号▲Pは、プロトコル処理部102への割り込み通知を表し、441の▲Cは、CPU101への割り込み通知を表す。
以上を踏まえ、ある1つのストリームにおける入力切替制御部105が繰り返す制御処理について、図2のストリームNo.bとNo.dを例に挙げ、図4を参照しながら説明する。
まずNo.bのストリームについて説明する。ストリームNo.bの連続する3フレームは、図4では409、410、411の非圧縮画像データである。409の非圧縮画像データの場合、入力切替制御部105は、420でエンコード出力先に画像バッファ1(106)をセレクタ108で選択し、412でエンコードを実行するように制御を行う。次に、ストリームNo.bはプロトコル処理部102で送信するので(図2を参照)、412のエンコード終了後の437において、入力切替制御部105は、プロトコル処理部102に画像データの準備完了の割り込み通知を行う。その後、428においてデータ転送切替部109に画像データの転送を開始させる。入力切替制御部105は、他の非圧縮画像410、411についても、同様の制御を行う。
ストリームNo.dの場合は、図4の410の非圧縮画像データをエンコードする。入力切替制御部105は、424でエンコード出力先に画像バッファ1(106)をセレクタ108で選択し、416でエンコードを実行するように制御を行う。ストリームNo.dはCPU101によって送信するので(図2を参照)、416のエンコード終了後の430において、入力切替制御部105は、CPU101から画像バッファ1(106)がアクセス可能となるようにデータ転送切替部109を制御する。その後、441においてCPU101に画像データの準備完了の割り込み通知を行う。CPU101が画像バッファ1(106)のデータにアクセス可能である期間は、次に画像バッファ1(106)にエンコード後データが書き込まれる426までの間である431の期間となる。
以上、図2、図3および図4を参照して、本実施形態における入力切替制御部105の制御方法の一例を示した。
次に、送信タイミング制御部111におけるCPU101とプロトコル処理部102の双方からのパケット送信の調整方法について、実施形態を図5を参照しながら示す。
図5は、CPU101とプロトコル処理部102、送信タイミング制御部111、およびMAC115間におけるパケット送信処理のシーケンスの一例を表している。図5の上から下へ時間推移を表しており、各処理部間での送信要求、および送信完了の通知を矢印で示している。
図5において、P501−1のように、記号名に'P'が付く矢印はプロトコル処理部102からのパケット送信処理を意味し、記号名に'C'が付く矢印はCPU101からのパケット送信処理を意味する。また、1つのパケットの一連の送信シーケンスは、枝番号が'1'〜'4'の異なる4つの矢印で示されている。例えば、P501−1はプロトコル処理部102から送信タイミング制御部111への送信要求であり、P501−2は、同パケットの送信タイミング制御部111からMAC115への送信指示であり、P501−3は同パケットのMAC115から送信タイミング制御部111への送信完了通知であり、P501−4は、送信タイミング制御部111からプロトコル処理部102への同パケットの送信完了通知である。
前述の通り、CPU101とプロトコル処理部102は、作成したパケットを送信タイミング制御部111に対して送信要求を発行する。また、CPU101は、送信パケットを送信バッファ112でキューイングした後に、送信を要求する。
プロトコル処理部102は、画像バッファから転送される画像データを順次パケット化して送信するため、画像データ毎にまとまった個数のパケットを連続して送信要求する。図5の512の破線範囲は、プロトコル処理部102がP501〜P504のパケットを連続して送信することを記している。同様に、513の破線範囲はP508〜P510のパケットを連続して送信することを記している。
プロトコル処理部102からのパケット連続送信は、各パケット作成後に即時に送信開始することで実現する。送信タイミング制御部111は、プロトコル処理部102からパケットの送信要求が届くと、該パケットを次の送信パケットに設定してMAC115に送信指示を行う。
一方、CPU101からのパケットの送信は、送信バッファ112でキューイングする。図5において、C505〜C507のパケットは、送信タイミング制御部111に対して512の範囲のプロトコル処理部102からの連続送信処理中に、送信要求を行っている。C505〜C507のパケットはキューイングされており、送信タイミング制御部111は、512の範囲の送信処理の終了後に、これらのパケットの送信を開始する。図5では、C505のパケットの送信処理が済み、次のC506のパケットの送信処理中に、プロトコル処理部102によって、513の範囲に記されたP508〜P510のパケットの連続送信が始まっている。このため、送信タイミング制御部111は、C506の送信処理を終了後、プロトコル処理部102の送信処理が優先してP508を送信する。C507のパケットは、513の範囲にあるプロトコル処理部102の送信が終了後に送信する。C511のパケットも同様に、送信タイミング制御部111が送信を遅延させ、C507の送信後に送信を行う。
尚、プロトコル処理部102から送信タイミング制御部111への送信要求において、プロトコル処理部102が、送信処理する画像データがまだ残っているか、すなわち連続して送信要求が続くかどうかの情報を付加する。これにより、送信タイミング制御部111は、プロトコル処理部102からの連続する送信要求の合間を判断し、CPU101からの送信パケットの送信を開始する。
以上、図5に示す例を挙げて、送信タイミング制御部111のパケット送信の調整方法について実施形態を説明した。この方法によってプロトコル処理部102からのパケットを優先し、送信処理における遅延量を極力無くすことが可能である。
最後にCPU101における画像データの送信処理について説明する。本実施形態において、エンコーダ104から、CPU101で送信すべき画像データが、106あるいは107のいずれかの画像バッファに出力されると、入力切替制御部105から画像データの準備完了の割り込み通知を受ける。そして画像バッファの画像データにアクセスし、アプリケーション、および汎用プロトコルスタックによる送信パケット処理を行う。パケットの送信は、送信バッファ112に送信パケットを書き込み、送信タイミング制御部111に対して送信要求を発行する。また、CPU101は、入力切替制御部105に動画ストリームの属性情報を設定する。
このようなCPU101の処理について、処理フローを図6に示す。CPU101の処理フローはS601から始まり、まずS602において入力切替制御部105の初期設定を行う。初期設定においては、CPU101とプロトコル処理部102で送信処理する各ストリームの属性情報の設定を行う。次にS603においてプロトコル処理部102の初期設定を実行する。また、通信管理データ110にストリーミング送信するプロトコル等における初期設定情報を書き込む。続いて撮像部103と入力切替制御部105の処理を開始する。
S605からは、CPU101による、エンコーダ104からの画像データを待って送信を行う処理である。S605では入力切替制御部105から画像データ準備完了の割り込み通知が待ち、S606で画像データ準備完了の割り込み通知を受ける。CPU101で送信する画像データが画像バッファに準備されると、S607の判定で未送信の画像データがなくなるまで、S608からS613までの画像データの送信処理を繰り返す。未送信が画像データが無くなると、S605に戻り、再び画像データ準備完了の割り込み通知を待つ。
S608では送信バッファ112に、送信パケットをキューイングするのに十分な空き領域があるかを調べる。空き領域がある場合はS609に進み、アプリケーションによるストリーミングプロトコル処理、および汎用TCP/IPプロトコル処理を実行し、画像データから送信パケットを作成する。続いてS610において、作成したパケットを送信バッファ112にキューイングし、S611で送信タイミング制御部111に対して送信要求を発行する。そしてS607に戻り、未送信の画像データがあれば再び次のパケットの送信処理をS608から開始する。
S608において、送信バッファ112に送信パケットをキューイングする空き領域が
ない場合は、S612へと進む。S612では、送信タイミング制御部111から、先に送信要求を出したパケットの送信完了の通知を待つ。S613で送信完了の通知を受けると、S608に戻り、再度送信バッファ112の空き領域を調べる。
以上の処理フローによって、CPU101は、送信すべき画像データが生成されたときに送信処理を開始し、画像データの送信処理の後に再び、画像データを待機する動作を行うことになる。
以上、本発明における実施形態の一例を示した。本実施形態によれば、アプリケーションは、ストリーム毎にCPU101とプロトコル処理部102で送信処理を切り替わるように入力切替制御部105の設定を行うことができ、エンコーダ104からの画像データは、自動的にCPU101とプロトコル処理部102に振り分けられる。したがって、例えば送信遅延を極力低減するような、撮影動画のリアルタイム送信はプロトコル処理部102で実行し、送信にかかる遅延時間を容認しても汎用的なプロトコル処理によって柔軟な送信処理を行うには、CPU101で送信処理を行うといった適用が可能となる。
(第2の実施形態)
第1の実施形態では、図1における送信タイミング制御部111が、CPU101が送信要求するパケットより送信プロトコル処理部102が送信要求するパケットを優先して送信する制御を行うとしていた。送信タイミング制御部111は、プロトコル処理部102からの送信パケットを優先するため、CPU101からの送信パケットは送信バッファ112でキューイングされる。したがって、CPU101とプロトコル処理部102で送信処理するストリーム総数が多い場合や、CPU101側で送信処理する画像データ量が非常に大きい場合などでは、MAC115が伝送帯域の大きい通信メディアであっても、送信バッファ112でキューイング可能なデータ量の制限により、送信パケットデータがオーバーフローする可能性がある。
本発明の第2の実施形態では、CPU側の送信バッファでのオーバーフローを回避するための実施構成およびパケットの送信制御について、図7を参照しながら説明する。
図7は、前記実施形態1における図1が示す全体構成において、CPU101とプロトコル処理部102の送信処理より後段部分を変更した図である。尚、本実施形態においては、CPUとプロトコル処理部より前段の構成は、第1の実施形態と同様であるとする。
図7において、701はCPU、702はプロトコル処理部、703は送信タイミング制御部、704は送信バッファ、705はMACであり、706はMACがデータを読み出すデータ転送パスを決定するためのセレクタである。708は、CPU701への入力画像データパスを表し、709はプロトコル処理部702への入力画像データパスを表している。
本実施形態では、図7の710のデータパスに流れるプロトコル処理部からの送信パケットを、UDPパケットに限定する。すなわち、本実施形態では、上位のストリーミングプロトコルがUDPパケットを利用するものとする。このようなストリーミングの上位プロトコルには、例えば、RTPが挙げられる。
また、本実施構成では、707のバッファ監視部を有する。バッファ監視部707は、送信バッファ704の空き残量を監視する機能を持つ。送信バッファ704は、メモリ装置上に、送信パケットキューの管理データ711とパケットデータの記憶領域712で構成している。バッファ監視部707は、送信パケットキューの管理データ711を読み出し、パケットデータの記憶領域712の空き残量を監視を行う。以下、送信バッファ704の空き残量は、パケットデータの記憶領域712の空き残量を意味することとする。
バッファ監視部707は、信号線713で送信タイミング制御部703に接続しており、送信バッファ704の空き残量がオーバーフローが起こらないとする閾値よりも少ないか否かによって、信号線713の状態を変化させる。
送信タイミング制御部703は、バッファ監視部707からの信号線713の状態が、送信バッファ704の空き残量が閾値よりも大きい状態であるときは、プロトコル処理部702からの送信パケットを優先して送信を行う。反対にバッファ704の空き残量が閾値よりも小さい状態であるときは、空き残量が閾値よりも大きくなるまで、プロトコル処理部702からのパケットの送信を抑制調節し、送信バッファ704にキューイングされたパケットを送信できる制御を行う。
この制御は、プロトコル処理部702からの送信を間引くことによって実現する。すなわち、プロトコル処理部702からのUDPパケットの送信要求に対して、ランダムな要求回数ごとに、MAC705への送信指示をせず、実際の送信を行わないで即座にプロトコル処理部702へ送信完了を通知する。
つまり、送信タイミング制御部703は、プロトコル処理部702からのパケット送信回数を減らし、送信バッファ704にキューイングされているパケット、およびCPU701が送信要求するパケットを送出するタイミングを増やす。
以上の制御方法により、送信バッファ704のオーバーフローが起こらないような送信制御を実現する。
(第3の実施形態)
第2の実施形態では、CPU側の送信バッファでのオーバーフローを回避するために、第1の実施形態におけるCPU101とプロトコル処理部102の送信処理より後段部分の実施構成およびパケットの送信制御について説明している。本実施形態においても、第2の実施形態と同様にCPU側の送信バッファでのオーバーフローを回避することを目的とする。以下、実施構成および画像データのエンコード制御について、図8と図9を参照しながら説明する。
図8は、本発明の第3の実施形態の全体構成を示す図である。図8の801〜815は、前記実施形態1における図1の101〜115と同じ構成である。すなわち、CPU(801)、プロトコル処理部(802)、撮像部(803)、エンコーダ(804)、入力切替制御部(805)、画像バッファ1(806)、画像バッファ2(807)、出力画像バッファのセレクタ(808)、データ転送切替部(809)、通信管理データ(810)、送信タイミング制御部(811)、送信バッファ(812)、受信バッファ(813)、送信データの入力セレクタ(814)、MAC(815)である。
また、本実施構成では、816のバッファ監視部を有する。バッファ監視部816は、送信バッファ812の空き残量を監視する機能を持つ。送信バッファ812は、メモリ装置上に、送信パケットキューの管理データ817とパケットデータの記憶領域818で構成している。バッファ監視部816は、送信パケットキューの管理データ817を読み出し、パケットデータの記憶領域818の空き残量の監視を行う。以下、送信バッファ812の空き残量は、パケットデータの記憶領域818の空き残量を意味することとする。
バッファ監視部816は、信号線819で送信タイミング制御部811に接続しており、送信バッファ812の空き残量によって、信号線819の状態を変化させる。バッファ監視部816は、送信バッファ812の空き残量に対して2つの閾値でチェックを行い、信号線819を3レベルの状態に保持および変化させる。具体的には、送信バッファ812の空き残量が第1の閾値よりも大きい場合は、空き残量に余裕があり、送信バッファ812のオーバーフローが起こらない状態であり、第1のレベルとする。送信バッファ812の空き残量が第1の閾値よりも小さく、第2の閾値よりも大きい場合は、空き残量が足りなくなってきている状態であり、第2のレベルとする。送信バッファ812の空き残量が第2の閾値よりも小さい場合は、送信バッファ812の空き残量が小さく、オーバーフローを起こす可能性が高い状態であり、第3のレベルとする。バッファ監視部816は、信号線819をこの3レベルの状態にいずれかを保持することになる。
本実施形態の送信タイミング制御部811は、バッファ監視部816からの信号線819の状態の変化が起こると、入力切替制御部805に対して、エンコード制御の変更指示を発行する(820)。すなわち、送信バッファ812の空き残量によって、画像データのエンコード制御にフィードバックを行うことを可能とする。
エンコード制御の変更指示820は、制御変更の対象とするストリームがCPU801側の送信ストリームだけか、全送信ストリームであるかと、対象のストリームのビットレートを下げるか、通常のビットレートに戻すかを指示する。具体的に述べると、送信タイミング制御部811は、前記信号線819の状態が第1のレベルから第2のレベルに変化したときと、第3のレベルから第2のレベルに変化したときに、CPU801側の送信ストリームを対象としてビットレートを下げるエンコード制御への変更指示を出す。また、前記信号線819の状態が、第2のレベルから第3のレベルに変化したときと、第1のレベルから第3のレベルに変化したときに全送信ストリームを対象としてビットレートを下げるエンコード制御への変更指示を出す。さらに、前記信号線819の状態が、第2のレベルから第1のレベルに変化したときと、第3のレベルから第1のレベルに変化したときに全ストリームを対象として、通常のビットレートで出力するエンコード制御への変更指示を出す。
このような送信タイミング制御部811から入力切替制御部805へのエンコード制御変更指示820により、入力切替制御部805は、3種類のエンコード制御を実行する。第1のエンコード制御は、CPU801によって入力切替制御部に設定される各ストリームの属性情報に合致するように、通常のビットレートで画像データのエンコードを行う。
第2のエンコード制御は、CPU801によって送信処理する動画ストリームだけを対象とし、各ストリームのビットレートを下げるように画像データをエンコードする制御である。第3のエンコード制御は、全ての動画ストリームを対象として、各ストリームのビットレートを下げるように画像データのエンコードを行う制御である。各ストリームのビットレートを下げる制御は、エンコード形式により異なるが、例えばJPEGの場合は量子化テーブルを切替えて量子化レベルが大きくなるように設定したり、MPEGの場合は、ストリーム毎のエンコーダ804へのビットレートの設定を低くしたり、エンコーダ804への詳細制御が可能な場合は量子化ステップサイズを大きくすることやフレーム内圧縮符号化のフレーム間隔を大きくするなどのエンコード条件を変更することで実現する。
次に送信タイミング制御部811からのエンコード制御変更指示820によって、入力切替制御部805のエンコード制御を変更する処理フローについて図9を参照して述べる。
本実施形態において、図9が示す入力切替部制御805のエンコード制御の変更処理はS901から始まり、撮像部903から出力される非圧縮デジタル画像データ毎に処理するS902からS911までのループ処理である。はじめにS903において、送信タイミング制御部811からエンコード制御変更指示820があるかを調べ、指示があるならばS904に進む。エンコード制御の変更指示がないならば、現状のエンコード制御のままであるとして、S910に進む。
S904では、エンコード制御変更指示820がビットレートを下げる制御であるか否かを調べる。ビットレートを下げる指示であるならばS905に進み、そうでないならばS906に進む。S905では、ビットレートを下げる制御指示の対象がCPU801で送信処理するストリームであるならば、S908に進む。そうでないならばCPU801とプロトコル処理部802の両方で送信する全ストリームを対象としているのであり、S907に進む。
一方、S904からS906へ進む場合は、ストリーム毎に通常のビットレートでエンコードを行う制御に戻す指示である。S906においては、ビットレートを戻す対象のストリームが全ストリームであるか否かを調べ、全ストリームが対象としているならば、S909に進む。そうでないならばS908へ進む。
S907では全ストリームを対象として、各ストリームのビットレートを下げるエンコード制御に移行する。すなわち前記第3のエンコード制御への移行を意味する。S908では、CPU801側の送信ストリームを対象とし、各ストリームのビットレートを下げるエンコードを行い、プロトコル処理部802で送信処理するストリームについては、通常のビットレートでエンコードする制御に移行する。すなわち前記第2のエンコード制御への移行を意味する。S909は、全ストリームのエンコードは、各ストリームにおける通常のビットレートで実行する制御に移行する。すなわち前記第1のエンコード制御への移行を意味する。
S907、S908、S909でのエンコード制御が移行すると、S910に進む。S910は画像データをエンコード、および送信処理するための入力切替制御部802の処理であり、図3で示される処理フローである。次にS911へ進んでS902からの処理ループが完了する。
以上のような処理フローにより、入力切替制御部805は、送信タイミング制御部811からのエンコード制御変更指示820に従って、画像データのエンコード制御の変更を行う。
以上、本実施形態について詳細を説明した。本実施形態では、バッファ監視部816が、CPU801からの送信パケットをキューイングする送信バッファ812の空き残量を監視し、送信タイミング制御部811に送信バッファの空き残量状態を検知させることができ、これによって送信タイミング制御部811は、入力切替制御部805へエンコード制御変更指示820を行うことができる。一方、入力切替制御部805は、送信タイミング制御部811からのエンコード制御変更指示820によって、動画ストリームのビットレートを下げる制御を行う。本実施形態によれば、送信バッファ812の空き残量が少なくなると、CPU801で送信処理するストリームのデータ量を減らして送信バッファにキューイングするデータ量を減らしたり、プロトコル処理部802で送信処理するストリームのデータ量を減らして送信回数を少なくしてCPU801が送信要求するパケットを送出するタイミングを増やすことができる。したがって、送信バッファ812がオーバーフローが起こらないような送信制御を実現することが可能となる。
(第4の実施形態)
第1から第3の実施形態においては、エンコーダ104の設定や制御およびデータ転送切替部109の制御はマイクロプロセッサで構成される入力切替制御部105のソフトウェア制御で行い、画像データの送受信を行うアプリケーションソフトウェアおよび汎用的な通信プロトコルスタックの実行はCPU101で行うような実施形態であった。第4の実施形態では、これらの制御をすべて単一のCPUで行うような実施形態について説明する。
図10は、本発明の第4の実施形態における全体構成の一例を示す図である。図10におけるプロトコル処理部102からMAC115は、第1の実施形態で説明した図1、102〜115と同様の構成ブロックとなる。図10において、1001はCPUであり、このCPUで実行されるソフトウェアにより、以下の制御を実行するものである。
CPU1001は、撮像部103が出力する画像フレームデータ毎に、エンコーダ104に対して、エンコード形式や圧縮効率などのパラメータの設定を行う。また、エンコードの開始タイミングを指示し、エンコード完了を通知する割り込み信号を受け取るなどの、エンコーダ制御を行う。また、エンコーダ104が出力する画像データのデータパスのセレクタ108を制御し、どちらの画像バッファに出力するかを決定する。また、画像バッファ1(106)もしくは画像バッファ2(107)に出力された画像データが、CPU1001によって送信するデータであるか、プロトコル処理部102で送信するデータであるかによって、データ転送切替部109を制御する。CPU1001によって送信するデータである場合は、CPU1001に対して画像データの準備完了を割り込み通知する。また、プロトコル処理部102で送信するデータである場合は、プロトコル処理部102に対して画像データの準備完了を割り込み通知し、プロトコル処理部102がデータ転送を受け付ける状態になるのをチェックした後に、データ転送切替部109に対して画像データの転送開始させる。また、画像データの送受信を行うアプリケーションソフトウェアの実行、および汎用的なTCP/IP通信を可能とするプロトコル処理ソフトウェアを有し、TCP/IPパケットの送受信を行う。また、CPU1001のTCP/IPプロトコル処理は、送信パケットを一旦112の送信バッファでキューイングした後、送信タイミング制御部111に対して送信要求を発行する。
次に図11において、第4の実施形態におけるCPU1001による制御フローチャートを説明する。
図11において、CPU101の処理フローはS1101から始まり、まずS1102においてプロトコル処理部102の初期設定を実行する。また、通信管理データ110にストリーミング送信するプロトコル等における初期設定情報を書き込む。続いてS1103において、撮像部103に対して撮像開始指示を行うことにより、撮像データの取り込みが開始する。S1104では、撮像部103により撮像された1フレーム分の非圧縮画像データの到着を待ち、データが到着するとS1105において、エンコーダ104からの出力先となる画像バッファを、画像バッファ1(106)と画像バッファ2(107)のいずれか、前回のエンコードの出力先と異なる方になるように、セレクタ108を切替える処理を実行する。次に1106において、エンコーダ104に対し、画像データのエンコードのフォーマットなどの設定を行う。続いて、S1107でエンコーダ104にエンコード開始を指示する。
S1108では、S1107でエンコーダが出力する画像バッファとは異なるほうの画像バッファにすでにエンコードされたストリームデータがあるかどうかをチェックし、データがある場合には、エンコーダ104によるエンコード処理を継続したままS1110へ進む。データがない場合にはS1109において、エンコードが終了するのを待ち、エンコーダ104からエンコード完了の割り込み通知を受けるとS1110へ進む。
S1110では、画像バッファ1(106)または画像バッファ2(107)に出力された画像データが、プロトコル処理部102で送信処理するデータであるかを判別し、プロトコル処理部102で送信する場合には、S1121に進み、そうでないならば、CPU1001で処理されるデータであるので、以降の処理はS1111からとなる。
S1121では、プロトコル処理部102に対して、画像データの転送に先立ち、画像データの準備完了を割り込み通知する。次にS1122において、プロトコル処理部102が画像データ転送を受け付けられる状態になるまで画像データ転送を待機する。そしてS1123で、画像データが書き込まれた画像バッファがいずれかにより、画像バッファ1(106)の場合はS1124でデータ転送切替部109にプロトコル処理部102への画像データを転送開始する指示を出す。同様に画像バッファ2(107)の場合も、S1125において画像データの転送を開始させる。S1124、S1125の処理が終了すると、S1126において、撮像部103で撮像された1フレーム分の非圧縮画像データに対するすべての符号化ストリームの送信が終了したかどうかをチェックし、S1127において、送信が終了した場合は再びS1104の非圧縮データの到着を待つ処理へ戻る。また送信が終了していない場合には、S1105のセレクタを切り替える処理へ戻る。
一方、S1110において、画像データがCPU1001で送信される場合はS1111へと進む。S1111で画像データがどちらの画像バッファに書き込まれたかにより、画像バッファ1(106)の場合は、S1113においてCPUから画像バッファ1をアクセス可能となるようにデータ転送切替部109を設定する。画像バッファ2(107)に書き込まれた場合には、S1112においてCPUから画像バッファ2をアクセス可能となるようにデータ転送切替部109を設定する。これらS1112、1113の処理が終了するとS1114へ進む。
S1114では、送信対象となる画像バッファ中に未送信の画像データがあるかどうかをチェックし、ない場合、つまりすべての画像データの送信が終了した場合は、S1126のすべてのストリームの送信が終了したかどうかのチェックに進む。また、S1114で未送信の画像データが残っている場合は、S1114の判定で未送信の画像データがなくなるまで、S1115からS1120までの画像データの送信処理を繰り返す。
S1115では送信バッファ112に、送信パケットをキューイングするのに十分な空き領域があるかを調べる。空き領域がある場合はS1116に進み、アプリケーションによるストリーミングプロトコル処理、および汎用TCP/IPプロトコル処理を実行し、画像データから送信パケットを作成する。続いてS1117において、作成したパケットを送信バッファ112にキューイングし、S1118で送信タイミング制御部111に対して送信要求を発行する。それからS1114に戻り、未送信の画像データがあれば再び次のパケットの送信処理をS1115から開始する。
S1115において、送信バッファ112に送信パケットをキューイングする空き領域がない場合は、S1119へと進む。S1119では、送信タイミング制御部111から、先に送信要求を出したパケットの送信完了の通知を待つ。S1120で送信完了の通知を受けると、S1115に戻り、再度送信バッファ112の空き領域を調べる。
以上の処理フローによって、CPU1001は、送信すべき画像データが生成されたときに送信処理を開始し、画像データの送信処理の後に再び、画像データを待機する動作を行うことになる。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に供給し、そのシステム等のコンピュータが記憶媒体からプログラムコードを読み出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに接続された機能拡張ユニット等に備わるメモリに書込まれた後、そのプログラムコードの指示に基づきCPU等が実際の処理を行い、前述した実施形態の機能が実現される場合も含まれる。
本発明の実施形態の全体構成の一例を示す図である。 動画ストリームの属性情報の一例を示す図である。 入力切替制御部がマイクロプロセッサで実現される場合において、各ストリームの画像フレームデータにおける制御を示すフローチャートである。 入力切替制御部の画像データ入力の制御例を示す模式的なタイムチャートである。 CPUとプロトコル処理部、送信タイミング制御部、およびMAC間におけるパケット送信処理のシーケンスの一例を示す図である。 本発明の第1の実施形態におけるCPUの処理フローを示す図である。 本発明の第2の実施形態におけるCPUとプロトコル処理部から後段部分の構成を示す図である。 本発明の第3の実施形態における全体構成図である。 本発明の第3の実施形態における入力切替制御部の処理フローを示す図である。 本発明の第4の実施形態における全体構成の一例を示す図である。 本発明の第4の実施形態におけるCPUの処理フローを示す図である。
符号の説明
101、701、801、1001 CPU
102、702、802 プロトコル処理部
103、803 撮像部
104、804 エンコーダ
105、805 入力切替制御部
106、806 画像バッファ1
107、807 画像バッファ2
108、808 エンコーダの出力データパスのセレクタ
109、809 データ転送切替部
110、810 通信管理データ
111、703、811 送信タイミング制御部
112、704、812 送信バッファ
113、813 受信バッファ
114、706、814 MACの入力データパスセレクタ
115、705、815 MAC
707、816 バッファ監視部
708 CPUへの画像データ
709 プロトコル処理部への画像データ
710 プロトコル処理部が送信するUDPパケットデータ
711、817 送信バッファのキューの管理データ
712、818 送信バッファのキューの送信パケットデータ
713、819 バッファ監視部と送信タイミング制御部間の信号線
820 エンコード制御変更指示

Claims (8)

  1. 複数の形式に圧縮符号化された映像ストリームデータをネットワークに接続された複数の端末に同時に送信するような映像データ送信装置において、
    非圧縮映像データに対して複数の形式の圧縮符号化データを生成することが可能なエンコーダと、
    プロセッサによるソフトウェアで実行される第1のネットワークプロトコル処理手段と、
    画像データのリアルタイム送信処理を実行する第2のネットワークプロトコル処理手段と、
    該エンコーダで生成された複数の圧縮符号化データのうち第1のネットワークプロトコル処理手段によって処理を行うデータと第2のネットワークプロトコル処理手段によって処理を行うデータを選択的に振り分ける手段とを備えることを特徴とする映像データ送信装置。
  2. 前記複数の形式の圧縮符号化データは、符号化方式の異なるデータ、またはフレームレートが異なるデータ、またはビットレートが異なるデータ、または映像のピクセル数が異なるデータであることを特徴とする請求項1記載の映像データ送信装置。
  3. 前記ネットワークプロトコル処理は、少なくともTCP/IPで規定される4層モデルにおけるインターネット層、トランスポート層、またはアプリケーション層を含むプロトコル処理であることを特徴とする請求項1記載の映像データ送信装置。
  4. 前記エンコーダは、複数の形式の圧縮符号化データを1フレームごとに時分割で生成し、生成された1フレーム分の符号化データを予め設定された組み合わせに応じて、第1のネットワークプロトコル処理手段への出力と、第2のネットワークプロトコル処理手段への出力とに順次切り替えるような制御を行うことを特徴とする請求項1記載の映像データ送信装置。
  5. 前記第1のネットワークプロトコル処理手段の処理の進行状況に応じて、第1のネットワークプロトコル処理手段へ振り分けられる圧縮符号化データのビットレートのみを小さくする第1のエンコード条件変更手段と、
    第1のネットワークプロトコル処理手段および第2のネットワークプロトコル処理手段の双方に振り分けられる圧縮符号化データのビットレートを小さくする第2のエンコード条件変更手段とを備えることを特徴とする請求項1記載の映像データ送信装置。
  6. ビットレートの変更は、圧縮符号化データの映像フレームレートの変更、または、圧縮符号化における量子化条件の変更により行われることを特徴とする請求項5記載の映像データ送信装置。
  7. 複数の形式に圧縮符号化された映像ストリームデータをネットワークに接続された複数の端末に同時に送信するような映像データ送信方法において、
    非圧縮映像データに対して複数の形式の圧縮符号化データを生成するステップと、
    プロセッサによるソフトウェアで実行されるステップと、
    画像データのリアルタイム送信処理を実行するステップと、
    該エンコーダで生成された複数の圧縮符号化データのうち第1のネットワークプロトコル処理ステップによって処理を行うデータと第2のネットワークプロトコル処理ステップによって処理を行うデータを選択的に振り分けるステップとを備えることを特徴とする映像データ送信方法。
  8. 請求項7記載の映像データ送信方法をコンピュータに実行させるためのプログラム。
JP2006106948A 2006-04-07 2006-04-07 映像データ送信装置、映像データ送信方法及びプログラム Pending JP2007281973A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006106948A JP2007281973A (ja) 2006-04-07 2006-04-07 映像データ送信装置、映像データ送信方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006106948A JP2007281973A (ja) 2006-04-07 2006-04-07 映像データ送信装置、映像データ送信方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2007281973A true JP2007281973A (ja) 2007-10-25

Family

ID=38682960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006106948A Pending JP2007281973A (ja) 2006-04-07 2006-04-07 映像データ送信装置、映像データ送信方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2007281973A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010035378A1 (ja) * 2008-09-29 2010-04-01 パナソニック株式会社 画像符号化装置、画像符号化方法及び撮像システム
JP2010141477A (ja) * 2008-12-10 2010-06-24 Sony Corp 画像処理装置、画像処理方法およびプログラム
CN104780389A (zh) * 2015-04-21 2015-07-15 无锡天脉聚源传媒科技有限公司 一种视频处理方法及装置
JP2015139064A (ja) * 2014-01-21 2015-07-30 キヤノン株式会社 撮像装置、撮像システム、撮像装置の制御方法、撮像システムの制御方法、及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010035378A1 (ja) * 2008-09-29 2010-04-01 パナソニック株式会社 画像符号化装置、画像符号化方法及び撮像システム
CN102132569A (zh) * 2008-09-29 2011-07-20 松下电器产业株式会社 图像编码装置、图像编码方法和摄像系统
JP2010141477A (ja) * 2008-12-10 2010-06-24 Sony Corp 画像処理装置、画像処理方法およびプログラム
JP2015139064A (ja) * 2014-01-21 2015-07-30 キヤノン株式会社 撮像装置、撮像システム、撮像装置の制御方法、撮像システムの制御方法、及びプログラム
CN104780389A (zh) * 2015-04-21 2015-07-15 无锡天脉聚源传媒科技有限公司 一种视频处理方法及装置
CN104780389B (zh) * 2015-04-21 2018-01-05 无锡天脉聚源传媒科技有限公司 一种视频处理方法及装置

Similar Documents

Publication Publication Date Title
KR102280134B1 (ko) 비디오 재생 방법, 장치 및 시스템
KR102324326B1 (ko) 상이한 인코딩 파라미터를 이용해 인코딩되는 복수의 인코딩 스트리밍
US7051110B2 (en) Data reception/playback method and apparatus and data transmission method and apparatus for providing playback control functions
US20220239719A1 (en) Immersive viewport dependent multiparty video communication
CN104735470B (zh) 一种流媒体数据传输方法及装置
EP1696396A2 (en) Image pickup apparatus and image distributing method
JP6377784B2 (ja) オーディオビデオ同期取込によって一対多オーディオビデオストリーミングを行う方法
US9392303B2 (en) Dynamic encoding of multiple video image streams to a single video stream based on user input
US20090285310A1 (en) Receiving apparatus, receiving method, program and communication system
EP2380292A2 (en) Method and apparatus for streaming multiple scalable coded video content to client devices at different encoding rates
CN113225598A (zh) 移动端音视频同步的方法、装置、设备及存储介质
KR101976786B1 (ko) 실시간 미디어 스트림들을 스위칭하기 위한 장치 및 방법
JP2009284500A (ja) 画像伝送装置
JP2007281973A (ja) 映像データ送信装置、映像データ送信方法及びプログラム
JP6560696B2 (ja) データのセグメント受信を制御するクライアント、プログラム及び方法
JP2007329681A (ja) 映像データ送信装置
EP3687180B1 (en) A method, device and computer program
JP2013168941A (ja) 画像データを表示するためのビデオシステム及び方法及びコンピュータプログラムならびに符号化装置
US10834166B2 (en) Transmission apparatus that is capable of maintaining transmission quality in switching transmission path, reception apparatus, transmission and reception system, method of controlling transmission apparatus and reception apparatus, and storage medium
JP6519304B2 (ja) データ配信装置
WO2022222533A1 (zh) 视频播放方法、装置及系统、计算机可读存储介质
JP4541758B2 (ja) 画像伝送装置
CN115174943A (zh) 一种边云协同及客户端自适应的自由视角播放方法及系统
JP2013017031A (ja) 映像配信装置、再生装置及び映像通信システム
CN116233082A (zh) 8k视频原始码流传输方法