(57)【要約】  【構成】  動画像は、基準フレームレートと異なるフレームレートを有する部分動画像を含む。ビデオエンコーダ１８は、このような動画像を基準フレームレートで再生する。ＣＰＵ２６は、部分動画像を実時間で再生するために必要な第１フレーム数と、部分動画像に周期的なフレーム補間処理を施すことで得られる第２フレーム数との差分値を算出する。ＣＰＵ２６は、算出された差分値に相当する回数のフレーム間引き処理を動画像に対して分散的に実行する。ＣＰＵ２６はさらに、第２フレーム数に対応する回数のフレーム補間処理を部分動画像に対して実行する。  【効果】  フレーム間引き処理およびフレーム補間処理によって、動画像が実時間で再生される。また、フレーム補間処理によって、部分動画像の動きの円滑化が図られる。【選択図】  図１
2006140551.tif 000002
【特許請求の範囲】
【請求項１】
基準画面レートと異なる画面レートを有する部分動画像を含む動画像を前記基準画面レートで再生する再生手段、
前記部分動画像を実時間で再生するために必要な画面数である第１数と前記部分動画像に周期的な画面数調整処理を施すことで得られる画面数である第２数との差分値を算出する算出手段、
前記算出手段によって算出された差分値に相当する回数の画面数調整処理を前記動画像に対して分散的に実行する第１調整手段、および
前記第２数に対応する回数の画面数調整処理を前記部分動画像に対して実行する第２調整手段を備える、動画像再生装置。
【請求項２】
前記部分動画像の画面レートは前記基準画面レートよりも低く、
前記第２調整手段によって実行される画面数調整処理は画面を補間する処理である、請求項１記載の動画像再生装置。
【請求項３】
前記部分動画像の画面レートは前記基準画面レートの整数分の１と異なる、請求項２記載の動画像再生装置。
【請求項４】
前記第１数は前記第２数よりも大きく、
前記第１調整手段によって実行される画面数調整処理は画面を間引く処理である、請求項２または３記載の動画像再生装置。
【請求項５】
前記第１調整手段は、前記再生手段によって再生される画面数と前記算出手段によって算出された差分値とに基づいて前記画面数調整処理を実行するタイミングを決定する決定手段を含む、請求項１ないし４のいずれかに記載の動画像再生装置。
【請求項６】
前記算出手段は、前記部分動画像の画面レートに関連するパラメータ値を前記基準画面レートに関連するパラメータ値で割り算する割り算手段、前記割り算手段によって求められた割り算値を丸める数値変換手段、および前記割り算手段によって求められた割り算値と前記数値変換手段によって求められた変換値とに基づいて前記差分値を算出する差分算出手段を含む、請求項１ないし５のいずれかに記載の動画像再生装置。
【請求項７】
動画像再生装置のプロセサによって実行される動画像再生プログラムであって、
基準画面レートと異なる画面レートを有する部分動画像を含む動画像を前記基準画面レートで再生する再生ステップ、
前記部分動画像を実時間で再生するために必要な画面数である第１数と前記部分動画像に周期的な画面数調整処理を施したときに得られる画面数である第２数との差分値を算出する算出ステップ、
前記算出ステップによって算出された差分値に相当する回数の画面数調整処理を前記動画像に対して分散的に実行する第１調整ステップ、および
前記第２数に対応する回数の画面数調整処理を前記部分動画像に対して実行する第２調整ステップを備える、動画像再生プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動画像再生装置に関し、特にたとえば、基準フレームレートと異なるフレームレートを有する部分動画像を含む動画像を基準フレームレートで再生する、動画像再生装置に関する。
【背景技術】
【０００２】
従来のこの種の装置の一例が特許文献１に開示されている。この従来技術によれば、動画ファイルを再生するとき、まず動画像を形成する各フレームのインデックス情報が動画ファイルから検出され、検出されたインデックス情報がインデックス情報テーブルに設定される。各フレームの画像データは、こうして作成されたインデックス情報テーブルを参照して、順次再生される。この結果、実時間（撮影時の被写体の動きと同じ速度、つまり実速度）で動く動画像がモニタ画面から出力される。
【特許文献１】特許第３４０３１４１号公報［H04N 5/937, 5/92］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、従来技術は、動画ファイルに格納された画像データのフレームレート（画面レト）が一定であることを前提としている。このため、撮影時にフレームレートが局所的に変動すると、動画を実時間で再生することができない。
【０００４】
それゆえに、この発明の主たる目的は、画面レートの均一性が保証されていない動画像を実時間で再生することができる、動画像再生装置を提供することである。
【課題を解決するための手段】
【０００５】
請求項１の発明に従う動画像再生装置は、基準画面レートと異なる画面レートを有する部分動画像を含む動画像を基準画面レートで再生する再生手段、部分動画像を実時間で再生するために必要な画面数である第１数と部分動画像に周期的な画面数調整処理を施すことで得られる画面数である第２数との差分値を算出する算出手段、算出手段によって算出された差分値に相当する回数の画面数調整処理を動画像に対して分散的に実行する第１調整手段、および第２数に対応する回数の画面数調整処理を部分動画像に対して実行する第２調整手段を備える。
【０００６】
動画像は、基準画面レートと異なる画面レートを有する部分動画像を含む。再生手段は、このような動画像を基準画面レートで再生する。算出手段は、部分動画像を実時間で再生するために必要な画面数である第１数と、部分動画像に周期的な画面数調整処理を施したときに得られる画面数である第２数との差分値を算出する。第１調整手段は、算出手段によって算出された差分値に相当する回数の画面数調整処理を動画像に対して分散的に実行する。また、第２調整手段は、第２数に対応する回数の画面数調整処理を部分動画像に対して実行する。
【０００７】
第１調整手段および第２調整手段の画面数調整処理によって、動画像が実時間で再生される。また、第２調整手段の画面数調整処理によって、部分動画像の動きの円滑化が図られる。
【０００８】
請求項２の発明に従う動画像再生装置は、請求項１に従属し、部分動画像の画面レートは基準画面レートよりも低く、第２調整手段によって実行される画面数調整処理は画面を補間する処理である。これによって、部分動画像の画面数は、実時間再生に必要な画面数に近づく。
【０００９】
請求項３の発明に従う動画像記録装置は、請求項２に従属し、部分動画像の画面レートは基準画面レートの整数分の１と異なる。
【００１０】
請求項４の発明に従う動画像再生装置は、請求項２または３に従属し、第１数は第２数よりも大きく、第１調整手段によって実行される画面数調整処理は画面を間引く処理である。これによって、動画像の画面数が実時間再生に必要な画面数と一致する。
【００１１】
請求項５の発明に従う動画像再生装置は、請求項１ないし４のいずれかに従属し、第１調整手段は、再生手段によって再生される画面数と算出手段によって算出された差分値とに基づいて画面数調整処理を実行するタイミングを決定する決定手段を含む。これによって、画面数調整処理を動画像の全体にわたって分散させることができる。
【００１２】
請求項６の発明に従う動画像再生装置は、請求項１ないし５のいずれかに従属し、算出手段は、部分動画像の画面レートに関連するパラメータ値を基準画面レートに関連するパラメータ値で割り算する割り算手段、割り算手段によって求められた割り算値を丸める数値変換手段、および割り算手段によって求められた割り算値と数値変換手段によって求められた変換値とに基づいて差分値を算出する差分算出手段を含む。
【００１３】
請求項７の発明に従う動画像再生プログラムは、動画像再生装置のプロセサによって実行される動画像再生プログラムであって、基準画面レートと異なる画面レートを有する部分動画像を含む動画像を基準画面レートで再生する再生ステップ、部分動画像を実時間で再生するために必要な画面数である第１数と部分動画像に周期的な画面数調整処理を施したときに得られる画面数である第２数との差分値を算出する算出ステップ、算出ステップによって算出された差分値に相当する回数の画面数調整処理を動画像に対して分散的に実行する第１調整ステップ、および第２数に対応する回数の画面数調整処理を部分動画像に対して実行する第２調整ステップを備える。
【００１４】
請求項１の発明と同様、動画像の実時間再生と部分動画像の動きの円滑化とが可能となる。
【発明の効果】
【００１５】
この発明によれば、第１調整手段および第２調整手段の画面数調整処理によって、動画像が実時間で再生される。また、第２調整手段の画面数調整処理によって、部分動画像の動きの円滑化が図られる。
【００１６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１７】
図１を参照して、この実施例の動画像再生装置１０は、動画ファイルが記録された記録媒体３６を着脱自在に装着するスロット３４を含む。キー入力装置２８によって再生操作が行われると、対応するキー入力信号がＣＰＵ２６に与えられる。ＣＰＵ２６は、記録媒体３６に記録された所望の動画ファイルに再生処理を施す。
【００１８】
動画ファイルに格納されたムービデータは、各々がＪＰＥＧ方式で圧縮された複数フレームの圧縮画像データと所定方式で符号化された音声データとによって形成される。所望の動画ファイルのムービデータを形成する圧縮画像データおよび音声データは、Ｉ／Ｆ３２およびメモリ制御回路１４を通して、ＳＤＲＡＭ１６の圧縮画像エリアおよび音声エリア（いずれも図示せず）に書き込まれる。
【００１９】
ＪＰＥＧ復号回路１２は、圧縮画像エリアに格納された各フレームの圧縮画像データをメモリ制御回路１４を通して読み出し、読み出された圧縮画像データを復号し、そして復号された画像データをメモリ制御回路１４を通してＳＤＲＡＭ１６の復号画像エリア（図示せず）に書き込む。ビデオエンコーダ１８は、復号された各フレームの画像データをメモリ制御回路１４を通して復号画像エリアから読み出し、読み出された画像データをＮＴＳＣ方式のコンポジットビデオ信号に変換する。変換されたコンポジットビデオ信号はＬＣＤモニタ２０に与えられ、この結果、動画像がモニタ画面に表示される。
【００２０】
オーディオプロセサ２２は、ＳＤＲＡＭ１６の音声エリアに格納された音声データをメモリ制御回路１４を通して読み出し、読み出された音声データを復号する。復号された音声信号はスピーカ２４から出力される。
【００２１】
動画ファイルに格納されたデータは、QuickTimeフォーマットに従い、図２に示すデータ構造を有する。
【００２２】
図２によれば、ファイルタイプ情報ftypが先頭に割り当てられ、続いてプレビューデータpnotおよびサムネイルデータPICTが割り当てられる。ムービリソースmoovは、ムービヘッダmvhd，ビデオトラックtrak，サウンドトラック，ＯＤ(Object Description)トラックなどによって形成される。ムービリソースmoovの後段には、フリーエリアfree，ムービデータmdatおよびフリーエリアfreeがこの順で続く。
【００２３】
ビデオトラックtrakは、テーブルstblを含む。このテーブルは、stsdテーブル，sttsテーブル，stssテーブル，stscテーブル，stszテーブルおよびstcoテーブルによって形成される。各フレームの圧縮画像データの開始位置やフレームの時間関係は、これらのテーブルから特定される。フレームの時間関係は、具体的にはsttsテーブルによって定義される。
【００２４】
なお、QuickTimeフォーマットのデータ構造は周知であるため、ビデオトラックtrakに関するこれ以上の詳しい説明は省略する。
【００２５】
フレームレートが均一である場合、sttsテーブルは表１に示すように構成される。
【００２６】
【表１】
2006140551.tif 000003
【００２７】
表１によれば、sttsテーブルは、サイズ情報size（＝４バイト），タイプ情報type（＝４バイト），フラグ情報flags（＝４バイト），エントリ数情報NumberOfEntry（＝４バイト）およびテーブルTime-To-Sample table（＝４バイト＊２）を有する。
【００２８】
サイズ情報sizeはこのテーブルのサイズを示す情報であり、“２４バイト”がここに記述される。タイプ情報typeはこのテーブルのタイプを示す情報であり、“stts”がここに記述される。フラグ情報は、将来の拡張を考慮した予約情報である。エントリ数情報NumberOfEntryはテーブルTime-To-Sample tableの数を示す情報であり、“１”がここに記述される。
【００２９】
テーブルTime-To-Sample tableには、フレーム数およびサンプル数が記述される。フレーム数は、ムービデータmdatを形成する圧縮画像データのフレーム数である。サンプル数は、フレームレートに関する情報であり、ビデオトラックtrakのヘッダmdhdに記述されたタイムスケールを基準フレームレートで割り算することで得られる。たとえば、基準フレームレートが“３０ｆｐｓ”であり、タイムスケールが“３００００”であれば、サンプル数は“１０００”となる。
【００３０】
フレームレートが不均一である場合、テーブルTime-To-Sample tableは、フレームレートが変化する毎に追加される。したがって、フレームレートが変化した回数が“Ｎ−１”である場合、sttsテーブルは表２に示すように構成される。
【００３１】
【表２】
2006140551.tif 000004
【００３２】
表２によれば、サイズ情報sizeは“１６＋Ｎ＊８バイト”であり、エントリ数情報NumberOfEntryは“Ｎ”である。さらに、エントリ数情報NumberOfEntryに続いて、Ｎ個のテーブルTime-To-Sample table[0]〜Time-To-Sample table[N-1]が形成される。
【００３３】
たとえば、Ｎが“３”でかつタイムスケールが“３００００”であることを前提として、最初の２５フレームが“３０ｆｐｓ”のフレームレートを有し、次の５フレームが“１５ｆｐｓ”のフレームレートを有し、そして最後の３０フレームが“１６．７ｆｐｓ”のフレームレートを有する場合、テーブルTime-To-Sample table[0]〜Time-To-Sample table[2]は表３に示すように記述される。
【００３４】
【表３】
2006140551.tif 000005
【００３５】
このようなデータ構造を有する動画ファイルを再生するとき、ＣＰＵ２６は、図７〜図１１に示すフロー図に従う処理を実行する。なお、このフロー図に対応する制御プログラムは、フラッシュメモリ３０に記憶される。
【００３６】
まずステップＳ１で動画ファイル選択処理を実行する。これによって、記録媒体３６に記録された複数の動画ファイルの中から所望の動画ファイルが選択される。ステップＳ３では選択された動画ファイルからsttsテーブルを検出する。検出されたsttsテーブルは、Ｉ／Ｆ３２およびメモリ制御回路１４を通してＳＤＲＡＭ１６に書き込まれる。
【００３７】
ステップＳ５では、変数Kを“０”に設定する。ステップＳ７では、検出されたsttsテーブルの１７＋K＊８バイト目から始まる８バイトのデータを読み出し、読み出されたデータをＳＤＲＡＭ１６に形成されたＴＳテーブル１６ｔｓに記述する。sttsテーブルから読み出された８データは、フレーム数およびサンプル数を含む。また、ＴＳテーブル１６ｔｓは、図３に示す構造を有する。読み出されたフレーム数およびサンプル数は、ＴＳテーブル１６のインデックス番号Ts[K]に割り当てられる。
【００３８】
ステップＳ９では、変数Kが“N−１”に等しいか否かを判別する。ここでＮＯであれば、ステップＳ１１で変数Kをインクリメントし、その後ステップＳ７に戻る。ステップＳ７〜Ｓ１１の処理は、テーブルTime-To-Sample tableの数に相当する回数だけ繰り返される。したがって、テーブルTime-To-Sample tableが表３に示す情報を有する場合、フレーム数“２５”，“５”および“３０”がインデックス番号Ts[0]，Ts[1]およびTs[2]に割り当てられ、サンプル数“１０００”，“２０００”および“１８００”がインデックス番号Ts[0]，Ts[1]およびTs[2]に割り当てられる。
【００３９】
ステップＳ９でＹＥＳと判断されるとステップＳ１３に進み、図９に示すサブルーチンに従って数値変換処理を実行する。
【００４０】
図９を参照して、ステップＳ４１では基準サンプル数を算出する。具体的には、ヘッダmdhdに記述されたタイムスケールを検出し、検出されたタイムスケールを再生時のフレームレートである“３０ｆｐｓ”で割り算する。ステップＳ４３では変数Kを“０”に設定し、続くステップＳ４５ではＴＳテーブル１６ｔｓのインデックス番号Ts[K]に割り当てられたサンプル数を基準サンプル数で割り算する。求められた割り算値は、インデックス番号Ts[K]に割り当てられる。ステップＳ４７では、割り算値の小数点以下を切り上げた数値を求める。求められた切り上げ値もまた、インデックス番号Ts[K]に割り当てられる。ステップＳ４９では、変数Kが“N−１”に達したか否かを判別する。ここでＮＯであればステップＳ５１で変数KをインクリメントしてステップＳ４５に戻り、ＹＥＳであれば上階層のルーチンに復帰する。
【００４１】
タイムスケールが“３００００”であれば、基準サンプル数は“１０００”となる。この結果、インデックス番号Ts[0]，Ts[2]およびTs[3]に割り当てられる割り算値はそれぞれ“１”，“２”および“１．８”を示し、インデックス番号Ts[0]，Ts[2]およびTs[3]に割り当てられる切り上げ値はそれぞれ“１”，“２”および“２”を示す。
【００４２】
ここで、割り算値は、対応する圧縮画像データのフレームレートを基準フレームレートで割り算した数値に等しい。したがって、ＴＳテーブル１６ｔｓに記述された割り算値を参照することで、インデックス番号Ts[0]に対応する圧縮画像データが基準フレームレート（＝３０ｆｐｓ）を有し、インデックス番号Ts[1]に対応する圧縮画像データが基準フレームレートの１／２のフレームレートを有し、そしてインデックス番号Ts[2]に対応する圧縮画像データが基準フレームレートの１／１．８のフレームレートを有することが分かる。さらに、整数でない割り算値に対応する圧縮画像データのフレームレートが基準フレームレートの整数分の１と異なることも分かる。
【００４３】
図７に戻って、ステップＳ１５では、ＴＳテーブル１６ｔｓを参照して記録フレーム数Ｘｍａｘを算出する。記録フレーム数Ｘｍａｘは、ＴＳテーブル１６ｔｓに記述されたフレーム数の合計値（＝２５＋５＋３０）を示す。
【００４４】
ステップＳ１７では、再生フレーム数Ｙｍａｘ１およびＹｍａｘ２を算出する。再生フレーム数Ｙｍａｘ１は、インデックス番号Ts[K]に割り当てられた割り算値およびフレーム数を互いに掛け合わせた数値の合計を示す。また、再生フレーム数Ｙｍａｘ２は、インデックス番号Ts[K]に割り当てられた切り上げ値およびフレーム数を互いに掛け合わせた数値の合計を示す。図３の例では、再生フレーム数Ｙｍａｘ１およびＹｍａｘ２はそれぞれ、“８９（＝２５×１＋５×２＋３０×１．８）”および“９５（＝２５×１＋５×２＋３０×２）”を示す。
【００４５】
ステップＳ１９では、再生フレーム数Ｙｍａｘ２から再生フレーム数Ｙｍａｘ１を引き算して、誤差フレーム数Ｍを算出する。図３の例では、誤差フレーム数Ｍは、“−６”となる。算出された誤差フレーム数Ｍは、ＳＤＲＡＭ１６に形成されたレジスタ１６ｒ（図４参照）に書き込まれる。
【００４６】
図３によれば、インデックス番号Ts[1]に割り当てられた割り算値および切り上げ値は互いに異なるものの、インデックス番号Ts[0]およびTs[2]の各々に割り当てられた割り算値および切り上げ値は互いに一致する。つまり、基準フレームレートの整数分の１と異なるフレームレートつまり不適正フレームレートを有する圧縮画像データについて、割り算値および切り上げ値の間で相違が発生する。
【００４７】
したがって、誤差フレーム数Ｍは、不適正フレームレートを有する圧縮画像データのフレーム数に割り算値および切り上げ値の各々を掛け算して求められる２つの掛け算値“５４”および“６０”の差分と一致する。
【００４８】
なお、不適正フレームレートを有する圧縮画像データについて求められる掛け算値（＝５４）および割り算値（＝６０）はそれぞれ、不適正フレームレートを有する圧縮画像データを実時間で再生するために必要なフレーム数、および不適正フレームレートを有する圧縮画像データに周期的なフレーム補間処理を施すことで得られるフレーム数を示す。
【００４９】
ステップＳ２１では、フレームテーブル１６ｔａを作成する。具体的には、図２に示すstscテーブル，stszテーブルおよびstcoテーブルを参照して各フレームの圧縮画像データの開始アドレスad[x]およびサイズsz[x]を検出し、検出された開始アドレスad[x]およびサイズsz[x]を図５に示すフレームテーブル１６ｔａのインデックス番号Ta[x]に割り当てる。なお、変数xは記録フレーム番号である。図３によれば記録フレーム数は“６０”であるため、開始アドレスad[1]〜ad[60]がインデックス番号Ta[0]〜Ta[59]にそれぞれ割り当てられ、サイズsz[1]〜sz[60]がインデックス番号Ta[0]〜Ta[59]にそれぞれ割り当てられる。
【００５０】
ステップＳ２３では、ＴＳテーブル１６ｔｓ，レジスタ１６ｒおよびフレームテーブル１６ｔａに基づいて、図６に示すフレームテーブル１６ｔｂを作成する。詳しい処理動作は、後段で説明する。
【００５１】
テーブル変換処理が完了すると、再生開始操作が行われたか否かをステップＳ２５で判別する。ここでＹＥＳであれば、フレームテーブル１６ｔｂのインデックス番号Tb[y]を定義する変数yをステップＳ２７で“０”に設定する。垂直同期信号Ｖｓｙｎｃが発生すると、ステップＳ２９からステップＳ３１に進み、フレームテーブル１６ｔｂのインデックス番号Tb[y]に割り当てられた記述を判別する。“フレームスキップ”が記述されていれば、そのままステップＳ３５に進む。開始アドレスおよびサイズが記述されていれば、ステップＳ３３の１フレーム再生処理を経てステップＳ３５に進む。ステップＳ３５では、変数yが“Ｙｍａｘ２−１”に等しいか否かを判別し、ＮＯであれば、ステップＳ３７で変数yをインクリメントしてステップＳ２９に戻る。ステップＳ３５でＹＥＳと判断されると、ステップＳ１に戻る。
【００５２】
ステップＳ３３では、注目するアドレスおよびサイズによって規定される１フレームの圧縮画像データの復号処理をＪＰＥＧ復号回路１２に命令する。ＪＰＥＧ復号回路１２は、所望の圧縮画像データをＳＤＲＡＭ１６の圧縮画像エリアから読み出し、読み出された圧縮画像データを復号し、そして復号された画像データをＳＤＲＡＭ１６の復号画像エリアに書き込む。
【００５３】
垂直同期信号Ｖｓｙｎｃは、図示しないタイミング発生器から１／３０秒毎に発生する。ビデオエンコーダ１８は、この垂直同期信号Ｖｓｙｎｃに応答して復号画像エリアから１フレームの画像データを読み出し、読み出された画像データに基づくコンポジットビデオ信号をＬＣＤモニタ２０に与える。
【００５４】
したがって、ステップＳ３１の判断結果がＮＯである場合、ＬＣＤモニタ２０に表示される画像は、垂直同期信号Ｖｓｙｎｃが発生する毎に更新される。これによって、動画像がＬＣＤモニタ２０から出力される。ステップＳ３１の判断結果がＹＥＳとなると、同じ画像が連続してＬＣＤモニタ２０に表示される。ＬＣＤモニタ２０から出力される画像の動きは、一時的に停止する。
【００５５】
ステップＳ２３のテーブル変換処理は、図１０〜図１１に示すサブルーチンに従う。まずステップＳ６１で変数x，y，N，aおよびskipの各々を“０”に設定する。ステップＳ６３では、変数xが記録フレーム数Ｘｍａｘを下回るか否かを判別する。ここでＹＥＳであればステップＳ６５以降の処理に進み、ＮＯであれば上階層のルーチンに復帰する。
【００５６】
ステップＳ６５では、フレームテーブル１６ｔａのインデックス番号Ta[x]に割り当てられた開始アドレスad[x+1]およびサイズsz[x+1]を、フレームテーブル１６ｔｂのインデックス番号Tb[y-a]に設定する。ステップＳ６７では、ＴＳテーブル１６ｔｓのインデックス番号Ts[N]に割り当てられた切り上げ値が“１”であるか否かを判別する。ここでＹＥＳであればそのままステップＳ７１に進み、ＮＯであればステップＳ６９で変数skipに“切り上げ値−１”を設定してからステップＳ７１に進む。
【００５７】
ステップＳ７１ではインデックス番号Ts[0]〜Ts[N]の各々に割り当てられたフレーム数の合計値を算出し、ステップＳ７３では算出された合計値が変数x以下であるか否かを判別する。ここでＮＯであればそのままステップＳ７７に進むが、ＹＥＳであればステップＳ７５で変数NをインクリメントしてからステップＳ７７に進む。ステップＳ７７では、条件１が満足されるか否かを判別する。
［条件１］
y＊｜Ｍ｜％Ｙｍａｘ２＜｜Ｍ｜
条件１によれば、変数yが誤差フレーム数Ｍの絶対値によって掛け算され、これによって得られた掛け算値が再生フレーム数Ｙｍａｘ２で割り算される。そして、この割り算によって求められた余りが、誤差フレーム数Ｍの絶対値と比較される。このため、ステップＳ７７でＹＥＳと判断される回数は、誤差フレーム数Ｍに相当する。また、ＹＥＳとの判断結果は、ほぼ均一な周期で得られる。
【００５８】
ステップＳ７７でＮＯと判断されたときは、直接ステップＳ８３に進む。一方、ステップＳ７７でＹＥＳと判断されたときは、ステップＳ７９で変数aをインクリメントし、ステップＳ８１で変数skipをディクリメントしてからステップＳ８３に進む。
【００５９】
ステップＳ８３では変数yをインクリメントし、ステップＳ８５ではインデックス番号Tb[y-a]のコラムがブランクであるか否かを判別する。ここでＮＯであればそのままステップＳ８９に進むが、ＹＥＳであればステップＳ８７でインデックス番号Tb[y-a]のコラムに“フレームスキップ”を書き込んでからステップＳ８９に進む。なお、ステップＳ７９で変数aがインクリメントされたときに、ステップＳ８５でＮＯと判断される。
【００６０】
ステップＳ８９では、変数skipが“０”以下であるか否かを判別する。ここでＮＯであれば、ステップＳ９１で変数skipをディクリメントしてからステップＳ７７に戻る。一方、ＹＥＳであれば、ステップＳ９３で変数xをインクリメントしてからステップＳ６３に戻る。
【００６１】
変数skipが“０”以下のときにステップＳ８７で設定された“フレームスキップ”は、処理がステップＳ６５に戻ったときに、インデックス番号Ta[x]に割り当てられた開始アドレスad[x+1]およびサイズsz[x+1]によって上書きされる。この上書きによって、フレーム間引き処理が実現される。
【００６２】
変数skipが“１”以上であれば、処理は、ステップＳ９１，Ｓ７７〜Ｓ８１を経てステップＳ８３に戻り、これによって変数yがインクリメントされる。この結果、前回のステップＳ８７の処理によって設定された“フレームスキップ”は、そのまま残存する。これによって、フレーム補間処理が実現される。
【００６３】
なお、フレーム間引き処理およびフレーム補間処理の各々は、“画面数調整処理”と定義してもよい。
【００６４】
以上の説明から分かるように、動画像は、基準フレームレート（＝３０ｆｐｓ）と異なるフレームレート（＝１６．７ｆｐｓ）を有する部分動画像を含む。ビデオエンコーダ１８は、このような動画像を基準フレームレートで再生する。ＣＰＵ２６は、部分動画像を実時間で再生するために必要な第１フレーム数（＝５４）と、部分動画像に周期的なフレーム補間処理を施すことで得られる第２フレーム数（＝６０）との差分値（＝−６）を算出する(S19)。ＣＰＵ２６は、算出された差分値に相当する回数のフレーム間引き処理を動画像に対して分散的に実行する(S77, S79, S83, S85, S65)。ＣＰＵ２６はさらに、第２フレーム数に対応する回数のフレーム補間処理を部分動画像に対して実行する(S67, S69, S83, S85, S87, S89, S91)。
【００６５】
フレーム間引き処理およびフレーム補間処理によって、動画像が実時間で再生される。つまり、時間軸の誤差が補償される。また、フレーム補間処理によって、部分動画像の動きの円滑化が図られる。
【００６６】
なお、この実施例では、割り算値を丸めるときに小数点以下を切り上げるようにしているが、切り上げの代わりに切り下げを行うようにしてもよい。この場合、動画像全体にわたって実行される画面数調整処理は、フレーム補間処理となる。
【００６７】
また、この実施例では、基準フレームレートを下回る範囲で変動する動画像の再生を想定している。しかし、この発明は、基準フレームレートを上回る範囲で変動する動画像を再生する装置にも適用できる。この場合、部分動画像に対して実行される画面数調整処理はフレーム間引き処理となる。
【図面の簡単な説明】
【００６８】
【図１】この発明の一実施例の構成を示すブロック図である。
【図２】QuickTimeファイルのデータ構造の一例を示す図解図である。
【図３】図１実施例に適用されるＴＳテーブルの構成の一例を示す図解図である。
【図４】図１実施例に適用されるレジスタの構成の一例を示す図解図である。
【図５】図１実施例に適用されるフレームテーブルの構成の一例を示す図解図である。
【図６】図１実施例に適用される他のフレームテーブルの構成の一例を示す図解図である。
【図７】図１実施例に適用されるＣＰＵの動作の一部を示すフロー図である。
【図８】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【図９】図１実施例に適用されるＣＰＵの動作のその他の一部を示すフロー図である。
【図１０】図１実施例に適用されるＣＰＵの動作のさらにその他の一部を示すフロー図である。
【図１１】図１実施例に適用されるＣＰＵの動作の他の一部を示すフロー図である。
【符号の説明】
【００６９】
１０  …動画像再生装置
１２  …ＪＰＥＧ復号回路
１８  …ビデオエンコーダ
２０  …ＬＣＤモニタ
２６  …ＣＰＵ
３６  …記録媒体
【図１】
2006140551.tif 000006
【図２】
2006140551.tif 000007
【図３】
2006140551.tif 000008
【図４】
2006140551.tif 000009
【図５】
2006140551.tif 000010
【図６】
2006140551.tif 000011
【図７】
2006140551.tif 000012
【図８】
2006140551.tif 000013
【図９】
2006140551.tif 000014
【図１０】
2006140551.tif 000015
【図１１】
2006140551.tif 000016