(57)【特許請求の範囲】
【請求項１】
記録媒体に格納されたデータを第１バッファメモリを介して出力するデータ出力装置において、
複数のデータ転送命令を指示リストに設定する設定手段、
前記指示リストに設定された複数のデータ転送命令を順に指定する指定手段、
前記指定手段によって指定されたデータ転送命令に従うデータを前記記録媒体から前記第１バッファメモリに転送する転送手段、
前記転送手段の転送処理によって前記第１バッファメモリに格納されたデータを読み出す読み出し手段、
前記指示リストに設定された複数のデータ転送命令に従うデータのうち前記読み出し手段によって未だ読み出されていないデータのサイズを検出する第１検出手段、
前記指示リストに設定された複数のデータ転送命令に従うデータのうち前記転送手段によって未だ転送されていないデータのサイズを検出する第２検出手段、および
前記第１検出手段によって検出されたサイズから前記第２検出手段によって検出されたサイズを減算して求められる差分値が閾値を下回るとき前記読み出し手段を不能化する不能化手段を備えることを特徴とする、データ出力装置。
【請求項２】
前記データは複数画面の画像データであり、
前記閾値は前記読み出し手段によって次に読み出すべき画像データのサイズに相当する、請求項１記載のデータ出力装置。
【請求項３】
前記記録媒体はディスク媒体であり、
前記ディスク媒体から前記画像データを再生する可動再生部材をさらに備える、請求項２記載のデータ出力装置。
【請求項４】
前記データは複数画面の符号化画像データであり、
前記読み出し手段によって読み出された符号化画像データを復号する復号手段、
前記復号手段によって復号された復号画像データを第２バッファメモリに書き込む書き込み手段、および
前記第２バッファメモリに格納された復号画像データをモニタに出力する出力手段をさらに備える、請求項１ないし３のいずれかに記載のデータ出力装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、データ出力装置に関し、たとえば動画像データの再生に用いられ、記録媒体に格納されたデータをバッファメモリを介して出力する、データ出力装置に関する。
【０００２】
【背景技術】
記録媒体から読み出されたデータをバッファメモリに一旦格納するようにすれば、記録媒体からのデータの読み出しが間欠的であっても、データを連続的に出力することができる。しかも、バッファメモリのアドレスをリング状に更新することによって、つまりバッファメモリをリングバッファとして用いることによって、バッファメモリの容量を越えるデータの出力が可能となる。
【０００３】
【発明が解決しようとする課題】
しかし、バッファメモリのアドレス管理が適切でなければ、読み出しアドレスが書き込みアドレスを追い越してしまい、データ処理が破綻してしまう。
【０００４】
それゆえに、この発明の主たる目的は、バッファメモリにおいて読み出しアドレスが書き込みアドレスを追い越すのを防止できる、データ出力装置を提供することである。
【０００５】
【課題を解決するための手段】
この発明に従うデータ出力装置は、記録媒体に格納されたデータを第１バッファメモリを介して出力するデータ出力装置において、複数のデータ転送命令を指示リストに設定する設定手段、指示リストに設定された複数のデータ転送命令を順に指定する指定手段、指定手段によって指定されたデータ転送命令に従うデータを記録媒体から第１バッファメモリに転送する転送手段、転送手段の転送処理によって第１バッファメモリに格納されたデータを読み出す読み出し手段、指示リストに設定された複数のデータ転送命令に従うデータのうち読み出し手段によって未だ読み出されていないデータのサイズを検出する第１検出手段、指示リストに設定された複数のデータ転送命令に従うデータのうち転送手段によって未だ転送されていないデータのサイズを検出する第２検出手段、および第１検出手段によって検出されたサイズから第２検出手段によって検出されたサイズを減算して求められる差分値が閾値を下回るとき読み出し手段を不能化する不能化手段を備えることを特徴とする。
【０００６】
【作用】
記録媒体に格納されたデータを第１バッファメモリを介して出力するとき、複数のデータ転送命令が設定手段によって指示リストに設定される。指定手段は指示リストに設定された複数のデータ転送命令を順に指定し、転送手段は指定手段によって指定されたデータ転送命令に従うデータを記録媒体から第１バッファメモリに転送する。転送手段の転送処理によって第１バッファメモリに格納されたデータは、読み出し手段によって読み出される。
【０００７】
ここで、指示リストに設定された複数のデータ転送命令に従うデータのうち読み出し手段によって未だ読み出されていないデータのサイズは第１検出手段によって検出され、指示リストに設定された複数のデータ転送命令に従うデータのうち転送手段によって未だ転送されていないデータのサイズは第２検出手段によって検出される。読み出し手段は、第１検出手段によって検出されたサイズから第２検出手段によって検出されたサイズを減算して求められる差分値が閾値を下回るとき、不能化手段によって不能化される。
【０００８】
第１検出手段および第２検出手段の各々によって検出されるサイズの差分は、第１バッファメモリへの転送は完了したが、読み出し手段による読み出しは未だ完了していないデータのサイズとなる。このようなサイズが閾値を下回るときに読み出し手段を不能化することによって、第１バッファメモリにおいて読み出しアドレスが書き込みアドレスを追い越す事態が回避される。
【０００９】
データが複数画面の画像データである場合、閾値は、好ましくは読み出し手段によって次に読み出すべき画像データのサイズに相当する。これによって、第１バッファメモリの容量が最大限に効率化される。
【００１０】
記録媒体がディスク媒体である場合、データは可動再生部材によってディスク媒体から再生される。ディスク媒体では可動再生部材のシーク動作が必要であり、シーク動作の間は転送が中断されるため、第１検出手段および第２検出手段の各々によって検出されるサイズの差分はデータの記録状態によって大きく変動しうる。このような場合に、閾値を読み出し手段によって次に読み出すべき画像データのサイズとする効果が顕著に現れる。
【００１１】
画像データが符号化画像データである場合、好ましくは、読み出し手段によって読み出された符号化画像データが復号手段によって復号され、復号画像データが書き込み手段によって第２バッファメモリに書き込まれ、そして第２バッファメモリに格納された復号画像データが出力手段によってモニタに出力される。これによって、読み出し手段が不能化される間は、同一画面の画像がモニタに表示され続ける。
【００１２】
【発明の効果】
この発明によれば、第１検出手段および第２検出手段の各々によって検出されるサイズの差分が閾値を下回るときに読み出し手段を不能化するようにしたため、第１バッファメモリ上で読み出しアドレスが書き込みアドレスを追い越す事態が回避される。
【００１３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【００１４】
【実施例】
図１を参照して、この実施例のディジタルカメラ１０はイメージセンサ１２を含む。イメージセンサ１２の前面には色フィルタ（図示せず）が装着され、被写体の光像はこの色フィルタを介してイメージセンサ１２に照射される。
【００１５】
モード切換スイッチ６０を“カメラ”側に切り換えると、対応する状態信号がシステムコントローラ５４からＣＰＵ３２に与えられる。ＣＰＵ３２は、被写体のリアルタイム動画像（スルー画像）をモニタ４０に表示すべく、ＴＧ（Timing Generator）１４に露光および間引き読み出しの繰り返しを命令する。ＴＧ１４は、ＳＧ（Signal Generator）１６から出力される垂直同期信号および水平同期信号に基づいてタイミング信号を生成し、イメージセンサ１２に露光および間引き読み出しを施す。この結果、各フレームの低解像度カメラ信号が１／３０秒毎にイメージセンサ１２から出力される。
【００１６】
出力されたカメラ信号は、ＣＤＳ／ＡＧＣ回路１８で周知のノイズ除去およびレベル調整を施され、その後、Ａ／Ｄ変換器２０によってディジタル信号であるカメラデータに変換される。信号処理回路２２は、Ａ／Ｄ変換器２０から出力されたカメラデータに色分離，白バランス調整，ＹＵＶ変換などの処理を施してＹＵＶデータを生成する。イメージセンサ１２は各フレームのカメラ信号を１／３０秒毎に出力するため、各フレームのＹＵＶデータ（静止画像データ）もまた、１／３０秒毎に信号処理回路２２から出力される。信号処理回路２２は、こうして生成された静止画像データを書き込みリクエストとともにメモリ制御回路２６に出力する。
【００１７】
メモリ制御回路２６は、書き込みリクエストに応答して、静止画像データをＳＤＲＡＭ２８に書き込む。ＳＤＲＡＭ２８には図２に示すような表示画像エリア２８ａが形成されており、静止画像データは当該表示画像エリア２８ａに書き込まれる。表示画像エリア２８ａは１フレーム分の容量しか持たず、各フレームの静止画像データは１／３０秒毎に更新される。一方、ビデオエンコーダ３８は読み出しリクエストを１／６０秒毎にメモリ制御回路２６に出力し、メモリ制御回路２６は静止画像データを表示画像エリア２８ａから１／６０秒毎に読み出す。読み出された各フレームの静止画像データは、バス２４を介してビデオエンコーダ３８に与えられる。ビデオエンコーダ３８は、与えられた各フレームの静止画像データをＮＴＳＣ方式のコンポジット画像信号に変換し、変換したコンポジット画像信号をモニタ４０に与える。この結果、被写体のスルー画像がモニタ４０に表示される。
【００１８】
オペレータがシャッタボタン５８を操作すると、対応する状態信号がシステムコントローラ５４からＣＰＵ３２に与えられる。ＣＰＵ３２は、静止画像データの圧縮および音声信号の取込を行うべく、１／３０秒毎に画像圧縮命令および音声処理命令を発生する。画像圧縮命令はＪＰＥＧコーデック３０に与えられ、音声処理命令は信号処理回路４６に与えられる。
【００１９】
ＪＰＥＧコーデック３０は、画像圧縮命令に応答して読み出しリクエストをメモリ制御回路２６に出力する。ＳＤＲＡＭ２８の表示画像エリア２８ａに格納された静止画像データは、メモリ制御回路２６によって１／３０秒毎に読み出される。読み出された静止画像データは、バス２４を介してＪＰＥＧコーデック３０に与えられ、ＪＰＥＧ圧縮を施される。ＪＰＥＧコーデック３０は、１フレームの圧縮画像データが生成される毎に当該圧縮画像データの書き込みをメモリ制御回路２６にリクエストし、メモリ制御回路２６は、リクエストに応答して圧縮画像データを図２に示す圧縮画像エリア２８ｂに書き込む。
【００２０】
一方、信号処理回路４６は、音声処理命令に応答して、マイク４２から音声信号を取り込む。信号処理回路４６はまた、取り込まれた音声信号にＡ／Ｄ変換処理（サンプリング周波数：７９９０Ｈｚ）を施して１バイト＝８ビットのモノラル音声データを生成し、当該音声データを書き込みリクエストとともにメモリ制御回路２６に出力する。音声処理命令は１／３０秒毎に与えられるため、１／３０秒分つまり２６６バイトの音声データがメモリ制御回路２６に出力される。メモリ制御回路２６は、書き込みリクエストに応答して、このような２６６バイトの音声データを図２に示す音声エリア２８ｃに書き込む。
【００２１】
ＣＰＵ３２はまた、メモリ制御回路２６に対してデータの読み出しをリクエストする。メモリ制御回路２６は、与えられたリクエストに応答して１／１０秒分の音声データおよび３フレームの画像データを交互に読み出し、読み出されたデータをディスクドライブ３４を介して光磁気ディスク３６に記録する。
【００２２】
なお、光磁気ディスク３６は着脱自在の記録媒体であり、装着時にディスクドライブ３４と接続されたときに、磁気ヘッド３４ａおよび光ピックアップ３４ｂを用いた記録が可能となる。
【００２３】
光磁気ディスク３６には、最初のシャッタボタン５８の操作に応答してQuickTime形式のファイルヘッダが作成される。ＳＤＲＡＭ２８から読み出された音声データおよび画像データは、当該ファイルヘッダ以降に書き込まれていく。この結果、図３に示すように、１／１０秒分の音声データからなる音声チャンクおよび３フレーム分の圧縮画像データからなる画像チャンクが交互に形成される。１つの音声チャンクおよびこれに続く１つの画像チャンクが互いに対応する。ファイルの末尾に形成されたインデックスチャンクには、各音声チャンクの開始アドレスおよび各フレームの圧縮画像データの開始アドレスが書き込まれる。このようなインデックスチャンクによって、音声データが１／１０秒毎に管理され、圧縮画像データが１フレーム毎に管理される。
【００２４】
シャッタボタン５８がオフされると、ＣＰＵ３２はＪＰＥＧコーデック３０に対する画像圧縮命令の出力および信号処理回路４６に対する音声処理命令の出力を中止する。つまり、ＳＤＲＡＭ２８に対するデータの書き込み処理を中止する。ただし、記録処理は、ＳＤＲＡＭ２８の全てのデータが光磁気ディスク３６に記録された時点で終了される。
【００２５】
なお、光磁気ディスク３６におけるファイル管理方式としてはＭＳ−ＤＯＳのＦＡＴ方式が採用され、QuickTimeファイルはクラスタ単位で離散的に記録される。
【００２６】
モード切換スイッチ６０が“再生”側に切り換えられ、かつセットキー５６が操作されると、上述の要領で光磁気ディスク３６に記録されたQuickTimeファイルが再生される。まず、ＣＰＵ３２が、ディスクドライブ３４を介して（磁気ヘッド３４ａによって）光磁気ディスク３６にアクセスし、QuickTimeファイル内の音声データおよび圧縮画像データをファイルヘッダの次のアドレスから順に読み出す。ＣＰＵ３２はまた、読み出した音声データおよび圧縮画像データを書き込みリクエストとともにメモリ制御回路２６に与える。音声データおよび画像データは、メモリ制御回路２６によってＳＤＲＡＭ２８に書き込まれる。QuickTimeファイルは図３に示すように形成されているため、１／１０秒分の音声データおよび３フレーム分の圧縮画像データがQuickTimeファイルから交互に読み出される。そして、音声データは図２に示す音声エリア２８ｃの先頭から順に書き込まれ、圧縮画像データは図２に示す圧縮画像エリア２８ｂの先頭から順に書き込まれる。
【００２７】
ＣＰＵ３２からＪＰＥＧコーデック３０に対して伸長命令が与えられると、ＪＰＥＧコーデック３０は、１フレームの圧縮画像データの読み出しをメモリ制御回路２６にリクエストし、メモリ制御回路２６によって圧縮画像エリア２８ｂから読み出された圧縮画像データをＪＰＥＧ方式で伸長する。ＪＰＥＧコーデック３０はさらに、伸長画像データを書き込みリクエストとともにメモリ制御回路２６に与える。伸長画像データは、メモリ制御回路２６によって図２に示す表示画像エリア２８ａに書き込まれる。ＣＰＵ３２は１／３０秒毎に伸長命令を発生し、ＪＰＥＧコーデック３０は、伸長命令が与えられる毎に連続するフレームの圧縮画像データを上述の要領で伸長する。このため、表示画像エリア２８ａの伸長画像データは１／３０秒毎に更新される。
【００２８】
表示画像エリア２８ａに格納された伸長画像データは、ビデオエンコーダ３８から１／６０秒毎に出力される読み出しリクエストに基づいて、２回ずつ読み出される。読み出しはメモリ制御回路２６によって行なわれ、ビデオエンコーダ３８は、読み出された伸長画像データをコンポジット画像信号に変換する。変換されたコンポジット画像信号はモニタ４０に与えられ、この結果、通常速度の動画像が画面に再生される。
【００２９】
ＣＰＵ３２はまた、音声データの再生命令をシステムクロックに応答して信号処理回路４８に与える。信号処理回路４８は、再生命令が与えられる毎に１サンプル分（＝１バイト）の音声データの読み出しリクエストをメモリ制御回路２６に与え、メモリ制御回路２６によって音声エリア２８ｃから読み出された音声データに所定の再生処理を施す。再生処理が施された音声信号は、スピーカ５２から出力される。
【００３０】
なお、ＳＤＲＡＭ２８は、記録／再生のいずれのモードにおいてもリングバッファとして動作する。つまり、アクセス先のアドレスは、圧縮画像エリア２８ｂおよび音声エリア２８ｃの各々でリング状につまり循環的に更新される。このため、圧縮画像エリア２８ｂの容量を超える圧縮画像データならびに音声エリア２８ｃの容量を超える音声データの記録／再生が可能となる。
【００３１】
モード切換スイッチ６０が“再生”側に切り換えられ、セットキー５６が操作されると、ＣＰＵ３２は、図７〜図１５に示す再生処理および図１６に示すバックグラウンド処理を実行する。つまり、ＣＰＵ３２にはμｉＴＲＯＮのようなマルチタスクＯＳ（リアルタイムＯＳ）が搭載されており、再生処理およびバックグラウンド処理の２つのタスクが並行して実行される。なお、図７〜図１６に示すフロー図に対応する制御プログラムは、ＲＯＭ６２に記憶される。
【００３２】
ここで、ＣＰＵ３２の処理には、表１〜表３に示す変数が用いられる。表１には音声に関連する変数を、表２には画像に関連する変数を、そして表３にはバックグラウンド処理に関連する変数を列挙している。
【００３３】
【表１】
0003939198.tif 000002
【００３４】
【表２】
0003939198.tif 000003
【００３５】
【表３】
0003939198.tif 000004
【００３６】
表１について、chkは音声チャンクのチャンク番号であり、aofst[chk]はQuickTimeファイルの先頭アドレスから注目する音声チャンクの先頭までのオフセットであり、asz[chk]は注目する音声チャンクのサイズ（バイト数）である。acntはバイト数で示される音声データのカウント値であり、AMAXはQuickTimeファイルに格納された音声データの総バイト数である。AUD＿BUFおよびAUD＿ENDはそれぞれ音声エリア２８ｃの先頭アドレスおよび末尾アドレスである。apreptrは音声エリア２８ｃの書き込みアドレスであり、acptrは音声エリア２８ｃの読み出し（再生）アドレスであり、dmは音声エリア２８ｃの残容量値である。astartは割込み処理を許可するかどうかを示すフラグであり、aflgは音声エリア２８ｃへの書き込みを禁止するかどうかを示すフラグである。pre＿read＿sz[class]は、ＳＤＲＡＭ２８への転送命令が図６に示す指示リスト３２ｃに設定されたが信号処理回路４８による処理が未だ行われていない音声データのサイズ（バイト）である。音声データの場合、classは“２”とされる。
【００３７】
表２について、prefrmは圧縮画像エリア２８ｂに書き込む圧縮画像データのフレーム番号であり、frmは圧縮画像エリア２８ｂから読み出す（再生する）圧縮画像データのフレーム番号である。mofst[prefrm]はQuickTimeファイルの先頭アドレスから注目するフレームの圧縮画像データの先頭アドレスまでのオフセットであり、msz[prefrm]は注目するフレームの圧縮画像データのサイズであり、MFMAXはQuickTimeファイルに格納された圧縮画像データの総フレーム数である。MOV＿BUFおよびMOV＿ENDはそれぞれ圧縮画像エリア２８ｂの先頭アドレスおよび末尾アドレスであり、mpreptrは圧縮画像エリア２８ｂの書き込みアドレスであり、mcptrは圧縮画像エリア２８ｂの読み出し（再生）アドレスである。decflgは圧縮画像データの伸長処理を許可するかどうかを示すフラグである。pre＿read＿sz[class]は、ＳＤＲＡＭ２８への転送命令が指示リスト３２ｃに設定されたがＪＰＥＧコーデック３０による伸長処理が未だ行われていない圧縮画像データのサイズ（バイト）である。画像データの場合、分類を示すclassは“１”とされる。
【００３８】
表３について、S-mail＿Noは指示リスト３２ｃに命令を設定するときの書き込み先を示すメール番号であり、E-mail＿Noは指示リスト３２ｃに設定された命令を実行するときの読み出し先を示すメール番号である。MAX＿BOXは指示リスト３２ｃに設定できるメール（命令）の総数であり、Rem＿Mailは指示リスト３２ｃに設定されたが未だ処理されていないメール数である。Rem＿sz[class]は、ＳＤＲＡＭ２８への転送命令が指示リスト３２ｃに設定されたがＳＤＲＡＭ２８への書き込みが未だ行われていないデータのサイズ（バイト）である。上述と同様、画像データについてはclassが“１”とされ、音声データについては分類を示すclassが“２”とされる。
【００３９】
図７を参照して、ステップＳ１では、図３に示すインデックスチャンクに書き込まれたアドレス情報に基づいて、図４に示す音声オフセットテーブル３２ａおよび図５に示す画像オフセットテーブル３２ｂを作成する。音声オフセットテーブル３２ａには、各々の音声チャンクのオフセットaofst[chk]およびチャンクサイズasz[chk]が書き込まれ、画像オフセットテーブル３２ｂには、各フレームの圧縮画像データのオフセットmofst[prefrm]およびデータサイズmsz[prefrm]が書き込まれる。
【００４０】
次に、ステップＳ３で各種の変数を初期化する。具体的には、音声データについて、チャンク番号chkを“０”に設定し、音声書き込みアドレスapreptrおよび音声再生アドレスacptrを音声エリア２８ｃの先頭アドレスAUD＿BUFと一致させ、割り込み許可フラグastartおよび音声書き込み禁止フラグaflgを“０”に設定し、未処理データサイズpre＿read＿sz[2]を“０”に設定する。画像データについては、再生フレーム番号frmを書き込みフレーム番号prefrmと一致させ、画像再生アドレスmcptrおよび画像書き込みアドレスmpreptrを圧縮画像エリア２８ｂの先頭アドレスMOV＿BUFと一致させ、画像伸長許可フラグdecflgを“０”に設定し、そして未処理データサイズpre＿read＿sz[1]を“０”に設定する。指示リスト３２ｃについては、設定メール番号S-mail＿No、未処理メール数Rem＿mail、音声の未処理データサイズRem＿sz[1]および画像の未処理データサイズRem＿sz[2]を“０”に設定する。
【００４１】
ステップＳ５では数１を演算して音声データのカウント値acntを求め、続くステップＳ７では算出されたカウント値acntを現チャンク番号chkに対応する音声チャンクサイズasz[chk]と比較する。そして、acnt≧asz[chk]であれば、ステップＳ９でこの算出されたカウント値acntから現音声チャンクサイズasz[chk]を引き算し、ステップＳ１１で音声データの総バイト数AMAXから現音声チャンクサイズasz[chk]を引き算し、そしてステップＳ１３でチャンク番号chkをインクリメントする。ステップＳ１３の処理を終えると、ステップＳ５に戻る。
【００４２】
【数１】
acnt＝（sample×frm）／fps
sample：１フレームに相当する音声データ量（バイト）
fps：動画像のフレームレート
数１によって、モニタ４０に現時点で表示されているフレーム（現フレーム）の静止画像に対応する音声データのアドレスが求められる。ただし、ここで求められるアドレスは、音声データが先頭から連続していると仮定したときのアドレスであり、図３に示すQuickTimeファイル上のアドレスとは必ずしも一致しない。このため、ステップＳ７でacnt＜asz[chk]と判断されるまでステップＳ９〜Ｓ１３の処理を繰り返す。これによって、何番目の音声チャンクの何バイト目に所望のアドレスが存在するかが判明する。
【００４３】
ステップＳ７でacnt＜asz[chk]と判断されると、ステップＳ１５で総バイト数AMAXの値を判別する。ステップＳ１５は、全ての音声データの転送命令を指示リスト３２ｃに設定し終えたかどうかを判別する処理である。カウント値acntが末尾の音声チャンクの末尾アドレスを示していれば、総バイト数AMAXは“０”を示す。このとき、全音声データの転送命令の設定が完了したとみなしてステップＳ２１に進む。ステップＳ２１では音声書き込み禁止フラグaflgの状態を判別し、aflg＝０であればステップＳ２３でaflg＝１としてからステップＳ４３に進み、aflg＝１であればそのままステップＳ５７に進む。つまり、音声書き込み禁止フラグaflgが“０”を示していれば、音声データの転送命令の設定は全て完了したものの、圧縮画像データの転送命令の設定は未だ完了していないとみなして、ステップＳ４３に進む。このとき、ステップＳ２３でaflg＝１となるため、次回のステップＳ２１の処理ではＹＥＳと判断される。
【００４４】
ステップＳ１７では、数２が成立するかどうか判別する。ステップＳ１７は、次に転送命令を設定すべきデータが音声データであるか圧縮画像データであるかを判別する処理である。
【００４５】
【数２】
aofst[chk]＋acnt＜mofst[prefrm]
後述するように、１チャンク分の音声データの転送命令が指示リスト３２ｃに設定されたとき、または３フレーム分の圧縮画像データの転送命令が指示リスト３２ｃに設定されたとき、“aofst[chk]＋acnt”と“mofst[prefrm]”との間の大小関係が反転する。このため、数２が成立するかどうかによって、次に転送命令を設定すべきデータが音声データであるか圧縮画像データであるかを判別することができる。設定すべきデータが音声データの場合、ステップＳ１７でＹＥＳと判断し、ステップＳ１９で数３が成立するかどうか判別する。
【００４６】
【数３】
apreptr＋asz[chk]−acnt−1＜AUD＿END
現カウント値acntが示すアドレスからこのアドレスが属する音声チャンクの末尾アドレスまでの音声データサイズは、“asz[chk]−acnt”である。ステップＳ１９では、この“asz[chk]−acnt”に相当する音声データを現音声書き込みアドレスapreptrから音声エリアの末尾アドレスまでの間に格納できるかどうかを判別している。なお、数３の“−１”は、音声エリア２８ｃのアドレスが“０”から始まることを考慮したものである。
【００４７】
ステップＳ１９でＮＯと判断されると、全音声データの転送命令の設定は完了していないが、音声エリア２８ｃの容量が不十分なために転送命令が設定できないとみなして、ステップＳ２１に進む。一方、ステップＳ１９でＹＥＳと判断されると、音声エリア２８ｃの容量は十分存在するとみなしてステップＳ２９に進む。
【００４８】
ステップＳ２９では、分類“０”，動作“ヘッドシーク”およびファイルアドレス“aofst[chk]＋acnt”を図６に示す指示リスト３２ｃに設定し、続くステップＳ３１では、分類“２”，動作“ライト”，ＳＤＲＡＭアドレス“apreptr”およびサイズ“asz[chk]−acnt”を指示リスト３２ｃに設定する。なお、分類“０”は、命令がデータ転送命令以外の命令であることを意味する。
【００４９】
ステップＳ３１で“asz[chk]−acnt”に相当する音声データの転送命令が設定されたため、ステップＳ３３では未処理データサイズpre＿read＿sz[2]に“asz[chk]−acnt”を加算し、ステップＳ３５では現音声書き込みアドレスapreptrに“asz[chk]−acnt”を加算し、ステップＳ３７では現音声チャンクのサイズ“asz[chk]を総バイト数AMAXから引き算する。続いて、ステップＳ３９でカウント値acntを“０”とし、ステップＳ４１でチャンク番号chkをインクリメントし、その後ステップＳ１５に戻る。
【００５０】
なお、カウント値acntはある音声チャンクの途中から再生を開始するときにアクセス先のアドレスを特定するために用いる変数である。このため、この音声チャンクに属する音声データの転送設定が完了すると、カウント値acntは“０”となり、意味をなさなくなる。
【００５１】
上述のステップＳ２９およびＳ３１ならびに後述するステップＳ４３，Ｓ４５，Ｓ１０３，Ｓ１０７，Ｓ１１１，Ｓ１１５，Ｓ１２９およびＳ１３１のそれぞれでは、図１４に示すサブルーチンを処理する。まず、ステップＳ１５１で指示リスト３２ｃの現設定メール番号S-mail＿Noに対応する欄に所望の命令（指示）を追加する。ステップＳ１５３では所望の分類を判別し、所望の分類が“０”であればそのままステップＳ１５７に進むが、所望の分類が“１”または“２”であればステップＳ１５５を経てステップＳ１５７に進む。所望の分類が“１”の場合は、ステップＳ１５５で所望のサイズが未処理データサイズRem＿sz[1]に加算される。所望の分類が“２”の場合は、ステップＳ１５５で所望のサイズが未処理データサイズRem＿sz[2]に加算される。
【００５２】
ステップＳ１５７では設定メール番号S-mail＿Noをインクリメントし、ステップＳ１５９では未処理メール数Rem＿Mailをインクリメントする。ステップＳ１６１では、インクリメントされた設定メール番号S-mail＿Noを設定可能なメール総数MAX＿BOXと比較する。ここで、S-mail＿No＜MAX＿BOXであればそのままステップＳ１６５に進むが、S-mail＿No＝MAX＿BOXであればステップＳ１６３で設定メール番号S-mail＿Noを“０”に戻してからステップＳ１６５に進む。ステップＳ１６５では未処理メール数Rem＿Mailがメール総数MAX＿BOXと等しいかどうか判断し、ＮＯであればそのままに復帰するが、ＹＥＳであればエラーが発生したとして強制的に処理を終了する。
【００５３】
図８に示すステップＳ３７の更新処理によって総バイト数AMAXが“０”となると、図７のステップＳ１５におけるＹＥＳの判断を経てステップＳ２１に進む。一方、ステップＳ３７の更新処理の後も総バイト数AMAXが“０”を上回るときは、ステップＳ１７におけるＮＯの判断を経てステップＳ２５に進む。つまり、ステップＳ４１におけるチャンク番号chkの更新によって数２が成立しなくなるため、ステップＳ２５に進む。ステップＳ２５では、圧縮画像エリア２８ｂに書き込もうとする圧縮画像データのフレーム番号prefrmを総フレーム数MFMAXと比較する。そして、prefrm＝MFMAXであればステップＳ６１に進むが、prefrm＜MFMAXであればステップＳ２７で数４が成立するかどうか判別する。
【００５４】
【数４】
mpreptr＋msz[prefrm]−1＜MOV＿END
ステップＳ２７では、“msz[prefrm]”に相当する１フレーム分の圧縮画像データを現画像書き込みアドレスmpreptrと画像エリアの末尾アドレスとの間に格納できるかどうかを判別している。
【００５５】
数４が満たされなければ、prefrm＝MFMAXと判断されたときと同様、ステップＳ５７に進む。一方、数４が満たされればステップＳ４３に進み、分類“０”，動作“ヘッドシーク”およびファイルアドレス“mofst[prefrm]”を指示リスト３２ｃに設定する。続いて、ステップＳ４５で分類“１”，動作“ライト”，ＳＤＲＡＭアドレス“mpreptr”およびサイズ“msz[prefrm]”を指示リスト３２ｃに設定する。
【００５６】
ステップＳ４７では未処理データサイズpre＿read＿sz[1]にサイズ“msz[prefrm]”を加算し、ステップＳ４９では現画像書き込みアドレスmpreptrにサイズ“msz[prefrm]”を加算し、ステップＳ５１では現書き込みフレーム番号prefrmをインクリメントする。その後、ステップＳ５３で数５が成立するかどうか判断し、ＮＯであればそのままステップＳ１５に戻るが、ＹＥＳであれば最小データサイズsz＿minを未処理データサイズpre＿read＿sz[1]に一致させてからステップＳ１５に戻る。
【００５７】
【数５】
prefrm−frm＜fps
数５は、書き込みフレーム番号prefrmと再生フレーム番号（表示静止画像のフレーム番号）frmとの間の差分がフレームレートの“３０”を下回るとき成立する。このため、ＳＤＲＡＭ２８への転送命令が指示リスト３２ｃに設定されたがＪＰＥＧコーデック３０による伸長処理が未だ行われていない圧縮画像データのフレーム数が“３０”を下回る限り、最小データサイズsz＿minは未処理データサイズpre＿read＿sz[1]（＝ＳＤＲＡＭ２８への転送命令が指示リスト３２ｃに設定されたがＪＰＥＧコーデック３０による伸長処理が未だ行われていない圧縮画像データのサイズ）に追従して変化する。しかし、指示リスト３２ｃへの設定処理が高速で実行され、上記の差分が“３０”以上となると、最小データサイズsz＿minの更新が中止される。これによって、３０フレームつまり１秒分の圧縮画像データサイズが、最小データサイズsz＿minとして規定される。
【００５８】
図１７を参照して、チャンク番号chkは１チャンク分の音声データの転送命令が指示リスト３２ｃに設定される毎にインクリメントされる。一方、書き込みフレーム番号prefrmは１フレーム分の圧縮画像データの転送命令が指示リスト３２ｃに設定される毎にインクリメントされる。このため、注目する音声チャンクの先頭アドレスおよび注目するフレームの先頭アドレスの前後関係は、１チャンク分の音声データの転送設定が完了する毎に、あるいは３フレーム分の圧縮画像データの転送設定が完了する毎に反転する。したがって、指示リスト３２ｃには、１チャンク分の音声データの転送命令および３フレーム分の圧縮データの転送命令が、QuickTimeファイルのアドレスが大きくなる順序で交互に設定される。
【００５９】
図１０に示すステップＳ５７では、数６が成立するかどうかを判別する。ステップＳ５７に移行したときは、未処理データサイズpre＿read＿sz[1]および最小データサイズsz＿minのいずれも固定値をとる。一方、未処理データサイズRem＿sz[1]は、後述するバックグラウンド処理によって転送命令が実行される毎に減少する。
【００６０】
【数６】
sz＿min＞pre＿read＿sz[1]−Rem＿sz[1]
上述のように、未処理データサイズpre＿read＿sz[1]は、ＳＤＲＡＭ２８への転送命令が指示リスト３２ｃに設定されたがＪＰＥＧコーデック３０による伸長処理が未だ行われていない圧縮画像データのサイズである。一方、未処理データサイズRem＿sz[1]は、ＳＤＲＡＭ２８への転送命令が指示リスト３２ｃに設定されたがＳＤＲＡＭ２８への書き込みが未だ行われていない圧縮画像データのサイズである。したがって、“pre＿read＿sz[1]−Rem＿sz[1]”は、ＳＤＲＡＭ２８への書き込みは完了したが、ＪＰＥＧコーデック３０による伸長処理が未だ行われていない圧縮画像データのサイズとなる。ステップＳ５７では、このようなデータサイズと最小データサイズsz＿min（＝１秒分の圧縮画像データサイズ）との大小関係を判別する。
【００６１】
数６が成立するときは、ＳＤＲＡＭ２８に確保されているデータ量は不十分であるとみなし、ステップＳ５９で所定時間待機する。これによって、所定期間が経過するまではバックグラウンド処理のみが実行され、未処理データサイズRem＿sz[1]は速やかに減少していく。未処理データサイズRem＿sz[1]の減少によって数６が成立しなくなると、ＳＤＲＡＭ２８に十分な量のデータが確保されたとみなし、ステップＳ６１に進む。
【００６２】
なお、最小データサイズsz＿minを１秒分の圧縮画像データサイズとしたのは、ヘッドシークの最長時間を想定したものである。
【００６３】
ステップＳ６１では、画像伸長許可フラグdecflgの状態を判別する。decflg＝０であればそのままステップＳ６５に進み、decflg＝１であれば、１フレーム分のＪＰＥＧ伸長処理が完了したとステップＳ６３で判断されてからステップＳ６５に進む。ステップＳ６５では、１／３０秒毎に発生する垂直同期信号の入力判別を行ない、入力ありとの判別結果に応答してステップＳ６７に進む。ステップＳ６７では、音声データの処理に関連する割り込み許可フラグastartの状態を判別し、astart＝１であればそのままステップＳ７１に進むが、astart＝０であればステップＳ６９でastartを“１”に設定してからステップＳ７１に進む。
【００６４】
ステップＳ７１では、圧縮画像エリア２８ｂの画像再生アドレスmcptr以降に書き込まれた１フレーム分の圧縮画像データの伸長をＪＰＥＧコーデック３０に命令する。ＪＰＥＧコーデック３０は、上述の要領で伸長処理を行ない、この結果、対応する静止画像がモニタ４０に表示される。ステップＳ７３では、次回のステップＳ６１でＹＥＳとの判断結果を得るために画像伸長許可フラグdecflgを“１”に設定する。続いて、ステップＳ７５でつまり現画像再生アドレスmcptrに圧縮画像データサイズmsz[frm]を加算し、ステップＳ７７で未処理データサイズpre＿read＿sz[1]に圧縮画像データサイズmsz[frm]を加算する。ステップＳ７９では再生フレーム番号frmをインクリメントし、ステップＳ８１では数７が成立するかどうかを判断する。
【００６５】
【数７】
mcptr＋msz[frm]−1＜MOV＿END
数７が成立するときは、更新された画像再生アドレスmcptr以降に次フレームの圧縮画像データが格納されている。一方、数７が成立しないときは、圧縮画像エリア２８ｂの先頭アドレスMOV＿BUF以降に次フレームの圧縮画像データが格納されている。このため、ステップＳ８１でＹＥＳであればそのままステップＳ８５に進むが、ＮＯであればステップＳ８３で画像再生アドレスmcptrに先頭アドレスMOV＿BUFを設定してからステップＳ８５に進む。
【００６６】
音声データの再生処理は、図１５に示す割り込みルーチンに従って行なわれる。割り込み処理は、７９９０Ｈｚ（音声サンプリング周波数）のクロックに応答して開始される。まずステップＳ１７１で割り込み許可フラグastartが“１”であるかどうか判断する。ここでastart＝０であればそのままメインルーチンに復帰するが、astart＝１であればステップＳ１７３で信号処理回路４８に音声再生命令を与える。信号処理回路４８は、この音声再生命令に応じてメモリ制御回路２６に読み出しリクエストを与え、音声エリア２８ｃの音声再生アドレスacptrから１バイト分の音声データを読み出す。信号処理回路４８はさらに、読み出された音声データに所定の処理を施し、処理が施された音声信号をスピーカ５２から出力する。ステップＳ１７５では未処理データサイズpre＿read＿sz[2]から“１”を引き算し、ステップＳ１７７では音声再生アドレスacptrをインクリメントし、ステップ１７９では更新された音声再生アドレスacptrを音声エリア２８ｃの末尾アドレスAUD＿ENDと比較する。ここでacptr≦AUD＿ENDであれば、更新された音声再生アドレスacptrに次バイトの音声データが書き込まれているとみなして、そのままメインルーチンに復帰する。これに対してacptr＞AUD＿ENDであれば、音声エリア２８ｃの先頭アドレスAUD＿BUFに次バイトの音声データが書き込まれているとみなして、ステップＳ１８１で音声再生アドレスacptrに先頭アドレスAUD＿BUFを設定してからメインルーチンに復帰する。
【００６７】
図１１に戻って、ステップＳ８５では現フレーム番号frmを総フレーム数MFMAXと比較する。frm＝MFMAXであれば次フレームの圧縮画像データは存在しないとみなし、ステップＳ９５で現フレームの圧縮画像データの伸長処理が完了したと判別されるのを待って、ステップＳ９７に進む。ステップＳ９７では割り込み許可フラグastartの状態を判別し、astart＝０であればそのまま終了するが、astart＝１であればステップＳ９９でこの割り込み許可フラグastartを“０”に戻してから処理を終了する。
【００６８】
ステップＳ８５でＮＯと判断されると、ステップＳ８７で書き込みフレーム番号prefrmを総フレーム数MFMAXと比較し、prefrm＝MFMAXであればステップＳ８９で総バイト数AMAXが“０”であるかどうか判断する。一方、prefrm＜MFMAXであれば、ステップＳ９１で総バイト数AMAXが“０”であるかどうか判断する。prefrm＝MFMAXでかつAMAX＝０であれば、全ての圧縮画像データおよび音声データについて転送命令の設定が完了したとみなして、ステップＳ８９からステップＳ６１に戻る。prefrm＝MFMAXであるがAMAX＞０である場合、またはprefrm＜MFMAXでかつAMAX＞０である場合は、転送命令を設定すべきデータが残っているとみなして、ステップＳ８９またはＳ９１からステップＳ９３に進む。ステップＳ９３では、現音声チャンクのオフセットaofst[chk]を現書き込みフレーム番号prefrmに対応する圧縮画像データのオフセットmofst[prefrm]と比較し、比較結果に応じてステップＳ１０１またはＳ１２５に進む。prefrm＜MFMAXであるがAMAX＝０であるときは、転送命令を設定すべきデータは圧縮画像データのみであるとみなして、ステップＳ９１からステップＳ１２５に進む。
【００６９】
ステップＳ１０１では、数８が成立するかどうか判断する。
【００７０】
【数８】
apreptr＋asz[chk]−1＜AUD＿END
数８が成立する場合、現音声書き込みアドレスapreptr以降には現音声チャンクの全ての音声データを書き込めるだけの空き容量が存在する。このときはステップＳ１０９で残容量値dmに“０”を設定し、ステップＳ１１１で分類“０”，動作“ヘッドシーク”およびファイルアドレス“aofst[chk]”を指示リスト３２ｃに設定し、その後ステップＳ１１３に進む。これに対して数８が成立しなければ、現音声チャンクの音声データの一部しか現音声書き込みアドレスapreptr以降に書き込むことができない。このときは、ステップＳ１０３で分類“０”，動作“ヘッドシーク”およびファイルアドレス“aofst[chk]”を指示リスト３２ｃに設定する。さらに、ステップＳ１０５で数９に従って残容量値dmを求め、ステップＳ１０７で分類“２”，動作“ライト”，サイズ“dm”およびＳＤＲＡＭアドレス“apreptr”を指示リスト３２ｃに設定する。ステップＳ１０７の処理を終えると、ステップＳ１１３に進む。
【００７１】
【数９】
dm=(AUD＿END−apreptr＋1)
ステップＳ１１３では音声書き込みアドレスapreptrに音声エリア２８ｃの先頭アドレス“AUD＿BUF”を設定し、続くステップＳ１１５では分類“０”，動作“ライト”，ＳＤＲＡＭアドレス“apreptr”およびサイズ“asz[chk]−dm”を指示リスト３２ｃに設定し、ステップＳ１１７では数１０に従って音声書き込みアドレスapreptrを更新する。
【００７２】
【数１０】
apreptr＝apreptr＋asz[chk]−dm
続いて、ステップＳ１１９で総バイト数AMAXから現音声チャンクのサイズasz[chk]を引き算し、ステップＳ１２１で未処理データサイズpre＿read＿sz[2]にサイズasz[chk]を加算する。その後、ステップＳ１２３でチャンク番号chkをインクリメントしてからステップＳ９１に戻る。
【００７３】
このように、音声書き込みアドレスapreptr以降に１チャンク分の音声データを書き込めるだけの空き容量が存在すれば、ステップＳ１１５でこの１チャンク分の音声データの転送命令が指示リスト３２ｃに設定される。一方、音声書き込みアドレスapreptr以降に１チャンク分の音声データを書き込めるだけの空き容量が存在しなければ、ステップＳ１０７で一部の音声データの転送命令が指示リスト３２ｃに設定され、ステップＳ１１５で残りの音声データの転送命令が指示リスト３２ｃに設定される。ステップＳ１２３からステップＳ９１に戻った後は、直接あるいはステップＳ９３を経てステップＳ１２５に移行する。
【００７４】
ステップＳ１２５では、数１１が成立するかどうか判断する。
【００７５】
【数１１】
mpreptr＋msz[prefrm]−1＜MOV＿END
数１１が成立すれば、現画像書き込みアドレスmpreptr以降に１フレーム分の圧縮画像データを書き込むことができるとみなして、そのままステップＳ１２９に進む。数１１が成立しなければ、先頭アドレスMOV＿BUF以降に１フレーム分の圧縮画像データを書き込むべく、ステップＳ１２７で画像書き込みアドレスmpreptrに先頭アドレスMOV＿BUFを設定する。ステップＳ１２９では、分類“０”，動作“ヘッドシーク”およびファイルアドレス“mofset[prefrm]”を指示リスト３２ｃに設定し、続くステップＳ１３１では、分類“１”，動作“ライト”，ＳＤＲＡＭアドレス“mpreptr”およびサイズ“msz[prefrm]”を指示リスト３２ｃに設定する。その後、ステップＳ１３３で現画像書き込みアドレスmpreptrに圧縮画像データサイズmsz[prefrm]を加算し、ステップＳ１３５で未処理データサイズpre＿read＿sz[1]に圧縮画像データサイズmsz[prefrm]を加算し、そしてステップＳ１３７で書き込みフレーム番号prefrmをインクリメントする。
【００７６】
ステップＳ１３９では、数１２が成立するかどうか判断する。
【００７７】
【数１２】
msz[frm]＞pre＿read＿sz[1]−Rem＿sz[1]
上述のように、“pre＿read＿sz[1]−Rem＿sz[1]”は、ＳＤＲＡＭ２８への書き込みは完了したが、ＪＰＥＧコーデック３０による伸長処理が未だ行われていない圧縮画像データのサイズとなる。ステップＳ１３９では、このようなデータサイズと圧縮画像データサイズmsz[frm]との大小関係を判別する。
【００７８】
数１２が成立しないときは、ＳＤＲＡＭ２８に十分な量のデータが確保されているとみなし、そのままステップＳ６１に戻る。一方、数１２が成立するときは、ＳＤＲＡＭ２８に確保されているデータ量は不十分であるとみなし、ステップＳ１４１に移行する。ステップＳ１４１では割り込み許可フラグastartを“０”に設定して音声データの再生を中断し、続くステップＳ１４３では所定時間待機する。これによって、所定期間が経過するまではバックグラウンド処理のみが実行される。所定時間が経過するとステップＳ１３９の処理を再度実行する。
【００７９】
ステップＳ６１に戻ることで、圧縮画像データの伸長処理が再度実行される。また、音声データの再生処理が中断されたときは、ステップＳ６９の処理によってこの音声再生処理が再開される。
【００８０】
このように、図１２のステップＳ１１１およびＳ１１５あるいはステップＳ１０３，Ｓ１０７およびＳ１１５における１チャンク分の音声データの転送設定、ならびに図１３のステップＳ１２９およびＳ１３１における１フレーム分の圧縮画像データの転送設定は、１フレーム分の圧縮画像データの伸長処理が完了する毎に行なわれる。一方、音声データの再生は、割り込み許可フラグastartが“１”を示す限り、７９９０Ｈｚのクロックに応答して１バイトずつ行われる。このため、新たに指示リスト３２ｃに設定される転送命令が、未処理の転送命令に上書きされることはない。
【００８１】
バックグラウンド処理は、図１６に示すフロー図に従って実行される。まず、ステップＳ１９１で実行メール番号E-mail＿Noを“０”に設定し、次にステップＳ１９３で未処理メール数Rem＿Mailが“０”よりも大きいかどうか判断する。ここでＮＯであればステップＳ１９３の処理を繰り返し、Rem＿Mail＞０となった時点でステップＳ１９５に進む。ステップＳ１９５では、現実行メール番号E-mail＿Noの指示を実行する。つまり、指示の内容が“ヘッドシーク”であれば、光磁気ディスク３６内の所望のアドレスをシークし、指示の内容が“ライト”であれば、所望のデータを光磁気ディスク３６からＳＤＲＡＭ２８に転送する。
【００８２】
ステップＳ１９７では分類を判別し、分類が“０”であればそのままステップＳ２０１に進むが、分類が“１”または“２”であればステップＳ１９９を経てステップＳ２０１に進む。分類が“１”の場合、ステップＳ１９９では転送された圧縮画像データサイズを未処理データサイズRem＿sz[1]から引き算する。分類が“２”の場合、ステップＳ１９９では転送された音声データサイズを未処理データサイズRem＿sz[2]から引き算する。
【００８３】
ステップＳ２０１では実行メール番号E-mail＿Noをインクリメントし、ステップＳ２０３では未処理メール数Rem＿Mailをディクリメントする。ステップＳ２０５では、実行メール番号E-mail＿Noが最大メール番号MAX＿BOXに達したかどうか判断し、ＮＯであればステップＳ１９１に戻るが、ＹＥＳであればステップＳ１９３に戻る。
【００８４】
以上の説明から分かるように、光磁気ディスク３６に記録された圧縮画像データをＳＤＲＡＭ２８を介して出力するとき、まず圧縮画像データの転送命令が指示リスト３２ｃに設定される（S45,S131）。圧縮画像データは、指示リスト３２ｃの設定に従って光磁気ディスク３６からＳＤＲＡＭ２８に転送される(S195)。ＪＰＥＧコーデック３０は、ＣＰＵ３２から圧縮命令が与えられたとき（S71）、ＳＤＲＡＭ２８に格納された圧縮画像データをメモリ制御回路２６を通して読み出し、読み出された圧縮画像データにＪＰＥＧ伸長を施す。伸長された画像データは、ＳＤＲＡＭ２８を介してビデオエンコーダ３８に与えられ、ビデオエンコーダ３８によってエンコードされる。エンコードされたコンポジット画像信号はモニタ４０に与えられ、これによって再生画像がモニタ４０に表示される。
【００８５】
ここで、転送命令が指示リスト３２ｃに設定されたがメモリ制御回路２６によって未だ読み出されていない圧縮画像データのサイズpe＿read＿sz[1]、ならびに転送命令が指示リスト３２ｃに設定されたがＳＤＲＡＭ２８に未だ転送されていない圧縮画像データのサイズRem＿sz[1]は、ＣＰＵ３２によって検出される（S47,S77,S135,S155,S199）。ＣＰＵ３２は、サイズpe＿read＿sz[1]およびRem＿sz[1]の差分が次に伸長すべき圧縮画像データのサイズmsz[frm]を下回るとき、ＪＰＥＧコーデック３０への伸長命令の出力を中断する（S143）。
【００８６】
サイズpe＿read＿sz[1]およびRem＿sz[1]の差分は、ＳＤＲＡＭ２８への転送は完了したが、ＪＰＥＧコーデック３０による伸長（つまりＳＤＲＡＭ２８からの読み出し）は未だ完了していない圧縮画像データのサイズとなる。このようなサイズがサイズmsz[frm]を下回るときにＪＰＥＧコーデック３０への伸長命令の出力を中断することによって、ＳＤＲＡＭ２８の容量を最大限に効率化しつつ、読み出しアドレスが書き込みアドレスを追い越す事態を回避することができる。
【００８７】
特に、光磁気ディスク３６のようなディスク記録媒体では磁気ヘッド３４ａのシーク動作が必要であり、シーク動作の間は転送が中断されるため、サイズpe＿read＿sz[1]およびRem＿sz[1]の差分は圧縮画像データの記録状態によって大きく変動しうる。このような場合に、次に伸長すべき圧縮画像データのサイズmsz[frm]を閾値とする効果が顕著に現れる。
【００８８】
なお、この実施例では、ディスク記録媒体として光磁気ディスクを用いているが、光磁気ディスクの代わりにハードディスクを用いてもよい。また、この実施例では、QuickTime形式のファイルを用いているが、これに代えてＡＶＩ（AudioVideo Interleave）形式のファイルを用いてもよい。さらに、この実施例の動画像のフレームレートは３０ｆｐｓであるが、フレームレートはこれに限られない。また、この実施例では、光磁気ディスクに記録されたQuickTimeファイルをＦＡＴ方式で管理するようにしているが、ファイル管理方式はＵＤＦ（Universal Disc Format）方式でもよい。
【図面の簡単な説明】
【図１】この発明の１実施例を示すブロック図である。
【図２】ＳＤＲＡＭのマッピング状態を示す図解図である。
【図３】  QuickTimeファイルを示す図解図である。
【図４】音声データのオフセットテーブルを示す図解図である。
【図５】画像データのオフセットテーブルを示す図解図である。
【図６】指示リストを示す図解図である。
【図７】図１実施例の動作の一部を示すフロー図である。
【図８】図１実施例の動作の他の一部を示すフロー図である。
【図９】図１実施例の動作のその一部を示すフロー図である。
【図１０】図１実施例の動作のさらにその他の一部を示すフロー図である。
【図１１】図１実施例の動作の他の一部を示すフロー図である。
【図１２】図１実施例の動作のその他の一部を示すフロー図である。
【図１３】図１実施例の動作のさらにその他の一部を示すフロー図である。
【図１４】図１実施例の動作の他の一部を示すフロー図である。
【図１５】図１実施例の動作のその他の一部を示すフロー図である。
【図１６】図１実施例の動作のさらにその他の一部を示すフロー図である。
【図１７】図１実施例の動作の一部を示す図解図である。
【符号の説明】
１０  …ディジタルカメラ
２６  …メモリ制御回路
２８  …ＳＤＲＡＭ
３０  …ＪＰＥＧコーデック
３２  …ＣＰＵ
３６  …光磁気ディスク
３８  …ビデオエンコーダ
４６  …信号処理回路
【図１】
0003939198.tif 000005
【図２】
0003939198.tif 000006
【図３】
0003939198.tif 000007
【図４】
0003939198.tif 000008
【図５】
0003939198.tif 000009
【図６】
0003939198.tif 000010
【図７】
0003939198.tif 000011
【図８】
0003939198.tif 000012
【図９】
0003939198.tif 000013
【図１０】
0003939198.tif 000014
【図１１】
0003939198.tif 000015
【図１２】
0003939198.tif 000016
【図１３】
0003939198.tif 000017
【図１４】
0003939198.tif 000018
【図１５】
0003939198.tif 000019
【図１６】
0003939198.tif 000020
【図１７】
0003939198.tif 000021