以下、発明を実施するための形態(以下実施の形態とする)について 説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(タイムスタンプ更新)
2.第2の実施の形態(符号化処理・復号処理)
3.第3の実施の形態(フレームレート情報提供)
4.第4の実施の形態(フレームスキップ数提供)
5.第5の実施の形態(パーソナルコンピュータ)
<1.第1の実施の形態>
[デバイスの構成]
図4は、本発明を適用した情報処理システムの構成例を示すブロック図である。
図4において、情報処理システム100は、送信装置101から受信装置102へ、インターネット網103を介して動画像の低遅延伝送同期再生を行うシステムである。すなわち、送信装置101は、キャプチャした動画像を符号化し、得られた符号化データを、インターネット網103を介して受信装置102に転送し、受信装置102は、その符号化データを受信して復号し、動画像を同期再生する。
送信装置101は、低遅延な符号化方式で画像データを符号化する。受信装置102は、その符号化方式に対応する、低遅延な復号方式で符号化データを復号する。また、送信装置101は、伝送路の帯域等に応じて画像データのフレームレートを動的に変化させる。受信装置102は、その送信装置101が変化させたフレームレートで画像データを再生する(同期再生を行う)。
このとき、受信装置102は、伝送レートの平滑化により生じる伝送タイミングのずれに合わせて、各フレームの再生タイミングを調整し、低フレームレートの部分でも再生画像が破綻しないようにする。
送信装置101は、キャプチャ部111、符号化部112、フレームレート変換部113、タイムスタンプ制御部114、平滑化部(Shaper)115、およびRTP送信部(RTP TX)116、RTCP(RTP Control Protocol)部121、伝送レート制御部122を有する。
キャプチャ部111は、送信装置101に入力された動画像(ビデオIN)を所定のフレームレートでキャプチャし、そのデータを符号化部112に供給する。符号化部112は、キャプチャ部111から供給された画像データを、所定の符号化方式で、伝送レート制御部122により指定されるエンコードレート(Encode Rate)で符号化する。このとき符号化部112は、符号化単位の各符号化データについて、キャプチャ時刻と同期したタイムスタンプ値を算出する。このタイムスタンプ値は、受信装置により動画像再生の際に参照される。
本構成例において、キャプチャ時刻とは、キャプチャデバイスによりキャプチャされた非圧縮動画像データがHD-SDI(High Definition Serial Digital Interface)等のシリアルインターフェイス経由で送信装置101の符号化部112に入力される場合における、各符号化ブロックの先頭データが入力された時刻を示す。つまり、同一フレーム内に互いに異なるキャプチャ時刻の複数の符号化ブロックが存在してもよい。もちろん、タイムスタンプの設定単位は任意であるので、符号化処理の単位である符号化ブロック毎にタイムスタンプが設定されても良いし、フレーム単位でタイムスタンプが設定されても良いし、複数フレーム毎にタイムスタンプが設定されるようにしてもよい。
符号化部112は、画像データを符号化して得られた符号化データをRTPパケット化し、算出したタイムスタンプ値をRTPタイムスタンプとしてRTPパケットに付加し、フレームレート変換部113に供給する。
フレームレート変換部113は、符号化部112から供給された符号化データのフレームレートを、例えば一部のフレーム(の符号化データ)を間引く等して、伝送レート制御部122により指定されるフレームレート(Frame Rate)に変換する。フレームレート変換部113は、例えば、間引き処理や加算平均処理等の画像合成処理によりフレームレートを変換する。フレームレート変換部113は、フレームレートが変換された符号化データをタイムスタンプ制御部114に供給する。
なお、伝送レート制御部122により指定されるフレームレートが変換前のフレームレート(キャプチャ部111のサンプリングレート)と同一である場合、フレームレート変換部113は、変換処理を省略し、符号化データをタイムスタンプ制御部114に供給する。
タイムスタンプ制御部114は、フレームレートの変化(フレームの間引き率等)に応じて、タイムスタンプ値(RTPタイムスタンプ)を調整する。後述するように受信装置102は、このタイムスタンプ値に応じた時刻にそのデータの再生を行う。タイムスタンプ制御部114は、タイムスタンプ値を、必要に応じて、この再生において画像が破綻しないような値に更新する。タイムスタンプ値の調整を行うとタイムスタンプ制御部114は、符号化データのパケットを平滑化部115に供給する。
平滑化部115は、パケットの伝送レートを平滑化し、伝送レート制御部122により指定される伝送レートにする。つまり、平滑化部115は、タイムスタンプ制御部114から供給されたパケットを一旦保持し、パケットの伝送レートが伝送レート制御部122により指定される伝送レート(Transmission Rate)となるような所定のタイミングで(所定の時間間隔で)パケットをRTP送信部116に供給する。
RTP送信部116は、平滑化部115から供給されるパケットを、インターネット網103を介して受信装置102に送信する。
RTCP部121は、受信装置102のRTCP部141とインターネット網103を介して通信を行い、インターネット網103の使用可能帯域幅等を確認するためのネットワーク状況情報を取得する。RTCP部121は、例えば、RTCP部141と、IETF RFC 3550記載のRTCP Sender Report(SR)パケット、RTCP Receiver Report(RR)パケットを送受信することによりネットワーク状況情報を交換する。このネットワーク状況情報には、インターネット網103の通信に関する情報であれば、どのような情報が含まれていても良い。例えば、往復伝送遅延(所謂RTT(Round Trip Time))やパケット損失率等が含まれていてもよい。もちろん、その他のパラメータが含まれるようにしてもよい。RTCP部121は、このように授受されたネットワーク状況情報を、伝送レート制御部122に供給する。
伝送レート制御部122は、RTCP部121から供給されたネットワーク状況情報に基づいて、符号化処理のエンコードレート、フレームレート変換後のフレームレート、およびパケットの伝送レート等を決定する。伝送レート制御部122は、エンコードレートを符号化部112に供給し、フレームレートをフレームレート変換部113に供給し、転送レートを平滑化部115に供給する。
受信装置102は、RTP受信(RTP RX)部131、受信バッファ132、復号部133、RTCP部141、および同期制御部142を有する。
RTP受信部131は、インターネット網103を介して送信装置101と通信を行い、RTP送信部116から送信されたパケットを受信し、それを受信バッファ132に供給する。また、RTP受信部131は、パケットの受信状況に関する情報(Packet info)をRTCP部141に供給する。
受信バッファ132は、RTP受信部131から供給されたパケットを保持する。受信バッファ132は、同期制御部142に制御され、所定のタイミングでパケットから符号化データを抽出して復号部133に供給する。
復号部133は、符号化部112の符号化方式に対応する方法で、受信バッファ132から供給される符号化データを復号し、得られたベースバンドの画像データを、同期制御部142により決められた再生時刻(同期再生時刻)に出力(再生)する(ビデオOUT)。
RTCP部141は、ネットワーク状況情報を、インターネット網103を介して送信装置101のRTCP部121と授受する。例えば、RTCP部141は、RTP受信部131から供給されたパケットの受信状況に関する情報等を含むネットワーク状況情報を、ネットワーク状況情報としてRTCP部121に供給する。
同期制御部142は、受信バッファ132に保持された符号化単位の符号化データの同期再生時刻を決定する。同期制御部142は、符号化データのタイムスタンプ値に対応する時刻を用いて同期再生時刻を算出する。同期制御部142は、このように算出された同期再生時刻を受信バッファ132に供給し、その同期再生時刻に対応する符号化データとともに、復号部133に供給させる。
[処理の流れ]
このような構成の情報処理システム100において実行されるデータ伝送に関する主な処理について、処理の流れの例を説明する。最初に送信装置101の伝送レート制御部122により実行されるレート制御処理の流れの例を、図5のフローチャートを参照して説明する。
伝送レート制御部122は、所定のタイミングでレート制御処理を実行し、RTCP部121から供給されたネットワーク状況情報に基づいて各種レートを決定する。
レート制御処理が開始されると、伝送レート制御部122は、ステップS101において伝送レートを決定する。この伝送レートの決定方法は任意である。例えば、IETF RFC3448「TCP Friendly Rate Control (TFRC):Protocol Specification」に示される方法にしたがって伝送レートが決定されるようにしてもよい。
ステップS102において、伝送レート制御部122は、ステップS101において決定した伝送レートに基づいて、フレームレート変換部113におけるフレーム変換後のフレームレートを決定する。この変換後のフレームレートが伝送時のフレームレート(伝送フレームレート)になる。このフレームレートの決定方法は任意である。例えば、各伝送レートにおいてユーザの感じる品質を最適化したフレームレートを、図6に示されるグラフのように予め設定しておき、そのグラフに従って、伝送レートに対応するフレームレートが設定されるようにしてもよい。このフレームレート−伝送レート設定グラフは、アプリケーションや符号化部等の特性に応じて変更する(設定する)のが望ましい。なお、この図6のグラフのような、伝送レートとフレームレートの変換の関係を示すデータは、代表点を用いたテーブル情報であってもよいし、数式等であってもよい。
ステップS103において、伝送レート制御部122は、エンコードレートを決定する。上述したように、送信装置101の符号化部112は、伝送レート制御部122により指定されるフレームレートによらず、元動画像のサンプリングフレームレート(キャプチャレート)をフレームレートとして符号化処理を行う。そして、フレームレート変換部113は、一部のフレームを間引きする間引き処理により、フレームレート変換を行う。このため、伝送レート制御部122は、フレームレート変換後のデータレートを伝送レートと等しくするために、エンコードレートをR_e(bps)とし、伝送レートをR_t(bps)とし、サンプリングフレームレートをf_s(fps)とし、変換後フレームレートをf_t(fps)とするとき、以下の式(1)を満たすようにエンコードレートR_eを設定する。
以上のように各レートが決定されると、レート制御処理が終了される。
以上のレート制御方法は一例であり、上述した以外の方法で各レートを制御するようにしてもよい。例えば、符号化部112がフレームレート変換機能を備え、伝送レート制御部122が、エンコードレートと伝送レートを等しく設定し、エンコードレートおよび変換後のフレームレートを符号化部112に供給するようにしてもよい。
送信装置101の各部は、送信処理を実行し、以上のようにレート制御に基づくレートで画像データを符号化して送信する。図7のフローチャートを参照して、送信処理の流れの例を説明する。
送信処理が開始されると、ステップS121において、キャプチャ部111は、外部から供給される動画像(ビデオカメラ等を経由しビデオ入力IFであるビデオINより入力されたビデオデータを取り込む。
符号化部112は、ステップS122において、供給された画像データを、伝送レート制御部122により指定されたエンコードレートで符号化する。符号化部112は、ステップS123において、キャプチャ時刻情報に基づいて、キャプチャ時刻と同期したタイムスタンプ値を算出する。
ステップS124において、符号化部112は、符号化して得られた符号化データを、例えば、複数のRTPパケットに分割する。符号化部112は、そのRTPパケットに、ステップS123の処理により算出されたタイムスタンプ値をRTPタイムスタンプとして付加する。
ステップS125において、フレームレート変換部113は、伝送レート制御部122により指定されたフレームレートへ、例えば、一部のフレームを間引くフレーム間引き処理により変換する。
ここで、サンプリングフレームレートf_s(fps)から変換後の伝送フレームレートf_t(fps)へ変換する場合について説明する。これらのf_sとf_tは以下の式(2)の関係を満たす。
式(2)において、変数Mはフレーム間引き比率を示す。フレームレート変換部113は、変換前データからMフレームに1フレームの頻度で抜き出し、抜き出したフレームで変換後データを生成する。
変換前フレームデータをF(n)(nはフレーム連続番号)とし、変換後フレームデータをF’(n)(nは変換後フレームの連続番号)とし、変換前データD_oを以下の式(3)のように示すと、変換後データD'_tは、以下の式(4)のように表すことができる。
なお、フレームレート変換部113は、フレーム間引き処理以外の方法でフレームレートを変換するようにしてもよい。フレームレート変換方法は任意である。例えば、加算平均処理等の画像合成処理により連続する複数フレームを合成してフレーム数を低減させることによりフレームレートを変換するようにしてもよい。
また、伝送レート制御部122により指定されたフレームレートが、変換前のフレームレート(サンプリングフレームレート)と同一である場合、ステップS125の処理は省略される。
ステップS126において、タイムスタンプ制御部114は、例えば、RTPヘッダ部に含まれるRTPタイムスタンプを制御する。タイムスタンプ制御部114は、フレームレート変換部113においてフレームレート変換された変換後フレームデータのフレーム間引き率Mによってタイムスタンプ調整を行う。
変換前フレームデーをF(n)(nは変換前フレームの連続番号)とし、変換後フレームデータをF’(m)(mは変換後フレームデータの連続番号)とし、変換前の符号化ブロックデータをB(n,k)とし、変換後の符号化ブロックデータをB’(m,k)(kはフレームデータ内の符号化ブロックの連続番号)とする。また、変換前の符号化ブロックデータB(n,k)のタイムスタンプ値をTS(n,k)とする。さらに、変換後の符号化ブロックデータB’(m,k)のタイムスタンプ制御前のタイムスタンプ値をTS'(m,k)とする。また、変換後の符号化ブロックデータB’(m,k)のタイムスタンプ制御後のタイムスタンプ値をTS’’(m,k)とする。そして、フレーム間引き比率をMとする。
このとき、変換後フレームデータF’(m)、変換後の符号化ブロックデータB’(m,k)、および、変換後の符号化ブロックデータB’(m,k)のタイムスタンプ制御前のタイムスタンプ値TS'(m,k)は、それぞれ、以下の式(5)乃至式(7)のように表される。
変換後符号化ブロックデータB’(m,k)のタイムスタンプ制御後のタイムスタンプ値TS’’(m,k)は、変換後フレームデータF’(m)と次の変換後フレームデータF’(m+1)との間で間引かれた変換前フレーム数(M−1)に応じて調整される。タイムスタンプ制御後のタイムスタンプ値TS’’(m,k)は以下の式(8)で表される。
すなわち、タイムスタンプ制御後のタイムスタンプ値には、該当するフレーム後に間引かれた変換前フレームデータの内の最後の変換前フレームデータの一致する符号化ブロックデータと同一のタイムスタンプ値がセットされる。変換後フレームデータの直後でフレームが間引かれていない場合、タイムスタンプ値は、タイムスタンプ制御の前後で変更されない。
なお、このタイムスタンプ制御においては、あるフレームデータの直後にフレーム間引き処理が行われた場合、伝送レートの平滑化により、該当フレームが、間引かれたフレームに割り当てられるべきであった時間も使い平滑化され伝送されることを想定している。したがって、平滑化された各フレームデータの末尾データの到着時刻にあわせて同期再生されるようにするため、該当するフレーム後に間引かれた変換前フレームデータの内の最後の変換前フレームデータの一致する圧縮符号化ブロックデータと同一のタイムスタンプ値がセットされる。
以上のようにタイムスタンプが更新されると、ステップS127において、平滑化部115は、パケットの送出タイミングを調整し、伝送レートを平滑化する。平滑化部115は、例えば、ITU-T Recommendation Y.1221 Traffic control and congestion control in IP-based networksに記載のToken Bucketと同様の処理により伝送レートの平滑化を行う。
ステップS128において、RTP送信部116は、平滑化部115に制御されたタイミングでパケットを送信する。パケットが送信されると送信処理が終了される。以上のように、各パケットが順次送信される。以上に説明した各ステップの処理は、準備が整い次第実行され、かつ、それぞれの処理単位での処理が終了次第、次のデータ対して処理が繰り返される。したがって、上述した各処理は適宜平行して実行される。
なお、平滑化処理は、送信装置101外の、例えばルータやEthernet Switch等の中継装置において行われるようにしてもよい。
受信装置102は、受信処理を実行し、以上のように送信されたパケットを受信する。
図8のフローチャートを参照して、受信処理の流れの例を説明する。
受信処理が開始されると、受信装置102のRTP受信部131は、ステップS141において、送信装置101から送信されたRTPパケットを受信する。ステップS142において、受信バッファ132は、受信されたRTPパケットを保持する。
同期制御部142は、ステップS143において、例えば受信バッファ132に格納された各RTPパケットのタイムスタンプ情報に基づいて同期再生時刻を決定する。
最初のRTPパケットのタイムスタンプ値をTS_initとし、そのRTPパケットの受信時刻をT_init(sec)とし、RTPタイムスタンプ周波数をf_rtp(Hz)とし、再生オフセット時間をT_play(sec)とし、送受信装置時刻オフセットをT_skew(sec)とし、タイムスタンプ値TSのRTPパケットの受信時刻をT_r(TS)とする。このとき、タイムスタンプ値TSのRTPパケットの再生時刻T_p(TS)は、例えば、以下の式(9)のように算出することができる。
もちろん、これ以外の方法でRTPパケットの再生時刻T_p(TS)が算出されるようにしてもよい。
なお、再生オフセット時間T_playは、パケット受信時刻から再生時刻までのオフセット時間を示す。このパラメータは、受信装置102内での処理遅延を反映させるためのものである。送受信装置時刻オフセット時間T_skewは、送受信装置間のシステムクロック周波数の差異を吸収するためのオフセット時間である。例えば、この送受信装置時刻オフセット時間T_skewの値は、ストリーム受信開始直後において「0」であり、一定時間おきに以下の式(10)のように補正される。
同期制御部142は、以上のように決定した同期再生時刻およびRTPパケットに格納された圧縮動画像データを受信バッファ132から復号部133に供給させる。
復号部133は、ステップS144において、符号化データを復号する。ステップS145において、復号部133は、復号して得られた画像データを、同期制御部142により決定された同期再生時刻に再生し、ビデオ出力IF(ビデオOUT)から出力する。出力データは、例えば、ディスプレイ等の映像表示装置に出力される。
画像データが再生されると受信処理が終了する。以上のように、受信された各パケットが順次処理され、画像データとして出力される。以上に説明した各ステップの処理は、準備が整い次第実行され、かつ、それぞれの処理単位での処理が終了次第、次のデータ対して処理が繰り返される。したがって、上述した各処理は適宜平行して実行される。
図9は、本発明を適用した場合の、データ伝送における各処理が実行されるタイミングの例を説明する図である。
この図9は、図1乃至図3に対応する図であり、基本的にそれらの図と同様の内容がされている。図9の場合、一連の処理のそれぞれの出力として、画像の取り込みおよび符号化の出力タイミングを示す「キャプチャ&CODEC」(図9A)、フレームレート変換の出力タイミングを示す「送信装置フレームレート変換処理出力」(図9B)、タイムスタンプ更新の出力タイミングを示す「タイムスタンプ制御処理出力」(図9C)、パケットの送信タイミングを示す「送信装置送信」(図9D)、パケットの受信タイミングを示す「受信装置受信」(図9E)、および画像データの再生出力タイミングを示す「受信装置再生」(図9F)が示されている。
図9の例の場合、送信装置101では、「キャプチャ&CODEC」(図9A)処理により、圧縮符号化ブロック毎に、一定間隔毎にキャプチャおよび符号化され、「送信装置フレームレート変換」処理(図9B)により、サンプリングフレームレートの3分の1のフレームレートにフレーム間引かれている。また、「タイムスタンプ制御」処理(図9C)により、フレーム間引き比率に応じてタイムスタンプ値の変換が行われ、平滑化処理により平滑化されたデータのパケットが「送信装置送信」(図9D)に示されるタイミングで送信される。
受信装置102では「受信装置受信」(図9E)のタイミングでパケットが受信され、「同期制御部」の処理にあわせて「受信装置再生」(図9F)のタイミングで再生される。このとき、符号化ブロックの全てのデータの「受信装置受信」処理が終了しなければ「受信装置再生」はされないものとする。
ここで、図9Bに示されるように、フレーム番号「3」以降のフレームにおいて、3フレーム中2フレームを間引くようにする(M=3)。この場合、フレーム番号「3」以降のフレームのフレームレート(フレーム数)は、それ以前の3分の1になる。したがって、図9Dに示されるように、各フレームが、フレームが減少した分、平滑化処理によって分散されて伝送される。
従来の方法では、図2や図3のタイムチャート例のように、再生映像の破綻や不必要な遅延増加が起こる恐れがあったが、上述したように送信装置101のタイムスタンプ制御部114においてタイムスタンプを、変更後のフレームレートに応じて更新するようにしたので、その更新されたタイムスタンプに基づくタイミングで再生を行う受信装置102は、図9Fに示されるように、フレームレートの高低によらず、同期破綻なく画像データを確実に再生することができる。
このように、送信装置101がフレームレートを動的に変更しながら動画像をリアルタイム伝送しても、受信装置102は、同期再生の破綻をきたすことなく、低遅延伝送を実現することができる。
また、情報処理システム100においては、低遅延伝送同期再生を行いながらフレームレートを動的に変更することができる。したがって、伝送レート制御のためにフレームレートを動的に変更することができるため、画質パラメータのみにより伝送レート制御を行う場合よりも、画像一枚あたりの画質を高く設定することができ、動きの少ない動画像を伝送する場合に有効である。
さらに、情報処理システム100では、伝送レートの平滑化を行ってもフレームレートを動的に変更しながら、低遅延伝送同期再生が可能であるため、データのバースト伝送を行う必要がなく、ネットワークでのパケット損失の発生を抑制することができる。
つまり、情報処理システム100の各装置は、画像の低遅延伝送同期再生をより確実に実現することができる。
なお、以上においては、送信装置101が、動画像データにサンプリング時刻に同期したタイムスタンプを付加し、受信装置102がそのタイムスタンプに同期して動画像データの各フレームを再生するように説明したが、このような再生時刻を制御するための情報は、サンプリング時刻に同期した情報であればタイムスタンプ以外の情報であってもよい。例えばタイムスタンプの代わりに、フレームIDやフレーム内ブロックID等、所定のデータ単位毎に動画像データに割り当てられるID値が用いられるようにしてもよい。サンプリングレートが明らかであれば、受信装置102は、これらのフレームIDやフレーム内ブロックIDからタイムスタンプと同様の情報を得ることが出来る。送信装置101は、このような、動画像データの各フレームのサンプリング時刻に同期した、所定のデータ単位毎に動画像データに割り当てられるID値を、フレームレート変換に応じて更新することにより、上述したタイムスタンプの場合と同様に、受信装置102における再生タイミングを制御することができる。すなわち、情報処理システム100の各装置は、画像の低遅延伝送同期再生をより確実に実現することができる。
<2.第2の実施の形態>
[符号化処理]
次に、以上のような情報処理システム100において適用される符号化処理および復号処理について説明する。
符号化部112の符号化方法(復号部133の復号方法)は基本的に任意であり、どのような方法でも適用可能であるが、例えば、特許文献1において提案されている動画像の各ピクチャの数ラインを1つの符号化ブロックとして符号化を行う動画像符号化方式を用いてもよい。
最初に符号化部112の構成について説明する。
図10は、本発明を適用した符号化部112の詳細な構成例を示すブロック図である。図10に示されるように符号化部112は、ウェーブレット変換部211、途中計算用バッファ部212、係数並び替え用バッファ部213、係数並び替え部214、エントロピ符号化部215、タイムスタンプ算出部216、およびパケタイズ部217を有する。
符号化部112に入力された画像データは、ウェーブレット変換部211を介して途中計算用バッファ部212に一時的に溜め込まれる。ウェーブレット変換部211は、途中計算用バッファ部212に溜め込まれた画像データに対してウェーブレット変換を施す。すなわち、ウェーブレット変換部211は、途中計算用バッファ部212から画像データを読み出して分析フィルタによりフィルタ処理を施して低域成分および高域成分の係数のデータを生成し、生成された係数データを途中計算用バッファ部212に格納する。
ウェーブレット変換部211は、水平分析フィルタと垂直分析フィルタとを有し、画像データ群に対して、画面水平方向と画面垂直方向の両方について分析フィルタ処理を行う。ウェーブレット変換部211は、途中計算用バッファ部212に格納された低域成分の係数データを再度読み出し、読み出した係数データに対して分析フィルタによるフィルタ処理を施して、高域成分および低域成分の係数のデータをさらに生成する。生成された係数データは、途中計算用バッファ部212に格納される。
ウェーブレット変換部211は、この処理を繰り返して分解レベルが所定レベルに達したら、途中計算用バッファ部212から係数データを読み出し、読み出された係数データを係数並び替え用バッファ部213に書き込む。
係数並び替え部214は、係数並び替え用バッファ部213に書き込まれた係数データを所定の順序で読み出し、エントロピ符号化部215に供給する。エントロピ符号化部215は、供給された係数データを所定の方法で量子化し、例えばハフマン符号化や算術符号化といった所定のエントロピ符号化方式で符号化する。エントロピ符号化部215は、生成した符号化データをタイムスタンプ算出部216に供給する。
タイムスタンプ算出部216は、供給された符号化データのタイムスタンプ値を、そのデータのキャプチャ時刻情報に基づいて算出する。つまり、タイムスタンプ算出部216は、キャプチャ時刻に同期したタイムスタンプ値を算出する。タイムスタンプ算出部216は、算出したタイムスタンプ値を、符号化データとともにパケタイズ部217に供給する。
パケタイズ部217は、供給された符号化データをRTPパケット化し、さらに、タイムスタンプ値をRTPタイムスタンプ値として各パケットに付加する。パケタイズ部217は、生成したパケットをフレームレート変換部113に供給する。
次に、図10のウェーブレット変換部211で行われる処理について、より詳細に説明する。先ず、ウェーブレット変換について、概略的に説明する。画像データに対するウェーブレット変換では、図11に概略的に示されるように、画像データを空間周波数の高い帯域と低い帯域とに分割する処理を、分割の結果得られる空間周波数の低い帯域のデータに対して再帰的に繰り返す。こうして、空間周波数の低い帯域のデータをより小さな領域に追い込んでいくことで、効率的な圧縮符号化を可能とする。
なお、図11は、画像データの最低域成分領域に対する低域成分の領域Lおよび高域成分の領域Hへの分割処理を3回、繰り返し、分割の階層の総数を示す分割レベル=3とした場合の例である。図11において、"L"および"H"は、それぞれ低域成分および高域成分を表し、"L"および"H"の順序は、前側が横方向に分割した結果の帯域を示し、後側が縦方向に分割した結果の帯域を示す。また、"L"および"H"の前の数字は、その領域の階層を示しており、低域成分の階層ほど小さい値で表されている。この階層の最大値が、ウェーブレット変換のその時の分割レベル(分割数)を示す。
また、図11の例から分かるように、画面の右下の領域から左上の領域にかけて段階的に処理がなされ、低域成分が追い込まれていく。すなわち、図11の例では、画面の右下の領域が最も低域成分の少ない(高域成分が最も多く含まれる)領域3HHとされる、画面が4分割された左上の領域は、さらに4分割され、この4分割された領域のうち左上の領域がさらに4分割される。最も左上隅の領域は、最も低域成分を多く含む領域0LLとされる。
低域成分に対して繰り返し変換および分割を行うのは、画像のエネルギが低域成分に集中しているためである。このことは、図12Aに一例が示される分割レベル=1の状態から、図12Bに一例が示される分割レベル=3の状態のように分割レベルを進めていくに従って、図12Bに示されるようにしてサブバンドが形成されていくことからも、理解される。例えば、図11におけるウェーブレット変換の分割レベルは3であり、この結果、10個のサブバンドが形成されている。
ウェーブレット変換部211は、通常、低域フィルタと高域フィルタとから構成されるフィルタバンクを用いて、上述のような処理を行う。なお、デジタルフィルタは、通常、複数タップ長のインパルス応答すなわちフィルタ係数を持っているため、フィルタ処理を行えるだけの入力画像データまたは係数データを予めバッファリングしておく必要がある。また、ウェーブレット変換を多段にわたって行う場合も同様に、前段で生成したウェーブレット変換係数を、フィルタ処理が行える数だけバッファリングしておく必要がある。
このウェーブレット変換の具体的な例として、5×3フィルタを用いた方法について説明する。この5×3フィルタを用いた方法は、JPEG(Joint Photographic Experts Group)2000規格でも採用されており、少ないフィルタタップ数でウェーブレット変換を行うことができる点で、優れた方法である。
5×3フィルタのインパルス応答(Z変換表現)は、次の式(11)および式(12)に示すように、低域フィルタH0(z)と、高域フィルタH1(z)とから構成される。
H0(z)=(−1+2z-1+6z-2+2z-3−z-4)/8 ・・・(11)
H1(z)=(−1+2z-1−z-2)/2 ・・・(12)
これら式(11)および式(12)によれば、低域成分および高域成分の係数を、直接的に算出することができる。ここで、例えば、図13に示されるようにリフティング(Lifting)技術を用いることで、フィルタ処理の計算を減らすことができる。
次に、このウェーブレット変換方法について、さらに具体的に説明する。図13は、5×3フィルタのリフティングによるフィルタ処理を、分解レベル=2まで実行した例を示している。なお、図13において、図の左側に分析フィルタとして示される部分は、図10のウェーブレット変換部211のフィルタである。また、図の右側に合成フィルタとして示される部分は、後述するウェーブレット逆変換部のフィルタである。
なお、以下の説明では、例えば表示デバイスなどにおいて画面の左上隅の画素を先頭として、画素が画面の左端から右端に向けて走査されて1ラインが構成され、ライン毎の走査が画面の上端から下端に向けて行われて1画面が構成されるものとする。
図13において、左端列は、原画像データのライン上の対応する位置にある画素データが縦方向に並べられて示されている。すなわち、ウェーブレット変換部211におけるフィルタ処理は、垂直フィルタを用いて画面上を画素が縦に走査されて行われる。左端から1列目乃至3列目が分割レベル=1のフィルタ処理を示し、4列目乃至6列目が分割レベル=2のフィルタ処理を示す。左端から2列目は、左端の原画像データの画素に基づく高域成分出力、左端から3列目は、原画像データおよび高域成分出力に基づく低域成分出力を示す。分割レベル=2のフィルタ処理は、左端から4列目乃至6列目に示されるように、分割レベル=1のフィルタ処理の出力に対して処理がなされる。
分解レベル=1のフィルタ処理において、第1段階のフィルタ処理として、原画像データの画素に基づき高域成分の係数データが算出され、第2段階のフィルタ処理として、第1段階のフィルタ処理で算出された高域成分の係数データと、原画像データの画素とに基づき低域成分の係数データが算出される。分解レベル=1の一例のフィルタ処理を、図13における左側(分析フィルタ側)の第1列目乃至第3列目に示す。算出された高域成分の係数データは、図10の係数並び替え用バッファ部213に格納される。また、算出された低域成分の係数データは、図10の途中計算用バッファ部212に格納される。
図13においては、係数並び替え用バッファ部213は、一点鎖線で囲まれた部分として示し、途中計算用バッファ部212は、点線で囲まれた部分として示す。
途中計算用バッファ部212に保持された分解レベル=1のフィルタ処理の結果に基づき、分解レベル=2のフィルタ処理が行われる。分解レベル=2のフィルタ処理では、分解レベル=1のフィルタ処理において低域成分の係数として算出された係数データを、低域成分および高域成分を含んだ係数データと見做して、分解レベル=1と同様のフィルタ処理を行う。分解レベル=2のフィルタ処理により算出された、高域成分の係数データおよび低域成分の係数データは、係数並び替え用バッファ部213に格納される。
ウェーブレット変換部211では、上述したようなフィルタ処理を、画面の水平方向および垂直方向にそれぞれ行う。例えば、先ず、分解レベル=1のフィルタ処理を水平方向に行い、生成された高域成分および低域成分の係数データを途中計算用バッファ部212に格納する。次に、途中計算用バッファ部212に格納された係数データに対して、垂直方向に分解レベル=1のフィルタ処理を行う。この分解レベル=1の水平および垂直方向の処理により、高域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域HHおよび領域HLと、低域成分をさらに高域成分および低域成分に分解した係数データのそれぞれによる領域LHおよび領域LLとの4領域が形成される。
そして、分解レベル=2では、水平方向および垂直方向のそれぞれについて、分解レベル=1で生成された低域成分の係数データに対してフィルタ処理が行われる。すなわち、分解レベル=2では、分解レベル=1で分割されて形成された領域LLがさらに4分割され、領域LL内にさらに領域HH、領域HL、領域LHおよび領域LLが形成される。
ウェーブレット変換部211は、ウェーブレット変換によるフィルタ処理を、画面の縦方向について、数ライン毎の処理に分割して、複数回に分けて段階的に行うようにしている。図13の例では、画面上の第1ラインからの処理になる1回目の処理は、7ラインについてフィルタ処理を行い、8ライン目からの処理になる2回目以降の処理は、4ライン毎にフィルタ処理を行っている。このライン数は、高域成分と低域成分とに2分解した後に、1ライン分の最低域成分が生成されるために必要なライン数に基づく。
なお、以下において、この最低域成分の1ライン分(最低域成分のサブバンドの1ライン分の係数データ)を生成するために必要な、他のサブバンドも含めたラインの集まりを、プレシンクト(またはラインブロック)と称する。ここでラインとは、ウェーブレット変換前の画像データに対応するピクチャ若しくはフィールド内、または各サブバンド内において形成される1行分の画素データ若しくは係数データのことを示す。すなわち、プレシンクト(ラインブロック)とは、ウェーブレット変換前の元の画像データにおける、ウェーブレット変換後の最低域成分のサブバンド1ライン分の係数データを生成するために必要なライン数分の画素データ群、または、その画素データ群をウェーブレット変換して得られる各サブバンドの係数データ群のことを示す。
図13によれば、分解レベル=2のフィルタ処理結果で得られる係数C5は、係数C4および途中計算用バッファ部212に格納された係数Caに基づき算出され、係数C4は、途中計算用バッファ部212に格納された係数Ca、係数Cbおよび係数Ccに基づき算出される。さらに、係数Ccは、係数並び替え用バッファ部213に格納される係数C2および係数C3、並びに、第5ラインの画素データに基づき算出される。また、係数C3は、第5ライン乃至第7ラインの画素データに基づき算出される。このように、分割レベル=2における低域成分の係数C5を得るためには、第1ライン乃至第7ラインの画素データが必要とされる。
これに対して、2回目以降のフィルタ処理においては、前回までのフィルタ処理で既に算出され係数並び替え用バッファ部213に格納されている係数データを用いることができるので、必要なライン数が少なくて済む。
すなわち、図13によれば、分解レベル=2のフィルタ処理結果で得られる低域成分の係数のうち、係数C5の次の係数である係数C9は、係数C4および係数C8、並びに、途中計算用バッファ部212に格納された係数Ccに基づき算出される。係数C4は、上述した1回目のフィルタ処理により既に算出され、係数並び替え用バッファ部213に格納されている。同様に、係数Ccは、上述の1回目のフィルタ処理により既に算出され、途中計算用バッファ部212に格納されている。したがって、この2回目のフィルタ処理においては、係数C8を算出するためのフィルタ処理のみが、新たになされることになる。この新たなフィルタ処理は、第8ライン乃至第11ラインがさらに用いられてなされる。
このように、2回目以降のフィルタ処理は、前回までのフィルタ処理により算出され途中計算用バッファ部212および係数並び替え用バッファ部213に格納されたデータを用いることができるので、それぞれ4ライン毎の処理で済むことになる。
なお、画面上のライン数が符号化のライン数と合致しない場合は、原画像データのラインを所定の方法で複製してライン数を符号化のライン数と合わせて、フィルタ処理を行う。
このように、最低域成分1ライン分の係数データが得られるだけのフィルタ処理を段階的に、画面全体のラインに対して複数回に分けて(プレシンクト単位で)行うことで、符号化データを伝送した際に低遅延で復号画像を得ることを可能としている。
ウェーブレット変換を行うためには、ウェーブレット変換そのものを実行するために用いられる第1のバッファと、所定の分割レベルまで処理を実行する間に生成される係数を格納するための第2のバッファとが必要とされる。第1のバッファは、途中計算用バッファ部212に対応し、図13においては点線で囲まれて示されている。また、第2のバッファは、係数並び替え用バッファ部213に対応し、図13においては一点鎖線に囲まれて示されている。第2のバッファに格納された係数は、復号の際に用いられるため、後段のエントロピ符号化処理の対象とされる。
次に、図10の係数並び替え部214の処理について説明する。上述したように、ウェーブレット変換部211で算出された係数データは、係数並び替え用バッファ部213に格納され、係数並び替え部214により順序を並び替えられて読み出され、コーディングユニット単位でエントロピ符号化部215に送出される。
既に説明したように、ウェーブレット変換においては、高域成分側から低域成分側へと係数が生成されていく。図13の例では、1回目において、原画像の画素データにより、分解レベル=1のフィルタ処理で、高域成分の係数C1、係数C2および係数C3が順次生成される。そして、分解レベル=1のフィルタ処理で得られた低域成分の係数データに対して分解レベル=2のフィルタ処理を行い、低域成分の係数C4および係数C5が順次生成される。すなわち、第1回目では、係数C1、係数C2、係数C3、係数C4、係数C5の順に、係数データが生成される。この係数データの生成順は、ウェーブレット変換の原理上、必ずこの順序(高域から低域の順)になる。
これに対して、復号側では、低遅延で即座に復号を行うためには低域成分から画像の生成および出力を行う必要がある。そのため、符号化側で生成された係数データを最低域成分側から高域成分側に向けて並び替えて復号側に供給することが望ましい。
図13の例を用いて、より具体的に説明する。図13の右側は、逆ウェーブレット変換を行う合成フィルタ側を示す。復号側の、出力画像データの第1ライン目を含む1回目の合成処理(逆ウェーブレット変換処理)は、符号化側の1回目のフィルタ処理で生成された最低域成分の係数C4および係数C5と、係数C1とを用いて行われる。
すなわち、1回目の合成処理においては、係数C5、係数C4、係数C1の順に符号化側から復号側に係数データを供給し、復号側では、分解レベル=2に対応する合成処理である合成レベル=2の処理で、係数C5および係数C4に対して合成処理を行って係数Cfを生成し、バッファに格納する。そして、分解レベル=1に対応する合成処理である合成レベル=1の処理で、この係数Cfと係数C1に対して合成処理を行って、第1ラインを出力する。
このように、第1回目の合成処理においては、符号化側で係数C1、係数C2、係数C3、係数C4、係数C5の順に生成され係数並び替え用バッファ部13に格納された係数データが、係数C5、係数C4、係数C1、・・・の順に並び替えられて復号側に供給される。
なお、図13の右側に示す合成フィルタ側では、符号化側から供給される係数について、括弧内に符号化側での係数の番号を記し、括弧外に合成フィルタのライン順を記す。例えば係数C1(5)は、図13の左側の分析フィルタ側では係数C5であって、合成フィルタ側では第1ライン目であることを示す。
符号化側の2回目以降のフィルタ処理で生成された係数データによる復号側の合成処理は、前回の合成処理の際に合成あるいは符号化側から供給された係数データを用いて行うことができる。図13の例では、符号化側の2回目のフィルタ処理で生成された低域成分の係数C8および係数C9を用いて行う、復号側の2回目の合成処理は、符号化側の1回目のフィルタ処理で生成された係数C2および係数C3がさらに必要とされ、第2ライン乃至第5ラインが復号される。
すなわち、2回目の合成処理においては、係数C9、係数C8、係数C2、係数C3の順に符号化側から復号側に係数データを供給する。復号側では、合成レベル=2の処理において、係数C8および係数C9と、1回目の合成処理の際に符号化側から供給された係数C4とを用いて係数Cgを生成し、バッファに格納する。この係数Cgと、上述の係数C4と、1回目の合成処理により生成されバッファに格納された係数Cfとを用いて係数Chを生成し、バッファに格納する。
そして、合成レベル=1の処理において、合成レベル=2の処理で生成されバッファに格納された係数Cgおよび係数Chと、符号化側から供給された係数C2(合成フィルタでは係数C6(2)と示されている)および係数C3(合成フィルタでは係数C7(3)と示されている)とを用いて合成処理が行われ、第2ライン乃至第5ラインが復号される。
このように、第2回目の合成処理においては、符号化側で係数C2、係数C3、(係数C4、係数C5)、係数C6、係数C7、係数C8、係数C9の順に生成された係数データが、係数C9、係数C8、係数C2、係数C3、・・・の順に並び替えられて復号側に供給される。
3回目以降の合成処理においても、同様にして、係数並び替え用バッファ部213に格納された係数データが所定の順序に並び替えられて復号部に供給され、4ラインずつ、ラインが復号される。
なお、符号化側において画面の下端のラインを含むフィルタ処理(以下、最後の回と呼ぶ)に対応する復号側の合成処理では、それまでの処理で生成されバッファに格納された係数データを全て出力することになるため、出力ライン数が多くなる。図13の例では、最後の回に8ラインが出力される。
なお、係数並び替え部214による係数データの並び替え処理は、例えば、係数並び替え用バッファ部213に格納された係数データを読み出す際の読み出しアドレスを、所定の順序に設定することでなされる。
図14を用いて、上述までの処理をより具体的に説明する。図14は、5×3フィルタを用いて、分解レベル=2までウェーブレット変換によるフィルタ処理を施した例である。ウェーブレット変換部11において、図14Aに一例が示されるように、入力画像データの第1ラインから第7ラインに対して1回目のフィルタ処理が水平および垂直方向にそれぞれ行われる(図14AのIn−1)。
1回目のフィルタ処理の分解レベル=1の処理において、係数C1、係数C2、および係数C3の3ライン分の係数データが生成され、図14Bに一例が示されるように、分解レベル=1で形成される領域HH、領域HLおよび領域LHのそれぞれに配置される(図14BのWT−1)。
また、分解レベル=1で形成される領域LLは、分解レベル=2による水平および垂直方向のフィルタ処理でさらに4分割される。分解レベル=2で生成される係数C5および係数C4は、分解レベル=1による領域LL内において、領域LLに係数C5による1ラインが配置され、領域HH、領域HLおよび領域LHのそれぞれに、係数C4による1ラインが配置される。
ウェーブレット変換部211による2回目以降のフィルタ処理では、4ライン毎にフィルタ処理が行われ(図14AのIn−2・・・)、分解レベル=1で2ラインずつの係数データが生成され(図14BのWT−2)、分解レベル=2で1ラインずつの係数データが生成される。
図13の2回目の例では、分解レベル=1のフィルタ処理で係数C6および係数C7の2ライン分の係数データが生成され、図14Bに一例が示されるように、分解レベル1で形成される領域HH、領域HLおよび領域LHの、1回目のフィルタ処理で生成された係数データの次から配置される。同様に、分解レベル=1による領域LL内において、分解レベル=2のフィルタ処理で生成された1ライン分の係数C9が領域LLに配置され、1ライン分の係数C8が領域HH、領域HLおよび領域LHにそれぞれ配置される。
図14Bのようにウェーブレット変換されたデータを復号した際には、図14Cに一例が示されるように、符号化側の第1ライン乃至第7ラインによる1回目のフィルタ処理に対して、復号側の1回目の合成処理による第1ラインが出力される(図14CのOut−1)。以降、符号化側の2回目から最後の回の前までのフィルタ処理に対して、復号側で4ラインずつが出力される(図14CのOut−2・・・)。そして、符号化側の最後の回のフィルタ処理に対して、復号側で8ラインが出力される。
ウェーブレット変換部211で高域成分側から低域成分側へと生成された係数データは、係数並び替え用バッファ部213に順次格納される。係数並び替え部214は、上述した係数データの並び替えが可能となるまで係数並び替え用バッファ部213に係数データが蓄積されると、係数並び替え用バッファ部213から合成処理に必要な順に並び替えて係数データを読み出す。読み出された係数データは、エントロピ符号化部215に順次、供給される。
エントロピ符号化部215は、供給される係数データを順次符号化し、生成した符号化データをタイムスタンプ算出部216に供給する。タイムスタンプ算出部216は、上述したようにタイムスタンプを算出し、パケタイズ部217は、上述したようにパケット化する。
次に、図10の符号化部112に対応する復号部について説明する。図15は、本発明を適用した復号部の構成例を示すブロック図である。図15に示されるように、復号部133は、エントロピ復号部221、係数バッファ部222、ウェーブレット逆変換部223、および再生時刻調整バッファ224を有する。
エントロピ復号部221は、供給された符号化データをエントロピ符号化部215による符号化方法に対応する復号方法で復号し、係数データを得る。その係数データは、係数バッファ部222に格納される。ウェーブレット逆変換部223は、係数バッファ部222に格納された係数データを用いて、合成フィルタによる合成フィルタ処理(ウェーブレット逆変換)を行い、合成フィルタ処理の結果を再び係数バッファ部222に格納する。ウェーブレット逆変換部223は、この処理を分解レベルに応じて繰り返して、復号された画像データ(出力画像データ)を得ると、それを再生時刻調整バッファ224に一旦保持させ、同期制御部142により決定された同期再生時刻に出力させる。
[処理の流れ]
次に、符号化部112および復号部133により実行される処理の流れの例について説明する。最初に、図16のフローチャートを参照して符号化部112により実行される符号化処理の流れの例を説明する。なお、この処理は、図7のステップS122乃至ステップS124に対応する。
符号化処理が開始されると、ウェーブレット変換部211は、ステップS201において、処理対象プレシンクトの番号Aを初期設定にする。通常の場合、番号Aは「1」に設定される。設定が終了すると、ウェーブレット変換部211は、ステップS202において、最低域サブバンドにおいて上からA番目の1ラインを生成するのに必要なライン数(すなわち、1プレシンクト)の画像データを取得する。
また、ウェーブレット変換部211は、ステップS203において、その画像データに対して、画面垂直方向に並ぶ画像データに対して分析フィルタリングを行う垂直分析フィルタリング処理を行う。ウェーブレット変換部211は、さらに、その画像データに対して、ステップS204において画面水平方向に並ぶ画像データに対して分析フィルタリング処理を行う水平分析フィルタリング処理を行う。
ステップS205においてウェーブレット変換部211は、分析フィルタリング処理を最終レベルまで行ったか否かを判定する。分解レベルが最終レベルに達していないと判定された場合、ステップS203に戻り、現在の分解レベルに対して、ステップS203およびステップS204の分析フィルタリング処理が繰り返される。
ステップS205において、分析フィルタリング処理が最終レベルまで行われたと判定された場合、ステップS206に進む。
ステップS206において、係数並び替え部214は、プレシンクトA(ピクチャ(フレームまたはフィールド)の上からA番目のプレシンクト)の係数を低域から高域の順番に並び替える。エントロピ符号化部215は、ステップS207において、その係数に対してライン毎にエントロピ符号化する。
ステップS208において、タイムスタンプ算出部216は、エントロピ符号化されて得られた符号化データの、キャプチャ時刻に同期したタイムスタンプを算出する。ステップS209において、パケタイズ部217は、符号化データをパケット化する。このときパケタイズ部217は、算出されたタイムスタンプ値をパケットに付加する。
ステップS210において、パケタイズ部217は、生成したパケットを送出する。
ウェーブレット変換部211は、ステップS211において番号Aの値を「1」インクリメントして次のプレシンクトを処理対象とし、ステップS212において、処理対象のピクチャ(フレームまたはフィールド)について、未処理の画像入力ラインが存在するか否かを判定する。未処理の画像入力ラインが存在すると判定された場合、処理は、ステップS202に戻り、新たな処理対象のプレシンクトに対してそれ以降の処理が繰り返される。
以上のようにステップS202乃至ステップS212の処理が繰り返し実行され、各プレシンクトが符号化される。そして、ステップS212において、未処理の画像入力ラインが存在しないと判定された場合、そのピクチャに対する符号化処理が終了される。次のピクチャに対しては新たに符号化処理が開始される。
このように、ウェーブレット変換部211は、プレシンクト単位で垂直分析フィルタリング処理および水平分析フィルタリング処理を最終レベルまで連続して行うので、従来の方法と比較して、一度に(同時期に)保持する(バッファリングする)必要のあるデータの量が少なく、用意すべきバッファのメモリ量を大幅に低減させることができる。また、最終レベルまで分析フィルタリング処理が行われることにより、後段の係数並び替えやエントロピ符号化等の処理も行うことができる(つまり、係数並び替えやエントロピ符号化をプレシンクト単位で行うことができる)。従って、画面全体に対してウェーブレット変換を行う方法と比較して遅延時間を大幅に低減させることができる。
次に、図17のフローチャートを参照して、復号部133により実行される復号処理の流れの例を説明する。なお、この処理は、図8のステップS144およびステップS145に対応する。
復号処理が開始されると、エントロピ復号部221は、ステップS231において、復号部133の外部より供給される符号化データを取得し、ステップS232において、ライン毎に符号化データをエントロピ復号する。
ステップS233において、係数バッファ部222は、その復号されて得られた係数データを保持する。ステップS234においてウェーブレット逆変換部223は、係数バッファ部222に1プレシンクト分の係数データが蓄積されたか否かを判定する。1プレシンクト分の係数データが蓄積されていないと判定された場合、処理は、ステップS231に戻り、それ以降の処理が実行される。つまり、ウェーブレット逆変換部223は、係数バッファ部222に1プレシンクト分の係数データが蓄積されるまで待機する。
ステップS234において係数バッファ部222に1プレシンクト分の係数データが蓄積されたと判定された場合、処理はステップS235に進む。ステップS235において、ウェーブレット逆変換部223は、係数バッファ部222に保持されている係数データを1プレシンクト分読み出す。ステップS236において、ウェーブレット逆変換部223は、その読み出した係数データに対して、画面垂直方向に並ぶ係数データに対して合成フィルタリング処理を行う垂直合成フィルタリング処理を行う。
ステップS237において、ウェーブレット逆変換部223は、画面水平方向に並ぶ係数データに対して合成フィルタリング処理を行う水平合成フィルタリング処理を行う。ステップS238において、ウェーブレット逆変換部223は、合成フィルタリング処理がレベル1(分解レベルの値が「1」のレベル)まで終了したか否か、すなわち、ウェーブレット変換前の状態まで逆変換したか否かを判定する。レベル1まで達していないと判定された場合、処理はステップS236に戻り、ステップS236およびステップS237のフィルタリング処理が繰り返される。
ステップS238において、レベル1までウェーブレット逆変換処理が終了されたと判定した場合、処理はステップS239に進む。ステップS239において、ウェーブレット逆変換部223は、ウェーブレット逆変換処理により得られた画像データを、再生時刻調整バッファ224に一時的に保持させながら、同期制御部142により決定された同期再生時刻に外部に出力する。
ステップS240において、エントロピ復号部221は、復号処理を終了するか否かを判定する。復号処理を終了しないと判定された場合、処理はステップS231に戻り、それ以降の処理が繰り返される。また、ステップS240において、プレシンクトが終了するなどして復号処理が終了されると判定した場合、復号処理は終了される。
従来のウェーブレット逆変換の方法の場合、処理対象の分解レベルの全係数に対して、まず、画面水平方向に水平合成フィルタリング処理を行い、次に画面垂直方向に垂直合成フィルタリング処理を行っていた。つまり、各合成フィルタリング処理の度に、その合成フィルタリング処理の結果をバッファに保持させる必要があるが、その際、バッファは、その時点の分解レベルの合成フィルタリング結果と、次の分解レベルの全係数を保持する必要があり、多大なメモリ容量を必要とすることになる(保持するデータ量が多い)。
また、この場合、ピクチャ(フレームまたはフィールド)内において全てのウェーブレット逆変換が終了するまで画像データ出力が行われないので、入力から出力までの遅延時間が増大する。
これに対して、復号部133のウェーブレット逆変換部223の場合、上述したようにプレシンクト単位で垂直合成フィルタリング処理および水平合成フィルタリング処理をレベル1まで連続して行うので、従来の方法と比較して、一度に(同時期に)バッファリングする必要のあるデータの量が少なく、用意すべきバッファのメモリ量を大幅に低減させることができる。また、レベル1まで合成フィルタリング処理(ウェーブレット逆変換処理)が行われることにより、ピクチャ内の全画像データが得られる前に(プレシンクト単位で)画像データを順次出力させることができ、従来の方法と比較して遅延時間を大幅に低減させることができる。
以上のような各種処理は、例えば、図18に示されるように、適宜、並列的に実行させることもできる。
図18は、図10に示される符号化部112および図15に示される復号部133の各部により実行される処理の各要素の並列動作の例を概略的に示す図である。この図18は、上述した図14と対応するものである。画像データの入力In−1(図18A)に対して、ウェーブレット変換部211(図10)で1回目のウェーブレット変換WT−1が施される(図18B)。図13を参照し説明したように、この1回目のウェーブレット変換WT−1は、最初の3ラインが入力された時点で開始され、係数C1が生成される。すなわち、画像データIn−1の入力からウェーブレット変換WT−1が開始されるまで、3ライン分の遅延が生じる。
生成された係数データは、係数並び替え用バッファ部213(図10)に格納される。以降、入力された画像データに対してウェーブレット変換が施され、1回目の処理が終了すると、そのまま2回目のウェーブレット変換WT−2に処理が移行する。
2回目のウェーブレット変換WT−2のための画像データIn−2の入力と、当該2回目のウェーブレット変換WT−2の処理と並列的に、係数並び替え部214(図1)により3個の、係数C1、係数C4、および係数C5の並び替えOrd−1が実行される(図18C)。
なお、ウェーブレット変換WT−1の終了から並び替えOrd−1が開始されるまでの遅延は、例えば、並び替え処理を係数並び替え部214に指示する制御信号の伝達に伴う遅延や、制御信号に対する係数並び替え部214の処理開始に要する遅延、プログラム処理に要する遅延といった、装置やシステム構成に基づく遅延であって、符号化処理における本質的な遅延ではない。
係数データは、並び替えが終了した順に係数並び替え用バッファ部213から読み出され、エントロピ符号化部215(図10)に供給され、エントロピ符号化EC−1が行われる(図18D)。このエントロピ符号化EC−1は、3個の、係数C1、係数C4、および係数C5の、全ての並び替えの終了を待たずに開始することができる。例えば、最初に出力される係数C5による1ラインの並び替えが終了した時点で、当該係数C5に対するエントロピ符号化を開始することができる。この場合、並び替えOrd−1の処理開始からエントロピ符号化EC−1の処理開始までの遅延は、1ライン分となる。
エントロピ符号化部215によるエントロピ符号化EC−1が終了した符号化データは、所定の信号処理が施された後、復号部133(図15)に伝送される(図18E)。
以上のように、符号化部112に対しては、1回目の処理による7ライン分の画像データ入力に続けて、画面上の下端のラインまで画像データが順次、入力される。符号化部112では、画像データの入力In−n(nは2以上)に伴い、上述したようにして、4ライン毎にウェーブレット変換WT−n、並び替えOrd−nおよびエントロピ符号化EC−nを行う。符号化部112における最後の回の処理に対する並び替えOrdおよびエントロピ符号化ECは、6ラインに対して行われる。これらの処理は、符号化部112において、図18A乃至図18Dに例示されるように、並列的に行われる。
符号化部112によるエントロピ符号化EC−1により符号化された符号化データは、各部を介して復号部133に供給される。復号部133のエントロピ復号部221(図15)は、供給された、エントロピ符号化EC−1により符号化された符号化データに対して、順次、エントロピ符号の復号iEC−1を行い、係数データを復元する(図18F)。復元された係数データは、順次、係数バッファ部222に格納される。ウェーブレット逆変換部223は、係数バッファ部222にウェーブレット逆変換が行えるだけ係数データが格納されたら、係数バッファ部222から係数データを読み出して、読み出された係数データを用いてウェーブレット逆変換iWT−1を行う(図18G)。
図13を参照して説明したように、ウェーブレット逆変換部223によるウェーブレット逆変換iWT−1は、係数C4および係数C5が係数バッファ部222に格納された時点で開始することができる。したがって、エントロピ復号部221による復号iEC−1が開始されてからウェーブレット逆変換部223によるウェーブレット逆変換iWT−1が開始されるまでの遅延は、2ライン分となる。
ウェーブレット逆変換部223において、1回目のウェーブレット変換による3ライン分のウェーブレット逆変換iWT−1が終了すると、ウェーブレット逆変換iWT−1で生成された画像データの出力Out−1が行われる(図18H)。出力Out−1では、図13および図14を用いて説明したように、第1ライン目の画像データが出力される。
復号部133に対して、符号化部112における1回目の処理による3ライン分の符号化された係数データの入力に続けて、エントロピ符号化EC−n(nは2以上)により符号化された係数データが順次、入力される。復号部133では、入力された係数データに対して、上述したようにして、4ライン毎にエントロピ復号iEC−nおよびウェーブレット逆変換iWT−nを行い、ウェーブレット逆変換iWT−nにより復元された画像データの出力Out−nを順次、行う。符号化部112の最後の回に対応するエントロピ復号iECおよびウェーブレット逆変換iWTは、6ラインに対して行われ、出力Outは、8ラインが出力される。これらの処理は、復号部133において、図18F乃至図18Hに例示されるように、並列的に行われる。
上述のようにして、画面上部から下部の方向に順番に、符号化部112および復号部133における各処理を並列的に行うことで、画像圧縮処理および画像復号処理をより低遅延で行うことが可能となる。
図18を参照して、5×3フィルタを用いて分解レベル=2までウェーブレット変換を行った場合の、画像入力から画像出力までの遅延時間を計算してみる。第1ライン目の画像データが符号化部112に入力されてから、この第1ライン目の画像データが復号部133から出力されるまでの遅延時間は、下記の各要素の総和となる。なお、ここでは、伝送路における遅延や、装置各部の実際の処理タイミングに伴う遅延などの、システムの構成により異なる遅延は、除外している。
(1)最初のライン入力から7ライン分のウェーブレット変換WT−1が終了するまでの遅延D_WT
(2)3ライン分の係数並び替えOrd−1に伴う時間D_Ord
(3)3ライン分のエントロピ符号化EC−1に伴う時間D_EC
(4)3ライン分のエントロピ復号iEC−1に伴う時間D_iEC
(5)3ライン分のウェーブレット逆変換iWT−1に伴う時間D_iWT
図18を参照して、上述の各要素による遅延の計算を試みる。(1)の遅延D_WTは、10ライン分の時間である。(2)の時間D_Ord、(3)の時間D_EC、(4)の時間D_iEC、および(5)の時間D_iWTは、それぞれ3ライン分の時間である。また、符号化部112において、並び替えOrd−1が開始されてから1ライン後には、エントロピ符号化EC−1を開始することができる。同様に、復号部133において、エントロピ復号iEC−1が開始されてから2ライン後には、ウェーブレット逆変換iWT−1を開始することができる。また、エントロピ復号iEC−1は、エントロピ符号化EC−1で1ライン分の符号化が終了した時点で処理を開始することができる。
したがって、この図18の例では、符号化部112に第1ライン目の画像データが入力されてから、復号部133から当該第1ライン目の画像データが出力されるまでの遅延時間は、10+1+1+2+3=17ライン分となる。
遅延時間について、より具体的な例を挙げて考察する。入力される画像データがHDTV(High Definition Television)のインタレースビデオ信号の場合、例えば1920画素×1080ラインの解像度で1フレームが構成され、1フィールドは、1920画素×540ラインとなる。したがって、フレーム周波数を30Hzとした場合、1フィールドの540ラインが16.67msec(=1sec/60フィールド)の時間に、符号化部112に入力されることになる。
したがって、7ライン分の画像データの入力に伴う遅延時間は、0.216msec(=16.67msec×7/540ライン)であり、例えば1フィールドの更新時間に対して非常に短い時間となる。また、上述した(1)の遅延D_WT、(2)の時間D_Ord、(3)の時間D_EC、(4)の時間D_iEC、および(5)の時間D_iWTの総和についても、処理対象のライン数が少ないため、遅延時間が非常に短縮される。
以上のように、ピクチャ以下の単位で符号化を行う低遅延符号化方式を適用する場合、低遅延性の維持が特に重要になる。情報処理システム100においては、上述したように、画像の低遅延伝送同期再生をより確実に実現することができる。つまり、情報処理システム100は、画像を破綻させないように、フレームレートを動的に変更しながら低遅延伝送を実現することができるので、より大きな効果を奏することができる。
なお、符号化・復号方法は、基本的に任意であり、上述した方法以外であっても良い。例えばMotion JPEG(Joint Photographic Experts Group)等の他のフレーム内符号化方式であってもよいし、ITU-T(International Telecommunication Union Telecommunication Standardization Sector)H.264等のフレーム間符号化方式であってもよい。
もちろん、符号化せずに、ベースバンドの画像データを送信装置101から受信装置102へ伝送させるようにしてもよい。
<3.第3の実施の形態>
[デバイスの構成]
また、以上においては、送信装置101がタイムスタンプ値を更新するように説明したが、これに限らず、受信装置102においてフレームレート等の情報から、タイムスタンプ値の更新を反映させた同期再生時刻(第1の実施の形態の場合と実質的に同様の同期再生時刻)を算出するようにしてもよい。
図19は、本発明を適用した情報処理システムの他の構成例を示すブロック図である。
図19に示される情報処理システム300は、図4の情報処理システム100に対応する。すなわち、情報処理システム300は、情報処理システム100の場合と同様に、送信装置301から受信装置302へ、インターネット網103を介して動画像の低遅延伝送同期再生を行うシステムである。
送信装置301は、図4の送信装置101に対応する。送信装置301は、基本的に送信装置101と同様の構成を有するが、タイムスタンプ制御部114の代わりにフレームレート値付加部314を有する。
フレームレート値付加部314は、フレームレート変換部113からフレームレート変換された符号化データのRTPパケットを取得するとともに、フレームレート変換部113から変換後の伝送フレームレートf_t(fps)の通知を受ける。
フレームレート値付加部314は、そのフレームレート変換部113から通知された伝送フレームレートf_t(fps)を示す情報を、符号化データのRTPパケットに付加する。フレームレート値付加部314は、フレームレート値を付加したパケットを平滑化部115に供給する。
すなわち、第1の実施の形態において、更新されたタイムスタンプが送信装置101から受信装置102に供給されたのに対して、本実施の形態においては、更新前のタイムスタンプと、変換後のフレームレート値が送信装置301から受信装置302に供給される。
受信装置302は、図4の受信装置102に対応する。受信装置302は、基本的に受信装置102と同様の構成を有するが、同期制御部142の代わりに同期制御部342を有する。
同期制御部342は、受信バッファ132に保持されているパケット(符号化データ)に対して、そのパケットに付加されて送信装置301から伝送されたタイムスタンプ値およびフレームレート値、並びに、キャプチャ部111のサンプリングフレームレートから、伝送レートの平滑化に対応する同期再生時刻を算出する。
つまり、本実施の形態の場合、送信装置側でタイムスタンプを更新する代わりに、受信装置302の同期制御部342が伝送フレームレートf_t(fps)、サンプリングフレームレートf_s(fps)からフレーム間引き率Mを求める。同期制御部342は、この値と、符号化ブロックデータに付加されたタイムスタンプ値TSから、同期再生時刻を算出する。算出される同期再生時刻は、基本的に上述した実施の態様によるものと同一である。
つまり、この同期再生時刻においても、低フレームレート時の各パケットの処理タイミングが伝送レートの平滑化に合わせて調整されており、画像が破綻しないようになされている。
[処理の流れ]
図20のフローチャートを参照して、送信装置301により実行される送信処理の流れの例を説明する。この送信処理は、図7のフローチャートに対応する。
上述したように、本実施の形態の場合も、送信処理は、基本的に図7のフローチャートを参照して説明した場合と同様に実行される。したがって、図20のステップS321乃至ステップS325の各処理は、図7のステップS121乃至ステップS125の各処理と同様に実行される。
ステップS326において、フレームレート値付加部314は、変換後のフレームレート値(伝送フレームレートf_t(frame/sec))を示すフレームレート情報を符号化データのパケットのヘッダ等に付加する。
図21は、伝送フレームレート付加の様子を説明する図である。
フレームレート情報は、例えばRTP拡張ヘッダ(RTP Extension Header)に、図21に示されるフォーマットにて格納される。フレームレート値付加部314は、図21に示されるように、DBP(Defined by Profile)の値を「0」にセットし、LEN(Length)の値を「1」にセットする。フレームレート値付加部314は、さらに、その後の32ビットにTFR(Transmission Frame Rate)を設け、伝送フレームレートf_t(fps)をセットする。例えば、伝送フレームレートf_tを1000倍し、小数点以下を切り捨てた値をセットする。
ステップS327およびステップS328の各処理は、図7のステップS127およびステップS128の各処理と同様に実行される。
ステップS328においてパケットが送信されると送信処理が終了される。以上のように、各パケットが順次送信される。この場合も、以上に説明した各ステップの処理は、準備が整い次第実行され、かつ、それぞれの処理単位での処理が終了次第、次のデータ対して処理が繰り返される。したがって、この場合も上述した各処理は適宜平行して実行される。
なお、この場合も、平滑化処理は、送信装置101外の、例えばルータやEthernet Switch等の中継装置において行われるようにしてもよい。
次に、図22のフローチャートを参照して、受信装置302により実行される受信処理の流れの例を説明する。この受信処理は、図8のフローチャートに対応する。
上述したように、本実施の形態の場合も、受信処理は、基本的に図8のフローチャートを参照して説明した場合と同様に実行される。したがって、図22のステップS341およびステップS342の各処理は、図8のステップS141およびステップS142の各処理と同様に実行される。
ステップS343において、同期制御部342は、受信バッファ132に保持されているパケットに対して、タイムスタンプ値(更新されていないタイムスタンプ値)のみではなく、送信装置101から通知された伝送フレームレートf_t(fps)や、受信装置102内に予め保持されているキャプチャ部111のサンプリングフレームレートも用いて、再生時刻を決定する。
同期制御部342は、フレーム間引き率Mを、例えば以下の式(13)のように算出する。
第1の実施の形態の場合と同様に、同期制御部342は、再生すべき符号化ブロックデータBを含むフレームデータ直後にフレーム間引きされたフレームデータの内の最後のフレームデータの一致する符号化ブロックデータの再生時刻を算出する。同期制御部342は、その再生時刻T2_p(TS)を以下の式(14)のように算出する。
なお、T_p(TS)は、式(9)の再生時刻であり、タイムスタンプから求められる再生時刻である。本実施の形態の場合、サンプリングレートに対応するタイムスタンプから求められる再生時刻となる。つまり、再生時刻T2_p(TS)は、タイムスタンプから求められる再生時刻に、サンプリングフレームレートと伝送フレームレートとにより算出される補正値(((f_s div f_t)−1)/f_s)を加算することにより求められる。
再生時刻T2_p(TS)にそれぞれのデータを再生することにより、図23のタイムチャート例に示されるように、第1の実施の形態の場合と同じタイミングでの再生が可能となる。
つまり、情報処理システム300も、画像の低遅延伝送同期再生をより確実に実現することができる。
なお、以上においては、受信装置302が予めキャプチャ部111におけるサンプリングフレームレートを把握しているように説明したが、これに限らず、送信装置301から受信装置302へサンプリングフレームレート情報を伝送するようにしてもよい。その場合、上述した伝送フレームレート情報とともに、サンプリングフレームレート情報が伝送されるようにすればよい。
また、フレームレート情報は、RTPパケットのRTP拡張ヘッダ(RTP Extension Header)以外のフィールドにセットされるようにしても良い。また、その他のパケットに付加されて伝送されるようにしてもよいし、他の伝送方法にて伝送されるようにしてもよい。
もちろん、本実施の形態の場合も、第1の実施の形態の場合と同様に、タイムスタンプの代わりに、例えばフレームIDやフレーム内ブロックID等の、動画像データの各フレームのサンプリング時刻に同期した、タイムスタンプ以外の情報が用いられるようにしてもよい。
<4.第4の実施の形態>
[デバイスの構成]
さらに、送信装置101がフレームレート情報の代わりに、フレームレート変換において間引いたフレーム数を示すフレームスキップ数を受信装置102に送信するようにしてもよい。この場合、受信装置102は、そのフレームスキップ数を用いて、タイムスタンプ値の更新を反映させた同期再生時刻(第1の実施の形態の場合と実質的に同様の同期再生時刻)を算出する。
図24は、本発明を適用した情報処理システムの、さらに他の構成例を示すブロック図である。
図24に示される情報処理システム400は、図4の情報処理システム100に対応する。すなわち、情報処理システム400は、情報処理システム100の場合と同様に、送信装置401から受信装置402へ、インターネット網103を介して動画像の低遅延伝送同期再生を行うシステムである。
送信装置401は、図4の送信装置101に対応する。送信装置401は、基本的に送信装置101と同様の構成を有するが、タイムスタンプ制御部114の代わりにフレームスキップ数付加部414を有する。
フレームスキップ数付加部414は、フレームレート変換部113からフレームレート変換された(フレームの間引き処理された)符号化データのRTPパケットを取得するとともに、フレームレート変換部113からフレームレート変換の際に間引いたフレーム数を示すフレームスキップ数N_s(frame)の通知を受ける。
より具体的に、フレームスキップ数は、変換後フレームデータと次の変換後フレームデータとの間に存在した変換前フレーム数を示し、フレーム間引き率をMとするとM−1で表される。
フレームスキップ数付加部414は、そのフレームレート変換部113から通知されたフレームスキップ数N_s(frame)を示す情報を、符号化データのRTPパケットに付加する。フレームスキップ数付加部414は、フレームスキップ数を付加したパケットを平滑化部115に供給する。
すなわち、第1の実施の形態において、更新されたタイムスタンプが送信装置101から受信装置102に供給されたのに対して、本実施の形態においては、更新前のタイムスタンプと、フレームスキップ数が送信装置401から受信装置402に供給される。
受信装置402は、図4の受信装置102に対応する。受信装置402は、基本的に受信装置102と同様の構成を有するが、同期制御部142の代わりに同期制御部442を有する。
同期制御部442は、受信バッファ132に保持されているパケット(符号化データ)に対して、そのパケットに付加されて送信装置401から伝送されたタイムスタンプ値およびフレームスキップ数、並びにキャプチャ部111のサンプリングフレームレートから、伝送レートの平滑化に対応する同期再生時刻を算出する。
つまり、本実施の形態の場合、送信装置側でタイムスタンプを更新する代わりに、受信装置402の同期制御部442がフレームスキップ数N_s(frame)、サンプリングフレームレートf_s(fps)、およびタイムスタンプ値TSから、同期再生時刻を算出する。算出される同期再生時刻は、基本的に上述した実施の態様によるものと同一である。
つまり、この同期再生時刻においても、低フレームレート時の各パケットの処理タイミングが伝送レートの平滑化に合わせて調整されており、画像が破綻しないようになされている。
[処理の流れ]
図25は、送信処理の流れの、さらに他の例を説明するフローチャートである。この送信処理は、図7のフローチャートに対応する。
上述したように、本実施の形態の場合も、送信処理は、基本的に図7のフローチャートを参照して説明した場合と同様に実行される。したがって、図25のステップS421乃至ステップS425の各処理は、図7のステップS121乃至ステップS125の各処理と同様に実行される。
ステップS426において、フレームスキップ数付加部414は、フレームスキップ数N_s(frame)を符号化データのパケットのヘッダ等に付加する。
図26は、フレームスキップ数付加の様子を説明する図である。
フレームスキップ数は、例えばRTP拡張ヘッダ(RTP Extension Header)に、図26に示されるフォーマットにて格納される。フレームスキップ数付加部414は、図26に示されるように、DBP(Defined by Profile)の値を「0」にセットし、LEN(Length)の値を「1」にセットする。フレームスキップ数付加部414は、さらに、その後の32ビットにNSF(Num of Skip Frame)を設け、フレームスキップ数N_s(frame)をセットする。
ステップS427およびステップS428の各処理は、図7のステップS127およびステップS128の各処理と同様に実行される。
ステップS428においてパケットが送信されると送信処理が終了される。以上のように、各パケットが順次送信される。この場合も、以上に説明した各ステップの処理は、準備が整い次第実行され、かつ、それぞれの処理単位での処理が終了次第、次のデータ対して処理が繰り返される。したがって、この場合も上述した各処理は適宜平行して実行される。
なお、この場合も、平滑化処理は、送信装置101外の、例えばルータやEthernet Switch等の中継装置において行われるようにしてもよい。
次に、図27のフローチャートを参照して、受信装置402により実行される受信処理の流れの例を説明する。この受信処理は、図8のフローチャートに対応する。
上述したように、本実施の形態の場合も、受信処理は、基本的に図8のフローチャートを参照して説明した場合と同様に実行される。したがって、図27のステップS441およびステップS442の各処理は、図8のステップS141およびステップS142の各処理と同様に実行される。
ステップS443において、同期制御部442は、受信バッファ132に保持されているパケットに対して、タイムスタンプ値(更新されていないタイムスタンプ値)のみではなく、送信装置101から通知されたフレームスキップ数N_s(frame)や、受信装置102内に予め保持されているキャプチャ部111のサンプリングフレームレートも用いて、再生時刻を決定する。
第1の実施の形態の場合と同様に、同期制御部442は、再生すべき符号化ブロックデータBを含むフレームデータ直後にフレーム間引きされたフレームデータの内の最後のフレームデータの一致する符号化ブロックデータの再生時刻を算出する。同期制御部442は、その再生時刻T3_p(TS)を以下の式(15)のように算出する。
なお、T_p(TS)は、式(9)の再生時刻であり、タイムスタンプから求められる再生時刻である。本実施の形態の場合、サンプリングレートに対応するタイムスタンプから求められる再生時刻となる。つまり、再生時刻T3_p(TS)は、タイムスタンプから求められる再生時刻に、サンプリングフレームレートとフレームスキップ数とにより算出される補正値(N_s/f_s)を加算することにより求められる。
再生時刻T3_p(TS)にそれぞれのデータを再生することにより、図28のタイムチャート例に示されるように、第1の実施の形態の場合と同じタイミングでの再生が可能となる。
なお、以上においては、受信装置402が予めキャプチャ部111におけるサンプリングフレームレートを把握しているように説明したが、これに限らず、送信装置401から受信装置402へサンプリングフレームレート情報を伝送するようにしてもよい。その場合、上述したフレームスキップ数とともに、サンプリングフレームレート情報が伝送されるようにすればよい。
また、フレームスキップ数は、RTPパケットのRTP拡張ヘッダ(RTP Extension Header)以外のフィールドにセットされるようにしても良い。また、その他のパケットに付加されて伝送されるようにしてもよいし、他の伝送方法にて伝送されるようにしてもよい。
もちろん、本実施の形態の場合も、第1の実施の形態の場合と同様に、タイムスタンプの代わりに、例えばフレームIDやフレーム内ブロックID等の、動画像データの各フレームのサンプリング時刻に同期した、タイムスタンプ以外の情報が用いられるようにしてもよい。
<5.第5の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図29に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
図29において、パーソナルコンピュータ500のCPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または記憶部513からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU501、ROM502、およびRAM503は、バス504を介して相互に接続されている。このバス504にはまた、入出力インタフェース510も接続されている。
入出力インタフェース510には、キーボード、マウスなどよりなる入力部511、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部512、ハードディスクなどより構成される記憶部513、モデムなどより構成される通信部514が接続されている。通信部514は、インターネットを含むネットワークを介しての通信処理を行う。
入出力インタフェース510にはまた、必要に応じてドライブ515が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア521が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部513にインストールされる。
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
この記録媒体は、例えば、図29に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。