(57)【要約】【課題】バッファの入出力制御をより適切に行うことができるようにする。【解決手段】書き込み制御部１５１は、プレシンクト属性情報格納領域１５３においてバンクフルが発生した場合、バンクオーバフラグ（Bank Over Flag）２１２をセットする。読み出し制御部１５４は、バンクオーバフラグ２１２の値を参照し、プレシンクト属性情報格納領域１５３においてバンクフルが発生しているか否かを把握する。また、読み出し制御部１５４は、プレシンクト属性情報格納領域１５３においてバンクフルが解消された場合、バンクオーバフラグ２１２を解除する。本発明は、例えば、情報処理システムに適用することができる。【選択図】図１１
2010068301.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するバンクが複数形成される記憶領域の全てのバンクに読み出していない前記データが記憶されたバンクフルの状態が発生したことを通知するバンクオーバフラグがセットされているか否かを確認するバンクオーバフラグ確認手段と、
前記バンクオーバフラグ確認手段により前記バンクオーバフラグがセットされていると確認された場合、前記データを読み出すバンクとして前記記憶領域の各バンクを巡回的に指定する読み出しポインタの指定先を、前記データを書き込むバンクとして前記記憶領域の各バンクを巡回的に指定する書き込みポインタの指定先のバンクの次のバンクに移動させる読み出しポインタ制御手段と、
前記読み出しポインタ制御手段により指定先が更新された前記読み出しポインタが指定するバンクから前記データを読み出す読み出し手段と
を備える情報処理装置。
【請求項２】
前記記憶領域を有し、前記データを各バンクに記憶する記憶手段と、
前記書き込みポインタを制御する書き込みポインタ制御手段と、
前記書き込みポインタ制御手段により制御される前記書き込みポインタが指定するバンクに前記データを書き込む書き込み手段と、
前記記憶手段の全てのバンクに、読み出していない前記データが記憶されたとき、前記バンクオーバフラグをセットするバンクオーバフラグ設定手段と
をさらに備える請求項１に記載の情報処理装置。
【請求項３】
前記書き込みポインタ制御手段は、前記書き込みポインタを更新する場合、前記読み出し手段により読み出し中であるバンクを指定しないように、前記書き込みポインタの指定先を決定する
請求項２に記載の情報処理装置。
【請求項４】
前記バンクオーバフラグ確認手段により確認された、前記バンクオーバフラグ設定手段によりセットされた前記バンクオーバフラグを解除するバンクオーバフラグ解除手段をさらに備える
請求項２に記載の情報処理装置。
【請求項５】
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの前に前記書き込みポインタを更新し、
前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの後に前記読み出しポインタを更新する
請求項２に記載の情報処理装置。
【請求項６】
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの前に前記書き込みポインタを更新し、
前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの前に前記読み出しポインタを更新する
請求項２に記載の情報処理装置。
【請求項７】
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの後に前記書き込みポインタを更新し、
前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの前に前記読み出しポインタを更新する
請求項２に記載の情報処理装置。
【請求項８】
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの後に前記書き込みポインタを更新し、
前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの後に前記読み出しポインタを更新する
請求項２に記載の情報処理装置。
【請求項９】
前記書き込み手段が前記データを書き込む間、書き込み中であることを示す書き込みフラグをセットする書き込みフラグ設定手段をさらに備える
請求項２に記載の情報処理装置。
【請求項１０】
前記読み出し手段が前記データを読み出す間、読み出し中であることを示す読み出しフラグをセットする読み出しフラグ設定手段をさらに備える
請求項１に記載の情報処理装置。
【請求項１１】
前記データは、画像データを符号化した、符号化単位毎の符号化データの属性を示す属性情報を含む
請求項１に記載の情報処理装置。
【請求項１２】
前記属性情報には、前記符号化データが保持される記憶領域のアドレス情報が付加されている
請求項１１に記載の情報処理装置。
【請求項１３】
情報処理装置の情報処理方法であって、
データを記憶するバンクが複数形成される記憶領域の全てのバンクに読み出していない前記データが記憶されたバンクフルの状態が発生したことを通知するバンクオーバフラグがセットされているか否かを確認し、
前記バンクオーバフラグがセットされていると確認された場合、前記データを読み出すバンクとして前記記憶領域の各バンクを巡回的に指定する読み出しポインタの指定先を、前記データを書き込むバンクとして前記記憶領域の各バンクを巡回的に指定する書き込みポインタの指定先のバンクの次のバンクに移動させ、
指定先が更新された前記読み出しポインタが指定するバンクから前記データを読み出す
ステップを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法に関し、特に、バッファの入出力制御をより適切に行うことができるようにした情報処理装置および方法に関する。
【背景技術】
【０００２】
従来、フレーム間相関や動き補償などを利用して高圧縮率を実現する符号化方式（コーデック）として、MPEG-2（Motion Picture Expert Group）やAVC（Advanced Video Codec）などがある。これらのコーデックは、高い圧縮率を誇るため、記録用途に適しているが、フレーム相関や動き補償を行うため、数フレーム単位での遅延が発生する。一方、フレーム間の相関を使わない符号化方式（コーデック）として、JPEG（Joint Picture Expert Group）やJPEG2000などがある。これらのコーデックは、上述したMPEG-2やAVCに比べて圧縮率では劣るが、フレーム内での閉じた圧縮方式であるため、遅延が１フレームに抑えられるという特徴を有する。したがって、これらのコーデックは、低遅延通信用途に適しており、例えば監視カメラなどで利用されている。さらに、JPEGやJPEG2000などよりも低遅延な方式として、ラインベースで圧縮を行うコーデック技術がある。ラインベース・コーデックとは、１フレーム全体を単位として圧縮するのではなく、数ライン単位で圧縮を行い、順次、出力するようなコーデックである。
【０００３】
画面全体の情報を使わずに数ラインの情報で圧縮パラメータを決定するために、ターゲットビットレート（画像ストリームの圧縮レート）に対して、処理単位毎のビット量ばらつきが大きくなる。ラインベース・コーデックの出力はVBR(Variable Bit Rate、可変ビットレート)であり、通信回線で送るときは、これをCBR(Constant Bit Rate、固定ビットレート)化して送る必要がある。そのため、エンコーダの後段において、コードストリームおよび付随するデータ（エンコードパラメータ）を一時的にバッファリングし、伝送路の状況に合わせて出力する必要がある（例えば、特許文献１参照）。
【０００４】
しかしながら以上のようなバッファリングにおいて、伝送路の状況が良くないとバッファからのデータ出力は停止され、伝送路の状況が再び改善するまで再開されない。これに対してバッファへのデータ入力は伝送路の状況とは関係無く行われる。つまり、伝送路の状況が良くないままだと、いずれはバッファがいっぱいになり（書き込みポインタが読み出しポインタに後ろから追いつき）バンクフル（Bank Full）状態が発生する。バンクフル状態においては、バッファの全バンクに未読み出しのデータが格納されているので、新たなデータを正常にバッファリングすることができない。
【０００５】
そこで、第１の方法として、バンクフルの状態で新たなデータが入力された場合、そのデータをバッファに格納せずに破棄することが考えられる。また、第２の方法として、バンクフルの状態で次のデータが入力された場合、全てのバンクを空にし、供給されたデータを格納する方法も考えられる。さらに、第３の方法として、バッファの容量（バンクの数）を増大させ、より多くの情報をバッファすることができるようにし、バンクフルの状態の発生を抑制する方法が考えられる。
【０００６】
【特許文献１】特開２００８−２８５４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、例えば第１の方法の場合、バンクに残っている古いデータは、これから伝送しても、デコーダ側でデコード時刻に間に合わない可能性がある。デコード時刻に間に合わない場合、その伝送したデータは、デコードされずに廃棄される。つまり、一般的に、デコード開始時刻に対して余裕のないデータをバッファに保持し続けるよりも、より時間的に余裕のある新しいデータをバンクに格納するほうが、デコード処理されるデータが増大する可能性が高くなり、復号画像の画質は有利になる。これに対して、上述した第１の方法のように新しいデータを破棄するようにすると、デコード側において新しいデータと古いデータの両方ともデコードされない可能性が高くなる。つまり、デコードされない部分が増大し、復号画像の画質が低下する恐れがあった。
【０００８】
また、例えば第２の方法の場合、制御は容易であるものの、破棄するデータ量が多く、データ読み出しの停止が極短期間であるとき、不要にデータを破棄することになり、復号画像の画質を不要に劣化させてしまう恐れがあった。殊に無線環境においては、レートの変動が激しく、一時的にデータを送れない状況になることが頻繁に発生するので、このような短期間のバンクフル状態が発生しやすい。
【０００９】
さらに、例えば第３の方法の場合、メモリ量が増大するため、回路規模やコストが増大する恐れがあった。また、メモリ量（バッファ量）が増大すると、伝送時の遅延時間が増大する。したがって、ラインベース・コーデックのように低遅延を重視するコーデックのデータをバッファリングする場合、その利点（低遅延）を損なう恐れがあった。さらに、データ読み出しの停止期間は一定であるとは限らず、また、伝送路として使用されるネットワークの特性などによってもその停止期間は大きく異なる。つまり、バッファ量の最適値は、システム構成やデータ等、多様な条件に依存し、特定することは困難である。そのため、バンクフルを発生させないようにするためには、最悪値を基にバンク数（バッファ量）を設定するしかないが、その場合、不要にメモリ容量が増大し、コストや消費電力が増大してしまう恐れがあった。バンク数を動的に変更することも考えられるが、制御が複雑になり、容易に実現することができないだけでなく、コスト、消費電力、および処理時間等が増大する恐れがあった。
【００１０】
以上のように、従来の方法では、バンクフル状態に対して適切に対応することが困難であり、バッファの入出力制御には、他の方法が求められていた。
【００１１】
本発明はこのような問題を解決するためのものであり、バッファの入出力制御をより適切に行うことができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の一側面は、データを記憶するバンクが複数形成される記憶領域の全てのバンクに読み出していない前記データが記憶されたバンクフルの状態が発生したことを通知するバンクオーバフラグがセットされているか否かを確認するバンクオーバフラグ確認手段と、前記バンクオーバフラグ確認手段により前記バンクオーバフラグがセットされていると確認された場合、前記データを読み出すバンクとして前記記憶領域の各バンクを巡回的に指定する読み出しポインタの指定先を、前記データを書き込むバンクとして前記記憶領域の各バンクを巡回的に指定する書き込みポインタの指定先のバンクの次のバンクに移動させる読み出しポインタ制御手段と、前記読み出しポインタ制御手段により指定先が更新された前記読み出しポインタが指定するバンクから前記データを読み出す読み出し手段とを備える情報処理装置である。
【００１３】
前記記憶領域を有し、前記データを各バンクに記憶する記憶手段と、前記書き込みポインタを制御する書き込みポインタ制御手段と、前記書き込みポインタ制御手段により制御される前記書き込みポインタが指定するバンクに前記データを書き込む書き込み手段と、前記記憶手段の全てのバンクに、読み出していない前記データが記憶されたとき、前記バンクオーバフラグをセットするバンクオーバフラグ設定手段とをさらに備えることができる。
【００１４】
前記書き込みポインタ制御手段は、前記書き込みポインタを更新する場合、前記読み出し手段により読み出し中であるバンクを指定しないように、前記書き込みポインタの指定先を決定することができる。
【００１５】
前記バンクオーバフラグ確認手段により確認された、前記バンクオーバフラグ設定手段によりセットされた前記バンクオーバフラグを解除するバンクオーバフラグ解除手段をさらに備えることができる。
【００１６】
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの前に前記書き込みポインタを更新し、前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの後に前記読み出しポインタを更新することができる。
【００１７】
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの前に前記書き込みポインタを更新し、前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの前に前記読み出しポインタを更新することができる。
【００１８】
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの後に前記書き込みポインタを更新し、前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの前に前記読み出しポインタを更新することができる。
【００１９】
前記書き込みポインタ制御手段は、前記書き込み手段による書き込みの後に前記書き込みポインタを更新し、前記読み出しポインタ制御手段は、前記読み出し手段による読み出しの後に前記読み出しポインタを更新することができる。
【００２０】
前記書き込み手段が前記データを書き込む間、書き込み中であることを示す書き込みフラグをセットする書き込みフラグ設定手段をさらに備えることができる。
【００２１】
前記読み出し手段が前記データを読み出す間、読み出し中であることを示す読み出しフラグをセットする読み出しフラグ設定手段をさらに備えることができる。
【００２２】
前記データは、画像データを符号化した、符号化単位毎の符号化データの属性を示す属性情報を含むことができる。
【００２３】
前記属性情報には、前記符号化データが保持される記憶領域のアドレス情報が付加されていることができる。
【００２４】
本発明の一側面は、また、情報処理装置の情報処理方法であって、データを記憶するバンクが複数形成される記憶領域の全てのバンクに読み出していない前記データが記憶されたバンクフルの状態が発生したことを通知するバンクオーバフラグがセットされているか否かを確認し、前記バンクオーバフラグがセットされていると確認された場合、前記データを読み出すバンクとして前記記憶領域の各バンクを巡回的に指定する読み出しポインタの指定先を、前記データを書き込むバンクとして前記記憶領域の各バンクを巡回的に指定する書き込みポインタの指定先のバンクの次のバンクに移動させ、指定先が更新された前記読み出しポインタが指定するバンクから前記データを読み出すステップを含む情報処理方法である。
【００２５】
本発明の一側面においては、データを記憶するバンクが複数形成される記憶領域の全てのバンクに読み出していないデータが記憶されたバンクフルの状態が発生したことを通知するバンクオーバフラグがセットされているか否かが確認され、バンクオーバフラグがセットされていると確認された場合、データを読み出すバンクとして記憶領域の各バンクを巡回的に指定する読み出しポインタの指定先が、データを書き込むバンクとして記憶領域の各バンクを巡回的に指定する書き込みポインタの指定先のバンクの次のバンクに移動され、指定先が更新された読み出しポインタが指定するバンクからデータが読み出される。
【発明の効果】
【００２６】
本発明によれば、情報を処理することができる。特に、バッファの入出力制御をより適切に行うことができる。
【発明を実施するための最良の形態】
【００２７】
図１は、本発明を適用した情報処理システムの構成例を示すブロック図である。図１に示される情報処理システム１００は、画像データを伝送するシステムである。
【００２８】
情報処理システム１００は、伝送路１０２を介して接続された送信装置１０１および受信装置１０３よりなり、送信装置１０１が画像データを、伝送路１０２を介して受信装置１０３に伝送させるシステムである。
【００２９】
送信装置１０１は、入力された画像データを符号化し、符号化データを、伝送路１０２を介して受信装置１０３に送信する。送信装置１０１は、入力インタフェース（Ｉ／Ｆ）１１１、ラインベース・コーデック・エンコーダ（Encorder）１１２、送信バッファ１１３、および伝送インタフェース（Ｉ／Ｆ）１１４を有する。
【００３０】
入力インタフェース１１１は、外部より送信装置１０１に入力される画像データを受け付け、それをラインベース・コーデック・エンコーダ１１２に供給する。ラインベース・コーデック・エンコーダ１１２は、入力された画像データを例えば数ライン毎に符号化し、得られた符号化データを送信バッファ１１３に供給する。
【００３１】
送信バッファ１１３は、供給された符号化データ（画像データ）を一時的に保持する。伝送インタフェース１１４は、送信バッファ１１３に保持されている符号化データを所定のビットレートで読み出し、読み出した符号化データをパケット化して伝送路１０２に出力する。
【００３２】
送信装置１０１より送信された符号化データは、伝送路１０２を介して受信装置１０３に供給される。受信装置１０３は、送信装置１０１より供給される符号化データを復号し、得られた画像データを出力する。受信装置１０３は、伝送インタフェース（Ｉ／Ｆ）１２１、受信バッファ１２２、ラインベース・コーデック・デコーダ（Decorder）１２３、および出力インタフェース（Ｉ／Ｆ）１２４を有する。
【００３３】
伝送インタフェース１２１は、伝送路１０２を介して供給される符号化データのパケットを受信し、受信したパケットより符号化データを抽出して受信バッファ１２２に供給する。受信バッファ１２２は、受信された符号化データを一時的に保持する。ラインベース・コーデック・デコーダ１２３は、受信バッファ１２２に保持される符号化データを所定量ずつ取得し、復号し、数ラインの画像データを生成する。出力インタフェース１２４は、ラインベース・コーデック・デコーダ１２３において、符号化データが復号されて生成された画像データ（復号画像データ）を受信装置１０３の外部に出力する。
【００３４】
このようなシステムにおいて、送信装置１０１のラインベース・コーデック・エンコーダ１１２は、可変ビットレート（VBR：Variable Bit Rate）で符号化を行う。これに対して、伝送インタフェース１１４は、その符号化時のビットレートとは独立したビットレートで符号化データを送信する。
【００３５】
例えば、伝送インタフェース１１４は、基本的に、符号化データを所定データ量毎にパケット化して、固定ビットレート（CBR: Constant Bit Rate）で送信する。ただし、例えば、伝送路１０２となるネットワークが他のシステムと共有される場合、つまり、伝送路１０２において、上述した符号化データの伝送以外のデータ伝送が行われる場合、伝送路１０２の、符号化データの伝送に使用可能な帯域は一定とは限らない。そのため、伝送インタフェース１１４は、伝送路１０２の使用可能な帯域の幅に合わせて、ビットレートを調整しながら、符号化データの送信を行う。
【００３６】
したがって、送信バッファ１１３は、このような符号化時と送信時のビットレートの違いを吸収するために、符号化データやそれに付随するデータ（エンコードパラメータ等）を一時的に保持する。
【００３７】
このとき、送信バッファ１１３は、データの入出力制御をより適切に行う。例えば、送信バッファ１１３においてバンクフルが発生したときに、送信バッファ１１３は、データの格納場所や読み出し位置を適切に制御する。これにより、送信バッファ１１３は、受信装置１０３における復号処理により得られる復号画像の、符号化前の画像に対する画質の劣化をより低減させる。また、送信バッファ１１３は、そのデータ入出力制御をより容易に行うことにより、コスト、回路規模（メモリ量）、および遅延時間等の増大の抑制を実現する。具体的な制御方法については後述する。
【００３８】
以下に、このような画像データ伝送の詳細について説明する。最初に、データ伝送の遅延時間の低減を実現するためのコーデックであるラインベース・コーデックについて説明する。
【００３９】
画像データをそのフレーム画像の１ラインまたは複数ライン毎に符号化するラインベース・コーデックにおいてはウェーブレット変換が用いられる。一般的に、離散ウェーブレット変換では、原画像は、各水平画素列に対する一次元ウェーブレット畳み込み(one-dimensional wavelet convolution)により、低周波数情報を含む副画像と高周波数情報を含む副画像との２つの副画像に分割される。さらに、各副画像は、それぞれ、各垂直画素行に対する同様のウェーブレット畳み込みにより、低周波数情報及び高周波数情報の２つの副画像に分割される。
【００４０】
つまり、図２の１フレーム分のベースバンド信号１３１は、変換後信号１３２のように、４つのサブバンド即ち副画像（ＨＨ，ＨＬ，ＬＨ，ＬＬ）に分解される。ＬＬ副画像は、垂直及び水平双方の低域成分である。ＬＨ副画像は、水平方向に低域で垂直方向に高域な成分である。ＨＬ副画像は、水平方向に高域で垂直方向に低域な成分である。ＨＨ副画像は、垂直及び水平双方の高域成分である。各副画像は、原画像の１／４のサイズであり、原画像の１／４のデータ点数を含む。
【００４１】
このようなウェーブレット変換は、得られたＬＬ副画像に対して繰り返し行われる。例えば、図２において、原画像をウェーブレット変換して得られた第１分解レベルの副画像を、それぞれ、１ＨＨ，１ＨＬ，１ＬＨ、および１ＬＬ（図示せず）とする。このとき、１ＬＬ副画像に対してさらにウェーブレット変換が行われ、第２分解レベルの副画像である、２ＨＨ，２ＨＬ，２ＬＨ、および２ＬＬ（図示せず）に分割される。さらに、その２ＬＬ副画像に対してさらにウェーブレット変換がなされ、第３レベルの副画像である、３ＨＨ，３ＨＬ，３ＬＨ、および３ＬＬに分割される。このように、ウェーブレット変換が繰り返し行われ、変換後信号２においては、副画像が階層構造を形成する。
【００４２】
このように、再帰的に低域成分のウェーブレット変換を繰り返すことにより、空間周波数の低い帯域のデータをより小さな領域に追い込んでいき、効率的な圧縮符号化を可能とする。
【００４３】
ラインベース・コーデックにおいては、符号化単位が画像全体ではなく、１ラインまたは複数ラインである。つまり、ラインベース・コーデックにおいては、ウェーブレット変換も、画像の１ラインまたは複数ライン毎に行われる。
【００４４】
例えば、図３に示される変換後信号１３２のように、ベースバンドの画像の一部のラインがウェーブレット変換され、１ＬＬ−１（図示せず）、１ＬＨ−１、１ＨＬ−１、および１ＨＨ−１が生成される。さらに、１ＬＬ−１がウェーブレット変換され、２ＬＬ−１、２ＬＨ−１、２ＨＬ−１、２ＨＨ−１が生成される。以上のようにして画像の一部分が所定回数ウェーブレット変換されると、次の一部のラインが同様にウェーブレット変換され、１ＬＬ−２（図示せず）、１ＬＨ−２、１ＨＬ−２、および１ＨＨ−２が生成される。さらに、１ＬＬ−２がウェーブレット変換され、２ＬＬ−２、２ＬＨ−２、２ＨＬ−２、２ＨＨ−２が生成される。
【００４５】
以上のように、所定数のライン毎にウェーブレット変換が行われる。ウェーブレット変換された画像データ（ウェーブレット係数データ）は、順次、符号化される。つまり、所定数のライン毎に符号化が行われる。このように、フレーム画像より小さい符号化単位で符号化を行うことにより、ラインベース・コーデックは、符号化・復号による遅延時間を低減し、データ伝送の遅延時間の低減を実現する。
【００４６】
例えば、図４に示されるように、ベースバンド８ラインごとに縦方向のウェーブレット変換を行うとすると、ウェーブレット３分解の場合、その８ラインに対して、最低域３ＬＬ副画像の１ラインが生成される。また、その次のレベルのサブバンド３Ｈ（３ＨＬ，３ＬＨ，３ＨＨ）が各１ライン生成される。さらに、その次のレベルのサブバンド２Ｈ（２ＨＬ，２ＬＨ，２ＨＨ）が各２ライン生成される。さらに、最高域１Ｈ（１ＨＬ，１ＬＨ，１ＨＨ）が各４ライン生成される。
【００４７】
このように、最上位レベルの低域サブバンド「ＬＬ」の係数データを１ライン生成するために必要なベースバンドの画素データの集合をプレシンクト（Precinct）（またはラインブロック）と称する。なお、プレシンクトは、１プレシンクト分の画素データをウェーブレット変換して得られる、全サブバンドの係数データの集合（アラインユニットの集合）のことを示す場合もある。この係数データの集合は、上述した、最上位レベルの低域サブバンド「ＬＬ」の係数データを１ライン生成するために必要なベースバンドの画素データの集合と実質的に同一である。
【００４８】
なお、１プレシンクトのライン数はピクチャ内において、各プレシンクトで互いに同一でなくてもよい。
【００４９】
ラインベース・ウェーブレット変換は、このプレシンクトを処理単位として行われる。例えば、図４の左側に示されるベースバンド信号１３１において８ラインであったプレシンクト（図中斜線部分）は、図４の右側に示されるように、ラインベース・ウェーブレット変換された変換後信号１３２の１Ｈにおいて、１ＨＬ，１ＬＨ、および１ＨＨのそれぞれの４ライン（図中斜線部分）、２Ｈにおいて、２ＨＬ，２ＬＨ、および２ＨＨのそれぞれの２ライン（図中斜線部分）、並びに、３ＬＬ、３ＨＬ、３ＨＬ、および３ＨＨのそれぞれの１ライン（図中斜線部分）として構成される。
【００５０】
このようなラインベース・ウェーブレット変換処理を利用することにより、データ伝送の低遅延化を図ることができる。さらに、ラインベース・ウェーブレット変換の場合、JPEG2000のタイル分割とは異なり、ベースバンド信号１での分割ではなく、ウェーブレット係数での分割であるため、さらに、タイル境界でのブロックノイズ的な画質劣化が発生しないという特徴も有する。
【００５１】
次に、送信装置１０１の構成の詳細について説明する。図５は、送信バッファ１１３の入出力インタフェースを説明する図である。図５に示されるように、送信バッファ１１３は、ラインベース・コーデック・エンコーダ１１２より供給されたデータを一時的に保持し、伝送インタフェース１１４に出力する。
【００５２】
ラインベース・コーデック・エンコーダ１１２からは、プレシンクト毎の符号化データ（以下、プレシンクトデータ（Precinct Data）とも称する）を含むデータ信号１４１、および、そのデータ信号１４１に対応するプレシンクト属性情報（Precinct Info）を含むデータ属性信号１４２が送信バッファ１１３に供給される。プレシンクト属性情報は、プレシンクトデータの設定や内容を示す情報であり、プレシンクト毎に生成される。例えば、あるプレシンクトの画像内の位置を示す情報（例えば識別番号（Precinct ID））、プレシンクトデータのデータサイズ、符号化時に使用された量子化パラメータ、および画像のコンポーネント情報等が含まれる。もちろん、これら以外の情報が含まれるようにしてもよい。
【００５３】
送信バッファ１１３では、データ属性信号１４２として供給されるプレシンクト属性情報から、プレシンクトヘッダ（Precinct Header）という伝送用のヘッダが作成される。その伝送用ヘッダは、プレシンクトデータ（Precinct Data）の前に付加される。その伝送用ヘッダが付加されたプレシンクトデータは、伝送パケット１４３（Precinct Header + Data）として伝送インタフェース１１４に出力する。伝送インタフェース１１４は、送信バッファ１１３から供給される伝送パケット１４３を伝送路１０２（図１）へ送出する。また、伝送インタフェース１１４は、伝送路１０２が一時的に伝送できない状態になった場合、送信バッファ１１３に対して、出力停止信号１４４（Stop Signal）を供給し、送信バッファ１１３からの出力を停止させる。例えば、無線回線で符号化データを受信装置１０３に伝送する場合（伝送路１０２が無線回線の場合）、干渉により電波を出せない状態が発生する。このようなとき、伝送インタフェース１１４は、データ溢れが発生しないように、出力停止信号１４４を送信バッファ１１３に供給して送信バッファ１１３からのデータの供給を停止させる。
【００５４】
送信バッファ１１３は、このような符号化時のビットレートと送信時のビットレートの違い（符号化時および送信時のビットレートの変動）を、吸収するために符号化データを一時的に保持する。このとき、送信バッファ１１３は、データの入出力制御を適切に行うことにより、回路規模、コスト、および遅延時間等を不要に増大させずに、復号画像の画質の劣化を抑制することができる。
【００５５】
なお、図５において、データ信号１４１とデータ属性信号１４２は、互いに異なるバスを介してラインベース・コーデック・エンコーダ１１２から送信バッファ１１３に供給されるように示されているが、これに限らず、互いに共通のバスを介して送信バッファ１１３に供給されるようにしてもよい。また、データ信号１４１およびデータ属性信号１４２の各信号を伝送するバスの本数は任意である。それぞれ１本のバスを介して伝送されるようにしてもよいし、複数本のバスを介して伝送されるようにしてもよい。また、データ信号１４１を伝送するバスの本数と、データ属性信号１４２を伝送するバスの本数が互いに異なっていてもよい。さらに、伝送レートがデータ信号１４１を伝送するバスとデータ属性信号１４２を伝送するバスとで互いに異なるようにしてもよい。
【００５６】
同様に、伝送パケット１４３を伝送するバス、および、出力停止信号１４４を伝送するバスの本数および伝送レートも任意である。また、共通のバスを介して伝送パケット１４３および出力停止信号１４４が授受されるようにしてもよい。
【００５７】
次に、この送信バッファ１１３の詳細な構成例について説明する。図６は、送信バッファ１１３の内部の構成例を示すブロック図である。図６に示されるように、送信バッファ１１３は、書き込み制御部（Write制御部）１５１、データ格納領域１５２、プレシンクト属性情報格納領域（Precinct Register Bank（Precinct属性情報格納領域））１５３、および読み出し制御部（Read制御部）１５４を有する。
【００５８】
書き込み制御部１５１は、ラインベース・コーデック・エンコーダ１１２よりデータ信号１４１として供給されるプレシンクトデータ（Precinct Data）を、データ格納領域１５２に供給して格納させる。書き込み制御部１５１は、プレシンクトデータの格納先アドレスである書き込みアドレス（Write Address）１６１を決定する。書き込み制御部１５１は、供給されたプレシンクトデータを、データ格納領域１５２の、その決定した書き込みアドレスに格納させる。
【００５９】
書き込み制御部１５１は、また、ラインベース・コーデック・エンコーダ１１２よりデータ属性信号１４２として供給されるプレシンクト属性情報（Precinct Info）を、プレシンクト属性情報格納領域１５３に供給して格納させる。このとき、書き込み制御部１５１は、供給されたプレシンクト属性情報に対応するプレシンクトデータの格納先アドレスを、そのプレシンクト属性情報に付加し、プレシンクト属性情報格納領域１５３に供給して格納させる。
【００６０】
プレシンクト属性情報格納領域１５３には、１度に１つのプレシンクト属性情報（プレシンクトデータの格納先アドレスも含む）を格納する領域（バンク）が複数形成されている。図６の例の場合、プレシンクト属性情報格納領域１５３は、「Bank０」乃至「Bank７」の８つのバンクが形成されている。
【００６１】
書き込み制御部１５１は、プレシンクト属性情報を格納するバンクを指定する情報である書き込みポインタ１６２を設定する。つまり、書き込み制御部１５１は、プレシンクト属性情報格納領域１５３に形成される複数のバンク（図６の例の場合８つのバンク）の中から１つ選択し、そのバンクを指定する書き込みポインタ１６２を設定する。
【００６２】
この選択方法は任意であるが、一般的に各バンクを予め定められた所定の順に１つずつ巡回的に選択する。例えば、図６の場合、書き込み制御部１５１は、Bank０、Bank１、Bank２、・・・のように各バンクを１つずつ順に指定するように書き込みポインタ１６２の値を更新する。そして、８つめのバンク「Bank７」を示すように書き込みポインタ１６２を設定すると、書き込み制御部１５１は、次の設定で最初に戻り、Bank０を示すように書き込みポインタ１６２を設定する。以上のように、書き込み制御部１５１は、書き込みポインタ１６２が「Bank０」乃至「Bank７」の８つのバンクを所定の順で繰り返し指定するように設定を行う。もちろん、この順序は任意であるし、正しく管理されるのであれば途中で変更されるようにしてもよい。
【００６３】
データ格納領域１５２は、例えば、半導体メモリやハードディスク等よりなる記憶領域である。データ格納領域１５２は、書き込みアドレス１６１により指定されるアドレスに、書き込み制御部１５１より供給されるプレシンクトデータを格納し、一時的に保持する。
【００６４】
プレシンクト属性情報格納領域１５３は、例えば、半導体メモリやハードディスク等よりなる記憶領域である。プレシンクト属性情報格納領域１５３は、書き込み制御部１５１に指定されたバンクに、書き込み制御部１５１より供給されるプレシンクト属性情報を格納し、一時的に保持する。
【００６５】
読み出し制御部１５４は、プレシンクト属性情報格納領域１５３よりプレシンクト属性情報（プレシンクトデータの格納先アドレスを含む）を読み出す。読み出し制御部１５４は、プレシンクト属性情報を読み出すバンクを指定する読み出しポインタ１７１を設定し、その読み出しポインタ１７１が示すバンクから、プレシンクト属性情報（プレシンクトデータの格納先アドレスを含む）を読み出す。
【００６６】
書き込みポインタ１６２の場合と同様に、読み出しポインタ１７１の設定方法は、任意である。例えば、読み出し制御部１５４は、各バンクを予め定められた所定の順に１つずつ巡回的に選択するように読み出しポインタ１７１を設定する。
【００６７】
例えば、図６の場合、読み出し制御部１５４は、Bank０、Bank１、Bank２、・・・のように各バンクを１つずつ順に指定するように読み出しポインタ１７１を更新する。そして、８つめのバンク「Bank７」を示すように読み出しポインタ１７１を設定すると、読み出し制御部１５４は、次の設定で最初に戻り、Bank０を示すように読み出しポインタ１７１を設定する。以上のように、読み出し制御部１５４は、読み出しポインタ１７１が「Bank０」乃至「Bank７」の８つのバンクを所定の順で繰り返し指定するように設定を行う。もちろん、この順序は任意であるし、正しく管理されるのであれば途中で変更されるようにしてもよい。
【００６８】
また、読み出し制御部１５４により読み出されたプレシンクト属性情報にはプレシンクトデータの格納先アドレス（書き込みアドレス１６１）が付加されている。読み出し制御部１５４は、そのアドレス（書き込みアドレス１６１）を読み出しアドレス１７２とし、プレシンクトデータの読み出しを行う。つまり、読み出し制御部１５４は、データ格納領域１５２の、プレシンクト属性情報に付加された書き込みアドレス１６１（読み出しアドレス１７２）にアクセスし、プレシンクトデータを読み出す。このようにすることにより、読み出し制御部１５４は、プレシンクト属性情報格納領域１５３より読み出したプレシンクト属性情報と同一のプレシンクトのプレシンクトデータをデータ格納領域１５２より読み出すことができる。
【００６９】
読み出し制御部１５４は、プレシンクトデータをパケット化するパケット生成部１８１を有する。読み出し制御部１５４は、プレシンクト属性情報格納領域１５３より読み出したプレシンクト属性情報、および、データ格納領域１５２より読み出したプレシンクトデータを、パケット生成部１８１に供給する。パケット生成部１８１は、プレシンクト属性情報からプレシンクトヘッダを生成し、そのプレシンクトヘッダを用いてプレシンクトデータをパケット化する。読み出し制御部１５４は、生成された伝送パケット１４３を伝送インタフェース１１４に供給する。
【００７０】
また、何らかの原因で伝送路１０２が伝送パケット１４３を伝送不可能な状態になると、伝送インタフェース１１４は、出力停止信号（Stop Signal）１４４を読み出し制御部１５４に供給する。パケット生成部１８１は、その出力停止信号１４４を取得するとパケットの生成を停止する。さらに、読み出し制御部１５４は、その出力停止信号１４４に基づいて、プレシンクト属性情報やプレシンクトデータの読み出しを停止する。伝送路１０２が伝送パケット１４３を伝送可能な状態になり、出力停止信号１４４の供給が止まると、読み出し制御部１５４は、プレシンクト属性情報やプレシンクトデータの読み出しを再開する。パケット生成部１８１は、パケットの生成を再開する。
【００７１】
なお、読み出し制御部１５４は、書き込み制御部１５１と独立して動作する。すなわち、読み出し制御部１５４による、プレシンクト属性情報格納領域１５３からのプレシンクト属性情報の読み出し、データ格納領域１５２からのプレシンクトデータの読み出し、並びに、パケット生成等の各処理は、書き込み制御部１５１による書き込み処理とは独立して行われる。
【００７２】
図７は、書き込み制御部１５１と読み出し制御部１５４が有する機能の例を示す機能ブロック図である。
【００７３】
書き込み制御部１５１は、データ取得部２０１、書き込みポインタ更新部２０２、読み出しフラグ確認部２０３、バンクオーバフラグ設定部２０４、書き込みフラグ設定部２０５、書き込み部２０６、および保持部２０７を有する。
【００７４】
データ取得部２０１は、ラインベース・コーデック・エンコーダ１１２より供給されるプレシンクトデータおよびプレシンクト属性情報を取得する。書き込みポインタ更新部２０２は、保持部２０７に保持されている書き込みポインタ１６２の値を更新する。読み出しフラグ確認部２０３は、読み出し制御部１５４より供給される、読み出し中であるか否かを示すフラグ情報である読み出しフラグを保持し、その読み出しフラグの値に基づいて、読み出し処理の状況を書き込み部２０６に通知する。
【００７５】
バンクオーバフラグ設定部２０４は、必要に応じてバンクオーバフラグ２１２を保持部２０７にセットする（フラグ情報の値を”有効（例えば「１」）”にする）。バンクオーバフラグ２１２は、プレシンクト属性情報格納領域１５３において、未だ読み出されていないプレシンクト属性情報を削除せずに、新しいプレシンクト属性情報をこれ以上格納することができない状態（バンクフル）が発生したか否かを示すフラグ情報である。詳細については後述する。
【００７６】
書き込みフラグ設定部２０５は、書き込み処理中であるか否かを示すフラグ情報である書き込みフラグ２１１を保持部２０７にセットしたり解除したり（フラグ情報の値を”無効（例えば「０」）”にしたり）する。例えば、書き込みフラグ設定部２０５は、書き込み部２０６がプレシンクトデータやプレシンクト属性情報を書き込む間、書き込みフラグ２１１を保持部２０７にセットし、書き込みが終了すると、その書き込みフラグ２１１を解除する。これにより、他の制御処理においても、書き込みフラグ２１１の値を参照することにより書き込み中であるか否かを容易に把握することができる。
【００７７】
書き込み部２０６は、プレシンクトデータをデータ格納領域１５２に書き込んだり、プレシンクト属性情報をプレシンクト属性情報格納領域１５３に書き込んだりする。書き込み部２０６は、書き込みアドレス１６１を設定し、データ格納領域１５２のそのアドレスに、処理対象のプレシンクトデータを格納させる。また、書き込み部２０６は、処理対象のプレシンクト属性情報に書き込みアドレスを付加し、それらを、プレシンクト属性情報格納領域１５３の、書き込みポインタ１６２により示されるバンクに格納させる。
【００７８】
保持部２０７は、例えば、半導体メモリやハードディスク等よりなる記憶領域である。保持部２０７は、書き込みアドレス１６１、書き込みポインタ１６２、書き込みフラグ２１１、およびバンクオーバフラグ２１２等の情報を保持する。もちろん、保持部２０７が、これら以外の情報を保持してもよい。
【００７９】
読み出し制御部１５４は、読み出しポインタ更新部２２２、バンクオーバフラグ確認部２２３、バンクオーバフラグ設定部２２４、読み出しフラグ設定部２２５、読み出し部２２６、保持部２２７、およびパケット生成部１８１を有する。
【００８０】
読み出しポインタ更新部２２２は、保持部２２７に保持されている読み出しポインタ１７１の値を更新する。バンクオーバフラグ確認部２２３は、書き込み制御部１５１の保持部２０７）にアクセスし、バンクオーバフラグ２１２の値を参照（確認）する。
【００８１】
バンクオーバフラグ設定部２２４は、書き込み制御部１５１の保持部２０７にアクセスし、バンクオーバフラグ２１２の解除を行う。読み出しフラグ設定部２２５は、読み出し処理中であるか否かを示すフラグ情報である読み出しフラグ２３１を保持部２２７にセットしたり解除したりする。例えば、読み出しフラグ設定部２２５は、読み出し部２２６が格納領域より情報を読み出す間、読み出しフラグ２３１を保持部２２７にセットし、その読み出しが終了すると、その読み出しフラグ２３１を解除する。
【００８２】
これにより、他の制御処理においても読み出しフラグ２３１の値を参照することにより、容易に読み出し中であるか否かを把握することができる。例えば、書き込み部２０６は、読み出しフラグ確認部２０３が読み出しフラグの値を確認することにより、読み出し中のバンクに書き込みを行わないようにすることができる。つまり、書き込み部２０６は、読み出し中のデータを破壊しないように安全に書き込みを行うことができる。
【００８３】
読み出し部２２６は、データ格納領域１５２からプレシンクトデータを読み出したり、プレシンクト属性情報格納領域１５３からプレシンクト属性情報を読み出したりする。読み出し部２２６は、プレシンクト属性情報格納領域１５３の、読み出しポインタ１７１により示されるバンクからプレシンクト属性情報を読み出す。また、読み出し部２２６は、そのプレシンクト属性情報に付加された書き込みアドレス１６１を取得し、そのアドレスを読み出しアドレス１７２とし、データ格納領域１５２のそのアドレスから、プレシンクトデータを読み出す。
【００８４】
保持部２２７は、例えば、半導体メモリやハードディスク等よりなる記憶領域である。保持部２２７は、読み出しポインタ１７１や読み出しフラグ２３１等の情報を保持する。もちろん、保持部２２７が、これら以外の情報を保持してもよい。
【００８５】
パケット生成部１８１は、読み出し部２２６より読み出されたプレシンクトデータやプレシンクト属性情報をパケット化する。
【００８６】
なお、以上においては、バンクオーバフラグ２１２を書き込み制御部１５１の保持部２０７が保持するように説明したが、バンクオーバフラグ２１２は任意の場所に保存することができる。例えば、読み出し制御部１５４内にバンクオーバフラグ２１２が保持されるようにしてもよいし、書き込み制御部１５１および読み出し制御部１５４以外の場所にバンクオーバフラグ２１２が保持されるようにしてもよい。
【００８７】
また、書き込み制御部１５１および読み出し制御部１５４の一部または全部を一体化するようにしてもよい。例えば、書き込み制御部１５１および読み出し制御部１５４を一体化し、データ格納領域１５２およびプレシンクト属性情報格納領域１５３の入出力を制御するバッファ入出力制御部２４０としてもよい。
【００８８】
次に、図８乃至図１０を参照し、バンクオーバの発生、およびその場合の制御の例についてより具体的に説明する。
【００８９】
図８乃至図１０において、プレシンクト属性情報格納領域１５３には８つのバンク（＃０乃至＃７）が形成される。また、読み出しポインタ（Read Pointer）１７１および書き込みポインタ（Write Pointer）１６２は、各バンクを、＃０から＃７に向かう順に１つずつ巡回する（＃７の次は＃０に戻る）ように指定する。
【００９０】
なお、図８乃至図１０において、＃０乃至＃７の各枠はバンクを示し、各枠内に示される数字は、そのバンクに格納されたプレシンクト属性情報のプレシンクトIDを示す。プレシンクトIDは、各プレシンクトを識別する識別情報であり、「０」および正の整数により構成される。各プレシンクトは、プレシンクトID「０」のプレシンクトから、プレシンクトIDの昇順に処理される。つまり、各プレシンクトのプレシンクトデータやプレシンクト属性情報は、プレシンクトID「０」のプレシンクトから、プレシンクトIDの昇順に、格納領域に書き込まれたり格納領域から読み出されたりする。
【００９１】
バッファの構成上、基本的に、書き込み位置は読み出し位置に先行する。例えば、図８Ａに示されるように、プレシンクトID「５」のプレシンクトのプレシンクト属性情報が６番目のバンク（＃５）に書き込まれているとき、プレシンクトID「２」のプレシンクトのプレシンクト属性情報が３番目のバンク（＃２）より読み出される。
【００９２】
ただし、書き込みポインタ１６２および読み出しポインタ１７１は、バンク＃０乃至バンク＃７を巡回するので、書き込みポインタ１６２の進行方向の先のバンクを読み出しポインタ１７１が指定しているとも考えられる。
【００９３】
正常に書き込みや読み出しが行われている状態を通常時とする。この通常時においては、書き込みポインタ１６２の指定先から読み出しポインタ１７１の指定先までの間のバンクには、プレシンクト属性情報が格納されていないか、若しくは、読み出し済みのプレシンクト属性情報が格納されている。つまり、図８Ａの場合、バンク＃５からバンク＃２までの間のバンク＃６，＃７，＃０、および＃１には、まだ読み出されていないプレシンクト属性情報は格納されていない。
【００９４】
ここで、例えば、出力停止信号１４４が供給されて読み出しが停止されると、読み出しポインタ１７１の指定先の進行が止まり、書き込みポインタ１６２の指定先だけが進むことになる。やがて、図８Ｂに示されるように、書き込みポインタ１６２が、バンク＃１に到達し、バンク＃１にプレシンクトID「９」のプレシンクトのプレシンクト属性情報が書き込まれると、全てのバンクに未読み出しのプレシンクト属性情報が格納された状態になる。この状態をバンクフル（Bank Full）と称する。つまり、書き込みポインタ１６２の指定先が読み出しポインタ１７１の指定先より１周以上先に進んだ状態である。また、この状態をバンクオーバ（Bank Over）とも称する。
【００９５】
このようなバンクフルの状態においても、書き込み制御部１５１には、ラインベース・コーデック・エンコーダ１１２からプレシンクトデータやプレシンクト属性情報が供給される。つまり、いずれかのデータを破棄する必要がある。このような場合において、書き込み制御部１５１は、格納領域に格納されている情報のうち、もっとも古い情報から順に必要最小限の情報を破棄し、その領域に新たに供給された情報を格納させる。このようにすることにより、書き込み制御部１５１は、復号画像における画質に与えるバンクフル（バンクオーバ）の発生の影響（つまり画質の劣化）をより抑制することができる。これにより、書き込み制御部１５１は、復号画像の画質をより向上させることができる。
【００９６】
具体的には、図８Ｂの例において、バンク＃２が読み出し中でないとする。つまり、図８Ｂの例において、読み出しフラグ２３１がセットされていないとすると、書き込み部２０６は、図９Ａに示されるように、次のプレシンクト（プレシンクトID「１０」のプレシンクト）のプレシンクト属性情報を、バンク＃２に格納させる（上書きする）。つまり、書き込み部２０６は、プレシンクト属性情報格納領域１５３に格納されている最も古い情報を削除し、新たなプレシンクト属性情報を格納させる。
【００９７】
なお、プレシンクトデータは、データ格納領域１５２に格納されるが、このデータ格納領域１５２は、プレシンクト属性情報格納領域１５３に格納可能なプレシンクト属性情報に対応する全てのプレシンクトデータを格納することできれば、その容量は任意である。したがって、例えば、プレシンクト属性情報格納領域１５３において、バンクフルが発生し、プレシンクト属性情報が上書きされる場合であっても、プレシンクトデータも上書きされるとは限らない。データ格納領域１５２の容量が十分に大きければ、プレシンクトデータは新たな領域に格納されてもよい。したがって、以下においては、必要でない限りプレシンクトデータについての説明は省略する。
【００９８】
ところで、ラインベース・コーデックにおいては、フレーム画像の一部であるプレシンクト毎に符号化されるので、この伝送時に、１プレシンクト分のデータが欠損すると復号画像において１プレシンクト分の画像が欠損する。フレーム画像の上下端以外のプレシンクトのライン数は基本的に共通である。したがって、画像の内容を考慮しない限り、どのプレシンクトが欠損しても画質の劣化の程度は理論上同等である。つまり、バンクフル発生時にどのバンクのデータを破棄してもデータ欠損量は略同等であるので、その点については各バンクのプレシンクト属性情報重要度は略同等である。
【００９９】
しかしながら、上述したように、プレシンクトデータやプレシンクト属性情報は、ラインベース・コーデックされた画像情報であり、受信装置１０３において、プレシンクトの順に処理される。データ伝送が処理に間に合わなかった場合、そのプレシンクトのデータに対する処理は省略され、次のプレシンクトのデータに対する処理が開始される。つまり、処理に間に合わなかったデータは破棄される。このように、受信装置１０３において、処理の省略は行われるが、復号処理に間に合わず遅れて伝送されてきたプレシンクトのデータを後で処理するような、処理順の変更は行われない。
【０１００】
つまり、時間的に古いプレシンクトのデータ程、復号処理の期限までの時間が短く、伝送しても破棄される可能性が高いことになる。換言すれば、時間的に古いプレシンクトのデータ程、その重要度が低いことになる。
【０１０１】
特に、上述したようなラインベース・コーデックは、データ伝送による遅延時間を短縮させることを特徴としている。したがって、送信バッファ１１３や受信バッファ１２２のバッファ量は極力小さくするのが望ましく、データが不要になるまでの時間的余裕が他のコーデックの方法と比較して一般的に少ない。つまり、プレシンクト属性情報格納領域１５３に格納されている情報における、情報の新鮮さに基づく重要度の変化は、より鮮明になる。
【０１０２】
したがって、図９Ａに示されるように、バンクフル発生時に、上述したように最も古い情報から上書きすることにより、書き込み部２０６は、最も重要度の低い情報から破棄（上書き）することができる。つまり、復号画像の画質の劣化をより抑制することができる。
【０１０３】
なお、上述したように古い情報ほど伝送遅れにより破棄される可能性が高いので、仮に、新しい情報を上書きした場合、古い情報も新しい情報も破棄することになる恐れがある。つまり、破棄される情報量が増大する恐れがある。したがって、書き込み部２０６は、上述したように最も古い情報から上書きすることにより、情報の不要な破棄を抑制し、破棄される情報量をより低減させることができる。つまり、復号画像の画質の劣化をより抑制することができる。
【０１０４】
また、例えば、図９Ｂのように、バンク＃２が読み出し中の場合、書き込み部２０６は、次のプレシンクトのプレシンクト属性情報を、読み出しポインタ１７１が示すバンク＃２の次のバンク＃３に格納させる。つまり、この場合、書き込み部２０６は、プレシンクトID「１０」のプレシンクトのプレシンクト属性情報を、バンク＃３に上書きする。このように、バンク＃２に書き込まないのは、読み出し中のデータが破壊されないようにするためである。破壊されたデータは伝送しても復号することができないので、破棄するしかなくなる。つまり、読み出し処理が無駄になってしまう恐れがある。したがって、読み出し中のバンクの上書きは禁止し、その次のバンクを上書きするようにすることにより、書き込み部２０６は、処理効率の低下を抑制することができる。
【０１０５】
出力停止信号１４４の供給が止まると、読み出しが再開される。例えば、図９Ａと同様にバンクフルが発生している図１０Ａの状態において読み出しが再開されると、読み出しポインタ１７１は、図１０Ｂに示されるように、書き込みポインタが示すバンクの次のバンクに進む。図１０Ａの場合、読み出しポインタ１７１はバンク＃２を示し、書き込みポインタ１６２はバンク＃３を示し、バンクフルの状態にある。この状態において読み出しが再開されると、読み出しポインタ更新部２２２は、読み出しポインタ１７１の値を、次のバンク＃３ではなく、書き込みポインタ１６２が示すバンクの次のバンク＃４を示すように更新する。
【０１０６】
このようにすることにより、読み出し部２１６が、プレシンクトID「４」乃至「９」のプレシンクトを飛ばし、最新のプレシンクトであるプレシンクトID「１０」のプレシンクトのプレシンクト属性情報を読み出してしまわないようにすることができる。つまり、読み出し部２１６が、プレシンクトIDの順序どおりに読み出しを行い、プレシンクトID「２」のプレシンクトのプレシンクト属性情報の次に、その次に最も古いプレシンクトであるプレシンクトID「４」のプレシンクトのプレシンクト属性情報を読み出すようにすることができる。この場合、バンクフル発生により破棄されるデータは、プレシンクトID「３」のプレシンクトのみとなる。したがって、破棄されるデータを必要最小限にすることができ、復号画像の画質の不要な劣化を抑制することができる（つまり、画質を向上させることができる）。
【０１０７】
なお、書き込みポインタ１６２の値が更新されてから書き込みが行われる場合、書き込みポインタ１６２が示すバンクに格納されるプレシンクト属性情報が最も古い可能性もある。そこで、例えば書き込みフラグ２１１の値に基づいて、書き込みが開始されたか否かによって読み出しポインタ１７１の移動先を決定するようにしてもよいが、タイミング等の制御が複雑になり、かつ、その複雑な制御をより正確に行う必要がある。つまり、上述したように、読み出しポインタ１７１の指定先を無条件に書き込みポインタ１６２の指定先のバンクの次のバンクに指定する方が、より容易に、エラーの発生しない正しい制御を行うことができる。
【０１０８】
例えば、このようなバンクフルが発生した状態におけるバッファの制御方法の１つとして、全てのバンクを空にしてから、新しいプレシンクトのデータを格納させる方法が考えられる。この方法は、制御が簡単であるが、極短期間で読み出しが再開される場合、必要以上にデータを破棄することになる恐れがある。そのため、この制御方法では、復号画像の画質を不要に劣化させる恐れがある。特に、伝送路１０２が無線通信である場合、その伝送レートの変動が激しく、一時的にデータを送れない状況になることが頻繁に発生する。このような状況においては、この制御方法の場合、復号画像の画質を不要に劣化させる可能性が特に大きくなる。
【０１０９】
また、他の制御方法としては、予めバンクを多めに用意することで、一時的なネットワークの詰まりの場合に対処する方法が考えられる。つまり、バンクの数を増やすことにより、バンクフルの発生を抑制させる。しかしながら、この方法の場合、バッファとして必要なメモリ量が増大する恐れがある。メモリ量が増大するとコストが増大するだけでなく、データ伝送の遅延時間も増大する。例えば、従来のコーデックのように遅延をあまり重視しないコーデックを利用したデータ伝送であれば有効な方法である。
【０１１０】
しかしながら、上述したような、ラインベース・コーデックを利用したデータ伝送では、低遅延を特徴とする。ラインベース・コーデックは、低遅延の実現のために様々な工夫がなされているが、例えば処理単位を小さくしてバッファに必要なメモリ量を低減させることにより、伝送時の遅延時間の増大を抑制している。このようなシステムにおいて、上述したように、バンク数を増大させてメモリ量を増大させると、遅延時間が増大し、上述した利点を損なう恐れがある。
【０１１１】
また、使用するネットワークの特性によって、ネットワークの詰まり度合いは異なるので、バンクフルを発生させないために十分なバンク数を決定することは困難である。仮に、システムスペックとしてバンク数の上限を決めたとしても、想定以上に伝送路１０２が不調になることは十分に考えられる。常に最悪値でバンク数を決定すると、コスト、回路規模、および消費電力等が不要に増大してしまう恐れがある。バンク数を動的に変更することは不可能ではないが、非常に複雑な制御が必要となり実用的でない。
【０１１２】
これらに対して、上述した入出力制御方法の場合、より容易な制御で、復号画像の画質の不要な劣化を抑制することができる。
【０１１３】
図１１を参照して各ポインタやフラグの制御の様子を説明する。図１１に示されるように、書き込み制御部（Write Controller）１５１は、書き込みポインタ（Write Pointer）１６２を更新するとともに、その更新結果を読み出し制御部（Read Controller）１５４に通知する。また、書き込み制御部１５１は、書き込みフラグ２１１をセットしたり解除したりする。このとき、その書き込みフラグ２１１の値を読み出し制御部１５４に通知するようにしてもよい。さらに、書き込み制御部１５１は、プレシンクト属性情報格納領域１５３においてバンクフルが発生した場合、バンクオーバフラグ（Bank Over Flag）２１２をセットする。
【０１１４】
読み出し制御部（Read Controller）１５４は、読み出しポインタ（Read Pointer）１７１を更新するとともに、その更新結果を書き込み制御部１５１に通知する。また、読み出し制御部１５４は、読み出しフラグ２３１をセットしたり解除したりする。このとき、読み出し制御部１５４は、読み出しフラグ２３１の値を書き込み制御部１５１に通知する。さらに、読み出し制御部１５４は、バンクオーバフラグ２１２の値を参照し、プレシンクト属性情報格納領域１５３においてバンクフルが発生しているか否かを把握する。また、読み出し制御部１５４は、プレシンクト属性情報格納領域１５３においてバンクフルが解消された場合、バンクオーバフラグ２１２を解除する。
【０１１５】
上述したように、書き込み制御部１５１と読み出し制御部１５４は、互いに独立に動作する。以下に、書き込み制御部１５１および読み出し制御部１５４が実行する処理について、その流れをそれぞれ説明する。
【０１１６】
ここで、書き込みポインタ１６２および読み出しポインタ１７１の更新タイミングは、それぞれ、処理（書き込みまたは読み出し）の前と後の２パターン存在する。つまり、図１２に示されるように、ケース１乃至ケース４の４つのパターンが考えられる。
【０１１７】
以下において、各処理の流れの例を、この４つのパターンのそれぞれについて説明する。
【０１１８】
最初に、書き込みポインタ１６２および読み出しポインタ１７１の更新タイミングがいずれも書き込みまたは読み出し前（開始時）である場合、すなわち、ケース１の場合について説明する。
【０１１９】
図１３のフローチャートを参照して、ケース１の場合の、書き込み制御部１５１による書き込み処理の流れの例を説明する。この書き込み処理は、ラインベース・コーデック・エンコーダ１１２より新たなプレシンクトのプレシンクトデータおよびプレシンクト属性情報が供給される度に実行される。なお、これは後述する他のケースにおいても同様である。
【０１２０】
書き込み制御部１５１のデータ取得部２０１（図７）が、新たなプレシンクトのプレシンクトデータおよびプレシンクト属性情報を取得すると、書き込み処理が開始される。書き込み処理が開始されると、書き込みポインタ更新部２０２は、ステップＳ１０１において、書き込みポインタ１６２を更新し、その指定先を次のバンクに進める。ステップＳ１０２において、書き込みポインタ更新部２０２は、更新した書き込みポインタ１６２の指定先と、通知された読み出しポインタ１７１の指定先の位置（バンク）が一致するか否かを判定する。一致すると判定された場合、処理はステップＳ１０３に進む。
【０１２１】
ステップＳ１０３において、読み出しフラグ確認部２０３は、読み出しフラグ２３１を参照し、書き込みポインタ１６２が指定するバンクに格納されるデータを読み出し中であるか否かを判定する。読み出しフラグ２３１がセットされており、データ読み出し中であると判定された場合、処理はステップＳ１０４に進む。
【０１２２】
ステップＳ１０４において、書き込みポインタ更新部２０２は、読み出し中のデータを破壊しないように、書き込みポインタ１６２の指定先を読み出しポインタ１７１が指定するバンクの次のバンクに移動させる。この時点でバンクフルが発生した状態となっているので、バンクオーバフラグ設定部２０４は、ステップＳ１０５において、バンクオーバフラグ２１２をセットする。
【０１２３】
バンクオーバフラグ２１２がセットされると、書き込みフラグ設定部２０５は、ステップＳ１０６において、書き込みフラグ２１１をセットする。ステップＳ１０７において、書き込み部２０６は、データ取得部２０１が取得したプレシンクトデータをデータ格納領域１５２に格納させる。さらに、書き込み部２０６は、データ取得部２０１が取得したプレシンクト属性情報に書き込みアドレス１６１を付加し、それを書き込みポインタ１６２の指定先のバンクに書き込む。書き込みが終了すると、書き込みフラグ設定部２０５は、ステップＳ１０８において、書き込みフラグ２１１を解除し、書き込み処理を終了させる。
【０１２４】
なお、ステップＳ１０３において、読み出しフラグ２３１がセットされておらず、読み出し中でないと判定された場合、処理はステップＳ１０６に進み、書き込みフラグ２１１がセットされる。つまり、この場合、書き込みポインタの指定先は移動されず、そのバンクに対してプレシンクト属性情報の書き込みが実行される。もちろん、プレシンクトデータのデータ格納領域１５２への書き込みも行われる。
【０１２５】
なお、ケース１の場合、読み出しポインタ１７１は、読み出しの前に更新される。したがって、読み出しフラグ２３１がセットされていない場合、そのバンクに格納されたデータは既に読み出されていることになる。したがって、このバンクに新たなプレシンクト属性情報が書き込まれても、次の読み出しは次のバンクから行われるので、正常な読み出しが可能である。したがって、この時点では、まだバンクフルは発生しておらず、バンクオーバフラグ２１２はセットされない。
【０１２６】
ステップＳ１０７以降の処理は、上述した場合と同様であるので、その説明は省略する。
【０１２７】
また、ステップＳ１０２において、書き込みポインタ１６２の指定先と読み出しポインタ１７１の指定先の位置（バンク）が一致しないと判定した場合、２つの状態が考えられる。１つは、バンクフルが発生していない状態、もう１つは、既にバンクフルが発生済みで書き込みポインタ１６２が読み出しポインタ１７１を追い抜いている状態が継続している状態である。いずれにしてもバンクオーバフラグ２１２の設定は変更されず、かつ、書き込みポインタ１６２の現在の指定先のバンクに書き込み可能であるので、処理は、ステップＳ１０６に進む。ステップＳ１０６以降の処理は、上述した場合と同様であるので、その説明は省略する。
【０１２８】
以上のようにケース１の書き込み処理は実行される。
【０１２９】
次に、ケース１の読み出し処理について、図１４のフローチャートを参照して説明する。この読み出し処理は、出力停止信号１４４が供給されない限り、若しくは、格納領域に読み出していないプレシンクトのデータが存在する限り、繰り返し実行される。なお、これは後述する他のケースにおいても同様である。
【０１３０】
読み出し処理が開始されると、バンクオーバフラグ確認部２２３は、ステップＳ１２１において、バンクオーバフラグ２１２がセットされているか否かを判定する。バンクオーバフラグ２１２がセットされていると判定された場合、処理はステップＳ１２２に進む。
【０１３１】
ステップＳ１２２において、バンクオーバフラグ設定部２２４は、これから行われる処理によりバンクフルの状態が解消されるので、バンクオーバフラグ２１２を解除する。ステップＳ１２３において、読み出しポインタ更新部２２２は、読み出しポインタ１７１の指定先を、書き込みポインタ１６２の指定先のバンクの次のバンクに移動させる。これは上述したように、容易な方法によって、破棄するプレシンクトの数を低減させるようにするための処理である。
【０１３２】
読み出しポインタ１７１が更新されると、読み出しフラグ設定部２２５は、ステップＳ１２５において、読み出し処理中であることを示すために、読み出しフラグ２３１をセットする。ステップＳ１２６において、読み出し部２２６は、読み出しポインタ１７１が指定するバンクよりプレシンクト属性情報の読み出しを行う。また、読み出し部２２６は、読み出したプレシンクト属性情報に付加された書き込みアドレス１６１を用いてプレシンクトデータを読み出す。データが読み出されると、ステップＳ１２７において、読み出しフラグ設定部２２５は、読み出しフラグ２３１を解除し、読み出し処理を終了する。
【０１３３】
また、ステップＳ１２１において、バンクオーバフラグがセットされていないと判定された場合、処理はステップＳ１２４に進む。この場合、バンクフルは発生していないので、ステップＳ１２４において、読み出しポインタ更新部２２２は、読み出しポインタ１７１の指定先を、次に指定する予定のバンク（現在の指定先の次のバンク）に進める。読み出しポインタ１７１が更新されると、処理はステップＳ１２５に進む。ステップＳ１２５以下の処理は、上述したのと同様であるのでその説明は省略する。
【０１３４】
以上のようにケース１の読み出し処理は実行される。以上のようにデータの書き込みや読み出しを制御することにより、ケース１の場合であっても、バッファの入出力制御をより適切に行うことができる。これにより、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
【０１３５】
次に、書き込みポインタ１６２の更新タイミングが書き込み前（開始時）であり、かつ、読み出しポインタ１７１の更新タイミングが読み出し後（終了時）である場合、すなわち、ケース２の場合について説明する。
【０１３６】
図１５のフローチャートを参照して、ケース２の場合の、書き込み制御部１５１による書き込み処理の流れの例を説明する。
【０１３７】
データ取得部２０１（図７）が、新たなプレシンクトのデータを取得すると、書き込み処理が開始される。書き込み処理が開始されると、書き込みポインタ更新部２０２は、ステップＳ２０１において、書き込みポインタ１６２を更新し、その指定先を、現在の指定先の次のバンクに進める。ステップＳ２０２において、書き込みポインタ更新部２０２は、更新した書き込みポインタ１６２の指定先と、通知された読み出しポインタ１７１の指定先の位置（バンク）が一致するか否かを判定する。一致すると判定された場合、処理はステップＳ２０３に進む。
【０１３８】
ステップＳ２０３において、読み出しフラグ確認部２０３は、読み出しフラグ２３１を参照し、読み出し制御部１５４が、書き込みポインタ１６２が指定するバンクに格納されるデータを読み出し中であるか否かを判定する。読み出しフラグ２３１がセットされており、データ読み出し中であると判定された場合、処理はステップＳ２０４に進む。
【０１３９】
ステップＳ２０４において、書き込みポインタ更新部２０２は、読み出し中のデータを破壊しないように、書き込みポインタ１６２の指定先を読み出しポインタ１７１が指定するバンクの次のバンクに移動させる。この時点でバンクフルが発生した状態となっているので、バンクオーバフラグ設定部２０４は、ステップＳ２０５において、バンクオーバフラグ２１２をセットする。
【０１４０】
バンクオーバフラグ２１２がセットされると、書き込みフラグ設定部２０５は、ステップＳ２０６において、書き込みフラグ２１１をセットする。ステップＳ２０７において、書き込み部２０６は、データ取得部２０１が取得したプレシンクトデータをデータ格納領域１５２に格納させる。さらに、書き込み部２０６は、データ取得部２０１が取得したプレシンクト属性情報に書き込みアドレス１６１を付加し、それを書き込みポインタ１６２の指定先のバンクに書き込む。書き込みが終了すると、書き込みフラグ設定部２０５は、ステップＳ２０８において、書き込みフラグ２１１を解除し、書き込み処理を終了させる。
【０１４１】
つまり、バンクフルが発生し、かつ、読み出し中である場合、ケース１の場合と同様に処理が実行される。
【０１４２】
なお、ステップＳ２０３において、読み出しフラグ２３１がセットされておらず、読み出し中でないと判定された場合、処理はステップＳ２０５に進み、バンクオーバフラグ２１２がセットされる。ケース２の場合、読み出しフラグ２３１は読み出し後に更新されるので、読み出しフラグ２３１がセットされていない場合、そのバンクのデータはまだ読み出されていない。つまり、読み出し中で無ければこのバンクへの書き込みは可能であるものの、その書き込みによりバンクフルが発生した状態となる。したがって、この場合、処理はステップＳ２０５に進み、バンクオーバフラグ２１２がセットされる。ステップＳ２０６以降の処理は、上述した場合と同様であるので、その説明は省略する。
【０１４３】
また、ステップＳ２０２において、書き込みポインタ１６２の指定先と読み出しポインタ１７１の指定先の位置（バンク）が一致しないと判定した場合、２つの状態が考えられる。１つは、バンクフルが発生していない状態、もう１つは、既にバンクフルが発生済みで書き込みポインタ１６２が読み出しポインタ１７１を追い抜いている状態が継続している状態である。いずれにしてもバンクオーバフラグ２１２の設定は変更されず、かつ、書き込みポインタ１６２の現在の指定先のバンクに書き込み可能であるので、処理は、ステップＳ２０６に進む。ステップＳ２０６以降の処理は、上述した場合と同様であるので、その説明は省略する。
【０１４４】
以上のようにケース２の書き込み処理は実行される。
【０１４５】
次に、ケース２の読み出し処理について、図１６のフローチャートを参照して説明する。
【０１４６】
読み出し処理が開始されると、バンクオーバフラグ確認部２２３は、ステップＳ２２１において、バンクオーバフラグ２１２がセットされているか否かを判定する。バンクオーバフラグ２１２がセットされていると判定された場合、処理はステップＳ２２２に進む。
【０１４７】
ステップＳ２２２において、バンクオーバフラグ設定部２２４は、これから行われる処理（読み出し）によりバンクフルの状態が解消されるので、バンクオーバフラグ２１２を解除する。ステップＳ２２３において、読み出しポインタ更新部２２２は、読み出しポインタ１７１の指定先を、書き込みポインタ１６２の指定先のバンクの次のバンクに移動させる。これは上述したように、容易な方法によって、破棄するプレシンクトの数を低減させるようにするための処理である。
【０１４８】
読み出しポインタ１７１が更新されると、読み出しフラグ設定部２２５は、ステップＳ２２４において、読み出し処理中であることを示すために、読み出しフラグ２３１をセットする。ステップＳ２２５において、読み出し部２２６は、読み出しポインタ１７１が指定するバンクよりプレシンクト属性情報の読み出しを行う。また、読み出し部２２６は、読み出したプレシンクト属性情報に付加された書き込みアドレス１６１を用いてプレシンクトデータを読み出す。データが読み出されると、ステップＳ２２６において、読み出しフラグ設定部２２５は、読み出しフラグ２３１を解除する。そして、ステップＳ２２７において、読み出しポインタ１７１の指定先を次のバンクに進め、読み出し処理を終了する。
【０１４９】
つまり、バンクフルの状態にある場合、上述したように読み出し処理が行われることにより（ステップＳ２２３の処理により）、ポインタの位置に関わらず、バンクフルの状態は解消される。
【０１５０】
また、ケース２の場合、読み出しポインタ１７１の更新タイミングは基本的に読み出し終了時であるが、バンクフルが発生した状態の場合、破棄するデータの量を低減させるため、特別に、読み出し後だけでなく読み出し前にも読み出しポインタ１７１が更新される（ステップＳ２２３）。
【０１５１】
ステップＳ２２１において、バンクオーバフラグがセットされていないと判定された場合、処理はステップＳ２２４に進む。この場合、バンクフルは発生していないので、読み出し前における読み出しポインタ１７１の更新はされない。ステップＳ２２４以下の処理は、上述したのと同様であるのでその説明は省略する。
【０１５２】
以上のようにケース２の読み出し処理は実行される。以上のようにデータの書き込みや読み出しを制御することにより、ケース２の場合であっても、バッファの入出力制御をより適切に行うことができる。これにより、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
【０１５３】
次に、書き込みポインタ１６２の更新タイミングが書き込み後（終了時）であり、かつ、読み出しポインタ１７１の更新タイミングが読み出し前（開始時）である場合、すなわち、ケース３の場合について説明する。
【０１５４】
図１７のフローチャートを参照して、ケース１の場合の、書き込み制御部１５１による書き込み処理の流れの例を説明する。
【０１５５】
データ取得部２０１が、新たなプレシンクトのプレシンクトデータおよびプレシンクト属性情報を取得すると、書き込み処理が開始される。書き込み処理が開始されると、書き込みポインタ更新部２０２は、ステップＳ３０１において、書き込みポインタ１６２の指定先と、通知された読み出しポインタ１７１の指定先の位置（バンク）が一致するか否かを判定する。一致すると判定された場合、処理はステップＳ３０２に進む。
【０１５６】
ステップＳ３０２において、読み出しフラグ確認部２０３は、読み出しフラグ２３１を参照し、書き込みポインタ１６２が指定するバンクに格納されるデータを読み出し中であるか否かを判定する。読み出しフラグ２３１がセットされており、データ読み出し中であると判定された場合、処理はステップＳ３０３に進む。
【０１５７】
ステップＳ３０３において、書き込みポインタ更新部２０２は、読み出し中のデータを破壊しないように、書き込みポインタ１６２の指定先を読み出しポインタ１７１が指定するバンクの次のバンクに移動させる。この時点でバンクフルが発生した状態となっているので、バンクオーバフラグ設定部２０４は、ステップＳ３０４において、バンクオーバフラグ２１２をセットする。
【０１５８】
バンクオーバフラグ２１２がセットされると、書き込みフラグ設定部２０５は、ステップＳ３０５において、書き込みフラグ２１１をセットする。ステップＳ３０６において、書き込み部２０６は、データ取得部２０１が取得したプレシンクトデータをデータ格納領域１５２に格納させる。さらに、書き込み部２０６は、データ取得部２０１が取得したプレシンクト属性情報に書き込みアドレス１６１を付加し、それを書き込みポインタ１６２の指定先のバンクに書き込む。書き込みが終了すると、書き込みフラグ設定部２０５は、ステップＳ３０７において、書き込みフラグ２１１を解除する。そして、ステップＳ３０８において、書き込みポインタ更新部２０２は、書き込みポインタ１６２を更新し、その指定先を次のバンクに進め、書き込み処理を終了させる。
【０１５９】
このように、書き込みポインタ１６２が読み出しポインタ１７１に追いつき、かつ、読み出し制御部１５４がそのバンクのデータを読み出し中である場合の処理は、ケース３の場合も、上述したケース１やケース２の場合と基本的に同様である。ただし、書き込みポインタ１６２の更新タイミングは異なる。
【０１６０】
ステップＳ３０２において、読み出しフラグ２３１がセットされておらず、読み出し中でないと判定された場合、処理はステップＳ３０５に進み、書き込みフラグ２１１がセットされる。つまり、この場合、書き込みポインタの指定先は移動されず、現在指定先とされるバンクに対してプレシンクト属性情報の書き込みが実行される。もちろん、プレシンクトデータのデータ格納領域１５２への書き込みも行われる。
【０１６１】
なお、ケース３の場合、読み出しポインタ１７１は、読み出しの前に更新される。したがって、読み出しフラグ２３１がセットされていない場合、そのバンクに格納されたデータは既に読み出されている。したがって、このバンクに新たなプレシンクト属性情報が書き込まれても、次の読み出しは次のバンクから行われるので、正常な読み出しが可能である。したがって、この時点では、まだバンクフルは発生しておらず、バンクオーバフラグ２１２はセットされない。
【０１６２】
ステップＳ３０６以降の処理は、上述した場合と同様であるので、その説明は省略する。
【０１６３】
また、ステップＳ３０１において、書き込みポインタ１６２の指定先と読み出しポインタ１７１の指定先の位置（バンク）が一致しないと判定した場合、２つの状態が考えられる。１つは、バンクフルが発生していない状態、もう１つは、既にバンクフルが発生済みで書き込みポインタ１６２が読み出しポインタ１７１を追い抜いている状態が継続している状態である。いずれにしてもバンクオーバフラグ２１２の設定は変更されず、かつ、書き込みポインタ１６２の現在の指定先のバンクに書き込み可能であるので、処理は、ステップＳ３０５に進む。ステップＳ３０５以降の処理は、上述した場合と同様であるので、その説明は省略する。
【０１６４】
以上のようにケース３の書き込み処理は実行される。
【０１６５】
次に、ケース３の読み出し処理について、図１８のフローチャートを参照して説明する。
【０１６６】
読み出し処理が開始されると、バンクオーバフラグ確認部２２３は、ステップＳ３２１において、バンクオーバフラグ２１２がセットされているか否かを判定する。バンクオーバフラグ２１２がセットされていると判定された場合、処理はステップＳ３２２に進む。
【０１６７】
ステップＳ３２２において、バンクオーバフラグ設定部２２４は、これから行われる処理によりバンクフルの状態が解消されるので、バンクオーバフラグ２１２を解除する。ステップＳ３２３において、読み出しポインタ更新部２２２は、書き込みフラグ２１１がセットされているか否かを確認し、書き込み制御部１５１が書き込み中であるか否かを判定する。書き込み中であると判定された場合，処理はステップＳ３２４に進む。
【０１６８】
ステップＳ３２４において、読み出しポインタ更新部２２２は、読み出しポインタ１７１の指定先を、書き込みポインタ１６２の指定先のバンクの次のバンクに移動させる。これは上述したように、容易な方法によって、破棄するプレシンクトの数を低減させるようにするための処理である。また、書き込み中のバンクのデータを読み出さないようにすることもできる。
【０１６９】
読み出しポインタ１７１が更新されると、読み出しフラグ設定部２２５は、ステップＳ３２７において、読み出し処理中であることを示すために、読み出しフラグ２３１をセットする。ステップＳ３２８において、読み出し部２２６は、読み出しポインタ１７１が指定するバンクよりプレシンクト属性情報の読み出しを行う。また、読み出し部２２６は、読み出したプレシンクト属性情報に付加された書き込みアドレス１６１を用いてプレシンクトデータを読み出す。データが読み出されると、ステップＳ３２９において、読み出しフラグ設定部２２５は、読み出しフラグ２３１を解除し、読み出し処理を終了する。
【０１７０】
また、ステップＳ３２３において、書き込み中でないと判定された場合、処理はステップＳ３２５に進む。ステップＳ３２５において、読み出しポインタ更新部２２２は、読み出しポインタ１７１の指定先を、書き込みポインタ１６２の指定先のバンクに移動させる。
【０１７１】
ケース３の場合、書き込みポインタ１６２は、書き込み後に更新される。したがって、書き込みフラグ２１１がセットされていない場合、まだそのバンクのデータは新しいデータに更新されていない。つまり、この場合、書き込みポインタ１６２の指定先のバンクのデータが、全バンクに格納されるデータの内、最も古いデータとなる。したがって、書き込み中で無ければ、書き込みポインタ１６２の指定先のバンクのデータを読み出すようにすることにより（ステップＳ３２５）、読み出し制御部１５４は、破棄するプレシンクトの数をより低減させることができる。
【０１７２】
つまり、書き込み制御部１５１は、ステップＳ３２３において書き込み中であるか否かを確認し、その結果によって読み出しポインタ１７１の指定先の移動先を制御する。これにより、書き込み制御部１５１は、破棄するプレシンクトの数をより低減させることができる。
【０１７３】
ステップＳ３２５の処理が終了すると、処理はステップＳ３２７に進む。ステップＳ３２７以下の処理は、上述したのと同様であるのでその説明は省略する。
【０１７４】
また、ステップＳ３２１において、バンクオーバフラグ２１２がセットされていないと判定された場合、処理はステップＳ３２６に進む。この場合、バンクフルは発生していないので、ステップＳ３２６において、読み出しポインタ更新部２２２は、読み出しポインタ１７１の指定先を、次に指定する予定のバンク（現在の指定先の次のバンク）に進める。読み出しポインタ１７１が更新されると、処理はステップＳ３２７に進む。ステップＳ３２７以下の処理は、上述したのと同様であるのでその説明は省略する。
【０１７５】
以上のようにケース３の読み出し処理は実行される。以上のようにデータの書き込みや読み出しを制御することにより、ケース３の場合であっても、バッファの入出力制御をより適切に行うことができる。これにより、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
【０１７６】
次に、書き込みポインタ１６２および読み出しポインタ１７１の更新タイミングがいずれも書き込み後または読み出し後（終了時）である場合、すなわち、ケース４の場合について説明する。
【０１７７】
図１９のフローチャートを参照して、ケース４の場合の、書き込み制御部１５１による書き込み処理の流れの例を説明する。
【０１７８】
データ取得部２０１（図７）が、新たなプレシンクトのデータを取得すると、書き込み処理が開始される。書き込み処理が開始されると、書き込みポインタ更新部２０２は、ステップＳ４０１において、書き込みポインタ１６２の指定先と、通知された読み出しポインタ１７１の指定先の位置（バンク）が一致するか否かを判定する。一致すると判定された場合、処理はステップＳ４０２に進む。
【０１７９】
ステップＳ４０２において、読み出しフラグ確認部２０３は、読み出しフラグ２３１を参照し、読み出し制御部１５４が、書き込みポインタ１６２が指定するバンクに格納されるデータを読み出し中であるか否かを判定する。読み出しフラグ２３１がセットされており、データ読み出し中であると判定された場合、処理はステップＳ４０３に進む。
【０１８０】
ステップＳ４０３において、書き込みポインタ更新部２０２は、読み出し中のデータを破壊しないように、書き込みポインタ１６２の指定先を読み出しポインタ１７１が指定するバンクの次のバンクに移動させる。この時点でバンクフルが発生した状態となっているので、バンクオーバフラグ設定部２０４は、ステップＳ４０４において、バンクオーバフラグ２１２をセットする。
【０１８１】
バンクオーバフラグ２１２がセットされると、書き込みフラグ設定部２０５は、ステップＳ４０５において、書き込みフラグ２１１をセットする。ステップＳ４０６において、書き込み部２０６は、データ取得部２０１が取得したプレシンクトデータをデータ格納領域１５２に格納させる。さらに、書き込み部２０６は、データ取得部２０１が取得したプレシンクト属性情報に書き込みアドレス１６１を付加し、それを書き込みポインタ１６２の指定先のバンクに書き込む。書き込みが終了すると、書き込みフラグ設定部２０５は、ステップＳ４０７において、書き込みフラグ２１１を解除する。そして、ステップＳ４０８において、書き込みポインタ更新部２０２は、書き込みポインタ１６２の指定先を、現在の指定先のバンクの次のバンクに進め、書き込み処理を終了させる。
【０１８２】
つまり、バンクフルが発生し、かつ、読み出し中である場合、ケース３の場合と同様に処理が実行される。
【０１８３】
なお、ステップＳ４０２において、読み出しフラグ２３１がセットされておらず、読み出し中でないと判定された場合、処理はステップＳ４０４に進み、バンクオーバフラグ２１２がセットされる。ケース４の場合、読み出しフラグ２３１は読み出し後に更新されるので、読み出しフラグ２３１がセットされていない場合、そのバンクのデータはまだ読み出されていない。つまり、読み出し中で無ければこのバンクへの書き込みは可能であるものの、その書き込みによりバンクフルが発生した状態となる。したがって、この場合、処理はステップＳ４０４に進み、バンクオーバフラグ２１２がセットされる。ステップＳ４０５以降の処理は、上述した場合と同様であるので、その説明は省略する。
【０１８４】
また、ステップＳ４０１において、書き込みポインタ１６２の指定先と読み出しポインタ１７１の指定先の位置（バンク）が一致しないと判定した場合、２つの状態が考えられる。１つは、バンクフルが発生していない状態、もう１つは、既にバンクフルが発生済みで書き込みポインタ１６２が読み出しポインタ１７１を追い抜いている状態が継続している状態である。いずれにしてもバンクオーバフラグ２１２の設定は変更されず、かつ、書き込みポインタ１６２の現在の指定先のバンクに書き込み可能であるので、処理は、ステップＳ４０５に進む。ステップＳ４０５以降の処理は、上述した場合と同様であるので、その説明は省略する。
【０１８５】
以上のようにケース４の書き込み処理は実行される。
【０１８６】
次に、ケース４の読み出し処理について、図２０のフローチャートを参照して説明する。
【０１８７】
読み出し処理が開始されると、バンクオーバフラグ確認部２２３は、ステップＳ４２１において、バンクオーバフラグ２１２がセットされているか否かを判定する。バンクオーバフラグ２１２がセットされていると判定された場合、処理はステップＳ４２２に進む。
【０１８８】
ステップＳ４２２において、バンクオーバフラグ設定部２２４は、これから行われる処理（読み出し）によりバンクフルの状態が解消されるので、バンクオーバフラグ２１２を解除する。ステップＳ４２３において、読み出しポインタ更新部２２２は、書き込みフラグ２１１がセットされているか否かを確認し、書き込み中であるか否かを判定する。書き込みフラグ２１１がセットされており、書き込み中であると判定された場合、処理はステップＳ４２４に進む。ステップＳ４２４において、読み出しポインタ更新部２２２は、読み出しポインタ１７１の指定先を、書き込みポインタ１６２の指定先のバンクの次のバンクに移動させる。これは上述したように、容易な方法によって、破棄するプレシンクトの数を低減させるようにするための処理である。
【０１８９】
読み出しポインタ１７１が更新されると、読み出しフラグ設定部２２５は、ステップＳ４２６において、読み出し処理中であることを示すために、読み出しフラグ２３１をセットする。ステップＳ４２７において、読み出し部２２６は、読み出しポインタ１７１が指定するバンクよりプレシンクト属性情報の読み出しを行う。また、読み出し部２２６は、読み出したプレシンクト属性情報に付加された書き込みアドレス１６１を用いてプレシンクトデータを読み出す。データが読み出されると、ステップＳ４２８において、読み出しフラグ設定部２２５は、読み出しフラグ２３１を解除する。そして、ステップＳ４２９において、読み出しポインタ１７１の指定先を次のバンクに進め、読み出し処理を終了する。
【０１９０】
また、ステップＳ４２３において、書き込み中でないと判定された場合、処理はステップＳ４２５に進む。ステップＳ４２５において、読み出しポインタ更新部２２２は、読み出しポインタ１７１の指定先を、書き込みポインタ１６２の指定先のバンクに移動させる。
【０１９１】
ケース４の場合、書き込みポインタ１６２は、ケース３の場合と同様に、書き込み後に更新される。つまり、この場合も、書き込みポインタ１６２の指定先のバンクのデータが、全バンクに格納されるデータの内、最も古いデータとなる。したがって、書き込み中で無ければ、書き込みポインタ１６２の指定先のバンクのデータを読み出すようにすることにより（ステップＳ４２５）、読み出し制御部１５４は、破棄するプレシンクトの数をより低減させることができる。
【０１９２】
つまり、書き込み制御部１５１は、ステップＳ４２３において書き込み中であるか否かを確認し、その結果によって読み出しポインタ１７１の指定先の移動先を制御する。これにより、書き込み制御部１５１は、破棄するプレシンクトの数をより低減させることができる。
【０１９３】
ステップＳ４２５の処理が終了すると、処理はステップＳ４２６に進む。ステップＳ４２６以下の処理は、上述したのと同様であるのでその説明は省略する。
【０１９４】
また、ステップＳ４２１において、バンクオーバフラグ２１２がセットされていないと判定された場合、処理はステップＳ４２６に進む。この場合、バンクフルは発生していないので、読み出しポインタ１７１の更新はせずに読み出しが行われる。ステップＳ４２６以下の処理は、上述したのと同様であるのでその説明は省略する。
【０１９５】
以上のようにケース４の読み出し処理は実行される。以上のようにデータの書き込みや読み出しを制御することにより、ケース４の場合であっても、バッファの入出力制御をより適切に行うことができる。これにより、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
【０１９６】
次に、以上のような入出力制御による、読み出しと書き出しの関係について、図２１乃至図２３を参照して説明する。なお、ここでは、ケース２の場合について説明する。
【０１９７】
図２１は、ケース２において、読み出し中にバンクフルが発生した場合の、各パラメータの変化の様子の例を説明する図である。図２１において、時系列は図中左から右に進む。
【０１９８】
図２１の一番上の段には、クロック信号（CLOCK）の波形が示される。図２１に示されるようにクロック信号は２値の信号であり、図中上側が値「１」を示し、図中下側が値「０」を示している。図２１の上から２番目の段には、書き込みフラグ（WritingFlag）２１１の値の変化の様子が波形（線）として示されている。図２１に示されるように書き込みフラグ２１１は２値のパラメータであり、図中上側が値「１」を示し、図中下側が値「０」を示している。図２１の上から３番目の段には、書き込みポインタ（WritePointer）１６２の値の変化の様子が数値で示されている。書き込みポインタ１６２の段に示される数値は、書き込みポインタ１６２の指定先のバンクの識別情報を示している。つまり、この値が変化する箇所が、書き込みポインタ１６２が更新されるタイミングを示している。
【０１９９】
また、図２１の上から４段目には、読み出しフラグ（ReadingFlag）２３１の値の変化の様子が波形（線）として示されている。図２１に示されるように読み出しフラグ２３１は２値のパラメータであり、図中上側が値「１」を示し、図中下側が値「０」を示している。図２１の上から５番目の段には、読み出しポインタ（ReadPointer）１７１の値の変化の様子が数値で示されている。読み出しポインタ１７１の段に示される数値は、読み出しポインタ１７１の指定先のバンクの識別情報を示している。つまり、この値が変化する箇所が、読み出しポインタ１７１が更新されるタイミングを示している。
【０２００】
図２１の一番下の段には、バンクオーバフラグ（BankOverFlag）２１２の値の変化の様子が波形（線）として示されている。図２１に示されるようにバンクオーバフラグ２１２は２値のパラメータであり、図中上側が値「１」を示し、図中下側が値「０」を示している。
【０２０１】
図２１の時刻Ｔ１において、書き込み制御部１５１は、書き込みを行っていない。ただし、読み出し制御部１５４は、バンク２からデータを読み出している。バンクフルは発生していない。
【０２０２】
時刻Ｔ２において、書き込みに先立ち、書き込みポインタ１６２の指定先がバンク２に更新される。この時点で書き込みポインタ１６２と読み出しポインタ１７１の指定先が互いに等しくなるので、読み出しフラグ２３１の値に基づいて読み出し中であることが確認される。読み出し中であるので、時刻Ｔ３において、書き込みポインタ１６２の指定先がバンク３に、さらに変更され、バンクオーバフラグ２１２および書き込みフラグ２１１がセットされ、バンク３に対する書き込みが開始される。
【０２０３】
時刻Ｔ４において、読み出しが終了すると、読み出しフラグ２３１が解除され、読み出しポインタ１７１の指定先が次のバンク（バンク３）に更新される。ただし、まだバンクフルの状態は継続しており、バンクオーバフラグ２１２はセットされたままとなる。時刻Ｔ５において、書き込みが終了し、書き込みフラグ２１１が解除されても、まだバンクフルの状態は継続しており、バンクオーバフラグ２１２はセットされたままとなる。書き込みポインタ１６２は開始時に更新されるので、時刻Ｔ５においては更新されない。
【０２０４】
時刻Ｔ６において、読み出し処理が開始されると、バンクオーバフラグ２１２が解除され、読み出しポインタ１７１の指定先が書き込みポインタ１６２の指定先の次のバンク（バンク４）に移動され、バンク４からのデータの読み出しが開始される。
【０２０５】
このように制御することにより、送信バッファ１１３は、バンクフルが発生した場合であっても、バンク３のデータを破棄するのみで、データを伝送することができる。つまり、送信装置１０１は、バッファの入出力制御をより適切に行うことができる。これにより、送信装置１０１は、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
【０２０６】
図２２は、ケース２において、読み出し中でないときにバンクフルが発生した場合の、各パラメータの変化の様子の例を説明する図である。図２２の構成は、基本的に図２１と同様である。
【０２０７】
図２２の時刻Ｔ１１において、書き込み制御部１５１は書き込みを行っておらず、読み出し制御部１５４も読み出しを行っていない。また、バンクフルは発生していない。
【０２０８】
時刻Ｔ１２において、書き込み処理が開始されると、書き込みポインタ１６２の指定先がバンク１からバンク２に更新される。また、バンク２は読み出し中でないので、書き込みフラグ２１１がセットされ、バンク２への書き込みが開始される。この時点で書き込みポインタ１６２と読み出しポインタ１７１の指定先が互いに等しくなるので、バンクフルが発生した状態になり、バンクオーバフラグ２１２がセットされる。
【０２０９】
時刻Ｔ１３において、読み出し処理が開始されると、バンクオーバフラグ２１２が解除され、読み出しポインタ１７１の指定先が、書き込みポインタ１６２の指定先のバンク（バンク２）の次のバンク（バンク３）に更新される。また、読み出しフラグ２３１がセットされ、バンク３からのデータの読み出しが開始される。
【０２１０】
時刻Ｔ１４において、書き込みが終了し、書き込みフラグ２１１が解除される。このとき、読み出しフラグ２３１や読み出しポインタ１７１は更新されない。また、バンクオーバフラグ２１２もセットされない。
【０２１１】
時刻Ｔ１５において、読み出しが終了し、読み出しフラグ２３１が解除されると、読み出しポインタ１７１の指定先が、現在の指定先（バンク３）の次のバンク（バンク４）に進められる。
【０２１２】
このように制御することにより、送信バッファ１１３は、バンクフルが発生した場合であっても、バンク３のデータを破棄せずに、データを伝送することができる。つまり、送信装置１０１は、バッファの入出力制御をより適切に行うことができる。これにより、送信装置１０１は、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
【０２１３】
図２３は、ケース２において、バンクフル発生中に複数のバンクに書き込みが行われた場合の、各パラメータの変化の様子の例を説明する図である。図２３の構成は、基本的に図２２と同様である。
【０２１４】
図２３の時刻Ｔ２１において、書き込み制御部１５１は書き込みを行っておらず、読み出し制御部１５４も読み出しを行っていない。また、バンクフルは発生していない。
【０２１５】
時刻Ｔ２２において、書き込み処理が開始されると、書き込みポインタ１６２の指定先がバンク１からバンク２に更新される。また、バンク２は読み出し中でないので、書き込みフラグ２１１がセットされ、バンク２への書き込みが開始される。この時点で書き込みポインタ１６２と読み出しポインタ１７１の指定先が互いに等しくなるので、バンクフルが発生した状態になり、バンクオーバフラグ２１２がセットされる。
【０２１６】
時刻Ｔ２３において、書き込みが終了すると、書き込みフラグ２１１が解除される。時刻Ｔ２４において、再度、書き込み処理が開始されると、書き込みポインタ１６２の指定先がバンク２からバンク３に更新される。また、書き込みフラグ２１１がセットされ、バンク３への書き込みが開始される。バンクオーバフラグ２１２は既にセットされている。
【０２１７】
時刻Ｔ２５において、読み出しが開始されると、読み出しポインタ１７１の指定先が、バンク２から、書き込みポインタ１６２の指定先（バンク３）の次のバンク（バンク４）に更新される。また、読み出しフラグ２３１がセットされ、読み出しが開始される。また、バンクオーバフラグ２１２は解除される。
【０２１８】
このとき、読み出しポインタ１７１の指定先が、バンク２から、次のバンク（バンク３）に更新されても、バンク３は書き込み中であり読み出すことはできない。また、仮に書き込みが終了していたとしても、バンク３のデータは最新のプレシンクトのデータに更新されている。したがって、読み出し制御部１５４は、上述したように、読み出しポインタ１７１の指定先を、バンク２から、書き込みポインタ１６２の指定先の次のバンク（バンク４）に更新することにより、復号画像への影響をより低減させることができる。
【０２１９】
時刻Ｔ２６において、書き込みが終了すると書き込みフラグ２１１が解除される。時刻Ｔ２７において、読み出しが終了すると読み出しフラグ２３１が解除される。このとき、読み出しポインタ１７１の指定先は、次のバンク（バンク５）に更新される。
【０２２０】
このように制御することにより、送信バッファ１１３は、バンクフルが発生中に複数回書き込みが行われた場合であっても、バンク３のデータを破棄せずに、データを伝送することができる。つまり、送信装置１０１は、バッファの入出力制御をより適切に行うことができる。これにより、送信装置１０１は、バンクフルが発生した場合であっても、復号画像への影響をより低減させることができる。
【０２２１】
なお、以上においては、ケース１乃至ケース４の４つのケースが存在することを説明したが、どのケースを用いて入出力制御するかは、予め定められていれば任意である。ただし、図１３乃至図２０を参照して説明したように、ケース１またはケース２の場合の方が、ケース３またはケース４の場合よりも制御がより容易である。また、ケース２の場合、書き込みポインタ１６２と読み出しポインタ１７１の更新タイミングが互いに異なる。したがって、ケース２の場合の方がケース１の場合よりも、書き込みポインタの指定先と読み出しポインタの指定先が一致し、かつ、読み出し中である可能性が少ない。したがって、ケース２の場合の方が、ケース１の場合よりも、書き込みポインタの更新（ステップＳ１０４、ステップＳ２０４）回数が少なくすることができ、処理が容易になる。さらに、読み出し処理もケース２の方がより容易である。
【０２２２】
以上のことから、バッファの入出力制御をより容易かつ適切に行うためには、ケース２を適用するのが望ましい。
【０２２３】
以上のような本発明を適用した低遅延コーデックを使った情報処理システム１００（伝送システム）の具体的な例は、以下のようなものが考えられる。
【０２２４】
例えば、中継カメラの映像を放送局に伝送するようなシステムが考えられる。なお、伝送路１０２は有線であってもよいし、無線であってもよい。また、例えば、TV会議システムなども考えられる。
【０２２５】
また、ユーザのインタラクティブな操作をリアルタイム（即時的）に画面表示するシステム、すなわち、リアルタイム圧縮・伝送システムにも本発明を適用することができる。例えばチューナと表示部が別体となったテレビジョン映像伝送システムや、ホームネットワークにおける映像蓄積器（HDDレコーダなど）と表示機器（TVなど）との無線映像伝送が考えられる。
【０２２６】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、図２４に示されるようなパーソナルコンピュータとして構成されるようにしてもよい。
【０２２７】
図２４において、パーソナルコンピュータ５００のCPU（Central Processing Unit）５０１は、ROM（Read Only Memory）５０２に記憶されているプログラム、または記憶部５１３からRAM（Random Access Memory）５０３にロードされたプログラムに従って各種の処理を実行する。RAM５０３にはまた、CPU５０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２２８】
CPU５０１、ROM５０２、およびRAM５０３は、バス５０４を介して相互に接続されている。このバス５０４にはまた、入出力インタフェース５１０も接続されている。
【０２２９】
入出力インタフェース５１０には、キーボード、マウスなどよりなる入力部５１１、CRT（Cathode Ray Tube）やLCD（Liquid Crystal Display）などよりなるディスプレイ、並びにスピーカなどよりなる出力部５１２、ハードディスクなどより構成される記憶部５１３、モデムなどより構成される通信部５１４が接続されている。通信部５１４は、インターネットを含むネットワークを介しての通信処理を行う。
【０２３０】
入出力インタフェース５１０にはまた、必要に応じてドライブ５１５が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア５２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部５１３にインストールされる。
【０２３１】
上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
【０２３２】
この記録媒体は、例えば、図２４に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disc - Read Only Memory）,DVD（Digital Versatile Disc）を含む）、光磁気ディスク（MD（Mini Disc）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア５２１により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM５０２や、記憶部５１３に含まれるハードディスクなどで構成される。
【０２３３】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２３４】
また、本明細書において、システムとは、複数のデバイス（装置）により構成される装置全体を表わすものである。
【０２３５】
なお、以上において、１つの装置として説明した構成を分割し、複数の装置として構成するようにしてもよい。逆に、以上において複数の装置として説明した構成をまとめて１つの装置として構成されるようにしてもよい。また、各装置の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置の構成の一部を他の装置の構成に含めるようにしてもよい。つまり、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２３６】
【図１】本発明を適用した情報処理システムの構成例を示すブロック図である。
【図２】ウェーブレット変換の様子を説明する図である。
【図３】ラインベース・ウェーブレット変換の様子の例を説明する図である。
【図４】ラインベース・ウェーブレット変換の様子の例を説明する図である。
【図５】送信バッファの入出力インタフェースを説明する図である。
【図６】送信バッファの内部の構成例を示すブロック図である。
【図７】書き込み制御部と読み出し制御部が有する機能の例を示す図である。
【図８】バンクオーバの発生について説明する図である。
【図９】バンクオーバの発生時の制御について説明する図である。
【図１０】バンクオーバの発生時の制御について説明する図である。
【図１１】ポインタやフラグの制御の様子を説明する図である。
【図１２】ポインタの更新タイミングのパターンを説明する図である。
【図１３】ケース１の書き込み処理の流れの例を説明するフローチャートである。
【図１４】ケース１の読み出し処理の流れの例を説明するフローチャートである。
【図１５】ケース２の書き込み処理の流れの例を説明するフローチャートである。
【図１６】ケース２の読み出し処理の流れの例を説明するフローチャートである。
【図１７】ケース３の書き込み処理の流れの例を説明するフローチャートである。
【図１８】ケース３の読み出し処理の流れの例を説明するフローチャートである。
【図１９】ケース４の書き込み処理の流れの例を説明するフローチャートである。
【図２０】ケース４の読み出し処理の流れの例を説明するフローチャートである。
【図２１】ケース２において、読み出し中にバンクフルが発生した場合の、各パラメータの変化の様子の例を説明する図である。
【図２２】ケース２において、読み出し中でないときにバンクフルが発生した場合の、各パラメータの変化の様子の例を説明する図である。
【図２３】ケース２において、バンクフル発生中に複数のバンクに書き込みが行われた場合の、各パラメータの変化の様子の例を説明する図である。
【図２４】本発明を適用したパーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０２３７】
１００  情報処理システム，  １０１  送信装置，  １０２  伝送路，  １０３  受信装置，  １１１  入力インタフェース，  １１２  ラインベース・コーデック・エンコーダ，  １１３  送信バッファ，  １１４  伝送インタフェース，  １４１  データ信号，  １４２  データ属性信号，  １４３  伝送パケット，  １４４  出力停止信号，  １５１  書き込み制御部，  １５２  データ格納領域，  １５３  プレシンクト属性情報格納領域，  １５４  読み出し制御部，  １６１  書き込みアドレス，  １６２  書き込みポインタ，  １７１  読み出しポインタ，  １７２  読み出しアドレス，  １８１  パケット生成部，  ２０１  データ取得部，  ２０２  書き込みポインタ更新部，  ２０３  読み出しフラグ確認部，  ２０４  バンクオーバフラグ設定部，  ２０５  書き込みフラグ設定部，  ２０６  書き込み部，  ２０７  保持部，  ２１１  書き込みフラグ，  ２１２  バンクオーバフラグ，  ２２２  読み出しポインタ更新部，  ２２３  バンクオーバフラグ確認部，  ２２４  バンクオーバフラグ設定部，  ２２５  読み出しフラグ設定部，  ２２６  読み出し部，  ２２７  保持部，  ２３１  読み出しフラグ，  ２４０  バッファ入出力制御部
【図１】
2010068301.tif 000003
【図２】
2010068301.tif 000004
【図３】
2010068301.tif 000005
【図４】
2010068301.tif 000006
【図５】
2010068301.tif 000007
【図６】
2010068301.tif 000008
【図７】
2010068301.tif 000009
【図８】
2010068301.tif 000010
【図９】
2010068301.tif 000011
【図１０】
2010068301.tif 000012
【図１１】
2010068301.tif 000013
【図１２】
2010068301.tif 000014
【図１３】
2010068301.tif 000015
【図１４】
2010068301.tif 000016
【図１５】
2010068301.tif 000017
【図１６】
2010068301.tif 000018
【図１７】
2010068301.tif 000019
【図１８】
2010068301.tif 000020
【図１９】
2010068301.tif 000021
【図２０】
2010068301.tif 000022
【図２１】
2010068301.tif 000023
【図２２】
2010068301.tif 000024
【図２３】
2010068301.tif 000025
【図２４】
2010068301.tif 000026