(57)【要約】  【構成】  複数のＧＯＰの各々は、順方向の先頭フレームがイントラ符号化を施されかつ順方向で先頭フレームに続くフレームがインター符号化を施された複数フレームの画像データを含む。ＣＰＵ３６は、かかる複数のＧＯＰブロックを逆方向に順に指定する。ＭＰＥＧ４コーデック３８は、指定されたＧＯＰに含まれる複数フレームの画像データを順方向に復号し、ＪＰＥＧコーデック４０は、復号された複数フレームの画像データの各々に順方向にイントラ符号化を施す。ＣＰＵ３６は、イントラ符号化を施されたフレーム数が閾値以上であるか否かを判別する。ＪＰＥＧコーデック４０は、ＣＰＵ３６の判別結果が肯定的であるとき、イントラ符号化を施された複数フレームの画像データを逆方向に復号する。  【効果】  イントラ符号化を採用することで、回路規模を抑えつつ、逆方向に画像データを再生することができる。【選択図】  図１
2005328432.tif 000002
【特許請求の範囲】
【請求項１】
第１時間軸方向の先頭画面がイントラ符号化を施されかつ前記第１時間軸方向で前記先頭画面に続く画面がインター符号化を施された複数画面の画像データを各々が含む複数のブロックを前記第１時間軸方向とは逆の第２時間軸方向に沿って順に指定する指定手段、
前記指定手段によって指定されたブロックに含まれる複数画面の画像データを前記第１時間軸方向に沿って順に復号する第１復号手段、
前記第１復号手段によって復号された複数画面の画像データの各々に前記第１時間軸方向に沿ってイントラ符号化を施す符号化手段、および
前記符号化手段によって符号化された複数画面の画像データを前記第２時間軸方向に沿って順に復号する第２復号手段を備える、画像処理装置。
【請求項２】
前記イントラ符号化を施された画面数が閾値以上であるか否かを判別する判別手段をさらに備え、
前記第２復号手段は前記判別手段の判別結果が肯定的であるとき復号処理を行う、請求項１記載の画像処理装置。
【請求項３】
前記符号化手段および前記第２復号手段の各々の処理はＪＰＥＧ方式に従う、請求項１または２記載の画像処理装置。
【請求項４】
前記第１時間軸方向は順方向であり、前記第２時間軸方向は逆方向である、請求項１ないし３のいずれかに記載の画像処理装置。
【請求項５】
画像処理装置のプロセサによって実行される画像処理プログラムであって、
第１時間軸方向の先頭画面がイントラ符号化を施されかつ前記第１時間軸方向で前記先頭画面に続く画面がインター符号化を施された複数画面の画像データを各々が含む複数のブロックを前記第１時間軸方向とは逆の第２時間軸方向に沿って順に指定する指定ステップ、
前記指定ステップによって指定されたブロックに含まれる複数画面の画像データを前記第１時間軸方向に沿って順に復号する第１復号ステップ、
前記第１復号ステップによって復号された複数画面の画像データの各々に前記第１時間軸方向に沿ってイントラ符号化を施す符号化ステップ、および
前記符号化ステップによって符号化された複数画面の画像データを前記第２時間軸方向に沿って順に復号する第２復号ステップを備える、画像処理プログラム。
【請求項６】
第１時間軸方向の先頭画面がイントラ符号化を施されかつ前記第１時間軸方向で前記先頭画面に続く画面がインター符号化を施された複数画面の画像データを各々が含む複数のブロックを前記第１時間軸方向とは逆の第２時間軸方向に沿って順に指定するプロセサ、
前記プロセサによって指定されたブロックに含まれる複数画面の画像データを前記第１時間軸方向に沿って順に復号するデコーダ、および
前記デコーダによって復号された複数画面の画像データの各々に前記第１時間軸方向に沿ってイントラ符号化を施し、前記イントラ符号化を施された複数画面の画像データを前記第２時間軸方向に沿って順に復号するコーデックを備える、画像処理装置。
【請求項７】
前記プロセサは符号化処理および復号処理を前記コーデックに交互に命令し、
前記コーデックは前記プロセサからの命令に従う処理を実行する、請求項６記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置に関し、特にたとえばイントラ符号化を施された画面とインター符号化を施された画面とを含む複数画面の画像データを処理する、画像処理装置に関する。
【背景技術】
【０００２】
従来のこの種の装置の一例が、特許文献１に開示されている。この従来技術によれば、逆転再生が指示されると、ＭＰＥＧビデオストリームを形成するＢピクチャおよびＰピクチャが順方向（第１時間軸方向）に沿って復号され、復号された画像データが逆方向（第２時間軸方向）に沿ってＢピクチャに再符号化され、そしてＭＰＥＧビデオストリームを形成するＩピクチャと再符号化されたＢピクチャとからなる再符号化データ列が生成される。ＭＰＥＧビデオデコーダは、こうして生成された再符号化データ列を逆方向に復号し、復号された画像データを表示回路に出力する。これによって、滑らかな逆転再生が実現される。
【特許文献１】特開２００３−５２０２０号公報［Ｈ０４Ｎ  ５／９３，５／７６，５／９２，７／３２］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来技術では、ＭＰＥＧデコーダを２つ準備する必要があるため、回路規模が拡大するという問題がある。
【０００４】
それゆえに、この発明の主たる目的は、回路規模を抑制でき、かつ第１時間軸方向に沿ってイントラ符号化およびインター符号化を施された複数画面の画像データを第１時間軸方向とは逆方向の第２時間軸方向に再生することができる、画像処理装置を提供することである。
【課題を解決するための手段】
【０００５】
請求項１の発明に従う画像処理装置は、第１時間軸方向の先頭画面がイントラ符号化を施されかつ第１時間軸方向で先頭画面に続く画面がインター符号化を施された複数画面の画像データを各々が含む複数のブロックを第１時間軸方向とは逆の第２時間軸方向に沿って順に指定する指定手段、指定手段によって指定されたブロックに含まれる複数画面の画像データを第１時間軸方向に沿って順に復号する第１復号手段、第１復号手段によって復号された複数画面の画像データの各々に第１時間軸方向に沿ってイントラ符号化を施す符号化手段、および符号化手段によって符号化された複数画面の画像データを第２時間軸方向に沿って順に復号する第２復号手段を備える。
【０００６】
複数のブロックの各々は、第１時間軸方向の先頭画面がイントラ符号化を施されかつ第１時間軸方向で先頭画面に続く画面がインター符号化を施された複数画面の画像データを含む。指定手段は、かかる複数のブロックを第１時間軸方向とは逆の第２時間軸方向に沿って順に指定する。第１復号手段は、指定されたブロックに含まれる複数画面の画像データを第１時間軸方向に沿って順に復号し、符号化手段は、復号された複数画面の画像データの各々に第１時間軸方向に沿ってイントラ符号化を施す。符号化された複数画面の画像データは、第２復号手段によって、第２時間軸方向に沿って順に復号される。
【０００７】
つまり、第１復号手段によって第１時間軸方向に復号された画像データは、符号化手段によって第１時間軸方向にイントラ符号化を施される。イントラ符号化を施された画像データはその後、第２復号手段によって第２時間軸方向に復号される。イントラ符号化を採用することで、回路規模を抑えつつ、第２時間軸方向に画像データを再生することができる。
【０００８】
請求項２の発明に従う画像処理装置は、請求項１に従属し、イントラ符号化を施された画面数が閾値以上であるか否かを判別する判別手段をさらに備え、第２復号手段は判別手段の判別結果が肯定的であるとき復号処理を行う。
【０００９】
画像データのイントラ符号化処理は第１時間軸方向に沿って実行される一方、イントラ符号化を施された画像データの復号処理は第２時間軸方向に沿って実行される。そこで、請求項２の発明では、イントラ符号化を施された画面数が閾値を上回るか否かを判別し、判別結果が肯定的であるときに復号処理を実行するようにしている。これによって、処理の破綻が回避される。
【００１０】
請求項３の発明に従う画像処理装置は、請求項１または２に従属し、符号化手段および第２復号手段の各々の処理はＪＰＥＧ方式に従う。
【００１１】
請求項４の発明に従う画像処理装置は、請求項１ないし３のいずれかに従属し、第１時間軸方向は順方向であり、第２時間軸方向は逆方向である。
【００１２】
請求項５の発明に従う画像処理プログラムは、画像処理装置のプロセサによって実行される画像処理プログラムであって、第１時間軸方向の先頭画面がイントラ符号化を施されかつ第１時間軸方向で先頭画面に続く画面がインター符号化を施された複数画面の画像データを各々が含む複数のブロックを第１時間軸方向とは逆の第２時間軸方向に沿って順に指定する指定ステップ、指定ステップによって指定されたブロックに含まれる複数画面の画像データを第１時間軸方向に沿って順に復号する第１復号ステップ、第１復号ステップによって復号された複数画面の画像データの各々に第１時間軸方向に沿ってイントラ符号化を施す符号化ステップ、および符号化ステップによって符号化された複数画面の画像データを第２時間軸方向に沿って順に復号する第２復号ステップを備える。
【００１３】
請求項１と同様、第１復号ステップによって第１時間軸方向に復号された画像データは、符号化ステップによって第１時間軸方向にイントラ符号化を施される。イントラ符号化を施された画像データはその後、第２復号ステップによって第２時間軸方向に復号される。イントラ符号化を採用することで、回路規模を抑えつつ、第２時間軸方向に画像データを再生することができる。
【００１４】
請求項６の発明に従う画像処理装置は、第１時間軸方向の先頭画面がイントラ符号化を施されかつ第１時間軸方向で先頭画面に続く画面がインター符号化を施された複数画面の画像データを各々が含む複数のブロックを第１時間軸方向とは逆の第２時間軸方向に沿って順に指定するプロセサ、プロセサによって指定されたブロックに含まれる複数画面の画像データを第１時間軸方向に沿って順に復号するデコーダ、およびデコーダによって復号された複数画面の画像データの各々に第１時間軸方向に沿ってイントラ符号化を施し、イントラ符号化を施された複数画面の画像データを第２時間軸方向に沿って順に復号するコーデックを備える。
【００１５】
複数のブロックの各々は、第１時間軸方向の先頭画面がイントラ符号化を施されかつ第１時間軸方向で先頭画面に続く画面がインター符号化を施された複数画面の画像データを含む。プロセサは、かかる複数のブロックを第１時間軸方向とは逆の第２時間軸方向に沿って順に指定する。デコーダは、指定されたブロックに含まれる複数画面の画像データを第１時間軸方向に沿って順に復号する。コーデックは、復号された複数画面の画像データの各々に第１時間軸方向に沿ってイントラ符号化を施し、かつ符号化された複数画面の画像データを第２時間軸方向に沿って順に復号する。
【００１６】
請求項１または請求項５と同様、回路規模を抑えつつ、第２時間軸方向に画像データを再生することができる。
【００１７】
請求項７の発明に従う画像処理装置は、請求項６に従属し、プロセサは符号化処理および復号処理をコーデックに交互に命令し、コーデックはプロセサからの命令に従う処理を実行する。
【発明の効果】
【００１８】
この発明によれば、第１時間軸方向に復号された画像データは、第１時間軸方向にイントラ符号化を施される。イントラ符号化を施された画像データはその後、第２時間軸方向に復号される。イントラ符号化を採用することで、回路規模を抑えつつ、第２時間軸方向に画像データを再生することができる。
【００１９】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２０】
図１を参照して、この実施例のディジタルビデオカメラ１０は、光学レンズ１２を含む。被写界の光学像は、光学レンズ１２を通してイメージセンサ１４の撮像面に照射される。撮像面では、光電変換によって被写界の光学像に対応する電荷つまり生画像信号が生成される。
【００２１】
キー入力装置４６に設けられたモードキー４６ａによってカメラモードが選択されると、スルー画像処理つまり被写界のリアルタイム動画像をＬＣＤモニタ３０に表示する処理が実行される。ＣＰＵ３６はまず、プリ露光および間引き読み出しの繰り返しをドライバ１６に命令する。ドライバ１６は、イメージセンサ１４のプリ露光とこれによって生成された生画像信号の間引き読み出しとを繰り返し実行する。プリ露光および間引き読み出しは、クロックＣＬＫ１に基づいて分周器３４から出力される垂直同期信号Ｖｓｙｎｃ１に応答して実行される。垂直同期信号Ｖｓｙｎｃ１は１／３０秒に１回の割合で発生し、被写界の光学像に対応する低解像度の生画像信号は３０ｆｐｓのフレームレートでイメージセンサ１４から出力される。
【００２２】
出力された各フレームの生画像信号は、ＣＤＳ／ＡＧＣ／ＡＤ回路１８によってノイズ除去，レベル調整およびＡ／Ｄ変換の一連の処理を施され、これによってディジタル信号である生画像データが得られる。信号処理回路２０は、ＣＤＳ／ＡＧＣ／ＡＤ回路１８から出力された生画像データに白バランス調整，色分離，ＹＵＶ変換などの処理を施し、ＹＵＶ形式の画像データを生成する。生成された各フレームの画像データは、メモリ制御回路２４によってＳＤＲＡＭ２６に書き込まれる。
【００２３】
ビデオエンコーダ２８は、クロックＣＬＫ２に基づいて分周器３２から出力される垂直同期信号Ｖｓｙｎｃ２に応答して、画像データの読み出しをメモリ制御回路２４に要求する。垂直同期信号Ｖｓｙｎｃ２も１／３０秒に１回の割合で発生し、画像データは３０ｆｐｓのフレームレートでＳＤＲＡＭ２６からビデオエンコーダ２８に転送される。
【００２４】
ビデオエンコーダ２８は、転送された画像データをＮＴＳＣフォーマットに従うコンポジットビデオ信号に変換し、変換されたコンポジットビデオ信号をＬＣＤモニタ３０に与える。この結果、被写界のスルー画像がモニタ画面に表示される。なお、以下では説明を適宜省略するが、ＳＤＲＡＭ２６へのアクセスは必ずメモリ制御回路２４を通して行われる。
【００２５】
静止画撮影キー４６ｅが操作されると、ＣＰＵ３６は、１回の本露光と１回の全画素読み出しとをドライバ１６に命令する。ドライバ１６は、イメージセンサ１４の本露光とこれによって生成された生画像信号の全画素読み出しとを１回ずつ実行する。これによって、被写界の光学像に対応する高解像度の生画像信号がイメージセンサ１４から出力される。出力された生画像信号は上述と同様の処理によってＹＵＶ形式の静止画像データに変換され、変換された静止画像データはＳＤＲＡＭ２６に書き込まれる。
【００２６】
ＣＰＵ３６はまた、圧縮命令をＪＰＥＧコーデック４０に向けて発行する。ＪＰＥＧコーデック４０は、ＳＤＲＡＭ２６から静止画像データを読み出し、読み出された静止画像データにＪＰＥＧ圧縮を施し、そして圧縮静止画像データつまりＪＰＥＧデータをＳＤＲＡＭ２６に書き込む。ＣＰＵ３６はその後、ＳＤＲＡＭ２６からＪＰＥＧデータを読み出し、読み出されたＪＰＥＧデータを含むＪＰＥＧファイルをＩ／Ｆ４２を通して記録媒体４４に記録する。
【００２７】
なお、記録媒体４４は着脱自在の半導体メモリであり、図示しないスロットに装着されたときにＩ／Ｆ４２によってアクセス可能となる。
【００２８】
スルー画像がＬＣＤモニタ３０に表示されているときに動画撮影キー４６ｄが操作されると、ＣＰＵ３６は、ＭＰＥＧ４コーデック３４を起動する。ＭＰＥＧ４コーデック３４は、垂直同期信号Ｖｓｙｎｃ１が発生する毎に、ＳＤＲＡＭ２６から各フレームの画像データを読み出し、読み出された画像データにＭＰＥＧ４フォーマットのシンプルプロファイルに従う圧縮処理を施す。画像データは、概ね１５フレームに１回の割合でイントラ符号化を施され、残りのフレームでインター符号化を施される。こうして生成された圧縮動画像データつまりＭＰＥＧデータは、ＳＤＲＡＭ２６に書き込まれる。
【００２９】
イントラ符号化を施されたフレームを“Ｉフレーム”と定義し、インター符号化を施されたフレームを“Ｐフレーム”と定義する。また、Ｉフレームおよびこれに続く複数のＰフレームからなる塊を“ＧＯＰ（Group Of Pictures）”と定義する。すると、ＭＰＥＧデータは図３に示すデータ構造を有することとなる。各々のＧＯＰには、“０”から始まる識別番号が割り当てられる。
【００３０】
ＣＰＵ４０は、ＳＤＲＡＭ２６に蓄積されたＭＰＥＧデータを周期的に読み出し、読み出されたＭＰＥＧデータをＩ／Ｆ４２を通して記録媒体４４に記録する。動画撮影キー４６ｄが再度操作されると、ＣＰＵ３６は、ＭＰＥＧ４コーデック３８を不能化し、ＳＤＲＡＭ２６に残存するＭＰＥＧデータを記録媒体４４に記録する。記録媒体４４内には、複数フレームのＭＰＥＧデータを含むＭＰＥＧファイルが作成される。
【００３１】
モードキー４６ａによって再生モードが選択され、カーソルキー４６ｃおよびセットキー４６ｂによって所望のＪＰＥＧファイルが選択されると、ＣＰＵ３６は、このＪＰＥＧファイルに格納されたＪＰＥＧデータを記録媒体４４からＳＤＲＡＭ２６に転送し、かつＪＰＥＧコーデック４０に伸長命令を与える。ＪＰＥＧコーデック４０は、ＪＰＥＧデータをＳＤＲＡＭ２６から読み出し、読み出されたＪＰＥＧデータを伸長し、伸長された画像データをＳＤＲＡＭ２６に書き込む。ビデオエンコーダ２８は、垂直同期信号Ｖｓｙｎｃ２が発生する毎にＳＤＲＡＭ２６から画像データを読み出し、読み出された画像データをＮＴＳＣフォーマットのコンポジットビデオ信号に変換し、そして変換されたコンポジットビデオ信号をＬＣＤモニタ３０に与える。これによって、静止画像がＬＣＤモニタ３０に表示される。
【００３２】
再生モードが選択されている状態で、カーソルキー４６ｃおよびセットキー４６ｂによって所望のＭＰＥＧファイルが選択されると、このＭＰＥＧファイルの再生処理が実行される。ＣＰＵ３６はまず、ＭＰＥＧファイルに格納された先頭フレームのＭＰＥＧデータを記録媒体４４からＳＤＲＡＭ２６に転送し、伸長命令をＭＰＥＧ４コーデック３８に与える。ＭＰＥＧコーデック３８は先頭フレームのＭＰＥＧデータをＳＤＲＡＭ２６から読み出し、読み出されたＭＰＥＧデータを伸長し、そして伸長された画像データをＳＤＲＡＭ２６に書き込む。ビデオエンコーダ２８は上述と同様の処理を実行し、この結果、先頭フレームの静止画像がＬＣＤモニタ３０に表示される。
【００３３】
ここで、セットキー４６ｂが再度操作されると、動画再生が実行される。ＣＰＵ３６は、所望のＭＰＥＧファイルに格納されたＭＰＥＧデータを１ＧＯＰに相当する周期で１ＧＯＰずつＳＤＲＡＭ２６に転送し、垂直同期信号Ｖｓｙｎｃ１に応答してＭＰＥＧ４コーデック３８に伸長命令を与える。ＭＰＥＧ４コーデック３８は、垂直同期信号Ｖｓｙｎｃ１に応答して上述と同様の処理を実行する。ビデオエンコーダ２８は、垂直同期信号Ｖｓｙｎｃ２が発生する毎にＳＤＲＡＭ２６から画像データを読み出し、読み出された画像データをＮＴＳＣフォーマットのコンポジットビデオ信号に変換し、そして変換されたコンポジットビデオ信号をＬＣＤモニタ３０に与える。この結果、先頭フレームに続く動画像がＬＣＤモニタ３０に表示される。
【００３４】
こうして動画像が順方向に再生されている途中でカーソルキー３６ｃによって右方向が指定されると、動画像が逆方向に再生される。このとき、ＣＰＵ３６は、図６〜図７に示すＭＰＥＧ伸長タスク，図８〜図１０に示すＪＰＥＧ圧縮タスク，図１１に示すＪＰＥＧ伸長タスクおよび図１２に示す表示タスクを並列的に実行する。
【００３５】
なお、ＣＰＵ３６は、μＩＴＲＯＮのようなマルチタスクＯＳの制御の下で図６〜図１２に示すタスクを実行する。かかるタスクに対応する制御プログラムは、フラッシュメモリ２２に記憶される。
【００３６】
再生モードでは、ＳＤＲＡＭ２６は図２に示すようにマッピングされる。バンク２６ａ（バンク０），バンク２６ｂ（バンク１）およびバンク２６ｃ（バンク２）の各々は、伸長された１フレームの画像データを格納するエリアである。ＪＰＥＧデータエリア２６ｃは、各フレームのＪＰＥＧデータを格納するエリアである。ＪＰＥＧインデックスエリア２６ｅは、ＪＰＥＧデータエリア２６ｄに格納された各フレームのＪＰＥＧデータの先頭アドレス値を格納するエリアであり、４５個のコラムJPEG＿index[0]〜JPEG＿index[44]によって形成される。ＭＰＥＧ４データエリア２６ｆは、記録媒体４４から読み出されたＭＰＥＧデータを格納するエリアである。
【００３７】
なお、記録媒体４４からＭＰＥＧ４データエリア２６ｆへのＭＰＥＧデータの転送は、図示しないタスクによって周期的に実行される。
【００３８】
図６を参照して、ステップＳ１では各種変数を初期化する。具体的には、ＧＯＰ番号gop＿numを“＃”に設定し、フレーム数vop＿numを“＊”に設定し、コラム番号Kを“vop＿num−１”に設定し、そしてアドレス値jenc＿adrを“JPG＿START”に設定する。さらに、フラグmdec＿end，jenc＿flg，jdec＿flgおよび disp＿flgを“０”に設定し、フレーム番号mdec＿num，jenc＿numおよびjdec＿numを“０”に設定し、そしてバンク番号mbank，jbankおよびdbankを“０”に設定する。
【００３９】
ここで、ＧＯＰ番号gop＿numは注目するＧＯＰの識別番号であり、“＃”は逆方向の動画再生が指示された時点で再生されていたフレームが属するＧＯＰの識別番号を示す。フレーム数vop＿numは注目するＧＯＰから再生すべきフレームの数であり、“＊”は逆方向の動画再生が指示された時点で再生されていたフレームの番号に“１”を加算した値を示す。
【００４０】
図３に示すＧＯＰ（ｎ＋１）に属する１５フレームのうちフレーム番号“２”が割り当てられたフレームから逆方向再生を開始する場合、“＃”は“ｎ＋１”を示し、“＊”は“３”を示す。
【００４１】
コラム番号Kは、図２に示すＪＰＥＧインデックスエリア２６ｅに形成されたコラムの識別番号である。アドレス値jenc＿adrはＪＰＥＧデータの書き込みを開始するアドレスの値であり、“JPG＿START”はＪＰＥＧデータエリア２６ｄの先頭アドレス値である。
【００４２】
フラグmdec＿endは、再生フレームがＭＰＥＧファイルの先頭フレームに達したか否かを識別するためのフラグである。“０”は未達を意味し、“１”は既達を意味する。フラグjenc＿flgは、ＪＰＥＧコーデック４０の圧縮処理を許可するか否かを識別するためのフラグである。“０”は禁止を意味し、“１”は許可を意味する。フラグjdec＿flgは、ＪＰＥＧコーデック４０の伸長処理を許可するか否かを識別するためのフラグである。“０”は禁止を意味し、“１”は許可を意味する。フラグdisp＿flgは、ビデオエンコーダ２８のエンコード処理を許可するか否かを識別するためのフラグである。“０”は禁止を意味し、“１”は許可を意味する。
【００４３】
フレーム番号mdec＿numは、ＭＰＥＧ４コーデック３８によって伸長すべきフレームの識別番号である。フレーム番号jenc＿numは、ＪＰＥＧコーデック４０によって圧縮すべきフレームの識別番号である。フレーム番号jdec＿numは、ＪＰＥＧコーデック４０によって伸長すべきフレームの識別番号である。
【００４４】
バンク番号mbankは、ＭＰＥＧ４コーデック３８によって伸長された１フレームの画像データを格納すべきバンクの識別番号である。バンク番号jbankは、ＪＰＥＧコーデック４０によって圧縮すべき１フレームの画像データが格納されたバンク、あるいはＪＰＥＧコーデック４０によって伸長された１フレームの画像データを格納すべきバンクの識別番号である。バンク番号dbankは、ＬＣＤモニタ３０に表示すべき１フレームの画像データが格納されたバンクの識別番号である。
【００４５】
ステップＳ３では垂直同期信号Ｖｓｙｎｃ１が発生したか否かを判別し、ＹＥＳであれば、フラグmdec＿endが“１”であるか否かをステップＳ５で判別する。mdec＿end＝０であれば、ステップＳ９以降の処理に進む。mdec＿end＝１であれば、ステップＳ７でフラグjdec＿flgを“１”に設定してからステップＳ３に戻る。
【００４６】
なお、フラグmdec＿endは、再生フレームがＭＰＥＧファイルの先頭フレームに達したときに、後述するステップＳ３７で“１”に設定される。また、ステップＳ７は、ＭＰＥＧファイルの先頭フレームのＪＰＥＧ圧縮が完了した後に、後述するステップＳ６９に代わってフラグjdec＿flgを“１”に設定するためのステップである。
【００４７】
ステップＳ９では、フレーム番号mdec＿numをフレーム番号jenc＿numに設定する。ステップＳ１１ではフレーム数vop＿numをフレーム数jvop＿numに設定し、ステップＳ１３ではＧＯＰ番号gop＿numをＧＯＰ番号jgop＿numに設定し、ステップＳ１５ではバンク番号mbankをバンク番号jbankに設定する。
【００４８】
フレーム番号mdec＿num，フレーム数vop＿num，ＧＯＰ番号gop＿numおよびバンク番号mbankはＭＰＥＧ伸長タスクで参照され、フレーム番号jenc＿num，フレーム数jvop＿num，ＧＯＰ番号jgop＿numおよびバンク番号jbankは、ＪＰＥＧ圧縮タスクで参照される。ステップＳ９〜Ｓ１５の処理によって、互いに関連するパラメータについて同期が確保される。なお、ステップＳ１の処理から明らかなように、１回目のステップＳ９の処理は意味をなさない。
【００４９】
ステップＳ１７では、１フレームの伸長命令をＭＰＥＧ４コーデック３８に向けて発行する。発行された伸長命令には、ＧＯＰ番号gop＿num，フレーム番号mdec＿numおよびバンク番号mbankが含まれる。ＭＰＥＧ４コーデック３８は、ＧＯＰ番号gop＿numおよびフレーム番号mdec＿numによって特定される１フレームのＭＰＥＧデータを図４に示すＭＰＥＧ４データエリア２６ｆから読み出し、読み出されたＭＰＥＧデータを伸長し、そして伸長された画像データを図４に示すバンク０〜２のうちバンク番号mbankに対応するバンクに書き込む。
【００５０】
伸長処理が完了するとステップＳ１９でＹＥＳと判断し、ステップＳ２１でフラグjenc＿flgを“１”に設定する。これによって、図８に示すステップＳ４３以降の処理が開始される。ステップＳ２３では数１に従ってバンク番号mbankを更新する。数１によれば、“mbank＋１”を“３”で割り算することによって得られる余りが、バンク番号mbankとして設定される。
【００５１】
【数１】
2005328432.tif 000003
【００５２】
ステップＳ２５ではフレーム番号mdec＿numをインクリメントし、ステップＳ２７ではインクリメントされたフレーム番号mdec＿numがフレーム数vop＿numと一致するか否か判別する。ここでＮＯであれば、注目するＧＯＰから再生すべきフレームのＭＰＥＧ伸長が未だ完了していないとみなし、直接ステップＳ３に戻る。
【００５３】
これに対して、ステップＳ２７でＹＥＳと判断されると、注目するＧＯＰを変更するべくステップＳ２９でＧＯＰ番号gop＿numをディクリメントする。ステップＳ３１では、ディクリメントされたＧＯＰ番号gop＿numが“０”を下回るか否かを判別する。
【００５４】
ＧＯＰ番号gop＿numが“０”以上であればステップＳ３３に進み、フレーム数vop＿numをＧＯＰ番号gop＿numに対応するＧＯＰのフレーム数に設定する。その後、ステップＳ３５でフレーム番号mdec＿numを“０”に設定し、ステップＳ３に戻る。一方、ＧＯＰ番号gop＿numが“０”未満であれば、ＭＰＥＧ伸長処理を終了するべく、ステップＳ３７でフラグmdec＿endを“１”に設定する。ステップＳ３７の処理が完了すると、ステップＳ３に戻る。
【００５５】
かかるＭＰＥＧ伸長タスクの実行によって、図３に示すように、ＭＰＥＧデータを形成する複数のＧＯＰは逆方向に順に指定され、指定されたＧＯＰを形成する複数のフレームは順方向に指定される。ＭＰＥＧ４コーデック３８は、こうして指定されたフレームに伸長処理を施す。伸長された画像データは、バンク０→バンク１→バンク２→バンク０→…の順でバンク０〜２の各々に書き込まれる。
【００５６】
図８を参照して、ステップＳ４１ではフラグjenc＿flgが“１”を示すか否かを判別し、ＹＥＳであればステップＳ４３に進む。上述のように、フラグjenc＿flgは、１回目のＭＰＥＧ伸長が完了したときにステップＳ２１で“１”に更新される。このため、ステップＳ４３以降の処理は、１フレームの画像データがバンク番号mbankに対応するバンクに確保された時点で開始される。
【００５７】
ステップＳ４３では、圧縮命令をＪＰＥＧコーデック４０に向けて発行する。発行された圧縮命令には、バンク番号jbank（＝mbank）およびアドレス値jenc＿adrが含まれる。ＪＰＥＧコーデック４０は、図４に示すバンク０〜２のうちバンク番号jbankに対応するバンクから１フレームの画像データを読み出し、読み出された画像データにＪＰＥＧ圧縮を施し、そして生成されたＪＰＥＧデータを図４に示すＪＰＥＧデータエリア２６ｄのアドレス値jenc＿adrに対応するアドレス以降に書き込む。
【００５８】
ＪＰＥＧ圧縮が完了するとステップＳ４５でＹＥＳと判断し、ステップＳ４７でアドレス値jenc＿adrを図２に示すＪＰＥＧインデックスエリア２６ｅのコラムJPEG＿index[K]に書き込む。ステップＳ４９では数２に従ってアドレス値jenc＿adrを更新し、ステップＳ５１では数３の条件が満足されるか否かを判別する。
【００５９】
【数２】
2005328432.tif 000004
【００６０】
【数３】
2005328432.tif 000005
【００６１】
なお、数２および数３に示す“圧縮サイズ”は、直前のステップＳ４３の処理によって作成されたＪＰＥＧデータのサイズである。また、“JPEG＿END”は図２に示すＪＰＥＧデータエリア２６ｄの末尾アドレス値であり、“α”はマージンである。
【００６２】
数３の条件が満たされるときは、直接ステップＳ５５に進む。これに対して、数３の条件が満たされないときは、ステップＳ５３でアドレス値jenc＿adrを“JPEG＿START”に設定してからステップＳ５５に進む。ステップＳ５５ではコラム番号Kをディクリメントし、続くステップＳ５７ではコラム番号Kが“０”を下回るか否かを判別する。コラム番号Kが“０”以上であれば、直接ステップＳ６１に進む。一方、コラム番号Kが“０”未満であれば、ステップＳ５９でコラム番号Kを“MAX＿J＿IDX−１”に設定してからステップＳ６１に進む。
【００６３】
ここで、“MAX＿J＿IDX”は、ＪＰＥＧインデックスエリア２６ｄに形成されたコラムの総数である。図２から分かるように、この実施例では“MAX＿J＿IDX”は“４５”を示す。
【００６４】
ステップＳ６１ではフレーム番号jenc＿numが“jvop＿num−１”と一致するか否かを判断する。つまり、ＪＰＥＧ圧縮を施されたフレームが注目するＧＯＰから再生すべき末尾のフレームであるか否かを判別する。ここでＮＯであれば、ＧＯＰ番号jgop＿numが“＃−２”以上であるか否かをステップＳ６３で判断し、コラムJPEG＿index[jdec＿num]に書き込まれたアドレス値が“０”を上回るか否かをステップＳ６５で判断する。
【００６５】
ステップＳ６３は、十分なフレーム数のＪＰＥＧデータがＪＰＥＧデータエリア２６ｄに蓄積されたか否かを判別するためのステップである。ステップＳ６５は、有効なアドレス値がコラムJPEG＿index[jdec＿num]に設定されているか否かを判別するためのステップである。
【００６６】
ステップＳ６３およびＳ６５のいずれか一方でもＮＯと判断されると、そのままステップＳ６９に進む。ステップＳ６５およびＳ６７の両方でＹＥＳと判断されると、ステップＳ６７でフラグjdec＿flgを“１”に設定してからステップＳ６９に進む。ステップＳ６７の処理によって、図１１に示すステップＳ９３以降の処理が開始される。ステップＳ６９ではＪＰＥＧ圧縮処理を禁止するべくフラグjenc＿flgを“０”に設定し、その後ステップＳ４１に戻る。
【００６７】
ステップＳ６１でＹＥＳと判断されると、ステップＳ７１でコラム番号Kを“K＋jvop＿num”に更新し、ステップＳ７３では更新されたコラム番号Kが“MAX＿J＿IDX”以上であるか否かを判断する。ここでＮＯであれば直接ステップＳ７７に進むが、ＹＥＳであればステップＳ７５で変数Kを“K−MAX＿J＿IDX”に更新してからステップＳ７７に進む。これによって、ＪＰＥＧインデックスエリア２６ｅに形成されたコラムは、循環的に指定されることとなる。
【００６８】
ステップＳ７７ではＧＯＰ番号jgop＿numをディクリメントし、ステップＳ８１では更新されたＧＯＰ番号jgop＿numが“０”であるか否か判断する。ここでＹＥＳと判断されると、ステップＳ７９でフラグjenc＿flgを“０”に設定してからステップＳ４１に戻る。
【００６９】
一方、ステップＳ７７でＮＯと判断されるとステップＳ８１以降の処理を実行する。ステップＳ８１では、ＧＯＰ番号jgop＿numに対応するＧＯＰのフレーム数をコラム番号Kに加算し、これによって得られた加算値によってコラム番号Kを更新する。ステップＳ８３では、更新されたコラム番号Kが“MAX＿J＿IDX”以上であるか否か判断する。そして、ＮＯであれば直接ステップＳ６３に移行するが、ＹＥＳであればステップＳ８５でコラム番号Kを“K−MAX＿J＿IDX”に更新してからステップＳ６３に移行する。
【００７０】
かかるＪＰＥＧ圧縮タスクによって、逆方向に順に指定される各ＧＯＰから順方向に伸長された各フレームの画像データが、順方向にＪＰＥＧ圧縮を施される。こうして得られた各フレームのＪＰＥＧデータは、ＪＰＥＧデータエリア２６ｄに書き込まれる。また、各フレームのＪＰＥＧデータの先頭アドレス値は、図５（Ａ）〜図５（Ｄ）に示す要領でＪＰＥＧインデックスエリア２６ｅに書き込まれる。
【００７１】
ＪＰＥＧインデックスエリア２６ｅに注目すると、まず、ＧＯＰ（ｎ＋１）の３フレームに関する３つの先頭アドレス値が、図５（Ａ）に示す要領でコラムJPEG＿index[2]〜JPEG＿index[0]にそれぞれ書き込まれる。次に、ＧＯＰ（ｎ）の１５フレームに関する１５個の先頭アドレス値が、図５（Ｂ）に示す要領でコラムJPEG＿index[17]〜JPEG＿index[3]にそれぞれ書き込まれる。
【００７２】
ＧＯＰ（ｎ−１）に関するＪＰＥＧ圧縮が開始されると、ステップＳ６３（およびＳ６５）でＹＥＳと判断され、ステップＳ６７でフラグjdec＿flgが“１”に設定される。つまり、ＪＰＥＧデータの伸長処理が許可される。ＪＰＥＧインデックスエリア２６ｅに格納された先頭アドレス値は、後述するＪＰＥＧ伸長タスクによって、図５（Ｃ）および図５（Ｄ）に示す要領で読み出される。
【００７３】
ＧＯＰ（ｎ−２）の１５フレームに関する１５個の先頭アドレス値のうち、先頭から３個の先頭アドレス値はJPEG＿index[2]〜JPEG＿index[0]にそれぞれ書き込まれ、残りの１２個の先頭アドレス値はJPEG＿index[44]〜JPEG＿index[32]にそれぞれ書き込まれる（図５（Ｄ）参照）。
【００７４】
図１１を参照して、ステップＳ９１ではフラグjdec＿flgが“１”を示すか否か判断し、ＹＥＳであればステップＳ９３で１フレームの伸長命令をＪＰＥＧコーデック４０に与える。伸長命令には、コラムjpeg＿index[jdec＿num]に書き込まれたアドレス値とバンク番号jbankが含まれる。ＪＰＥＧコーデック４０は、伸長命令に含まれるアドレス値に従ってＪＰＥＧデータエリア２６ｅから１フレームのＪＰＥＧデータを読み出し、読み出されたＪＰＥＧデータを伸長し、そして伸長された画像データをバンク番号jbankに対応するバンクに書き込む。
【００７５】
かかるＪＰＥＧ伸長処理が完了すると、ステップＳ９５でＹＥＳと判断し、ステップＳ９７でフラグdisp＿flgを“１”に設定するとともに、ステップＳ９９でコラム番号jdec＿numをインクリメントする。ステップＳ１０１では、更新されたコラム番号jdec＿numが“MAX＿J＿IDX”以上であるか否か判断する。ここでＮＯであれば直接ステップＳ１０５に進むが、ＹＥＳであればステップＳ１０３でコラム番号jdec＿numを“０”に設定してからステップＳ１０５に進む。ステップＳ１０５ではフラグjdec＿flgを“０”に設定し、その後ステップＳ９１に戻る。
【００７６】
かかるＪＰＥＧ伸長タスクによって、各フレームのＪＰＥＧデータの先頭アドレス値は、図５（Ａ）〜図５（Ｄ）に示す要領でＪＰＥＧインデックスエリア２６ｄから読み出される。
【００７７】
図１２を参照して、ステップＳ１１１ではフラグdisp＿flgが“１”であるか否かを判断する。ここでＹＥＳであれば、ステップＳ１１３で垂直同期信号Ｖｓｙｎｃ２の発生を待ち、その後ステップＳ１１５で数４に従ってバンク番号dbankを更新する。数４によれば、“jbank＋２”を“３”で割り算することで得られる余りが、バンク番号dbankとして設定される。
【００７８】
【数４】
2005328432.tif 000006
【００７９】
ステップＳ１１７では更新されたバンク番号dbankをビデオエンコーダ２８に設定し、その後ステップＳ１１１に戻る。
【００８０】
かかる表示タスクによって、図２に示すバンク０〜２が循環的に指定され、逆方向に動く動画像がＬＣＤモニタ３０に表示される。
【００８１】
以上の説明から分かるように、複数のＧＯＰの各々は、順方向の先頭フレームがイントラ符号化を施されかつ順方向で先頭フレームに続くフレームがインター符号化を施された複数フレームの画像データを含む。ＣＰＵ３６は、かかる複数のＧＯＰブロックを逆方向に順に指定する(S29)。ＭＰＥＧ４コーデック３８は、指定されたＧＯＰに含まれる複数フレームの画像データを順方向に復号し、ＪＰＥＧコーデック４０は、復号された複数フレームの画像データの各々に順方向にイントラ符号化を施す。ＣＰＵ３６は、イントラ符号化を施されたフレーム数が閾値以上であるか否かを判別する(S63)。ＪＰＥＧコーデック４０は、ＣＰＵ３６の判別結果が肯定的であるとき、イントラ符号化を施された複数フレームの画像データを逆方向に復号する。
【００８２】
つまり、ＭＰＥＧ４コーデック３８によって順方向に復号された画像データは、ＪＰＥＧコーデック４０によって順方向にイントラ符号化を施される。イントラ符号化を施された画像データはその後、ＪＰＥＧコーデック４０によって逆方向に復号される。イントラ符号化を採用することで、回路規模を抑えつつ、逆方向に画像データを再生することができる。
【００８３】
なお、この実施例では、各フレームの画像データのイントラ符号化にＪＰＥＧ方式を採用しているが、ＪＰＥＧ方式に代えてＪＰＥＧ２０００方式を採用するようにしてもよい。
【図面の簡単な説明】
【００８４】
【図１】この発明の一実施例の構成を示すブロック図である。
【図２】図１実施例に適用されるＳＤＲＡＭのマッピング状態の一例を示す図解図である。
【図３】図１実施例の動作の一部を示す図解図である。
【図４】図１実施例の動作の他の一部を示す図解図である。
【図５】（Ａ）は図１実施例の動作の他の一部を示す図解図であり、（Ｂ）は図１実施例の動作のその他の一部を示す図解図であり、（Ｃ）は図１実施例の動作のさらにその他の一部を示す図解図であり、そして（Ｄ）は図１実施例の動作の他の一部を示す図解図である。
【図６】図１実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図７】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図８】図１実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図９】図１実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図１０】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図１１】図１実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図１２】図１実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【符号の説明】
【００８５】
１０  …  ディジタルカメラ
１４  …  イメージセンサ
２４  …  メモリ制御回路
２６  …  ＳＤＲＡＭ
２８  …  ビデオエンコーダ
３０  …  ＬＣＤモニタ
３６  …  ＣＰＵ
３８  …  ＭＰＥＧ４コーデック
４０  …  ＪＰＥＧコーデック
【図１】
2005328432.tif 000007
【図２】
2005328432.tif 000008
【図３】
2005328432.tif 000009
【図４】
2005328432.tif 000010
【図５】
2005328432.tif 000011
【図６】
2005328432.tif 000012
【図７】
2005328432.tif 000013
【図８】
2005328432.tif 000014
【図９】
2005328432.tif 000015
【図１０】
2005328432.tif 000016
【図１１】
2005328432.tif 000017
【図１２】
2005328432.tif 000018