(57)【特許請求の範囲】
【請求項１】
符号化された動画像信号を復号および再生するための動画像再生方法であって、
前記符号化された動画像信号を復号する復号処理を実行する復号ステップと、
前記復号ステップによって復号された動画像信号に対してフィルタ処理を施すフィルタ処理ステップと、
前記フィルタ処理ステップによってフィルタ処理された動画像信号を再生出力するステップと、
前記動画像信号の再生処理の遅れを検出する遅れ検出ステップと、
前記検出された遅れが所定の第１の遅れ量よりも大きい場合、前記フィルタ処理ステップによるフィルタ処理の実行をスキップし、前記検出された遅れが前記所定の第１の遅れ量よりも大きい所定の第２の遅れ量よりも大きい場合、前記復号ステップによる復号処理の実行をスキップしてフレームスキップを行う再生制御ステップとを具備することを特徴とする動画像再生方法。
【請求項２】
前記遅れ検出ステップは、前記再生出力ステップで再生中のフレームのタイムスタンプの値と前記動画像信号の再生開始からの経過時間とを比較して、前記再生出力ステップにおける前記動画像信号の再生処理の遅れを検出することを特徴とする請求項１記載の動画像再生方法。
【請求項３】
符号化された動画像信号を復号および再生するための動画像再生装置であって、
前記符号化された動画像信号を復号する復号処理を実行する復号手段と、
前記復号手段によって復号された動画像信号に対してフィルタ処理を施すフィルタ処理手段と、
前記フィルタ処理手段によってフィルタ処理された動画像信号を再生出力する再生出力手段と、
前記動画像信号の再生処理の遅れを検出する遅れ検出手段と、
前記検出された遅れが所定の第１の遅れ量よりも大きい場合、前記フィルタ処理手段によるフィルタ処理の実行をスキップし、前記検出された遅れが前記所定の第１の遅れ量よりも大きい所定の第２の遅れ量よりも大きい場合、前記復号手段による復号処理の実行をスキップしてフレームスキップを行う再生制御手段とを具備することを特徴とする動画像再生装置。
【請求項４】
前記遅れ検出手段は、前記再生出力手段で再生中のフレームのタイムスタンプの値と前記動画像信号の再生開始からの経過時間とを比較して、前記再生出力手段における前記動画像信号の再生処理の遅れを検出することを特徴とする請求項３記載の動画像再生装置。
【請求項５】
符号化された動画像信号を復号および再生するためのプログラムが格納されたコンピュータ読み取り可能な記録媒体であって、
前記符号化された動画像信号を復号する復号処理を実行する復号手順と、
前記復号ステップによって復号された動画像信号に対してフィルタ処理を施すフィルタ処理手順と、
前記フィルタ処理手順によってフィルタ処理された動画像信号を再生出力する手順と、
前記動画像信号の再生処理の遅れを検出する遅れ検出手順と、
前記検出された遅れが所定の第１の遅れ量よりも大きい場合、前記フィルタ処理手順によるフィルタ処理の実行をスキップし、前記検出された遅れが前記所定の第１の遅れ量よりも大きい所定の第２の遅れ量よりも大きい場合、前記復号手順による復号処理の実行をスキップしてフレームスキップを行う再生制御手順とをコンピュータに実行させるプログラムが格納された記録媒体。
【請求項６】
前記遅れ検出手順は、前記再生出力手順で再生中のフレームのタイムスタンプの値と前記動画像信号の再生開始からの経過時間とを比較して、前記再生出力手順における前記動画像信号の再生処理の遅れを検出することを特徴とする請求項５記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は符号化された動画像信号を復号および再生するための動画像再生方法および動画再生装置に関し、特に滑らかな動画再生が行えるように改善された動画像再生方法および動画再生装置に関する。
【０００２】
【従来の技術】
近年、コンピュータ技術の発達に伴い、デジタルビデオプレーヤ、セットトップボックス、デジタルＴＶ、デジタルＶＣＲ、パーソナルコンピュータ等のマルチメディア対応の各種電子機器が開発されている。この種の電子機器では、ＭＰＥＧ２／ＭＰＥＧ４などの動画像高能率符号化方式で符号化された動画データを復号・再生するためのデコーダが設けられている。
【０００３】
この種のデコーダにおいては、動画像信号を復号した後に、その復号画像に対してポストフィルタと称される画質改善のためのフィルタ処理が施されるのが通常である。ＭＰＥＧ２／ＭＰＥＧ４などに代表されるように、多くの符号化方式では画像をブロック単位で処理するため、その復号画像にはブロックノイズやエッジノイズといった劣化が生じる。ブロックノイズとは、本来の画像の絵柄にはないブロックパターン状の幾何学模様が見える歪みである。また、エッジノイズはエッジ付近に生じるリンギング状の歪み（モスキートノイズともいう）である。
【０００４】
このような符号化方式固有のノイズを除去するのが、ポストフィルタである。ポストフィルタは復号画像信号を平滑化して、ブロック間の境界部における高域成分を取り除く等の処理を行う。このようなポストフィルタを動画像復号器後段に配したものとしては、たとえば特開昭６４−５５９８７号公報が知られている。この特開昭６４−５５９８７号公報には、ブロック単位処理を基本とする動画像復号器から出力された復号動画像信号に対して、動ブロック領域と静ブロック領域の判別を行い、その結果に応じて平滑化フィルタにおける平滑化の度合いを切り替え、処理を効率化する技術が開示されている。
【０００５】
【発明が解決しようとする課題】
しかし、このようなポストフィルタによるフィルタ処理は比較的多くの演算量を必要とするため、フィルタ処理に時間がかかり、結果的に再生処理の遅れが引き起こされる場合がある。特に、マイクロプロセッサベースでソフトウェアデコードを行うシステムでは、動きの激しい場面においては復号処理そのものにプロセッサ資源が占有されてしまうので、それによってプロセッサ負荷が高くなり、再生処理の遅れが多々引き起こされることになる。再生処理の遅れは、音声と同期して動画像の復号・再生をソフトウェアによって行う場合に特に顕在化され、音声とのずれや、コマ落ちなどの問題が生じることになる。
【０００６】
すなわち、動画像の再生処理に遅れが生じた場合には、通常、その遅れを解消するために、いくつかのフレームに関する復号処理を省くというフレームスキップが行われる。これにより、コマ落ちが発生し、ギクシャクとした再生画像となってしまう。
【０００７】
本発明は上述の事情に鑑みてなされたものであり、フレームスキップの発生を極力排除できるようにし、滑らかな動画再生を行うことが可能な動画再生方法および動画再生装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上述の課題を解決するため、本発明は、符号化された動画像信号を復号および再生するための動画像再生方法であって、前記符号化された動画像信号を復号する復号ステップと、前記復号ステップによって復号された動画像信号に対してフィルタ処理を施すフィルタ処理ステップと、前記フィルタ処理ステップによってフィルタ処理された動画像信号を再生出力するステップと、前記動画像信号の再生状況に基づき、前記フィルタ処理ステップによるフィルタ処理を制御する再生制御ステップとを具備することを特徴とする。
【０００９】
この動画再生方法においては、動画像信号の再生状況に基づいて、フィルタ処理の制御が行われ、現在の再生状況に最適なフィルタ処理を行うことができる。このように、画質調整のためのフィルタ処理の内容を最適化することにより、フレームスキップなどの処理を行わずとも、プロセッサの負荷状況に合わせて演算処理量を調整することができるので、滑らかな動画再生を実現することが可能となる。
【００１０】
動画像信号の再生状況を表す指標としては、再生処理の遅れの度合いを用いることが好ましい。再生処理の遅れが検出された場合には、フィルタ処理の実行をスキップしたり、フィルタ処理の種類を処理量の少ない簡便なものに切り換えるという制御を行うことにより、再生処理の遅れを回復することが可能となる。これにより、フレームスキップによるコマ落ちの発生を防止できる。よって、プロセッサ負荷が増大する動きの激しいシーンなどにおいても滑らかな動画再生を実現することができる。なお、フィルタ処理をスキップしたり、フィルタ処理の種類を切り換えることにより、画質改善効果については低下するものの、一般に、それによって視覚的に認識される画質低下の度合いは、コマ落ちの発生に比べ非常に小さい。
【００１１】
また、再生処理の遅れ量を、状態変数などを用いて管理することにより、遅れの度合いに応じてフィルタ処理の種類を処理量の少ないものに段階的に切り換えていき、最終的にフィルタ処理の実行をスキップするという多段階制御を利用することにより、画質改善効果の低下を最小限に抑えることができる。
【００１２】
また、上述のフィルタ処理の制御とフレームスキップ処理とを組み合わせて、再生処理の遅れの度合いがある一定の範囲内のうちはフィルタ処理の制御のみを行い、遅れ量が所定の値に達した場合に初めて復号ステップの実行を所定フレーム数分スキップさせるように制御することにより、滑らかな動画再生と、破綻のない正常な再生処理を両立することが可能となる。
【００１３】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
図１には、本発明の一実施形態に係る動画再生装置の一例として、パーソナルコンピュータを用いた場合の構成が示されている。このパーソナルコンピュータはノートブックタイプの携帯型のコンピュータシステムであり、ＭＰＥＧ２／ＭＰＥＧ４等によって圧縮符号化されたオーディオ・ビデオストリームをソフトウェアによって復号・再生することができる。
【００１４】
図１のコンピュータシステムにおいては、図示のように、ＣＰＵ１１、ホスト−ＰＣＩブリッジ１２、主メモリ１３、表示コントローラ１４、サウンドコントローラ１５、通信インターフェース１６、Ｉ／Ｏコントーラ１７、ＰＣＩ−ＩＳＡブリッジ１８、カメラ２０、ハードディスクドライブ（ＨＤＤ）２１、ＤＶＤドライブ２２などが設けられている。
【００１５】
ＣＰＵ１１は本システム全体を制御するためのものであり、主メモリ１３にロードされたオペレーティングシステムや他の各種プログラムを実行する。本実施形態においては、オーディオ・ビデオストリームの復号・再生のためのプログラムとして、動画再生ソフトウェア１００が用いられる。この動画再生ソフトウェア１００は、ＭＰＥＧ２、ＭＰＥＧ４、ＡＶＩ、ＤＶＩなどの各種圧縮形式のＡＶ（オーディオ・ビデオ）データに対応しており、ＡＶデータの符号化ファイルを読み込み、それを復号・再生することができる。
【００１６】
ホスト−ＰＣＩブリッジ１２はＣＰＵバス１とＰＣＩバス２を接続するバスブリッジであり、ここには主メモリ１３を制御するためのメモリコントロールロジックも内蔵されている。表示コントローラ１４は本コンピュータシステムのディスプレイモニタとして使用されるＬＣＤや外部ＣＲＴディスプレイを制御する。ＡＶデータの再生時には、動画再生ソフトウェア１００によって得られた復号画像信号が表示コントローラ１４を通じてディスプレイモニタに表示されることになる。
【００１７】
サウンドコントローラ１５は音源として用いられるものであり、各種オーディオデータの入出力を行う。ＡＶデータの再生時には、動画再生ソフトウェア１００によって得られた復号音声信号がサウンドコントローラ１５を通じてスピーカから再生、あるいはラインアウト端子から外部オーディオ機器に出力される。
【００１８】
通信インターフェース１６は、たとえばＵＳＢやＩＥＥＥ１３９４などのシリアルインターフェース規格で外部または内蔵のカメラ２０と通信するためのものであり、カメラ２０からビデオデータを取り込むことができる。カメラ２０によって撮影された動画像信号は、そのまま再生表示したり、あるいはＭＰＥＧ２、ＭＰＥＧ４、ＡＶＩ、ＤＶＩなどの各種圧縮形式に変換した後にＩ／Ｏコントローラ１７を介してＨＤＤ２１、ＤＶＤドライブ２２、メモリカード２３などの各種記録メディアに記録することができる。
【００１９】
ＰＣＩ−ＩＳＡブリッジ１８はＰＣＩバス２とＩＳＡバス３との間を接続するバスブリッジであり、ここにはリアルタイムクロック（ＲＴＣ）１８１などの各種システムデバイスが内蔵されている。リアルタイムクロック（ＲＴＣ）１８１は時計モジュールであり、本実施形態では、このリアルタイムクロック（ＲＴＣ）１８１から取得した時刻を用いてＡＶデータの再生処理の遅れを管理している。
【００２０】
（動画再生ソフト）
ここで、図２および図３を参照して、動画再生ソフト１００の基本機能について説明する。
【００２１】
前述したように、動画再生ソフトウェア１００は、ＨＤＤ２１、ＤＶＤドライブ２２、またはメモリカード２３などの蓄積メディアに記録されているＡＶデータの符号化ファイルを読み込み、それを復号・再生することができる。図２には、ＨＤＤ２１に記録されているＡＶ符号化ファイル２１０を復号・再生する場合の様子が示されている。
【００２２】
ＡＶ符号化ファイル２１０には、動画像信号とオーディオ信号をそれぞれデジタル圧縮符号化した後にそれらの符号化ビットストリームを多重化することによって生成されたものである。動画再生ソフト１００は、ＨＤＤ２１からＡＶ符号化ファイル２１０を読み取り、動画像信号とオーディオ信号とに分離した後にそれぞれを伸張するための復号処理を行い、そして動画像をディスプレイモニタに表示すると共に、オーディオ信号をスピーカなどから再生する。
【００２３】
動画再生ソフトウェア１００は、図３に示されているように、アプリケーションプログラム１０１と再生エンジン１０２とから構成されている。アプリケーションプログラム１０１は動画再生処理のためのユーザインターフェースと再生エンジン１０２を制御するためのインターフェースとを有しており、ユーザから指定されたＡＶ符号化ファイル２１０の再生に必要な動作を、再生エンジン１０２に対して指示する。再生エンジン１０２は、オペレーティングシステム（ＯＳ）１０３上に実装されたマルチメディア処理用のプラットホームであり、ファィル入出力処理や動画／音声再生のためのレンダリング処理をはじめとする、動画・音声再生のために必要な処理を行う種々のプログラムモジュール（フィルタ）群から構成されている。これらモジュールはアプリケーションプログラム１０１からの指示により任意に組み合わせて用いることができる。
【００２４】
（再生エンジン）
次に、再生エンジン１０２の機能構成を説明する。図４は、ＡＶ符号化ファイルの再生時におけるモジュール構成を示している。
【００２５】
ＡＶ符号化ファイルに含まれる動画・オーディオの再生は、マネージャ３０１、ファイルリーダ３０２、デマルチプレクサ（ＤＭＵＸ）３０３、ビデオデコーダ３０４、ビデオレンダラ３０５、オーディオデコーダ３０６、オーディオレンダラ３０７を図示のようにリンクさせることによって実現される。
【００２６】
まず、再生対象の符号化ファイルがファイルリーダ３０２によってリードされ、そこに含まれる符号化ビットストリームがデマルチプレクサ（ＤＭＵＸ）３０３に送られ、そこで動画データとオーディオデータとに分離される。
【００２７】
動画データについては、デマルチプレクサ（ＤＭＵＸ）３０３内でフレーム単位に分離され、１フレームずつビデオデコーダ３０４に送られる。ビデオデコーダ３０４は動画データを復号・再生するためのモジュールであり、ここには画像伸張処理機能および画質改善のためのフィルタ処理機能などが含まれている。ビデオデコーダ３０４によって得られた復号画像はビデオレンダラ３０５を介して表示コントローラ１４に送られ、モニタ上に画面表示される。一方、オーディオデータはオーディオデコーダ３０６によって復号された後に、オーディオレンダラ３０７を介してサウンドコントローラ１５に送られ、スピーカなどから再生出力される。
【００２８】
マネージャ３０１は動画の再生状況を管理するためのものであり、再生処理に遅れが生じたときにそれを最下流のビデオレンダラ３０５に通知する（再生遅れ通知）。符号化された動画データには、図５に示すようにフレーム毎にタイムスタンプＴＳが埋め込まれているため、マネージャ３０１は、再生開始からの経過時間と再生中のフレームのタイムスタンプとを比較することにより、再生処理速度を監視することができる。マネージャ３０１からの再生処理の遅れ通知は、ビデオレンダラ３０５から順に上流側のモジュールへと伝達される。つまり、ビデオデコーダ３０４による復号・再生処理の状況が、ビデオレンダラ３０５を介してビデオデコーダ３０４にフィードバックされることになる。
【００２９】
（再生遅れ通知）
図６には、再生遅れ通知を発行するために必要なマネージャ３０１の処理手順が示されている。マネージャ３０１は、動画再生の開始時にＲＴＣ１８１からそのときの時刻（スタートタイム）を取得する（ステップＳ１１）。そして、定期的にＲＴＣ１８１から現在時刻（カレントタイム）を取得し（ステップＳ１２）、再生開始からの経過時間と再生中のフレームのタイムスタンプとを比較することによって、遅れ量を算出する（ステップＳ１３）。再生中フレームのタイムスタンプはビデオレンダラ３０５から取得してもよいが、再生中フレームの何フレームか後のフレームのタイムスタンプをデマルチプレクサ（ＤＭＵＸ）３０３から取得し、それを再生中フレームのタイムスタンプの値に換算してもよい。ＡＶＩフォーマットの符号化データの場合には、たとえばＭＰＥＧ２／ＭＰＥＧ４等で圧縮符号化されたストリームに対してタイムスタンプを含むヘッダが挿入されるので、ＭＰＥＧ２／ＭＰＥＧ４固有のタイムスタンプではなく、ＡＶＩフォーマットのタイムスタンプを利用することもできる。
【００３０】
算出された遅れ量は、再生速度などの値に換算されてビデオレンダラ３０５に通知される（ステップＳ１４）。この場合、再生速度は１００％を正常速度として表し、遅れ量の度合いに応じて再生速度を示す％の値は低下する。
【００３１】
（ビデオデコーダ）
次に、図７を参照して、本実施形態の特徴とするビデオデコーダ３０４の構成を説明する。
ビデオデコーダ３０４は、前述したように再生エンジン１０２内の１モジュールとして動作するものであり、図示のように、画像伸張部５０１、画質改善部５０２、画像出力部５０３、遅れ検出部５０４、状態変数５０５、およびコントロール部５０６から構成されている。符号化された動画像信号の復号・再生を行うための復号処理部は、画像伸張部５０１、画質改善部５０２、および画像出力部５０３から構成されている。
【００３２】
画像伸張部５０１は圧縮動画像を復号して伸張するためのものであり、ＭＰＥＧ２／ＭＰＥＧ４で圧縮された動画像信号については、可変長復号処理、逆量子化、逆ＤＣＴ、動き補償予測、差分復号画像への予測画像の加算などの処理を行う。画像伸張部５０１によって１フレーム分の復号画像が得られると、それが画質改善部５０２に送られる。
【００３３】
画質改善部５０２は復号画像の画質改善のためにブロックノイズ削減等のための平滑化フィルタ処理を行うためのものポストフィルタであり、フィルタの種類（ＩＩＲフィルタ、ＦＩＲフィルタ）の切り換え、およびフィルタパラメータの設定により、処理速度やフィルタ強度の異なる様々なフィルタ処理を復号画像信号に対して施すことができる。なお、ここで平滑化フィルタ処理は画質調整のための演算処理の一例であり、それ以外の様々な画質調整処理を含めて以下ではフィルタ処理と称することにする。
【００３４】
この画質改善部５０２によるフィルタ処理の内容はコントロール部５０６によって制御される。
【００３５】
画像出力部５０３は、画質改善部５０２によって処理された復号画像を前述のビデオレンダラ３０５に出力する。遅れ検出部５０４はビデオレンダラ３０５を通じてマネージャ３０１から伝達される遅れ通知に従って動画像信号の再生処理の遅れを検出するためのものであり、状態変数５０５を用いて再生処理の遅れの度合いを現在の再生状況として管理する。
【００３６】
コントロール部５０６は、画像伸張部５０１、画質改善部５０２、および画像出力部５０３から構成される復号処理部の動作を制御するためのものであり、画質改善部５０２によるフィルタ処理の最適化制御を行う。具体的には、コントロール部５０６は、画像伸張部５０１による復号処理のスキップ（フレームスキップ）を極力排除した状態で、再生処理の遅れを回復させるための制御を行うために、状態変数５０５の値に応じてフィルタ処理の実行をスキップしたり、あるいはフィルタ処理の種類を処理量の少ない簡便なものに切り換えるなどの遅れ回復制御を行う。以下、遅れ回復制御処理の具体的な手順について説明する。
【００３７】
（遅れ回復制御＃１）
まず、図８および図９を参照して、遅れ回復制御処理の第１の例について説明する。本例では、２値の状態変数５０５（“０”または“１”）によって遅れ回復が必要な遅れであるか否かを管理し、遅れ回復が必要な遅れである場合には（状態変数＝“１”）、画質改善のためのフィルタ処理をスキップさせるという処理が行われる。
【００３８】
図８は遅れ検出部５０４による遅れ検出処理を示したフローチャートである。図８に示されているように、遅れ検出部５０４は、ビデオレンダラ３０５を通じてマネージャ３０１からの再生遅れ通知を受けると、まず、その再生遅れ通知によって遅れ量として指定される再生速度（％）の値に基づき、再生処理の遅れがあらかじめ決められた所定量よりも大きいか否かを判定する（ステップＳ３１１）。再生処理の遅れが所定量以下であれば（ステップＳ３１１のＮＯ）、なにもせずに処理を終了する。一方、再生処理の遅れが所定量よりも大きい場合には（ステップＳ３１１のＹＥＳ）、状態変数５０５の現在の値をチェックする（ステップＳ３１２）。
【００３９】
状態変数＝“０”であれば（ステップＳ３１２のＹＥＳ）、遅れ検出部５０４は、遅れ回復処理が必要であることをコントロール部５０６に通知するために、状態変数の値を“１”に変更し（ステップＳ３１３）、状態変数がすでに“１”であれば（ステップＳ３１２のＮＯ）、なにもせずに処理を終了する。
【００４０】
図９はコントロール部５０６によって各フレーム毎に行われる復号制御処理の手順を示すフローチャートである。まず、画像伸張部５０１によって該当するフレームの復号処理が実行される（ステップＳ３５１）。１フレーム分の復号処理が終了した時点で、コントロール部５０６は、状態変数５０５をチェックする（ステップＳ３５２）。状態変数が“０”であれば（ステップＳ３５２のＮＯ）、コントロール部５０６は、通常通り、復号された１フレーム画像を画質改善部５０２に渡し、画質改善のための平滑化フィルタ処理を実行させる（ステップＳ３５３）。そして、フィルタ処理を受けた画像信号が画像出力部５０３から出力される（ステップＳ３５４）。一方、状態変数が“１”であれば（ステップＳ３５２のＹＥＳ）、コントロール部５０６は、画質改善部５０２による画質改善のためのフィルタ処理をスキップさせ、フィルタ処理を実行せずに、復号画像をそのまま画像出力部５０３から出力させる（ステップＳ３５４）。
【００４１】
このように、ＣＰＵ負荷が高く、再生処理速度に遅れが生じた場合でも、復号処理自体は間引くことなく、フィルタ処理の最適化制御を行うことにより、こま落ちのない滑らかな動画再生が可能となる。
【００４２】
（遅れ回復制御＃２）
次に、図１０および図１１を参照して、遅れ回復制御処理の第２の例について説明する。本例では、“０”，“１”，“２”，“３”の４値の状態変数５０５によって再生処理の遅れ量の度合いを管理し、それに応じて段階的にフィルタ処理の内容を変更するという処理が行われる。
【００４３】
図１０は遅れ検出部５０４による遅れ検出処理を示したフローチャートである。図１０に示されているように、遅れ検出部５０４は、ビデオレンダラ３０５を通じてマネージャ３０１からの再生遅れ通知を受けると、まず、その再生遅れ通知によって遅れ量として指定される再生速度（％）の値に基づき、再生処理の遅れがあらかじめ決められた所定量よりも大きいか否かを判定する（ステップＳ４１１）。再生処理の遅れが所定量以下であれば（ステップＳ４１１のＮＯ）、なにもせずに処理を終了する。一方、再生処理の遅れが所定量よりも大きい場合には（ステップＳ４１１のＹＥＳ）、状態変数５０５の現在の値をチェックする（ステップＳ４１２）。
【００４４】
状態変数が最高値“３”よりも小さい場合には（ステップＳ４１２のＹＥＳ）、遅れ検出部５０４は、遅れ量の度合いを示す状態変数の値を＋１増加させ（ステップＳ４１３）、状態変数がすでに最高値“３”であれば（ステップＳ４１２のＮＯ）、なにもせずに処理を終了する。
【００４５】
図１１はコントロール部５０６によって各フレーム毎に行われる復号制御処理の手順を示すフローチャートである。まず、画像伸張部５０１によって該当するフレームの復号処理が実行される（ステップＳ４５１）。１フレーム分の復号処理が終了した時点で、コントロール部５０６は、状態変数５０５をチェックし（ステップＳ４５２）、その状態変数の値に応じてフィルタの内容を切り換える。本例では、演算処理量の異なる３つのフィルタ処理Ａ，Ｂ，Ｃがあらかじめ用意されている。フィルタ処理Ａはもっとも画質改善に効果のあるフィルタ処理であるが、演算処理に時間を要する。次に、画質改善効果が期待できるのがフィルタ処理Ｂで、最後がフィルタ処理Ｃである。ＣＰＵ１１の負荷はフィルタ処理Ａ，Ｂ，Ｃの順で少なくなる。
【００４６】
状態変数が“０”であれば、コントロール部５０６は、復号された１フレーム画像を画質改善部５０２に渡し、フィルタ処理Ａを実行させる（ステップＳ３５３）。そして、フィルタ処理を受けた画像信号が画像出力部５０３から出力される（ステップＳ４５６）。同様に、状態変数が“１”であればフィルタ処理Ｂを、状態変数が“２”であればフィルタ処理Ｃを実行させる（ステップＳ４５４，Ｓ４５５）。一方、状態変数が最高値“３”であれば、コントロール部５０６は、画質改善部５０２による画質改善のためのフィルタ処理をスキップさせ、フィルタ処理を実行せずに、復号画像をそのまま画像出力部５０３から出力させる（ステップＳ４５６）。
【００４７】
このように、遅れの度合いに応じて徐々にフィルタ処理の内容を粗くするという制御を行うことにより、急激な画質変化をもたらすことなく、こま落ちのない滑らかな動画再生を行うことが可能となる。
【００４８】
（遅れ回復制御＃３）
次に、図１２および図１３を参照して、遅れ回復制御処理の第３の例について説明する。本例は、“０”，“１”，“２”の３値の状態変数５０５によって再生処理の遅れ量の度合いを管理し、フィルタ処理の実行の有無の切り替えと、フレームスキップとを組み合わせて行う場合の例である。
【００４９】
図１２は遅れ検出部５０４による遅れ検出処理を示したフローチャートである。図１２に示されているように、遅れ検出部５０４は、ビデオレンダラ３０５を通じてマネージャ３０１からの再生遅れ通知を受けると、まず、その再生遅れ通知によって遅れ量として指定される再生速度（％）の値に基づき、再生処理の遅れがあらかじめ決められた所定量よりも大きいか否かを判定する（ステップＳ５１１）。再生処理の遅れが所定量以下であれば（ステップＳ５１１のＮＯ）、なにもせずに処理を終了する。一方、再生処理の遅れが所定量よりも大きい場合には（ステップＳ５１１のＹＥＳ）、状態変数５０５の現在の値をチェックする（ステップＳ５１２）。
【００５０】
状態変数が最高値“２”よりも小さい場合には（ステップＳ５１２のＹＥＳ）、遅れ検出部５０４は、遅れ量の度合いを示す状態変数の値を＋１増加させ（ステップＳ５１３）、状態変数がすでに最高値“２”であれば（ステップＳ５１２のＮＯ）、なにもせずに処理を終了する。
【００５１】
図１３はコントロール部５０６によって各フレーム毎に行われる復号制御処理の手順を示すフローチャートである。コントロール部５０６は、まず、画像伸張部５０１によるフレームの復号処理の実行に先立ち、状態変数５０５をチェックする（ステップＳ５５１）。状態変数５０５が最高値“２”であれば（ステップＳ５１１のＹＥＳ）、復号処理、フィルタ処理、画像出力処理をすべてスキップし、これによりフレームスキップを行う。
【００５２】
一方、状態変数５０５が“１”以下であれば（ステップＳ５１１のＮＯ）、コントロール部５０６は、画像伸張部５０１に該当するフレームの復号処理を実行させた後に（ステップＳ５５２）、状態変数５０５が“０”であるか“１”であるかを判断する（ステップＳ５５３）。状態変数が“０”であれば（ステップＳ５５３のＮＯ）、コントロール部５０６は、通常通り、復号された１フレーム画像を画質改善部５０２に渡し、画質改善のための平滑化フィルタ処理を実行させる（ステップＳ５５４）。そして、フィルタ処理を受けた画像信号が画像出力部５０３から出力される（ステップＳ５５５）。状態変数が“１”であれば（ステップＳ５５３のＹＥＳ）、コントロール部５０６は、画質改善部５０２による画質改善のためのフィルタ処理をスキップさせ、フィルタ処理を実行せずに、復号画像をそのまま画像出力部５０３から出力させる（ステップＳ５５５）。
【００５３】
このように、再生遅れ量がある一定の範囲内にある場合にはフィルタ処理のスキップのみを行い、ある一定の範囲以上になったときに初めてフレームスキップを実行するという制御を行うことにより、滑らかな動画再生と、破綻のない再生処理との両立を図ることが可能となる。なお、この制御は、前述の第２の例においても適用することができる。この場合、再生遅れ量がある一定の範囲内にある場合にはフィルタ処理の段階的な制御が行われ、ある一定の範囲以上になったときにフレームスキップが実行されることになる。
【００５４】
以上のように、本実施形態においては、ＣＰＵ負荷が大きくなり再生処理に遅れが生じた場合にはフィルタ処理の内容を制御することによってＣＰＵ負荷を低減するという制御を行っているので、ＣＰＵの負荷状況に合わせて画質調整処理の内容を最適化できるようになり、ソフトウェアデコードによって音声と同期して動画の復号・再生を行う場合においても、フレームスキップが発生する頻度を極力抑えることが可能となる。
【００５５】
また、本実施形態では、再生中のフレームのタイムスタンプと再生開始からの経過時間との比較によって再生遅れ通知を生成する場合を例示したが、たとえばレート制御されたバッファの占有量などを用いて再生遅れの度合いを検出し、それに応じてフィルタ処理の内容を制御することも可能である。
【００５６】
また、本実施形態では、状態変数を低下させる処理については特に説明しなかったが、状態変数の値は再生遅れが少なくなったときなどに低下させればよいことはもちろんである。
【００５７】
さらに、本実施形態のソフトウェアデコードの方法は、その手順を含むコンピュータプログラムをコンピュータ読み取り可能な記録媒体を通じて通常のコンピュータに導入するだけで、容易に実現することができる。また、コンピュータのみならず、ゲーム機や、デジタルＴＶ、セットトップボックスなどにも適用することができる。
【００５８】
【発明の効果】
以上説明したように、本発明によれば、復号画像の画質改善ためのフィルタ処理を制御することにより、フレームスキップの発生を極力排除できるようになり、滑らかな動画再生を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るコンピュータシステムの構成を示すブロック図。
【図２】同実施形態で用いられる動画再生ソフトの基本機能を説明するための図。
【図３】同実施形態で用いられる動画再生ソフトの構造を示す図。
【図４】同実施形態で用いられる動画再生ソフトの再生エンジン部の機能構成を示す図。
【図５】同実施形態における動画像信号のストリーム構造の一例を示す図。
【図６】同実施形態で用いられる再生遅れ通知処理の手順を示すフローチャート。
【図７】同実施形態の再生エンジン部に設けられるビデオデコーダの機能構成を示す図。
【図８】同実施形態で用いられる遅れ検出処理の第１の例を示すフローチャート。
【図９】同実施形態で用いられる復号制御処理の第１の例を示すフローチャート。
【図１０】同実施形態で用いられる遅れ検出処理の第２の例を示すフローチャート。
【図１１】同実施形態で用いられる復号制御処理の第２の例を示すフローチャート。
【図１２】同実施形態で用いられる遅れ検出処理の第３の例を示すフローチャート。
【図１３】同実施形態で用いられる復号制御処理の第３の例を示すフローチャート。
【符号の説明】
１１…ＣＰＵ
１００…動画再生ソフト
１０１…動画再生用アプリケーションプログラム
１０２…再生エンジン
３０１…マネージャ
３０２…ファイルリーダ
３０３…デマルチプレクサ（ＤＭＵＸ）
３０４…ビデオデコーダ
３０５…ビデオレンダラ
３０６…オーディオデコーダ
３０７…オーディオレンダラ
５０１…画像伸張部
５０２…画質改善部
５０３…画像出力部
５０４…遅れ検出部
５０５…状態変数
５０６…コントロール部
【図１】
0004230636.tif 000002
【図２】
0004230636.tif 000003
【図３】
0004230636.tif 000004
【図４】
0004230636.tif 000005
【図５】
0004230636.tif 000006
【図６】
0004230636.tif 000007
【図７】
0004230636.tif 000008
【図８】
0004230636.tif 000009
【図９】
0004230636.tif 000010
【図１０】
0004230636.tif 000011
【図１１】
0004230636.tif 000012
【図１２】
0004230636.tif 000013
【図１３】
0004230636.tif 000014