(57)【要約】【課題】或るフレームの伸張復号に規定値以上の時間がかかってしまった場合であっても、時間遅れを補償することを可能とする。【解決手段】動画圧縮データを基に、動画像の各フレームを伸張し、伸張済の各フレームのデータをフレーム単位で伸張済バッファに書き込む伸張手段と、伸張済バッファに書き込まれた伸張済の各フレームのデータをフレーム単位のまま伸張済バッファから表示用バッファに転送する転送手段と、表示用バッファに書き込まれた伸張済の各フレームのデータを表示装置に出力する出力手段と、を備え、転送手段が、伸張済バッファに新データがないことを検出した時に、伸張手段は、現在伸張しているフレームの次のフレーム内符号化されたフレームであるスキップ先フレームを伸張し、出力手段は、現在伸張しているフレームを出力した後に、スキップ先フレームを所定回数繰り返し出力する。【選択図】図６
2010081530.tif 000002
【特許請求の範囲】
【請求項１】
フレーム内符号化されたフレームとフレーム間符号化されたフレームを含む動画圧縮データを伸張することにより、動画像を復元する動画像復元装置であって、
前記動画圧縮データを基に、前記動画像の各フレームを伸張し、伸張済の各フレームのデータをフレーム単位で伸張済バッファに書き込む伸張手段と、
前記伸張済バッファに書き込まれた伸張済の各フレームのデータをフレーム単位のまま前記伸張済バッファから表示用バッファに転送する転送手段と、
前記表示用バッファに書き込まれた伸張済の各フレームのデータを表示装置に出力する出力手段と、
を備え、
前記転送手段が、前記伸張済バッファに新データがないことを検出した時に、前記伸張手段は、現在伸張しているフレームの次のフレーム内符号化されたフレームであるスキップ先フレームを伸張し、前記出力手段は、現在伸張しているフレームを出力した後に、スキップ先フレームを所定回数繰り返し出力することを特徴とする動画像復元装置。
【請求項２】
前記所定回数は、前記伸張済みバッファに新データがないことが発生しない場合において前記スキップ先フレームに続くフレームが出力されるタイミングと同一のタイミングで、前記スキップ先フレームに続くフレームが出力されるように調整された回数であることを特徴とする
請求項１に記載の動画像復元装置。
【請求項３】
フレーム内符号化されたフレームとフレーム間符号化されたフレームを含む動画圧縮データを伸張することにより、動画像を復元する動画像復元方法であって、
前記動画圧縮データを基に、前記動画像の各フレームを伸張し、伸張済の各フレームのデータをフレーム単位で伸張済バッファに書き込む伸張ステップと、
前記伸張済バッファに書き込まれた伸張済の各フレームのデータをフレーム単位のまま前記伸張済バッファから表示用バッファに転送する転送ステップと、
前記表示用バッファに書き込まれた伸張済の各フレームのデータを表示装置に出力する出力ステップと、
を備え、
前記転送ステップで、前記伸張済バッファに新データがないことを検出した時に、前記伸張ステップで、現在伸張しているフレームの次のフレーム内符号化されたフレームであるスキップ先フレームを伸張し、前記出力ステップで、現在伸張しているフレームを出力した後に、スキップ先フレームを所定回数繰り返し出力することを特徴とする動画像復元方法。
【請求項４】
前記所定回数は、前記伸張済みバッファに新データがないことが発生しない場合において前記スキップ先フレームに続くフレームが出力されるタイミングと同一のタイミングで、前記スキップ先フレームに続くフレームが出力されるように調整された回数であることを特徴とする
請求項３に記載の動画像復元方法。
【請求項５】
フレーム内符号化されたフレームとフレーム間符号化されたフレームを含む動画圧縮データを伸張することにより、動画像を復元する動画像復元方法をコンピュータに実行させるためのプログラムであって、
前記動画像復元方法は、
前記動画圧縮データを基に、前記動画像の各フレームを伸張し、伸張済の各フレームのデータをフレーム単位で伸張済バッファに書き込む伸張ステップと、
前記伸張済バッファに書き込まれた伸張済の各フレームのデータをフレーム単位のまま前記伸張済バッファから表示用バッファに転送する転送ステップと、
前記表示用バッファに書き込まれた伸張済の各フレームのデータを表示装置に出力する出力ステップと、
を備え、
前記転送ステップで、前記伸張済バッファに新データがないことを検出した時に、前記伸張ステップで、現在伸張しているフレームの次のフレーム内符号化されたフレームであるスキップ先フレームを伸張し、前記出力ステップで、現在伸張しているフレームを出力した後に、スキップ先フレームを所定回数繰り返し出力することを特徴とするプログラム。
【請求項６】
前記所定回数は、前記伸張済みバッファに新データがないことが発生しない場合において前記スキップ先フレームに続くフレームが出力されるタイミングと同一のタイミングで、前記スキップ先フレームに続くフレームが出力されるように調整された回数であることを特徴とする
請求項５に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮符号化された動画圧縮データを伸張して、動画像を復元するための動画復元装置、動画復元方法及びその方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
ＣＲ(Card Reader)機には、ＬＣＤ(Liquid Crystal Display)モニタが組み込まれ、ＬＣＤモニタに動画像などが表示されるようになっている。ここで、ＣＲ機とは、プリペイドカードに対応したパチンコ遊技機のことである。
【特許文献１】特開２００１−１８６４７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、ＣＲ機に表示画面は複数に分割され、それぞれの領域毎に対応したＣＰＵ等が動画像を表示している。従って、領域毎のＣＰＵで作成される動画像を同期させ、ＣＲ機の利用者から見て自然な動画像を生成する必要がある。
【０００４】
ところが、近年、表示画面は、大画面化される傾向がある。そうすると、各ＣＰＵに割り当てられる動画像の領域の大きさが拡大する。動画像の領域の大きさが拡大しても同一のＣＰＵで通常の方法で動画像を表示させようとすると、動画圧縮データから動画像を復元させるための時間が増加し、そのため、同一フレームが複数回表示されるという現象が生ずる。そうすると、画面全体のうちの一部の画面のみの動きが遅くなり、利用者に違和感を与えることとなる。
【０００５】
図１は、動画圧縮データのフォーマット例を示す。数フレーム毎にフレーム内符号化されたＩフレームが存在し、隣接するＩフレーム間にフレーム間符号化された＃フレームが存在する。
【０００６】
何らの問題がない場合には、図２に示すように、伸張フレーム及び表示フレームは、周期的に遅れなく現れる。
【０００７】
しかし、上述したように、画面の拡大化に伴い、ＣＰＵ能力に対して、フレーム伸張に要する処理量が増加すると、図３に示すように、或るフレームでの伸張時間が規定値を超えてしまい、その結果、その近辺のフレームが複数回表示され、更に、所定数のフレームの表示が終了するまでの時間が遅れてしまう。このような場合に、利用者に違和感を与えることとなる。図３の例では、ＩフレームであるＦ６フレームの伸張時間が規定値を超えてしまい（３フレーム時間要してしまい）、Ｆ５フレームが複数回（３フレーム）表示されてしまう。そして、所定数のフレームの表示が終了されるまでの時間が３フレーム遅れてしまう。
【０００８】
特許文献１で開示されている方法は、Ｉピクチャ、Ｐピクチャ、Ｂピクチャに分類されるピクチャのうちＢピクチャの復号を省略することにより、時間遅れを補償するものである。しかし、Ｂピクチャの復号を省略するだけでは、時間遅れを充分に補償できるとは限らない。
【０００９】
そこで、本発明は、或るフレームの伸張復号に規定値以上の時間がかかってしまった場合であっても、それによる時間遅れを補償することを可能とする動画像復元装置、復元方法及びその方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明によれば、フレーム内符号化されたフレームとフレーム間符号化されたフレームを含む動画圧縮データを伸張することにより、動画像を復元する動画像復元装置であって、前記動画圧縮データを基に、前記動画像の各フレームを伸張し、伸張済の各フレームのデータをフレーム単位で伸張済バッファに書き込む伸張手段と、前記伸張済バッファに書き込まれた伸張済の各フレームのデータをフレーム単位のまま前記伸張済バッファから表示用バッファに転送する転送手段と、前記表示用バッファに書き込まれた伸張済の各フレームのデータを表示装置に出力する出力手段と、を備え、前記転送手段が、前記伸張済バッファに新データがないことを検出した時に、前記伸張手段は、現在伸張しているフレームの次のフレーム内符号化されたフレームであるスキップ先フレームを伸張し、前記出力手段は、現在伸張しているフレームを出力した後に、スキップ先フレームを所定回数繰り返し出力することを特徴とする動画像復元装置が提供される。
【００１１】
また、本発明によれば、フレーム内符号化されたフレームとフレーム間符号化されたフレームを含む動画圧縮データを伸張することにより、動画像を復元する動画像復元方法であって、前記動画圧縮データを基に、前記動画像の各フレームを伸張し、伸張済の各フレームのデータをフレーム単位で伸張済バッファに書き込む伸張ステップと、前記伸張済バッファに書き込まれた伸張済の各フレームのデータをフレーム単位のまま前記伸張済バッファから表示用バッファに転送する転送ステップと、前記表示用バッファに書き込まれた伸張済の各フレームのデータを表示装置に出力する出力ステップと、を備え、前記転送ステップで、前記伸張済バッファに新データがないことを検出した時に、前記伸張ステップで、現在伸張しているフレームの次のフレーム内符号化されたフレームであるスキップ先フレームを伸張し、前記出力ステップで、現在伸張しているフレームを出力した後に、スキップ先フレームを所定回数繰り返し出力することを特徴とする動画像復元方法が提供される。
【００１２】
更に、本発明によれば、フレーム内符号化されたフレームとフレーム間符号化されたフレームを含む動画圧縮データを伸張することにより、動画像を復元する動画像復元方法をコンピュータに実行させるためのプログラムであって、前記動画像復元方法は、前記動画圧縮データを基に、前記動画像の各フレームを伸張し、伸張済の各フレームのデータをフレーム単位で伸張済バッファに書き込む伸張ステップと、前記伸張済バッファに書き込まれた伸張済の各フレームのデータをフレーム単位のまま前記伸張済バッファから表示用バッファに転送する転送ステップと、前記表示用バッファに書き込まれた伸張済の各フレームのデータを表示装置に出力する出力ステップと、を備え、前記転送ステップで、前記伸張済バッファに新データがないことを検出した時に、前記伸張ステップで、現在伸張しているフレームの次のフレーム内符号化されたフレームであるスキップ先フレームを伸張し、前記出力ステップで、現在伸張しているフレームを出力した後に、スキップ先フレームを所定回数繰り返し出力することを特徴とするプログラムが提供される。
【発明の効果】
【００１３】
本発明によれば、或るフレームの伸張復号に規定値以上の時間がかかってしまった場合であっても、それによる時間遅れを補償することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明を実施するための最良の形態について詳細に説明する。
【００１５】
本実施形態では、例えば、図４に示すように、ＩフレームであるＦ６フレームの伸張復号に３フレーム要してしまった場合、Ｆ７フレームからＦ１０フレームまでの伸張復号をスキップし、ＩフレームであるＦ１１フレームをＦ６フレームの次に伸張復号する。そして、復号されたＦ１１フレームを３フレーム時間表示する。Ｆ７フレームからＦ１０フレームまでの表示は省略される。
【００１６】
図５は、本発明の実施形態によるＣＲ機の構成を示すブロック図である。
【００１７】
図５を参照すると、本発明の実施形態によるＣＲ機は、ＣＧＲＯＭ(Computer Graphics Read Only Memory)１０１、ＣＰＵ(Central Processing Unit)１０３、タイマー１０５、デコーダ１０７、伸張済バッファ１０９、表示用バッファ１１０、ＬＣＤＣ(Liquid Crystal Display Controller)１１１、Ｉ／Ｆ(Interface)１１３、入力装置１１５及び表示装置１１７を含む。
【００１８】
ＣＧＲＯＭ１０１は、動画圧縮データ、ＣＰＵ１０３が実行するプログラム及びデコーダが実行するプログラムなどを格納している。
【００１９】
ＣＰＵ１０３は、ＣＧＲＯＭ１０１に格納されているプログラムを実行することによりＣＲ機の動作を制御する。
【００２０】
タイマー１０５は、１フレーム時間毎にタイマー割り込み信号を発生する。
【００２１】
デコーダ１０７は、ＣＰＵがＣＧＲＯＭ１０１に格納されているプログラムを実行することにより、ＣＧＲＯＭ１０１に格納されている動画圧縮データを伸張する。なお、デコーダ１０７はハードウェアのみにより構成されていても良いし、一部がハードウェアであってもよい。
【００２２】
伸張済バッファ１０９は、デコーダ１０７の伸張部１０７−１（図６参照）が動画像データを圧縮することにより得た復元動画像をフレーム単位且つＦＩＦＯ(First In First Out)形式で格納する。
【００２３】
表示用バッファ１１０は、デコーダ１０７の転送部１０７−２（図６参照）が伸張済バッファ１０９から読み出した動画像データの転送を受け、その動画像データをフレーム単位且つＦＩＦＯ(First In First Out)形式で格納する。
【００２４】
ＬＣＤＣ１１１は、デコーダ１０７の出力部１０７−３から入力した動画像データを、Ｉ／Ｆ１１３を介して、表示装置１１７に出力する。
【００２５】
入力装置１１５は、図柄を指示するためのコマンドを入力する装置などである。
【００２６】
表示装置１１７は、ＣＲ機の盤面に埋め込まれ、種々の画面を表示する。
【００２７】
図６を参照すると、伸張部１０７−１は、基本的には、ＣＧＲＯＭ１０１から動画圧縮データを読み出し、伸張することにより動画像を復元し、動画像の各フレームをＦＩＦＯ形式で伸張済バッファ１０９に格納する。コマ落とし時の動作を含めた動作については後述する。
【００２８】
転送部１０７−２は、基本的には、伸張済バッファ１０９に格納されている動画像の各フレームを読み出し、これを表示用バッファ１１０にＦＩＦＯ形式で表示用バッファ１１０に格納する。コマ落とし時の動作を含めた動作については後述する。
【００２９】
出力部１０７−３は、表示用バッファ１１０に格納されている動画像の各フレームを読み出し、これをＬＣＤＣ１１１に渡し、最終的には、表示装置１１７に表示させる。なお、表示用バッファ１１０に設けられた動画像の各フレームを格納するための表示用バッファは１フレーム読み出される度にフリップされる。
【００３０】
図６は、デコーダ１０７の各部（伸張部１０７−１、転送部１０７−２及び出力部１０７−３）と伸張済バッファ１０９と表示用バッファ１１０の接続関係を示すブロック図である。
【００３１】
図７は、伸張部１０７−１の動作を説明するためのフローチャートである。
【００３２】
図７を参照すると、まず、フレーム番号を１に初期化し、スキップ変数を０に初期化し、リピート変数を０に初期化し、起動回数を０に初期化する（ステップＳ２０１）。
【００３３】
次に、スキップ変数が０を超えるか否かを判断する（ステップＳ２０３）。そうであれば、ステップＳ２０５、Ｓ２０７、Ｓ２０９を実行してからステップＳ２１１に進み、そうでなければ、ステップＳ２０５、Ｓ２０７、Ｓ２０９をスキップしてステップＳ２１１に進む。
【００３４】
ステップＳ２０３では、伸張フレームをスキップ変数位置にスキップする。
【００３５】
ステップＳ２０７では、フレーム番号にスキップ変数を代入する。
【００３６】
ステップＳ２０９では、スキップ変数をゼロにクリアする。
【００３７】
ステップＳ２１１では、フレーム番号のフレームの圧縮画像を伸張し、伸張により得た復元画像を伸張済バッファ１０９の末尾にＦＩＦＯ形式で保存する。
【００３８】
次に、フレーム番号を１だけ増やす（ステップＳ２１３）。
【００３９】
次に、フレーム番号が総フレーム数を超えるか否かを判断し（ステップＳ２１５）、そうでなければ、ステップＳ２０３に戻り、そうであれば、処理を終了する。
【００４０】
図８は、転送部１０７−２の動作を説明するためのフローチャートである。
【００４１】
転送部１０７−２の動作は、タイマー１０５によりタイマー割り込みにより起動される。起動の周期はフレームの周期と同一である。
【００４２】
転送部１０７−２は、起動されると、まず、起動回数を１だけ増加する（ステップＳ２２１）。
【００４３】
次に、起動回数が総フレーム数以下であるか否かを判断する（ステップＳ２２３）。
【００４４】
起動回数が総フレーム数を超える場合には（ステップＳ２２３でＮＯ）、ステップＳ２３７に進み、そこで、動画再生を終了する。すなわち、伸張部１０７−１と出力部１０７−３を停止し、終了する。
【００４５】
起動回数が総フレーム数以下である場合には（ステップＳ２２３でＹＥＳ）、伸張済バッファ１１０に新データがないかどうかを調べる（ステップＳ２２５）。伸張済バッファ１１０に新データがない場合には（ステップＳ２２５でＹＥＳ）、伸張部１０７−１による伸張動作の所要時間が規定時間以上かかっていることを意味するので、スキップ動作を開始するためにステップＳ２３７に進む。
【００４６】
ステップＳ２３７では、次のキーフレーム番号をスキップ変数に代入する。ここで、キーフレーム番号とは、フレーム内符号化されたフレームの番号のことである。
【００４７】
ステップＳ２２７の次に、リピート変数に次のキーフレーム番号のフレームが本来表示されるべきタイミング番号から、次タイミング番号に１を加算して得た値を差し引いて得られる値をリピート変数に代入する（ステップＳ２３９）。
【００４８】
伸張済バッファ１０９に新データがある場合には（ステップＳ２２５でＮＯ）、伸張部１０７−１による伸張動作の所要時間が規定時間未満であることを意味するので、通常動作を継続するためにステップＳ２３１に進む。
【００４９】
ステップＳ２３１では伸張済バッファ１０９中、最古のフレーム（ＦＩＦＯの先頭にあるフレーム）のフレームデータを表示用バッファ１１０に転送し、転送したデータを伸張済バッファ１０９から削除する。
【００５０】
ステップＳ２３１の次に、今回転送したフレームデータについてのフリップ済フラグをリセットし（ステップＳ２３３）、今回転送したフレームデータについての有効無効フラグの値を「有効」にする（ステップＳ２３４）。
【００５１】
ステップＳ２３９又はステップＳ２３４が終了したならば、次回に起動されるまで待機する（ステップＳ２３５）。
【００５２】
図９は、出力部１０７−３の動作を説明するためのフローチャートである。
【００５３】
出力部１０７−３は、垂直同期信号により起動される。すなわち、出力部１０７−３は、ＶＳＹＮＣ割り込みサービスルーチンである。
【００５４】
出力部１０７−３は、起動されると、まず、次に表示するフレーム（表示用バッファ１１０に格納されているフレームのうち有効無効フラグの値が「有効」であるフレームのうち最古のフレーム）は、リピート指定されているか否かを判断する（ステップＳ２４１）。このためには、リピート変数が１以上であるか否かを判断する。
【００５５】
リピート指定されていない場合には（ステップＳ２４１でＮＯ）、判断の対象となった次に表示するフレームをフリップし（ステップＳ２５３）、そのフレームについての有効無効フラグの値を「無効」にして（ステップＳ２５５）、次回起動されるまで待機する（ステップＳ２５１）。ここで、「フリップする」とは、ダブルバンク構造の表示用バッファ１１０の表と裏とを交換することである。裏から表に変更されたフレームのデータが表示される。
【００５６】
リピート指定されている場合には（ステップＳ２４１でＹＥＳ）、判断の対象となった次に表示するフレームが既にフリップされているか否かを判断する（ステップＳ２４３）。
【００５７】
まだ、フリップされていない場合には（ステップＳ２４３でＮＯ）、判断の対象となった次に表示するフレームをフリップし（ステップＳ２５７）、そのフレームのフリップ済フラグをセットして（ステップＳ２５９）、次回起動されるまで待機する（ステップＳ２５１）。
【００５８】
すでに、フリップされている場合には（ステップＳ２４３でＹＥＳ）、リピート変数を１だけ減少させ（ステップＳ２４５）、その結果リピート変数がゼロになったか否かを判断する（ステップＳ２４７）。
【００５９】
リピート変数がゼロでない場合には（ステップＳ２４７でＮＯ）、そのまま、次回起動されるまで待機する（ステップＳ２５１）。リピート変数がゼロである場合には、判断の対象となったフレームについての有効無効フラグを「無効」にしてから（ステップＳ２４９）、次回起動されるまで待機する（ステップＳ２５１）。こうすることにより、ステップＳ２４１で判断の対象となるフレームが勝手に進んでしまうことを防止することが可能となる。
【００６０】
図１０は、スキップ処理が行われる場合において、スキップ変数とリピート変数がどのように変化していくかを示すタイミング図である。
【図面の簡単な説明】
【００６１】
【図１】動画圧縮データのフォーマット例を示す図である。
【図２】通常時の伸張フレームと表示フレームのタイミングを示す図である。
【図３】伸張に遅れが生じた場合における、従来の伸張フレームと表示フレームのタイミングを示す図である。
【図４】伸張に遅れが生じた場合における、本発明の実施形態による伸張フレームと表示フレームのタイミングを示す図である。
【図５】本発明の実施形態によるＣＲ機の構成を示すブロック図である。
【図６】デコーダの各部（伸張部、転送部及び出力部）と伸張済バッファと表示用バッファの接続関係を示すブロック図である。
【図７】本発明の実施形態によるデコーダの伸張部の動作を説明するためのフローチャートである。
【図８】本発明の実施形態によるデコーダの転送部の動作を説明するためのフローチャートである。
【図９】本発明の実施形態によるデコーダの出力部の動作を説明するためのフローチャートである。
【図１０】スキップ処理が行われる場合において、本発明の実施形態によれば、スキップ変数とリピート変数がどのように変化していくかを示すタイミング図である。
【符号の説明】
【００６２】
１０１  ＣＧＲＯＭ
１０３  ＣＰＵ
１０５  タイマー
１０７  デコーダ
１０９  伸張済バッファ
１１０  表示用バッファ
１１１  ＬＣＤＣ
１１３  Ｉ／Ｆ
１１５  入力装置
１１７  表示装置
【図１】
2010081530.tif 000003
【図２】
2010081530.tif 000004
【図３】
2010081530.tif 000005
【図４】
2010081530.tif 000006
【図５】
2010081530.tif 000007
【図６】
2010081530.tif 000008
【図７】
2010081530.tif 000009
【図８】
2010081530.tif 000010
【図９】
2010081530.tif 000011
【図１０】
2010081530.tif 000012