(57)【要約】【課題】過大なデータ処理能力を確保しなくとも、動画再生中に一時的に生じるフレーム処理の遅れをコマ落としを行わずに修正することが可能となる動画再生装置、及び動画再生方法を提供する。【解決手段】動画データに基づく動画像の再生中には、フレームレートに応じたフレーム画像の表示タイミングに同期して、フレーム画像の表示処理、フレームデータのデコード処理、フレームデータの読込み処理といった一連のフレーム処理を実施する。データ処理能力に比較して過大な処理負荷が一時的に生じたことに起因して、いずれかの表示タイミングにフレーム処理に遅れが生じたときには、次のフレーム処理を表示タイミング（Ｔｎ＋２，Ｔｎ＋３）を待つことなく開始する。フレーム処理を間断なく行うことにより、動画再生中に生じたフレーム処理の遅れを徐々に修正する。【選択図】      図２
2006211485.tif 000002
【特許請求の範囲】
【請求項１】
動画データに基づく動画像を再生する動画再生装置において、
動画像の再生中に、フレームレートに応じたフレーム画像の表示タイミングに同期してフレーム処理を実施するフレーム処理手段と、
このフレーム処理手段によるフレーム処理に遅れが生じた遅延状態を検出する検出手段と、
前記検出手段により前記遅延状態が検出されたとき、前記フレーム処理手段に次のフレーム処理を前記表示タイミングを待つことなく開始させる制御手段と
を備えたことを特徴とする動画再生装置。
【請求項２】
前記検出手段により前記遅延状態が検出されたか否かを示す遅延情報を記憶する遅延情報記録手段を備え、
前記制御手段は、前記遅延状態が検出されたことを示す遅延情報が前記遅延情報記録手段に記憶されているとき、前記フレーム処理手段に次のフレーム処理を前記表示タイミングを待つことなく開始させることを特徴とする請求項１記載の動画再生装置。
【請求項３】
前記検出手段により前記遅延状態が検出された遅延回数をカウントするカウント手段を備え、
前記遅延情報記録手段に記憶される遅延情報が前記カウント手段によってカウントされた遅延回数であることを特徴とする請求項２記載の動画再生装置。
【請求項４】
動画データを構成するフレームデータを前記フレーム処理手段によるフレーム処理に先立ち複数記憶しておく記憶手段を備え、
前記フレーム処理には前記記憶手段へのフレームデータの記憶処理が含まれるとともに、前記制御手段は、次回の表示タイミングを待つことなく開始させる次のフレーム処理における前記記憶処理をフレーム処理手段に省略させることを特徴とする請求項１，２又は３記載の動画再生装置。
【請求項５】
前記検出手段により前記遅延状態が検出されたときのフレーム処理の遅延時間を取得する取得手段と、
この取得手段により取得された遅延時間が所定の遅延許容時間になった場合に、それ以降の前記フレーム処理手段による所定のフレーム処理において処理対象となる動画データを構成する所定のフレームデータを間引くコマ落とし処理を実行するコマ落とし手段と
を備えたことを特徴とする請求項１乃至４のいずれかに記載の動画再生装置。
【請求項６】
前記カウント手段が前記取得手段として機能し、前記コマ落とし手段によるコマ落とし処理は、前記カウント手段によりカウントされる遅延回数が所定の遅延回数になった場合に、前記カウント手段によってカウントされた遅延回数分の所定のフレームデータを間引く処理であることを特徴とする請求項５記載の動画再生装置。
【請求項７】
動画像の再生に際し前記フレームレートを設定するフレームレート設定手段と、
このフレームレート設定手段により設定されたフレームレートに応じた前記所定の遅延許容時間、又は前記所定の遅延回数を設定する遅延許容量設定手段と
を備えたことを特徴とする請求項５又は６記載の動画再生装置。
【請求項８】
前記動画データはフレーム間予測符号化技術を用いて符号化されたデータであり、前記コマ落とし手段は、動画データを構成するとともに単独でデコードできる次のフレームデータの直前の１又は複数のフレームデータをコマ落とし処理に際して間引くことを特徴とする請求項５，６又は７記載の動画再生装置。
【請求項９】
前記フレーム処理手段によりフレーム処理が実施する毎に、当該フレーム処理に含まれる前記記憶処理の処理対象であるフレームデータから、前記単独でデコードできる次のフレームデータまでのフレーム数を取得するフレーム数取得手段を備え、
前記コマ落とし手段は、前記カウント手段によりカウントされた遅延回数が、前記フレーム数取得手段により取得されたフレーム数となったとき又は超えたとき、前記単独でデコードできる次のフレームデータの直前１又は複数のフレームデータをコマ落とし処理に際して間引くことを特徴とする請求項８記載の動画再生装置。
【請求項１０】
動画データに基づく動画像の再生方法であって、
動画像の再生中に、フレームレートに応じたフレーム画像の表示タイミングに同期してフレーム処理を実施する工程と、
前記フレーム処理に遅れが生じたとき、次のフレーム処理を前記表示タイミングを待つことなく開始する工程と
を含むことを特徴とする動画再生方法。
【請求項１１】
動画データに基づく動画像を再生する動画再生装置が有するコンピュータに、
動画像の再生中に、フレームレートに応じたフレーム画像の表示タイミングに同期してフレーム処理を実施するための処理と、
前記フレーム処理に遅れが生じたとき、次のフレーム処理を前記表示タイミングを待つことなく開始させる処理と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばデジタルカメラに用いて好適な動画再生装置、及び動画再生方法に関するものである。
【背景技術】
【０００２】
従来、記録媒体に動画データとして記録されている動画像を再生する動画再生装置においては、所定のフレームレートで、記録媒体からのデータ（フレームデータ）の読み込み、読み込んだデータのデコード（伸長）、デコード後のデータに基づくフレーム画像の生成といった一連のフレーム処理が行われている。なお、実際のフレーム処理では、ｎフレーム目の画像表示タイミングおいて、ｎフレーム目のフレーム画像の生成処理、（ｎ＋１）フレーム目のデコード処理、（ｎ＋２）フレーム目のデータの読み込み処理が順に行われている。
【０００３】
一方、動画再生中に、例えばデータ処理能力に比較して過大な処理負荷が一時的に生じたことに起因して、いずれかの画像表示タイミングに前述した一連のフレーム処理が間に合わなかった場合には、動画像と音声との同期がずれる等の破綻を来すこととなる。係る事態を防止する方法としては、一連のフレーム処理が間に合わなかった場合に、次のフレーム処理を間引く（コマを落とす）ことによって動画像と音声との同期を確保する方法が知られている（例えば、特許文献１参照。）。
【特許文献１】特開２００１−３０９３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した動画再生方法においては、次のフレーム処理を間引く（コマを落とす）ので、間引かれたフレームデータが全く表示されなくなってしまうといった問題があった。
特に、記録媒体に記録されている動画データが、ＭＰＥＧ（Motion Picture Experts Group）規格による方式のようにフレーム間予測符号化技術を用いて符号化された動画データである場合、以下の問題が存在していた。すなわちＭＰＥＧ方式等の動画データでは殆どのフレームデータが前のフレームからの差分情報の符号化データであるため、いずれかの画像表示タイミングでフレーム処理を間引いてしまうと、それ以後、他のフレームデータに依存せず単独でデコードできるフレームデータ（ＭＰＥＧ−４ではＩ−ＶＯＰ）の画像表示タイミングまでの間においては、不可避的に表示画像に崩れを生じさせてしまうという問題があった。
【０００５】
本発明は、かかる従来の課題に鑑みてなされたものであり、過大なデータ処理能力を確保しなくとも、動画再生中に一時的に生じるフレーム処理の遅れをコマ落としを行わずに修正することが可能となる動画再生装置、及び動画再生方法、それらの実現に使用されるプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するため請求項１の発明にあっては、動画データに基づく動画像を再生する動画再生装置において、動画像の再生中に、フレームレートに応じたフレーム画像の表示タイミングに同期してフレーム処理を実施するフレーム処理手段と、このフレーム処理手段によるフレーム処理に遅れが生じた遅延状態を検出する検出手段と、前記検出手段により前記遅延状態が検出されたとき、前記フレーム処理手段に次のフレーム処理を前記表示タイミングを待つことなく開始させる制御手段とを備えたものとした。
【０００７】
かかる構成においては、動画再生中にフレーム処理に遅れが生じたとき、次のフレーム処理を前記表示タイミングが待つことなく開始されるため、フレーム処理に一時的に生じた遅れを、その後のフレーム処理を１又は複数回繰り返す間に徐々に修正することができる。
【０００８】
また、請求項２の発明にあっては、前記検出手段により前記遅延状態が検出されたか否かを示す遅延情報を記憶する遅延情報記録手段を備え、前記制御手段は、前記遅延状態が検出されたことを示す遅延情報が前記遅延情報記録手段に記憶されているとき、前記フレーム処理手段に次のフレーム処理を前記表示タイミングを待つことなく開始させるものとした。
【０００９】
また、請求項３の発明にあっては、前記検出手段により前記遅延状態が検出された遅延回数をカウントするカウント手段を備え、前記遅延情報記録手段に記憶される遅延情報が前記カウント手段によってカウントされた遅延回数であるものとした。
【００１０】
また、請求項４の発明にあっては、動画データを構成するフレームデータを前記フレーム処理手段によるフレーム処理に先立ち複数記憶しておく記憶手段を備え、前記フレーム処理には前記記憶手段へのフレームデータの記憶処理が含まれるとともに、前記制御手段は、次回の表示タイミングを待つことなく開始させる次のフレーム処理における前記記憶処理をフレーム処理手段に省略させるものとした。
【００１１】
かかる構成においては、遅れが生じている間に実施されるフレーム処理の処理時間を短縮することにより、早期にフレーム処理の遅れを修正することができる。
【００１２】
また、請求項５の発明にあっては、前記検出手段により前記遅延状態が検出されたときのフレーム処理の遅延時間を取得する取得手段と、この取得手段により取得された遅延時間が所定の遅延許容時間になった場合に、それ以降の前記フレーム処理手段による所定のフレーム処理において処理対象となる動画データを構成する所定のフレームデータを間引くコマ落とし処理を実行するコマ落とし手段とを備えたものとした。
【００１３】
また、請求項６の発明にあっては、前記カウント手段が前記取得手段として機能し、前記コマ落とし手段によるコマ落とし処理は、前記カウント手段によりカウントされる遅延回数が所定の遅延回数になった場合に、前記カウント手段によってカウントされた遅延回数分の所定のフレームデータを間引く処理であるものとした。
【００１４】
また、請求項７の発明にあっては、動画像の再生に際し前記フレームレートを設定するフレームレート設定手段と、このフレームレート設定手段により設定されたフレームレートに応じた前記所定の遅延許容時間、又は前記所定の遅延回数を設定する遅延許容量設定手段とを備えたものとした。
【００１５】
また、請求項８の発明にあっては、前記動画データはフレーム間予測符号化技術を用いて符号化されたデータであり、前記コマ落とし手段は、動画データを構成するとともに単独でデコードできる次のフレームデータの直前の１又は複数のフレームデータをコマ落とし処理に際して間引くものとした。
【００１６】
また、請求項９の発明にあっては、前記フレーム処理手段によりフレーム処理が実施する毎に、当該フレーム処理に含まれる前記記憶処理の処理対象であるフレームデータから、前記単独でデコードできる次のフレームデータまでのフレーム数を取得するフレーム数取得手段を備え、前記コマ落とし手段は、前記カウント手段によりカウントされた遅延回数が、前記フレーム数取得手段により取得されたフレーム数となったとき又は超えたとき、前記単独でデコードできる次のフレームデータの直前１又は複数のフレームデータをコマ落とし処理に際して間引くものとした。
【００１７】
また、請求項１０の発明にあっては、動画データに基づく動画像の再生方法であって、動画像の再生中に、フレームレートに応じたフレーム画像の表示タイミングに同期してフレーム処理を実施する工程と、前記フレーム処理に遅れが生じたとき、次のフレーム処理を前記表示タイミングを待つことなく開始する工程とを含む方法とした。
【００１８】
かかる方法によれば、フレーム処理に一時的に生じた遅れを、その後、フレーム処理を１又は複数回繰り返す間に徐々に修正することができる。
【００１９】
また、請求項１１の発明にあっては、動画データに基づく動画像を再生する動画再生装置が有するコンピュータに、動画像の再生中に、フレームレートに応じたフレーム画像の表示タイミングに同期してフレーム処理を実施するための処理と、前記フレーム処理に遅れが生じたとき、次のフレーム処理を前記表示タイミングを待つことなく開始させる処理とを実行させるためのプログラムとした。
【発明の効果】
【００２０】
以上のように本発明においては、フレーム処理に一時的に生じた遅れを、その後のフレーム処理を１又は複数回繰り返す間に徐々に修正することができるようにした。よって、過大なデータ処理能力を確保しなくとも、動画再生中に一時的に生じるフレーム処理の遅れをコマ落としを行わずに修正することが可能となる。また、コマ落としを必要とする状況が発生する確率を低下させることができる。その結果、フレーム間予測符号化技術を用いて符号化された動画データに基づく動画像の再生時には、フレーム画像を間引くコマ落としの実施を極力回避することにより、表示画像に崩れを生じさせる率を低下させることができる。
【００２１】
また、遅れが生じている間に実施されるフレーム処理の処理時間を短縮することにより、早期にフレーム処理の遅れを修正することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の一実施の形態を図にしたがって説明する。
（実施形態１）
図１は、第１の実施の形態における動画再生装置１の要部を示すブロック図である。動画再生装置１は、ＭＰＥＧ方式で圧縮符号化された音声付きの動画データに基づく動画像を表示するものであって、動画データ記録部２と、動画データ読込み部３、画像バッファ４、画像デコーダ５、音声バッファ６、音声デコーダ７、画像表示部８、音声出力部９、制御部１０、フレーム間隔タイマ１１、遅延カウンタ１２を備えている。
【００２３】
動画データ記録部２は、動画データが蓄積されたハードディスク、メモリカード等の記録媒体や、動画データが蓄積されたビデオＣＤが装着されるディスクドライブ等である。動画データ読込み部３は、動画データ記録部２に記録されている圧縮状態の動画データに含まれる動画像を構成する画像データであるフレームデータと音声データとを分離し、フレームデータを画像バッファ４へ出力し、音声データを音声バッファ６へ出力する部分である。
【００２４】
画像バッファ４は、圧縮状態にある複数フレーム分のフレームデータを一時記憶するためのバッファであり、本実施の形態では１０フレーム分のフレームデータが記憶される。画像デコーダ５は、ＭＰＥＧ方式の動画データをデコードするのに必要なデコード部、可変長復号部、逆量子化部、逆ＤＣＴ部、動き補償部、フレームメモリ等から構成されており、画像バッファ４に記憶された圧縮状態にあるフレームデータをフレーム毎に伸張し、伸張後のフレームデータを画像バッファ４内の作業領域を介して順次画像表示部８へ出力する。画像表示部８は、順次送られてくる一連のフレームデータに基づく画像を表示するモニタ等から構成される。
【００２５】
音声バッファ６は、圧縮状態にある音声データを一時記憶するためのバッファであり、音声デコーダ７は、音声バッファ６に記憶された圧縮状態にある音声データを伸張し、伸張後の音声データを順次音声出力部９へ出力する。音声出力部９は、順次送られてくる音声データを音声信号に変換するとともに音声出力する。
【００２６】
制御部１０は、図示しないプロセッサ（ＣＰＵ）、プログラムＲＯＭやＲＡＭと、その他の周辺回路から構成されており、プログラムＲＯＭに記憶されている各種の制御プログラムに基づき上述した各部の動作及び装置全体を制御する。フレーム間隔タイマ１１は、再生する動画データのフレームレートに応じたフレーム表示タイミングを示すタイミング信号を生成し、それを動画データ読込み部３や画像デコーダ５に供給する。遅延カウンタ１２は、後述する動画再生動作に際してフレーム処理に所定の遅れが生じた回数を記憶するメモリである。
【００２７】
そして、前記動画再生装置１においては、画像バッファ４が本発明の記憶手段であり、同様に画像デコーダ５がフレーム処理手段、遅延カウンタ１２が遅延情報記録手段であるとともに、制御部１０が検出手段、制御手段、取得手段（カウント手段）、コマ落とし手段、フレームレート設定手段、遅延許容量設定手段、フレーム数取得手段として機能する。
【００２８】
次に、以上の構成からなる動画再生装置１における動画再生時の動作について説明する。図２は、本実施の形態における動画再生動作の内容を示すフローチャート、図３は、フレームレートに応じた周期のフレーム（画像）表示タイミングと、それと同期して行われるフレーム処理とを示した、動画再生動作の基本となる動作内容の説明図である。
【００２９】
まず、図３によって動画再生動作の概略を説明する。すなわち本実施の形態においては同図（ａ）に示したように、従来と同様、フレームレートに応じた周期のフレーム（画像）表示タイミングに同期して所定のフレーム処理を繰り返す。フレーム処理は、図３（ｂ）に示したようにデコード済みデータ表示処理ａと、データデコード処理ｂと、データ読込み処理ｃとからなる一連の処理である。ここで、デコード処理ｂは次回のフレーム表示タイミングで表示すべきデータを対象とする処理である。またデータ読込み処理ｃは動画データ記録部２から画像バッファ４へのフレームデータの読込み処理であって、読込み対象のフレームデータは、フレーム表示タイミングがｎフレーム目であるときには、ｎ＋１０フレーム目のフレーム画像のデータである。なお、データデコード処理ｂとデータ読込み処理ｃは、実際にはシリアル処理ではなく同時並行的に実行されるが、データ読込み処理ｃの有無によってデコード処理ｂの処理時間が変化する関係にある。
【００３０】
そして、動画再生装置１においては、以上の一連のフレーム処理を、あるフレーム表示タイミングから次のフレーム表示タイミングまでのフレーム間隔内に終了することにより動画再生を行う。その間、フレーム処理に遅れが生じ、それが次のフレーム表示タイミング（図３（ａ）でＴｎ＋１、Ｔｎ＋２）までに終了していなかった場合には、その次のフレーム表示タイミング（図３（ａ）でＴｎ＋２、Ｔｎ＋３）を待つことなく、処理中のフレーム処理が終了した時点で直ちに次のフレーム処理を開始する。そして、係る動作を１又は複数回繰り返す（フレーム処理を間断なく行う）ことによって、動画再生中に生じたフレーム処理の遅れを徐々に修正し、それ以降のフレーム表示タイミング（図３（ａ）でＴｎ＋３以降）における、各タイミングで処理すべき各データを対象とした正規のフレーム処理の実施を図るよう動作する。
【００３１】
以下、動画再生装置１における動画再生時の具体的な動作を、図２に示したフローチャートに従って詳述する。図示したように動画再生装置１は、動画再生の開始とともに初期化処理を行う（ステップＳＡ１）。具体的には、再生対象となる動画ファイルのヘッダー情報に基づいた再生条件を規定する再生パラメータ、すなわちフレームレート、フレームレートに応じた最大カウント値等の設定処理と、画像バッファ４への１０フレーム分のフレームデータ（符号化データ）の読込み処理と、先頭フレームのデータのデコード処理を含む所定の処理を行う。なお、前記設定処理で設定する最大カウント値は、フレーム処理の遅れを許容する時間（許容遅延時間）を一定とするため、
最大カウント値  ＝  許容遅延時間  ÷  フレーム間隔
により算出した値とする。
【００３２】
そして遅延カウンタ１２のカウント値をリセットした後（ステップＳＡ２）、所定のイベント待ちとなり（ステップＳＡ３）、イベントの発生に伴い以下のように動作する。
【００３３】
まず、音声データの充填が必要であれば、音声データの読込み、及びデコードを行い（ステップＳＡ４でＹＥＳ、ステップＳＡ５）、またフレーム処理以外の処理が必要であれば、その処理を行う（ステップＳＡ６でＹＥＳ、ステップＳＡ７）。引き続き、フレームデータのデコードの終了を確認する（ステップＳＡ８）。再生開始当初においては係る判別の結果はＮＯであり、引き続き、フレーム表示タイミングが到来したかを確認し、到来していなければ（ステップＳＡ９でＮＯ）、そのままステップＳＡ３へ戻る。
【００３４】
その後、前述したステップＳＡ１で開始した先頭フレームデータのデコード処理が終了すると（ステップＳＡ８でＹＥＳ）、遅延カウンタの値を確認し、それが゛０゛であれば（ステップＳＡ１５でＹＥＳ）、そのままステップＳＡ３へ戻り、そして、フレーム表示タイミングが到来したら（ステップＳＡ９でＹＥＳ）、まず遅延カウンタ１２の値が最大カウント値を超えたか否かを確認する（ステップＳＡ１０）。再生開始当初において係る判別の結果はＮＯとなり、また前フレームのデータ（この場合、先頭フレームデータ）もデコード済みであるため（ステップＳＡ１３でＹＥＳ）、ステップＳＡ１９へ進み、前述した一連のフレーム処理を実行する。すなわちステップＳＡ１９では画像バッファ４に記憶されているデコード済みデータに基づく画像つまり先頭フレームの画像を表示する。引き続き、画像バッファ４に記憶されている次回のフレーム表示タイミングで表示すべきフレームデータのデコード処理を開始した後（ステップＳＡ２０）、再生開始当初、及び通常時においてはステップＳＡ２１の判別結果がＮＯであるため、引き続き画像バッファ４へのデータ読込みを行う（ステップＳＡ２２）。しかる後、ステップＳＡ２４の判別結果はＮＯであるため、そのままステップＳＡ３へ戻って上記処理を繰り返す。
【００３５】
その間、次のフレーム表示タイミングが到来する以前に、前述したステップＳＡ２０で開始した次のフレームデータのデコード処理が終了する毎に（ステップＳＡ８でＹＥＳ）、遅延カウンタの値を確認し、それが゛０゛であれば（ステップＳＡ１５でＹＥＳ）、そのままステップＳＡ３へ戻る。
【００３６】
そして、新たなフレーム表示タイミングが到来したとき（ステップＳＡ９でＹＥＳ）、遅延カウンタ１２の値が最大カウント値を超えておらず（ステップＳＡ１０でＮＯ）、かつ今回のフレーム表示タイミングで表示すべきフレームのデータである前フレームデータがデコード済みであったとき（ステップＳＡ１３でＹＥＳ）、つまり到来したフレーム表示タイミングが図３（ａ）におけるＴ２、Ｔｎのタイミングであった場合には、前述したステップＳＡ１９，ＳＡ２０，ＳＡ２２による通常のフレーム処理を実行する。これにより通常の動画再生が行われる。なお、ステップＳＡ１３の判別は、ステップＳＡ８でデコードの終了が確認できた際に、それを示す終了フラグをセットしておき、係る終了フラグがセットされているか否かによって判別する。
【００３７】
これに対し、ステップＳＡ１３の判別結果がＮＯであって、例えばデータ処理能力を超える過大な処理負荷が一時的に生じたことに起因してフレーム処理に時間を要しており、前フレームデータがデコード済みでなかった場合、すなわち到来したフレーム表示タイミングが図３（ａ）におけるＴｎ＋１、Ｔｎ＋２のタイミングであった場合には、遅延カウンタの値を１つ加算した後（ステップＳＡ１４）、ステップＳＡ３へ戻る（ステップＳＡ２４がＮＯ）。その後、次のフレーム表示タイミングを待つことなく、前フレームデータのデコードが終了した時点で（ステップＳＡ８でＹＥＳ）、以下の動作を実施する。
【００３８】
すなわち遅延カウンタの値が゛０゛でないため（ステップＳＡ１５でＮＯ）、まず画像バッファ４に２フレーム分のデータが記憶されているか否かを確認し、それが記憶されていれば（ステップＳＡ１６でＹＥＳ）、画像バッファ４への次のフレームデータの読込み処理のスキップを示すフラグ（以下、スキップフラグという。）をセットした後（ステップＳＡ１７）、遅延カウンタの値を１つ減算する（ステップＳＡ１８）。しかる後、画像バッファ４に記憶されているデコード済みデータに基づく画像の表示を行い（ステップＳＡ１９）、画像バッファ４に記憶されている次のフレームデータのデコード処理を開始し（ステップＳＡ２０）、前述したスキップフラグをリセットした後（ステップＳＡ２１でＹＥＳ、ステップＳＡ２３）、画像バッファ４への新たなデータ読込み処理を行うことなく、ステップＳＡ３へ戻る。つまり通常とは異なるフレーム処理を実行する。
【００３９】
つまり、先に説明したように正規のフレーム表示タイミングで表示できなかったフレーム画像を、次のフレーム表示タイミングを待つことなく前のフレーム画像に続けて表示する。そして、フレーム表示タイミングで前のフレーム処理によるデコード処理が終了していない状態が続いている間においては、上記と同様に、次のフレーム表示タイミングを待つことなく、前フレームデータのデコードが終了した時点でステップＳＡ１９，ＳＡ２０による通常とは異なるフレーム処理を実行する。これにより、図３（ａ）に示したようにフレーム処理の遅れを徐々に修正する。但し、その間においても、画像バッファ４に２フレーム分のデータ（最低限のデータ）が存在していないときには（ステップＳＡ１６でＮＯ）、ステップＳＡ１７におけるスキップフラグのセットを省略し、ステップＳＡ１９，ＳＡ２０，ＳＡ２２による通常のフレーム処理を実行する。
【００４０】
ここで、上述した動作によってフレーム処理を間断なく行っている間、前の前フレームデータのデコードが終了する以前に、さらに次のフレーム表示タイミングが到来した場合においては、前述したステップＳＡ８がＮＯ、ステップＳＡ９がＹＥＳ、ステップＳＡ１３がＮＯとなるため、ステップＳＡ１４で加算される遅延カウンタの値が、ステップＳＡ１８で減算される以前にさらに加算されることとなる。なお、かかる状況は、例えばフレーム間隔以上の時間を要したフレーム処理が連続した場合に生ずる。
【００４１】
そして、上記状況が生じて、遅延カウンタ１２の値が初期化処理（ステップＳＡ１）で設定した最大カウント値を超えた場合にあっては（ステップＳＡ１０でＹＥＳ）、直後に行うステップＳＡ２２において動画データ記録部２から画像バッファ４へ読み込むべきフレームデータを、現在の遅延カウンタ値分読み飛ばす設定を行う。つまり読み込むべき処理対象のフレームデータのフレーム番号が「ｎ」であれば、それを「ｎ＋現在の遅延カウンタ値」に設定（変更）する（ステップＳＡ１１）。そして、遅延カウンタ１２の値をリセットする（ステップＳＡ１２）。
【００４２】
その後、遅延カウンタ１２の値が最大カウント値を超えた時点においてデコード処理中であったフレームデータのデコードが終了したら（ステップＳＡ８でＹＥＳ）、ステップＳＡ１９，ＳＡ２０，ＳＡ２２による通常のフレーム処理を実行する。但しステップＳＡ２２では、ステップＳＡ１１の設定に従い最大カウント値先のフレームデータの読込み処理を行う。
【００４３】
これによりフレーム表示タイミングとズレを生じた状態でのフレーム処理の実施を前述した最大カウント値＋画像バッファ４に記憶済みのフレームデータ数」以下に抑え、同時にフレーム画像のコマ落としによって、フレーム処理（フレーム画像の表示）タイミングを正規のフレーム表示タイミングに修正する。但し、実際のコマ落としが行われる時期は、遅延カウンタ１２の値が最大カウント値を超えた時点で画像バッファ４に用意されていた２乃至１０フレーム分のうちの最後のフレームデータを表示した直後となる。
【００４４】
以後は、上述したステップＳＡ３以降の動作を繰り返し、全てのフレームデータに基づくフレーム画像を表示することにより、動画像の再生を終了した時点で（ステップＳＡ２４でＹＥＳ）、動画再生動作を終了する。
【００４５】
以上のように本実施の形態においては、動画再生中において、フレーム表示タイミングとズレを生じた状態でのフレーム処理の実施を前述した最大カウント値＋画像バッファ４に記憶済みのフレームデータ数まで許容する、換言すればフレーム処理の遅延時間を「フレーム間隔×最大カウント値」に相当する時間まで許容するものとし、フレーム処理の実施回数が最大カウント値となるまでの間にフレーム処理の遅れを徐々に修正するようにした。
【００４６】
よって、コマ落としを必要とする状況が発生する確率を低下させることができる。その結果、本実施の形態のようにＭＰＥＧ方式で圧縮されている動画像の再生時には、フレーム画像を間引くコマ落としの実施を極力回避することにより、表示画像に崩れを生じさせる率を低下させることができる。
【００４７】
また、動画再生装置１に過大なデータ処理能力を確保しなくとも、動画再生中における一時的な処理負荷の増大に起因して生じるフレーム処理の遅れをコマ落としを行わずに修正することができる。かかる効果については、例えば前述した動画再生装置１を、経済的、物理的に確保可能なデータ処理能力に限界がある動画再生機能を備えたデジタルカメラに組み込む場合には極めて顕著となる。
【００４８】
なお、本実施の形態では、フレーム表示タイミングとズレを生じた状態でのフレーム処理の実施回数をカウントし、それを最大カウント値まで許容するようにしたが、次のようにしてもよい。例えば任意のフレーム表示タイミングでフレーム処理が終了していない場合には、それを示すフラグ等をセットするものとし、それがセットされたときには、その次のフレーム処理だけを、処理中であったフレーム処理が終了した直後にフレーム表示タイミングを待たずに行うようにしてもよい。その場合においても、前述した効果を得ることができる。但し、本実施の形態のようにした方がより顕著な効果を得ることができる。
【００４９】
また、本実施の形態では、フレーム処理の遅れを修正する動作中におけるフレーム処理では、画像バッファ４への新たなフレームデータの読込み処理（ステップＳＡ２２）を省略した、フレーム画像の表示とフレームデータのデコード処理のみからなる通常とは異なるフレーム処理を行うことから、それによってフレーム処理の遅れをより早く修正することができる。
【００５０】
なお、前述したフレーム処理の遅れを修正する動作中におけるフレーム処理に際しては、直前のフレーム処理の遅延時間を計測しておき、遅延時間が所定時間よりも短かい場合には新たなフレームデータの読込み処理を含む通常のフレーム処理を実施し、遅延時間が所定時間よりも長い場合にのみ前述した新たなフレームデータの読込み処理を省略したフレーム処理を行うようにしてもよい。
【００５１】
また、本実施の形態においては、動画データ記録部２から画像バッファ４へ読み込むフレームデータを最大カウント値分読み飛ばすことによってコマ落としを行うようにしたが、これ以外にも次のような方法でコマ落としを行うようにしてもよい。例えばステップＳＡ２０の処理でデコード開始対象とする画像バッファ４内のフレームデータを、次のフレームではなく、一時的に最大カウント値分先のフレームのデータに変更するとともに、それ以前のフレームのデータを破棄することによってコマ落としを行うようにしてもよい。
【００５２】
また、本実施の形態とは異なる上記のコマ落とし方法は採用できなくなるが、前述したフレーム処理に遅れが生じている間における連続したフレーム処理、及びコマ落とし処理は、複数フレーム分のフレームデータを記憶する画像バッファ４を有していない構成においても実施可能である。
【００５３】
（実施形態２）
次に、本発明の第２の実施の形態について説明する。図４は本実施の形態の動画再生装置５１の要部を示すブロック図である。動画再生装置５１は、第１の実施の形態で説明した動画再生装置１と同様に、動画再生中に生じたフレーム処理の遅れを、フレーム処理を間断なく行うことにより徐々に修正すると同時に、その修正が進まないような状況下においてはフレーム画像を間引くコマ落としを実施するものであり、動画再生装置１にフレーム数記憶部１３が付加された構成を備えている。フレーム数記憶部１３は、動画再生時においてフレーム処理を繰り返す毎に変化する、表示処理を行ったフレームから、画像バッファ４内のフレームデータを含めず、動画データ記録部２に記憶されているデータ内における次のキーフレーム、すなわち他のフレームデータに依存せず単独でデコードできるフレームデータ（ＭＰＥＧ−４ではＩ−ＶＯＰ）までのフレーム数を記憶するメモリである。
【００５４】
以下、動画再生装置５１における動画再生時の具体的な動作を、図５に示したフローチャートに従い詳述する。本実施の形態において、動画再生を開始した直後のステップＳＢ１における初期化処理から、ステップＳＢ１０で遅延カウンタ１２の値が最大カウント値を超えたか否かを確認するまでの動作は、図２に示したステップＳＡ１からステップＳＡ１０までの動作と同一である。
【００５５】
以後、再生開始当初においてはステップＳＢ１０の判別結果はＮＯとなり、また前フレームのデータもデコード済みであるため（ステップＳＢ１４でＹＥＳ）、ステップＳＢ１８へ進む。続くステップＳＢ１８では、まず次のキーフレームまでのフレーム数を更新する。引き続き、デコード済みデータに基づくフレーム画像の表示（ステップＳＢ１９）、次回のフレーム表示タイミングで表示すべきフレームデータのデコード処理の開始（ステップＳＢ２０）、画像バッファ４へのデータ読込み（ステップＳＢ２１）からなる通常のフレーム処理を実行する。しかる後、ステップＳＢ３へ戻り上記処理を繰り返す（ステップＳＢ２２でＮＯ）。
【００５６】
その間、次のフレーム表示タイミングが到来する以前に、前述したステップＳＢ２０で開始した次のフレームデータのデコード処理が終了する毎に（ステップＳＢ８でＹＥＳ）、遅延カウンタの値を確認し、それが゛０゛であれば（ステップＳＢ１６でＹＥＳ）、そのままステップＳＢ３へ戻る。そして、新たなフレーム表示タイミングが到来したとき（ステップＳＢ９でＹＥＳ）、遅延カウンタ１２の値が最大カウント値を超えておらず（ステップＳＢ１０でＮＯ）、かつ今回のフレーム表示タイミングで表示すべきフレームのデータである前フレームデータがデコード済みであったときには（ステップＳＢ１４でＹＥＳ）、前述したステップＳＢ１９，ＳＢ２０，ＳＢ２１による通常のフレーム処理を実行する。以上の動作によりフレーム表示タイミングに同期したフレーム処理を実施する通常の動画再生が行われる。
【００５７】
これに対し、ステップＳＢ１４の判別結果がＮＯであって、前フレームデータがデコード済みでなかった場合には、遅延カウンタの値を１つ加算した後（ステップＳＢ１５）、ステップＳＢ３へ戻る（ステップＳＢ２２がＮＯ）。その後、次のフレーム表示タイミングを待つことなく、前フレームデータのデコードが終了した時点で（ステップＳＢ８でＹＥＳ）、以下の動作を実施する。
【００５８】
すなわち遅延カウンタの値が゛０゛でないため（ステップＳＢ１６でＮＯ）、遅延カウンタの値を１つ減算する（ステップＳＢ１７）。しかる後、前述した次のキーフレームまでのフレーム数を更新し（ステップＳＢ１８）、通常のフレーム処理を実行する（ステップＳＢ１９〜ＳＢ２１）。つまり正規のフレーム表示タイミングで表示できなかったフレーム画像を、次のフレーム表示タイミングを待つことなく前のフレーム画像に続けて表示する。そして、フレーム表示タイミングで前のフレーム処理によるデコード処理が終了していない状態が続いている間においては、上記と同様に、次のフレーム表示タイミングを待つことなく、次のキーフレームまでのフレーム数の更新、及び通常のフレーム処理を実行する（ステップＳＢ１８、ステップＳＢ１９〜ＳＢ２１）。これによりフレーム処理の遅れを徐々に修正する。
【００５９】
一方、上述した動作によってフレーム処理を間断なく行っている間、前の前フレームデータのデコードが終了する以前に、さらに次のフレーム表示タイミングが到来する状況では、遅延カウンタ１２の値が初期化処理（ステップＳＢ１）で設定した最大カウント値を超えたとき（ステップＳＢ１０でＹＥＳ）、その時点における遅延カウンタの値が次のキーフレームまでのフレーム数以上となったら（ステップＳＢ１１でＹＥＳ）、その直後に行うステップＳＢ２１において動画データ記録部２から画像バッファ４へ読み込むべきフレームデータを、現在の遅延カウンタ値から、次のキーフレームまでのフレーム数を引いた分のフレーム数を読み飛ばしたデータとする（ステップＳＢ１２）。そして、遅延カウンタ１２の値を、現在の遅延カウンタ値から、次のキーフレームまでのフレーム数を引いた分のフレーム数とする（ステップＳＢ１３）。
【００６０】
その後、遅延カウンタ１２の値が最大カウント値を超えた時点においてデコード処理中であったフレームデータのデコードが終了したら（ステップＳＢ８でＹＥＳ）、次のキーフレームまでのフレーム数の更新、及び通常のフレーム処理を実行する（ステップＳＢ１８、ステップＳＢ１９〜ＳＢ２１）。但しステップＳＢ２１では、ステップＳＢ１２の設定に従い、次のキーフレームまでのフレーム数分だけ先のフレームデータ、つまり他のフレームデータに依存せず単独でデコードできるフレームデータの読込み処理を行う。すなわち次のキーフレームの直前における１又は複数フレーム分のフレームデータを間引くコマ落としを実施する。これにより、コマ落としを行うことによる画像の崩れを防止する。
【００６１】
すなわち図６は、動画再生中におけるキーフレームが表示されるフレーム表示タイミング（以下、キーフレームタイミングという。）Ｋ１〜Ｋ７と、あるキーフレームタイミングから次のキーフレームタイミングまでのキーフレーム間隔内において、フレーム処理が終了するフレーム数を示した説明図である。図示したように、通常時においてキーフレーム間隔内ではｎフレーム分のフレーム処理が終了する。しかし、フレーム処理の遅れが生じているキーフレーム間隔内では、フレーム処理が終了するフレーム数がｎ−ａ，ｎ−ｂといった数に低下することとなり、全体では本来のフレーム数に対して（ａ＋ｂ）フレーム分の遅れが生じることとなる。また、係るフレーム数（ａ＋ｂ）は遅延カウンタ１２の値と一致する。
【００６２】
したがって、図示した（ａ＋ｂ）が最大カウント値を超えた時点で、次のフレーム処理のデータ読込み処理で読み飛ばす（間引く）フレーム数を、第１の実施の形態のように現在の遅延カウンタ値分とするのではなく、「次のキーフレームまでのフレーム数（画像バッファ４内のデータ分を除いた動画データ記録部２内での次のキーフレームまでのフレーム数）とすることにより、キーフレームタイミングＫ４におけるフレーム処理ではキーフレームの画像が表示できることとなる。なお、既に画像バッファ４に記憶されていたデータの中にキーフレームのデータが存在する場合には、当該キーフレームの画像は遅れが生じたままの表示タイミングで表示される。
【００６３】
なお、実際のコマ落としが行われる時期は、遅延カウンタ１２の値が最大カウント値を超えた時点で、動画データ記録部２内においてデータ読込み処理の対象となっていたフレーム以降の最初のキーフレームを表示する時点となる。これによりフレーム表示タイミングとズレを生じた状態でのフレーム処理の実施を前述した最大カウント値＋画像バッファ４に記憶済みのフレームデータ数＋次のキーフレームまでのフレーム数以下に抑え、同時にフレーム画像のコマ落としによって、フレーム処理（フレーム画像の表示）タイミングを正規のフレーム表示タイミングに修正する。
【００６４】
以後、上述したステップＳＢ３以降の動作を繰り返し、全てのフレームデータに基づくフレーム画像を表示することにより、動画像の再生を終了した時点で（ステップＳＢ２２でＹＥＳ）、動画再生動作を終了する。
【００６５】
したがって本実施の形態においても、動画再生中に生じたフレーム処理の遅れを徐々に修正するようにしたことから、コマ落としを必要とする状況が発生する確率を低下させることができる。また、動画再生装置５１に過大なデータ処理能力を確保しなくとも、動画再生中における一時的な処理負荷の増大に起因して生じるフレーム処理の遅れをコマ落としを行わずに修正することができる。かかる効果については、例えば前述した動画再生装置１を、経済的、物理的に確保可能なデータ処理能力に限界がある動画再生機能を備えたデジタルカメラに組み込む場合には極めて顕著となる。しかも、コマ落としを行う場合には、コマ落とし直後の処理対象となる表示画像のフレームデータをキーフレームのデータとすることから、コマ落としを行った場合における一時的な表示画像の崩れをなくすことができる。
【００６６】
なお、本実施の形態では、フレーム処理の遅れを修正する動作中におけるフレーム処理を通常と同様のフレーム処理としたが、第１の実施の形態と同様、画像バッファ４への新たなフレームデータの読込み処理（ステップＳＢ２１）を省略した通常とは異なるフレーム処理を行うようにしてもよい。また、その場合、直前のフレーム処理の遅延時間を計測しておき、遅延時間が所定時間よりも短かい場合には新たなフレームデータの読込み処理を含む通常のフレーム処理を実施し、遅延時間が所定時間よりも長い場合にのみ前述した新たなフレームデータの読込み処理を省略したフレーム処理を行うようにしてもよい。
【００６７】
また、本実施の形態においても、動画データ記録部２から画像バッファ４へ読み込むフレームデータを、「次のキーフレームまでのフレーム数（画像バッファ４内のデータ分を除いた画像バッファ４内での次のキーフレームまでのフレーム数）分」読み飛ばすことによってコマ落としを行うようにしたが、これ以外にも次のような方法でコマ落としを行うようにしてもよい。
【００６８】
例えば動画データ記録部２から画像バッファ４へ読み込むフレームデータを間引くのではなく、予め前記フレーム数記憶部１３には、画像バッファ４内のフレームデータを含めた「次のキーフレームまでのフレーム数」を記憶しておき、ステップＳＢ２０の処理でデコード開始対象とする画像バッファ４内のフレームデータを、次のフレームではなく、一時的に次のキーフレームまでのフレーム数分」先のフレーム（キーフレーム）のデータに変更するとともに、それ以前のフレームのデータを破棄することによってコマ落としを行うようにしてもよい。但し、その場合には、画像バッファ４に上記処理を可能とするだけのフレームデータが記憶できる容量を確保する必要がある。
【００６９】
また、本実施の形態とは異なる上記のコマ落とし方法は採用できなくなるが、前述したフレーム処理に遅れが生じている間における連続したフレーム処理、及びコマ落とし処理は、複数フレーム分のフレームデータを記憶する画像バッファ４を有していない構成においても実施可能である。
【図面の簡単な説明】
【００７０】
【図１】本発明の第１の実施の形態における動画再生装置の要部を示すブロック図である。
【図２】同動画再生装置における動画再生動作の内容を示すフローチャートである。
【図３】同動画再生装置における基本となる動作内容の説明図である。
【図４】本発明の第２の実施の形態における動画再生装置の要部を示すブロック図である。
【図５】同動画再生装置における動画再生動作の内容を示すフローチャートである。
【図６】同動画再生装置における動作内容の特徴部分の説明図である。
【符号の説明】
【００７１】
１    動画再生装置
２    動画データ記録部
３    動画データ読込み部
４    画像バッファ
５    画像デコーダ
６    音声バッファ
７    音声デコーダ
８    画像表示部
９    音声出力部
１０    制御部
１１    フレーム間隔タイマ
１２    遅延カウンタ
１３    フレーム数記憶部
５１    動画再生装置
【図１】
2006211485.tif 000003
【図２】
2006211485.tif 000004
【図３】
2006211485.tif 000005
【図４】
2006211485.tif 000006
【図５】
2006211485.tif 000007
【図６】
2006211485.tif 000008